【计算机网络】网络层:IP 协议、路由选择与新型网络技术解析

文章目录

一、网络层概念:服务模式与分层架构

1. 网络层的两大服务模式

数据链路层为网络层提供服务,将网络层的IP数据报封装成 ,传输给下一个相邻节点 ,它侧重于节点间 的数据传输;网络层要实现主机间的数据传输。

网络层的争议在于"如何向运输层提供服务",最终形成了两种主流模式:

  • 虚电路服务 :模仿电信网络的面向连接模式,通信前需建立逻辑连接(虚电路VC),网络会预留资源并保证分组按序、无差错交付。所有分组沿同一条虚电路传输,仅在连接建立阶段使用完整终点地址,后续分组使用短虚电路号。但这种模式需网络承担可靠传输责任,导致网络层设计复杂,灵活性不足。

  • 数据报服务 :互联网采用的无连接模式,网络层仅提供"尽最大努力交付",不保证分组的顺序、无差错和时限。通信前无需建立连接,每个分组携带完整终点地址,独立选择路由转发。可靠传输的责任由主机的运输层(如TCP协议)承担,这种设计让网络层更简洁高效,能适应复杂多变的网络环境。

两者的区别:虚电路服务强调网络保障可靠 ,数据报服务强调用户主机保障可靠 ,互联网最终选择数据报服务,正是看中其灵活性和低开销的优势。

2. 网络层的两个核心层面

网络层的工作可划分为数据层面和控制层面,二者协同实现分组转发与路由管理:

  • 数据层面:路由器基于本地转发表,将收到的分组从对应接口转发出去,采用硬件实现,转发速度快且独立工作,不依赖其他路由器。

  • 控制层面:通过路由选择协议(如RIP、OSPF)和路由算法,计算全网最优路由,生成并维护路由表,再由路由表推导转发表。控制层面采用软件实现,需路由器之间协同工作,适应网络拓扑变化。

软件定义网络(SDN)进一步强化了这种分层思想,通过远程控制器集中管理控制层面,统一计算路由并生成转发表,下发至各路由器的数据层面,实现路由的集中化管控,提升网络灵活性和可扩展性。

二、网际协议IP:网络互联的基石

IP协议是网络层的核心协议,负责实现异构网络的互联与IP数据报的传输。与IPv4配套的关键协议包括地址解析协议(ARP)、网际控制报文协议(ICMP)和网际组管理协议(IGMP),共同支撑IP协议的正常运行。

1. 虚拟互连网络:屏蔽异构网络差异

现实中的网络存在寻址方案、最大分组长度、接入机制等差异,如何实现异构网络互联?答案是"使用中间设备":

层次 中间设备 功能
运输层及以上 网关(gateway) 连接不同协议体系的网络
网络层 路由器(router) 实现网络互联,转发IP数据报
数据链路层 网桥/交换机 扩展局域网,转发数据帧
物理层 转发器(repeater) 放大信号,扩展物理传输距离

只有使用路由器的互联才称为"网络互联",路由器会屏蔽下层网络的异构细节,让互联网上的主机通信时,仿佛在同一个网络中,这就是"虚拟互连网络"的核心思想。

2. IP地址:网络中的唯一标识

IP地址是TCP/IP体系中最基本的概念,用于标识互联网上主机或路由器的接口,没有IP地址就无法实现跨网络通信。

(1)IP地址的表示与结构

IPv4地址为32位二进制数,采用"点分十进制记法",将32位分为4组(每组8位),转换为十进制后用点分隔,例如128.11.3.31。IP地址采用两级结构:{网络号 + 主机号},网络号标识主机所在的网络,主机号标识网络内的具体主机,确保IP地址在全网唯一。

(2)分类的IP地址

为适应不同规模的网络,IPv4将地址分为A、B、C、D、E五类,核心分类如下:

类别 二进制前缀 网络号长度 主机号长度 地址范围 最大主机数
A类 0 8位 24位 1.0.0.0~126.255.255.255 16777214(2²⁴-2)
B类 10 16位 16位 128.1.0.0~191.255.255.255 65534(2¹⁶-2)
C类 110 24位 8位 192.0.1.0~223.255.255.255 254(2⁸-2)
D类 1110 - - 224.0.0.0~239.255.255.255 多播地址,无主机号
E类 1111 - - 240.0.0.0~255.255.255.255 保留地址,暂未使用

注:主机号全0表示网络地址,全1表示广播地址,均不分配给主机,因此需减去2;A类地址中网络号0和127为保留地址,不指派。

