网络层的核心地位与功能
网络层是OSI参考模型中的第三层,位于数据链路层和传输层之间。在TCP/IP协议栈中,它对应于网际层。网络层的核心任务是实现网络中任意两个主机(端系统)之间的逻辑通信,即把分组(Packet)从源端发送到目的端。它为上层协议(如TCP、UDP)屏蔽了底层网络的复杂性,使其不必关心数据包经过了哪些路由器、走了哪条路径,以及底层是何种物理媒介。
网络层的主要功能可以概括为以下几点:
- 路由选择与转发:根据目的地址,在复杂的网络拓扑中为数据包选择一条最佳路径,并由路由器进行转发。这是网络层的核心功能。
- 异构网络互联:通过IP协议将物理上和逻辑上独立的、采用不同技术的网络连接起来,构成一个庞大的互联网。
- 寻址与地址分配:为网络中的每一个主机和路由器接口分配唯一的逻辑地址(即IP地址),用于标识和定位网络设备。
- 拥塞控制:监控网络中的流量,当流量超过网络处理能力时,采取措施缓解拥塞,确保网络的稳定性。
- 分片与重组:当数据包的大小超过了链路的最大传输单元(MTU)时,网络层负责将其分片,并在目的主机的网络层进行重组。
网络层提供的是 尽力而为(Best-Effort) 的服务,它不保证数据包的可靠交付、不保证按序到达、也不保证无差错。可靠性通常由上层的传输层协议(如TCP)来保障。
第一部分:网络层核心协议簇
网络层的功能由一系列协同工作的协议共同完成,其中IP协议是绝对的核心。
1.1 IP协议(Internet Protocol):互联网的基石
IP协议定义了数据包的格式(即IP数据报)和路由器处理数据包的规则,是整个TCP/IP协议栈的基石 。目前广泛使用的版本是IPv4,而IPv6正在逐步部署和取代IPv4。
1.1.1 IPv4协议详解
-
IPv4报文格式:
一个典型的IPv4报头长度为20字节(不含选项字段)。- 版本(Version):4位,指明协议版本,对IPv4其值为4。
- 首部长度(IHL):4位,表示IP报头有多少个32位字(4字节),因此最大值为15,即60字节。
- 服务类型(TOS):8位,用于指示期望的服务质量。
- 总长度(Total Length):16位,指整个IP数据报(报头+数据)的总长度,单位为字节。最大长度为65535字节。
- 标识(Identification):16位,用于分片重组。同一数据报的所有分片具有相同的标识。
- 标志(Flags):3位,其中DF(Don’t Fragment)位和MF(More Fragments)位对分片非常重要。
- 片偏移(Fragment Offset):13位,指出该分片在原数据报中的相对位置,以8字节为单位。
- 生存时间(TTL):8位,数据报每经过一个路由器,TTL减1。当TTL为0时,数据报被丢弃。这可以防止数据包在网络中无限循环。
- 协议(Protocol):8位,指出此数据报携带的数据使用了何种上层协议,如TCP(值为6)、UDP(值为17)、ICMP(值为1)。
- 首部检验和(Header Checksum):16位,仅检验数据报的首部,不检验数据部分。
- 源地址(Source Address) 和 目的地址(Destination Address):各32位,是IPv4地址的核心。
-
IPv4地址与分类:
IPv4地址是一个32位的二进制数,通常用“点分十进制”表示。最初的IPv4地址被分为A、B、C、D、E五类。- A类:0.0.0.0 到 127.255.255.255。网络号8位(第1位为0)。
- B类:128.0.0.0 到 191.255.255.255。网络号16位(前2位为10)。
- C类:192.0.0.0 到 223.255.255.255。网络号24位(前3位为110)。
- D类:组播地址。
- E类:保留作研究用。
此外,还有一些特殊的私有地址段(如10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16),这些地址只能在局域网内部使用,不能在公共互联网上路由。
-
子网划分(Subnetting)与CIDR:
有类地址的设计导致地址空间浪费严重。为了解决这个问题,引入了子网划分和无类域间路由(CIDR)。
子网划分:将一个大的网络(如一个B类网络)划分成多个更小的网络(子网)。这是通过 子网掩码(Subnet Mask) 实现的。子网掩码将IP地址划分为网络号和主机号两部分。通过借用主机号的一部分位作为子网号,可以创建出多个子网 。
CIDR (Classless Inter-Domain Routing) :CIDR消除了传统的A、B、C类地址和子网划分的概念,使用“网络前缀”来表示网络。例如,192.168.1.0/24表示前24位是网络号,后8位是主机号。CIDR使得IP地址的分配更加灵活和高效,是当前互联网地址分配的基础。可变长子网掩码(VLSM) 是CIDR思想的延伸,允许在一个网络内部使用不同长度的子网掩码,进一步提高了地址利用率。
1.1.2 IPv6协议详解
随着IPv4地址空间的枯竭,IPv6应运而生。
-
IPv6的主要优势:
- 巨大的地址空间:IPv6地址长度为128位,理论上可提供约 3.4*(10^38) 个地址,从根本上解决了地址耗尽的问题。
- 简化的报头:IPv6的报头格式相比IPv4更为简化,固定为40字节。它取消了IHL、标识、标志、片偏移、首部检验和等字段,将可选功能通过扩展报头实现。这减轻了路由器的处理负担,提高了转发效率。
- 增强的灵活性和安全性:IPv6通过扩展报头支持多种新特性,如路由、分片、认证、加密等。IPsec被设计为IPv6的强制标准,提供了网络层的端到端安全。
- 更好的移动性支持:IPv6协议内建了对移动IP的支持。
-
IPv6地址表示:
IPv6地址通常用8组4个十六进制数表示,组之间用冒号分隔,如 2025:0db8:63a3:0000:0000:5a2e:0370:6634。为了简化,可以省略前导零,并用双冒号::表示一组或多组连续的零。
1.1.3 从IPv4到IPv6的过渡技术
由于IPv4和IPv6不能直接通信,且网络不可能在一夜之间完成升级,因此需要过渡技术。主要有以下两种:
- 双栈技术(Dual Stack):网络节点(主机或路由器)同时支持IPv4和IPv6两个协议栈 。设备既有IPv4地址也有IPv6地址,可以根据目的地址的类型选择使用IPv4或IPv6进行通信。这是最直接、最常用的过渡方式,性能通常优于隧道技术。
- 隧道技术(Tunneling):将IPv6数据包作为负载封装在IPv4数据包中,使其能够穿越纯IPv4的网络环境 。当IPv6数据包到达IPv4网络的另一端时,再由隧道出口设备解封装。这种技术适用于连接被IPv4网络隔开的“IPv6孤岛”。常见的隧道技术有6to4、ISATAP、GRE隧道等 。隧道技术的缺点是增加了额外的封装开销,并可能引入性能瓶颈。
1.2 地址解析协议 (ARP/RARP)
- ARP (Address Resolution Protocol):ARP协议的作用是将网络层的IP地址解析为数据链路层的物理地址(MAC地址) 。当一个主机要向同一局域网内的另一个主机发送IP数据包时,它必须知道对方的MAC地址才能封装成帧。ARP通过在局域网内广播一个ARP请求(包含目标IP地址),目标主机收到后会以单播方式回应自己的MAC地址。主机会将获取到的IP-MAC映射关系缓存在ARP表中。
- RARP (Reverse Address Resolution Protocol):RARP的作用与ARP相反,它允许一个只知道自己MAC地址的主机(如无盘工作站)从网络上获取自己的IP地址 。现在,RARP已基本被更强大、更灵活的BOOTP和DHCP协议所取代。
1.3 网际控制报文协议 (ICMP)
ICMP (Internet Control Message Protocol) 是IP协议的辅助协议,用于在IP主机和路由器之间传递控制消息,报告错误、拥塞情况或提供网络诊断信息。ICMP报文作为IP数据报的数据部分进行传输。
- 主要功能:
- 差错报告:如“目的不可达”、“源点抑制”(通知发送方网络拥塞)、“超时”等。
- 网络探询:如Ping程序使用的回送请求与应答报文,用于测试目标主机是否可达;Traceroute程序利用ICMP的“超时”报文来探测数据包从源到目的所经过的路由路径。
1.4 网际组管理协议 (IGMP)
IGMP (Internet Group Management Protocol) 是用于管理IP组播组成员关系的协议。当一个主机希望加入或离开一个组播组时,它会通过IGMP协议通知本地的组播路由器。路由器根据这些信息维护组成员列表,并决定是否将某个组播组的数据转发到该网段。
第二部分:路由选择与路由协议
路由选择是网络层的核心功能。路由器内部维护着一张路由表,根据数据包的目的IP地址查询路由表,决定下一跳转发的目标。路由表的建立和维护依赖于路由选择算法和路由协议。
2.1 路由选择算法概述
路由算法可以分为两大类:
- 链路状态(Link-State, LS)算法:每个路由器都了解整个网络的拓扑结构和所有链路的代价(如带宽、时延)。它向网络中所有其他路由器广播自己的链路状态信息。基于完整的拓扑信息,每个路由器独立地使用Dijkstra算法计算出到所有其他节点的最短路径 。OSPF是典型的链路状态协议。
- 距离向量(Distance-Vector, DV)算法:每个路由器只维护到其邻居的距离(代价)以及邻居到其他网络的距离。它与邻居交换路由信息(距离向量),并根据贝尔曼-福特(Bellman-Ford)算法更新自己的路由表。RIP是典型的距离向量协议。DV算法存在“慢收敛”和“路由环路”等问题。
2.2 内部网关协议 (IGP - Interior Gateway Protocol)
IGP用于一个自治系统(AS, Autonomous System)内部的路由选择。一个AS通常指一个由单一机构管理的网络,如一个大学校园网或一个企业网。
2.2.1 RIP协议 (Routing Information Protocol)
RIP是一种较为简单的距离向量协议。
- 工作原理:RIP使用 跳数(Hop Count) 作为度量标准,即到达目的网络需要经过的路由器数量。最大跳数为15,超过15则认为目的网络不可达。RIP路由器周期性地(如每30秒)与邻居交换完整的路由表。
- 局限性:由于最大跳数的限制,RIP只适用于小型网络。它收敛速度慢,且仅以跳数作为度量标准,无法反映链路带宽、时延等更优的路径特性。
2.2.2 OSPF协议 (Open Shortest Path First)
OSPF是目前应用最广泛的IGP之一,它是一种链路状态协议。
-
工作原理:
- 邻居发现:通过发送Hello报文发现并维持邻居关系 。
- 链路状态通告(LSA):每个路由器产生描述自身链路状态的LSA,并通过“泛洪”的方式在整个AS内传播。
- 构建拓扑数据库:每个路由器收集所有LSA,构建一个完整的、相同的网络拓扑数据库(LSDB)。
- SPF算法:每个路由器以自己为根,运行Dijkstra算法(即SPF算法),计算出到所有其他节点的最短路径树。
-
区域划分(Area):为了适应大规模网络,OSPF可以将一个AS划分为多个区域。区域间的路由信息交换被汇总,减少了LSA泛洪的范围和路由表的规模,提高了可扩展性。所有区域都必须与一个称为“骨干区域”(Area 0)的中心区域相连。
-
优点:相比RIP,OSPF收敛速度快,无路由环路,支持VLSM和CIDR,支持基于代价的复杂路由度量,可扩展性好。
2.3 外部网关协议 (EGP - Exterior Gateway Protocol): BGP
EGP用于不同自治系统(AS)之间的路由选择。互联网就是由无数个AS通过EGP连接起来的。
2.3.1 BGP协议 (Border Gateway Protocol)
BGP是当前互联网上唯一使用的EGP,是互联网的“粘合剂”。
- 工作原理:BGP是一种 路径向量(Path Vector)协议。它不像IGP那样关心路径的度量(如跳数或带宽),而是关注AS之间的连通性和路由策略。BGP在交换路由信息时,会附带上一条完整的AS路径。路由器通过检查AS路径可以避免路由环路,并基于路径长度、本地优先级、MED值等多种属性执行复杂的路由策略。
- 通信方式:BGP使用TCP协议(端口179)进行可靠的路由信息交换,这与使用IP或UDP的OSPF和RIP不同。
2.3.2 OSPF与BGP的核心区别对比
| 特性 | OSPF (开放最短路径优先) | BGP (边界网关协议) |
|---|---|---|
| 协议类型 | IGP (内部网关协议) | EGP (外部网关协议) |
| 应用场景 | 自治系统(AS)内部 | 自治系统(AS)之间 |
| 算法 | 链路状态 (Dijkstra) | 路径向量 |
| 目标 | 寻找AS内最短路径,关注收敛速度 | 寻找AS间最优(基于策略)的可达路径,关注策略控制 |
| 度量 | 基于链路代价(Cost) | 基于复杂的路径属性(AS_PATH, MED, Local_Pref等) |
| 传输协议 | 直接封装在IP报文中 (协议号89) | 使用TCP (端口179) |
| 规模与收敛 | 适用于中小型网络,收敛快 | 适用于大规模互联网,收敛相对较慢 |
783

被折叠的 条评论
为什么被折叠?