(3)无分类编址CIDR

分类IP地址存在地址分配不合理、地址枯竭等问题,无分类域间路由选择(CIDR)应运而生。CIDR消除了分类地址和划分子网的概念,核心特点如下:

  • 采用"网络前缀 + 主机号"的两级结构,网络前缀长度n不固定(0≤n≤32),用斜线记法表示,例如128.14.35.7/20(前20位为网络前缀)。

  • 将网络前缀相同的连续IP地址组成"地址块",一个地址块包含的地址数为2^(32-n),需扣除全0和全1的主机地址(特殊场景除外)。

  • 地址掩码(子网掩码)用于快速计算网络地址,由一连串1和后续的一连串0组成,1的个数等于网络前缀长度。例如/20对应的地址掩码为255.255.240.0,通过IP地址与地址掩码的按位AND运算,即可得到网络地址。

CIDR的核心优势是"路由聚合"(超网),将多个连续的C类地址聚合为一个地址块,减少路由表中的路由项,降低路由器转发开销。例如16个连续的C类地址可聚合为192.24.0.0/20,路由表中仅需一条记录即可覆盖所有16个C类网络。

3. IP地址与MAC地址:分层寻址的配合

IP地址和MAC地址分属不同层次,承担不同的寻址职责:

  • IP地址:网络层及以上使用的逻辑地址(虚拟地址),用于标识跨网络的终点,如同"收件人地址",指明最终目的地。

  • MAC地址:数据链路层使用的硬件地址(物理地址),固化在网卡中,用于标识同一局域网内的相邻节点,如同"快递员的下一步配送地址",指明分组在局域网内的传输路径。

在分组传输过程中,IP地址始终不变(源IP和目的IP),而MAC地址会随每一跳转发更新(源MAC和目的MAC变为当前跳的相邻节点地址)。例如主机H1向另一网络的主机H2发送分组时,H1先通过ARP获取本网络路由器R1的MAC地址,将分组发送给R1;R1转发时,更新MAC地址为下一跳路由器R2的MAC地址,直至分组到达H2所在网络,再通过ARP获取H2的MAC地址,完成最终交付。

4. 地址解析协议ARP:IP地址到MAC地址的映射

ARP的核心作用是"已知IP地址,获取对应的MAC地址",其工作机制如下:

  • 主机或路由器维护"ARP高速缓存",存储IP地址与MAC地址的动态映射表,映射项有生存时间(超时自动删除),确保信息时效性。

  • 当主机A需向同一局域网的主机B发送分组时,先查询ARP缓存:若找到B的MAC地址,直接写入MAC帧;若未找到,广播发送ARP请求分组(包含A的IP、MAC和B的IP),局域网内所有节点接收后,仅B返回ARP响应分组(包含B的MAC地址),A收到后更新ARP缓存,后续即可直接通信。

若两台主机不在同一局域网,ARP仅用于获取本网络路由器的MAC地址,分组后续的转发由路由器完成。

5. IP数据报的格式:分组传输的载体

IP数据报由首部和数据两部分组成,首部包括固定部分(20字节)和可变部分(0~40字节),核心字段如下:

  • 版本:4位,IPv4对应值为4。

  • 首部长度:4位,单位为4字节,最大值为15(即首部最大60字节)。

  • 总长度:16位,首部+数据的总长度,最大值为65535字节,需不超过物理网络的最大传输单元(MTU)。

  • 标识、标志、片偏移:用于分组分片。当数据报长度超过MTU时,需分片传输,标识字段标识同一原始数据报,标志字段指示是否允许分片及是否为最后一片,片偏移指示分片在原始数据报中的相对位置(以8字节为单位)。

  • 生存时间(TTL):8位,指示数据报可经过的最大路由器数,每经过一个路由器减1,为0时丢弃,防止分组在网络中循环。

  • 协议:8位,指示数据部分对应的上层协议,例如TCP(6)、UDP(17)、ICMP(1)。

  • 源地址和目的地址:各32位,标识数据报的发送端和接收端IP地址。

可变部分为选项字段,用于排错、测量等,实际使用较少,填充字段用于确保首部长度为4字节的整数倍。

三、IP层转发分组:路由选择与转发机制

分组在互联网中采用"逐跳转发"模式,路由器根据转发表决定分组的转发路径,核心机制包括基于终点的转发、最长前缀匹配和高效的转发表查找。

1. 基于终点的转发

路由器的转发表核心条目为(目的网络地址,下一跳地址),而非(目的地址,下一跳地址),通过聚合目的网络地址,大幅压缩转发表规模。转发过程如下:

  1. 主机发送分组前,通过IP地址与子网掩码的AND运算,判断目的主机是否在同一网络:若在,直接交付;若不在,发送至本网络的默认路由器。

  2. 路由器收到分组后,提取目的IP地址,查询转发表,找到匹配的目的网络地址,将分组转发至下一跳路由器或直接交付(目的网络在本路由器直连端口)。

2. 最长前缀匹配原则

由于CIDR的广泛应用,转发表中可能存在多个与目的IP地址匹配的网络前缀,此时遵循"最长前缀匹配"原则------选择网络前缀最长的条目作为转发依据。网络前缀越长,地址块越小,路由越具体,能更精准地定位目的网络。

例如,转发表中有128.1.2.128/25(前缀25位)和128.1.2.192/26(前缀26位),若目的IP为128.1.2.196,则匹配/26的条目(前缀更长),转发路径更精准。

3. 转发表查找优化:二叉线索

为提高转发表查找速度,路由器常采用二叉线索结构存储网络前缀。二叉线索的每一层对应IP地址的一位(0或1),从根节点到叶节点的路径对应网络前缀,查找时按IP地址的位序遍历线索,直至找到匹配的叶节点,最多需遍历32层(对应32位IP地址),大幅提升查找效率。

此外,转发表中还包含两种特殊路由:主机路由(a.b.c.d/32),用于指定特定主机的路由,优先级最高;默认路由(0.0.0.0/0),当无其他匹配条目时使用,转发至默认路由器。

四、网际控制报文协议ICMP:差错报告与查询

ICMP是IP层的辅助协议,用于报告网络层的差错情况和提供查询服务,其报文封装在IP数据报中传输,不属于上层协议。

1. ICMP报文的分类

ICMP报文分为差错报告报文和询问报文两类,核心类型如下:

报文类型 类型值 功能
终点不可达 3 目的网络/主机/端口不可达时发送
时间超过 11 分组TTL减为0或分片重组超时发送
参数问题 12 IP首部参数错误时发送
回送请求/回答 8/0 测试目的主机是否可达(如ping命令)
时间戳请求/回答 13/14 获取主机时钟信息,用于时钟同步

2. ICMP的典型应用

  • ping命令:基于ICMP回送请求/回答报文,测试两台主机之间的连通性,能显示分组往返时间(RTT)和丢包率,是网络排障的常用工具。

  • traceroute(tracert)命令:利用IP数据报的TTL字段和ICMP时间超过/终点不可达报文,跟踪分组从源主机到目的主机的转发路径,显示每一跳的路由器地址和延迟,可定位网络传输中的故障节点。

需注意:ICMP差错报告报文不会嵌套发送(即不对ICMP差错报文再发送差错报文),且不对多播地址、特殊地址(如127.0.0.0)的数据报发送差错报文。

五、IPv6:应对地址枯竭的解决方案

IPv4仅32位地址空间,随着互联网设备数量的爆炸式增长,地址枯竭问题日益严重,IPv6应运而生。IPv6采用128位地址空间,地址数量高达3.4×10³⁸,从根本上解决了地址短缺问题。

1. IPv6的基本首部

IPv6简化了IPv4的首部结构,基本首部固定为40字节,核心字段包括版本(6)、通信量类、流标号、有效载荷长度、下一个首部、跳数限制、源地址(128位)和目的地址(128位)。与IPv4相比,IPv6取消了首部长度、检验和等字段,用扩展首部实现选项功能,提高了转发效率。

2. IPv6地址表示

IPv6地址采用"冒号十六进制记法",将128位分为8组(每组16位),用十六进制表示,组间用冒号分隔,例如2001:0DB8:0:CD30:123:4567:89AB:CDEF。为简化表示,支持"零压缩"(连续的零组用::代替)和"点分十进制后缀"(兼容IPv4地址,如::128.10.2.1)。

IPv6地址分为单播(点对点通信)、多播(一点对多点通信)和任播(一点对最近节点通信)三类,无广播地址(由多播地址替代)。

3. IPv4向IPv6的过渡

由于IPv4和IPv6不兼容,过渡需采用渐进式策略:

  • 双协议栈:主机或路由器同时运行IPv4和IPv6协议,根据目的地址选择对应的协议栈通信,是过渡初期的主要方式。

  • 隧道技术:在IPv4网络中搭建"IPv6隧道",将IPv6数据报封装在IPv4数据报中传输,适用于IPv6孤岛之间的通信。

4. ICMPv6

ICMPv6是IPv6的配套控制协议,整合了ARP和IGMP的功能,分为差错报文、信息报文、邻站发现报文(ND协议)和组成员关系报文(MLD协议),为IPv6的运行提供支撑。

六、互联网的路由选择协议:动态路由的实现

路由选择协议是控制层面的核心,用于路由器之间交换路由信息,计算最优路由。互联网采用分层次的路由选择策略,将网络划分为自治系统(AS),AS内部使用内部网关协议(IGP),AS之间使用外部网关协议(EGP)。

1. 路由选择协议的基本概念

  • 自治系统(AS):在单一技术管理下的网络、IP地址和路由器集合,内部使用统一的路由选择协议和度量标准,对外部表现为单一的路由策略。

  • 静态路由与动态路由:静态路由由管理员手动配置,不适应网络拓扑变化,但开销小;动态路由通过协议自动调整路由,适应网络变化,但实现复杂、开销大,互联网均使用动态路由。

2. 内部网关协议(IGP)

IGP用于AS内部的路由选择,常用协议包括RIP和OSPF。

(1)路由信息协议(RIP)

RIP是基于距离向量算法的分布式路由协议,核心特点如下:

  • 距离定义:以"跳数"为度量单位,路由器到直连网络的距离为1,非直连网络的距离为经过的路由器数+1,最大跳数为15(16表示不可达),限制了网络规模。

  • 协议特点:仅与相邻路由器交换信息;交换的是完整路由表;每隔30秒定期交换,网络拓扑变化时触发更新。

  • 距离向量算法:路由器收到相邻路由器的路由更新后,将下一跳改为该路由器,距离+1,再与本地路由表比较:若目的网络不存在,添加条目;若下一跳相同,替换条目;若距离更短,更新条目。

RIP的优点是实现简单、开销小,但存在"坏消息传播慢"(收敛时间长)、网络规模有限、路由信息开销大等缺点,适用于小型网络。

(2)开放最短路径优先(OSPF)

OSPF为克服RIP的缺点而设计,基于链路状态算法(Dijkstra算法),核心特点如下:

  • 链路状态传播:路由器通过洪泛法向AS内所有路由器发送链路状态信息(相邻路由器、链路度量),仅在链路状态变化或每隔30分钟刷新时发送,开销小。

  • 链路状态数据库:所有路由器维护一致的链路状态数据库,基于数据库构造最短路径树,生成路由表,收敛速度快。

  • 区域划分:将AS划分为主干区域(0.0.0.0)和普通区域,区域边界路由器(ABR)连接不同区域,主干区域连通所有普通区域,减少路由信息传播开销,支持大规模网络。

OSPF支持多路径负载均衡、可变长子网划分、鉴权等功能,无"坏消息传播慢"的问题,是目前主流的IGP协议。

3. 外部网关协议(EGP)

EGP用于AS之间的路由选择,目前广泛使用的是BGP-4(边界网关协议第4版)。

  • 协议特点:BGP-4是基于路径向量的协议,不追求"最佳路由",而是选择"可行路由"(避免兜圈子),需考虑AS之间的路由策略(如商业合作关系)。

  • 路由信息:BGP路由条目包含前缀(目的网络)和属性(如AS路径、下一跳),通过AS路径属性避免路由环路(不接受包含自身AS号的路由)。

  • 连接方式:BGP发言者(边界路由器)之间通过半永久性TCP连接(端口179)交换路由信息,分为eBGP(不同AS之间)和iBGP(同一AS内部)连接。

BGP适用于大规模互联网的域间路由选择,能灵活处理AS之间的复杂策略,是互联网骨干网的核心路由协议。

七、网络层高级技术:多播、VPN与MPLS

1. IP多播:高效的一对多通信

IP多播(组播)用于实现一个源点向多个终点的通信,相比单播(多次发送相同分组)和广播(向所有节点发送),能大幅节约网络带宽。

  • 多播地址:使用IPv4的D类地址(224.0.0.0~239.255.255.255)标识多播组,一个D类地址对应一个多播组,主机通过加入多播组接收多播数据。

  • 关键协议:网际组管理协议(IGMP)用于主机加入/退出多播组,通知本地多播路由器;多播路由选择协议(如PIM-SM)用于多播路由器之间协同,构建多播转发树,将多播数据报高效转发至所有多播组成员。

多播适用于视频会议、直播、软件分发等场景,当多播组成员数量较大时,优势尤为明显。

2. 虚拟专用网(VPN)与网络地址转换(NAT)

(1)VPN:基于公网的专用网络

由于IPv4地址短缺,企业常使用专用IP地址(RFC 1918规定)构建内部网络,专用IP地址仅在企业内部使用,无需向ICANN申请,且互联网路由器不转发目的地址为专用IP的分组。

VPN利用公用互联网作为企业各分支机构专用网之间的通信载体,通过隧道技术将内部数据报加密后封装在公网IP数据报中传输,实现"虚拟专用"的效果。VPN分为内联网(企业内部)、外联网(企业与合作伙伴)和远程接入VPN(员工远程访问)三类,兼顾安全性和成本效益。

(2)NAT:解决专用地址访问互联网

网络地址转换(NAT)用于实现使用专用IP地址的主机与互联网通信,核心原理是在NAT路由器上将专用IP地址转换为全球IP地址:

  • 传统NAT:NAT路由器拥有少量全球IP地址,专用网内主机轮流使用,最多同时支持n台主机访问互联网(n为全球IP地址数)。

  • NAPT(网络地址与端口号转换):将专用IP地址+端口号转换为全球IP地址+新端口号,多台主机可共用一个全球IP地址通信,大幅节约全球IP地址,是目前最常用的NAT方式。

NAT的缺点是通信必须由专用网内主机发起,无法让互联网主机主动访问专用网内的主机(如服务器),需通过端口映射等方式解决。

3. 多协议标签交换(MPLS):IP与面向连接的结合

MPLS是一种IP增强技术,不取代IP,而是通过标签交换提升转发效率,核心特点如下:

  • 标签交换:在MPLS域的入口节点,将IP数据报分类为转发等价类(FEC),为每个FEC分配固定长度的标签,后续路由器基于标签转发(硬件实现),无需解析IP地址,转发速度快。

  • 标签交换路径(LSP):MPLS域内的路由器通过标签分配协议(LDP)交换标签信息,构建LSP(类似虚电路),分组沿LSP转发,实现显式路由选择。

  • 应用场景:支持服务质量(QoS)、流量工程(负载均衡)、VPN等,适用于骨干网络。

新一代MPLS采用段路由选择协议(SR),无需LDP协议,由源节点指定路径并生成标签栈,进一步简化控制层面,提升灵活性。

八、软件定义网络(SDN):网络架构的革新

SDN是一种新型网络架构,核心思想是"控制与转发分离、软件定义控制",彻底改变了传统网络的管理模式:

1. SDN的核心组件

  • 数据层面:由SDN交换机组成,负责分组转发,通过流表实现"匹配+动作"(如转发、丢弃、重写首部),流表由控制器管理。

  • 控制层面:由SDN控制器组成,集中管理全网的拓扑信息、链路状态,计算路由并生成流表,通过南向接口(如OpenFlow)下发至交换机。

  • 应用层面:由网络控制应用程序组成(如路由选择、负载均衡、防火墙),通过北向接口(如REST API)与控制器交互,实现网络功能的可编程。

2. SDN的特性

  • 控制与转发分离:控制器集中管控,交换机仅负责转发,简化网络设备,降低硬件成本。

  • 可编程性:通过软件编程实现网络功能,快速适配业务需求,无需修改硬件。

  • 集中化管理:控制器全局视图,便于统一调度和优化网络资源,提升管理效率。

SDN已在数据中心、骨干网等场景广泛应用,是未来网络发展的重要方向。

相关推荐
Asssshzy2 小时前
校园网断网无法远程电脑的解决方案
windows·计算机网络·电脑
Cher ~2 小时前
【linux】零拷贝技术
linux·服务器·网络
酣大智2 小时前
计算机网络概述
运维·网络
小马_xiaoen2 小时前
WebSocket与SSE深度对比与实战 Demo
前端·javascript·网络·websocket·网络协议
上海云盾-小余2 小时前
企业 Web 安全 “零死角”:抗 DDoS + 云 WAF + 安全服务组合方案
网络·安全·ddos
酣大智2 小时前
传输介质-- 网线
运维·网络
梁同学与Android2 小时前
Android ---【Kotlin篇】Kotlin 协程中 StateFlow 与 SharedFlow 的网络状态对比与应用
android·网络·kotlin
资料库012 小时前
Bond的模式都有哪些?
服务器·网络
Chenglin_Yu3 小时前
数据链路层差错控制的三种方法
计算机网络