QEQuantumEinsteinSearchCtrl/⌘K

第四章 网络层(⭐⭐⭐⭐⭐)

8 分钟阅读3,25531 个小节
返回目录

第四章 网络层(⭐⭐⭐⭐⭐)

4.1 网络层功能与服务模型

  • 异构网络互联
  • 路由选择与分组转发
  • 拥塞控制
  • SDU = IP数据报
功能说明
路由选择确定分组从源到目的的路径(静态/动态)
分组转发根据转发表将分组从输入端口送到输出端口
拥塞控制全局性调节,防止网络过载
异构网络互联通过路由器将不同物理网络连接

静态路由 vs 动态路由:静态由管理员手动配置,适合小型稳定网络;动态通过路由协议自动更新,适合大型复杂网络。

4.2 IPv4 地址与分组

一、分类编址与特殊地址

类别网络号位数范围默认掩码
A类8(0开头)1.0.0.0 ~ 126.255.255.255255.0.0.0 (/8)
B类16(10开头)128.0.0.0 ~ 191.255.255.255255.255.0.0 (/16)
C类24(110开头)192.0.0.0 ~ 223.255.255.255255.255.255.0 (/24)
D类组播224.0.0.0 ~ 239.255.255.255
E类保留240.0.0.0 ~ 255.255.255.255

特殊地址

地址用途
0.0.0.0本网络本主机(DHCP启动时)
127.x.x.x环回测试
255.255.255.255本网广播(受限广播)
网络号+全1主机号定向广播
网络号+全0主机号该网络本身

私有地址:10.0.0.0/8、172.16.0.0/12、192.168.0.0/16

二、子网划分与CIDR

  • 网络地址 = IP AND 子网掩码
  • 可用主机数: Nhost=2h2N_{host}=2^h-2
  • 最长前缀匹配原则:转发表中有多个匹配时,选子网掩码最长的那条

VLSM(变长子网掩码)

  • 对同一网络用不同长度子网掩码划分,提高地址利用率
  • 计算思路:按需求主机数从大到小依次分配子网

子网划分完整计算示例(⭐ 高频大题)

:某单位获得网络地址 192.168.1.0/24,需划分4个子网,分别需要 60、30、14、6 台主机,求各子网的地址范围和子网掩码。

(从大到小依次分配):

子网需要主机主机位 hh子网掩码网络地址广播地址可用范围
A606(262=62602^6-2=62\ge60/26 (255.255.255.192)192.168.1.0192.168.1.63.1 ~ .62
B305(252=30302^5-2=30\ge30/27 (255.255.255.224)192.168.1.64192.168.1.95.65 ~ .94
C144(242=14142^4-2=14\ge14/28 (255.255.255.240)192.168.1.96192.168.1.111.97 ~ .110
D63(232=662^3-2=6\ge6/29 (255.255.255.248)192.168.1.112192.168.1.119.113 ~ .118

验算:62+30+14+6=112 台主机,剩余 .120~.255 可继续分配。

📝 CIDR最长前缀匹配:路由器收到目的 IP 为 192.168.1.100,路由表有 /24、/26、/28 三条匹配,选 /28(最长前缀)。

三、IPv4首部与分片

关键字段:

  • 首部长度:单位 4B,最小5(20B),最大15(60B)
  • 总长度:单位 1B,最大 65535B
  • 标识:同一数据报的所有分片标识相同
  • DF=1:禁止分片;MF=1:后续还有分片
  • 片偏移:单位 8B
  • TTL:每经过一个路由器减1,到0则丢弃
  • 协议:6=TCP,17=UDP,1=ICMP,89=OSPF
  • 重组仅在目的主机执行

IP分片完整计算例题(⭐ 高频大题)

:一个总长 3820B 的数据报(首部20B,数据3800B),链路MTU=1420B,求分片结果。

:每片最大数据 = MTU - 首部 = 1420 - 20 = 1400B,且必须是 8 的倍数 → 1400B ✓

片号总长度数据长度MF片偏移
11420140010
2142014001175 (=1400/8)
3102010000350 (=2800/8)

验算:1400+1400+1000=3800 ✓;片偏移按 8B 为单位。

4.3 ARP 协议

功能:同一链路内 IP→MAC 地址解析(请求广播、响应单播

ARP 四种典型场景

场景过程
同网段直接通信发送方 ARP 广播查目的MAC → 目的主机单播回应
跨网段(经路由器)发送方 ARP 查默认网关MAC → 路由器转发(目的IP不变,MAC逐跳替换)
免费ARP主机查询自己的IP → 检测地址冲突
代理ARP路由器代目的网络回复ARP → 使不同子网主机像在同一网段通信

⚠️ ARP 仅工作在同一链路(广播域),不跨路由器。ARP报文直接封装在数据链路层帧中(不是IP分组)。

4.4 DHCP 协议

DORA 四报文精确地址

步骤报文源IP目的IP源MAC传输方式
1Discover0.0.0.0255.255.255.255客户MAC广播
2Offer服务器IP255.255.255.255服务器MAC广播
3Request0.0.0.0255.255.255.255客户MAC广播
4ACK服务器IP255.255.255.255服务器MAC广播

⚠️ Request 也用广播,是为了让其他DHCP服务器知道客户端选了哪个Offer。

DHCP 中继代理:当DHCP服务器不在同一子网时,路由器可配置为中继代理,转发DHCP报文。

4.5 ICMP 协议

一、ICMP报文分类

类型具体报文
差错报告①目的不可达 ②源站抑制 ③超时 ④参数问题 ⑤重定向
询问报文①回送请求/应答(Ping) ②时间戳请求/应答

二、不发送ICMP差错报文的4条件(⭐ 高频选择)

  1. 对ICMP差错报文不再发送差错报文(防循环)
  2. 对分片后非第一片的数据报不发送
  3. 组播地址不发送
  4. 特殊地址(127.x.x.x、0.0.0.0等)不发送

三、Ping 与 Traceroute

  • Ping:利用 ICMP 回送请求/应答,测试连通性
  • Traceroute:发送 TTL 递增的 UDP/ICMP 报文,通过收到"超时"差错逐跳定位路径

4.6 NAT(网络地址转换)

  • 将私有地址映射为公有地址
  • NAPT(端口转换):同一公网IP通过不同端口号区分内部主机会话

示例:内部主机 192.168.1.5:3000 → NAT → 公网 202.1.1.1:5001;另一主机 192.168.1.6:3000 → NAT → 202.1.1.1:5002

⚠️ NAT会改变源IP和端口(出方向)/ 目的IP和端口(入方向),普通路由转发不改源/目的IP

4.7 IPv6(⭐⭐⭐)

一、IPv6首部结构(固定40B)

字段位数说明
版本4固定为6
通信量类8区分服务(类似IPv4 TOS)
流标号20标识同一"流"的分组
有效载荷长度16扩展首部+数据的总长度
下一个首部8指示扩展首部类型或上层协议
跳数限制8等同于IPv4 TTL
源地址128
目的地址128

二、IPv6 vs IPv4 取消的7项(2023真题)

#IPv4有,IPv6取消原因
1首部校验和上下层已有校验,减少路由器开销
2分片/重组相关字段中间路由器不分片,只在端系统上分片重组
3首部长度字段固定40B,无需指示
4选项字段改为扩展首部机制
5填充字段固定首部无需对齐填充
6协议字段改为"下一个首部"字段
7总长度改为"有效载荷长度"

三、IPv6地址表示

  • 冒号十六进制:8组×16位,如 2001:0db8:0000:0000:0000:0000:0000:0001
  • 零压缩:连续全0组可用::替代(一个地址中只能出现一次::
  • 三种地址类型:单播、组播、任播(无广播)

四、过渡策略

方式原理
双栈同一设备同时支持IPv4和IPv6协议栈
隧道将IPv6分组封装在IPv4分组的数据部分传输

4.8 路由算法(⭐⭐⭐⭐)

一、距离-向量路由算法(Bellman-Ford)

核心公式: dx(y)=minv{c(x,v)+dv(y)}d_x(y)=\min_v\{c(x,v)+d_v(y)\}

  • dx(y)d_x(y):从 xxyy 的最短距离
  • c(x,v)c(x,v)xx 到邻居 vv 的直接链路开销
  • dv(y)d_v(y):邻居 vv 声称到 yy 的距离

每个节点周期性地将自己的距离向量发给邻居,邻居据此更新自己的路由表。

⚠️ 问题:坏消息传播慢("计数到无穷"问题),可用毒性反转(告诉邻居经它到达的路由距离为∞)缓解。

二、链路状态路由算法(Dijkstra)

  1. 每个路由器通过洪泛将自己的链路状态(邻居+开销)通告全网
  2. 每个路由器获得全网拓扑后,用 Dijkstra 算法计算到所有节点的最短路径

Dijkstra步骤

  1. 初始化:D(v)=c(s,v)D(v)=c(s,v)(直接邻居),非邻居为 \infty
  2. 选择 DD 最小的未确认节点 ww 加入已确认集合
  3. ww 的每个邻居 vvD(v)=min{D(v), D(w)+c(w,v)}D(v)=\min\{D(v),\ D(w)+c(w,v)\}
  4. 重复步骤2-3,直到所有节点确认

三、层次路由

  • 互联网规模巨大,不可能让所有路由器运行同一路由协议
  • 将互联网划分为若干自治系统(AS)
  • AS内部用 IGP(RIP/OSPF),AS之间用 EGP(BGP)

4.9 路由协议(⭐⭐⭐⭐⭐)

一、RIP(距离向量)

特性说明
度量跳数(最大15,16=不可达)
更新每30秒广播/组播整个路由表
传输UDP 端口 520
适用小规模网络

RIP 路由表更新4步规则(⭐ 2024真题)

收到邻居 NN 的路由表后,对其中每条路由(目的 DD,距离 dd):

  1. 将距离 +1+1(经过邻居,所以跳数加一)→ 得到 d=d+1d'=d+1
  2. 若路由表中目的 DD 的条目 → 添加(下一跳=N,距离=d')
  3. 若已有条目且下一跳==N无条件替换dd'(不论大小,因为信息来自同一邻居)
  4. 若已有条目且下一跳≠Nd<d'< 已有距离 → 替换为更短路径

📝 算例

路由器R1原有路由表:

目的距离下一跳
Net13R2
Net25R3
Net32R2

收到来自R2的通告:Net1距离=2, Net2距离=3, Net3距离=5

更新后(各条+1,R2为下一跳):

  • Net1:下一跳==R2,无条件替换 → 距离=3(3→3,不变)
  • Net2:下一跳≠R2,4<5 → 替换 → 距离=4,下一跳=R2
  • Net3:下一跳==R2,无条件替换 → 距离=6

二、OSPF(链路状态)

特性说明
度量链路带宽(可配置)
更新链路状态变化时洪泛LSA
传输直接封装在IP(协议号89)
适用大型网络

OSPF 5种报文:Hello、数据库描述(DBD)、链路状态请求(LSR)、链路状态更新(LSU)、链路状态确认(LSAck)

OSPF vs RIP 4大区别(⭐ 高频选择题)

对比维度RIPOSPF
算法距离向量链路状态
度量跳数(最大15)带宽(无跳数限制)
收敛速度慢(慢收敛/计数到无穷)快(洪泛+Dijkstra)
适用规模小型网络大型网络(支持分区域)
更新方式周期性广播全表触发式洪泛变化部分
负载均衡不支持支持等价多路径

三、BGP(路径向量)

特性说明
度量AS路径+策略
传输TCP 端口 179
类型EGP(AS间)
目标可达性+策略,不追求最短
  • eBGP:不同AS的边界路由器之间
  • iBGP:同一AS内部传播BGP路由

4.10 IP组播(考纲要求)

  • D类地址:224.0.0.0 ~ 239.255.255.255
  • IGMP(Internet Group Management Protocol):主机向路由器报告组播组成员关系
  • 组播路由器维护组播转发树
  • 常用保留组播地址:224.0.0.1(本子网所有主机)、224.0.0.2(本子网所有路由器)

4.11 移动IP(考纲要求)

概念说明
归属代理(HA)移动节点在归属网络的代理路由器
外地代理(FA)移动节点在外地网络的代理路由器
转交地址(CoA)移动节点在外地获得的临时地址

通信过程

  1. 通信对端向移动节点的归属地址发送分组
  2. 归属代理截获 → 通过隧道转发给外地代理(封装在新IP报文中)
  3. 外地代理解封装 → 交付给移动节点
  4. 移动节点直接向通信对端发出回程分组(三角路由)

4.12 路由器的组成和功能(考纲要求)

组成部分功能
输入端口物理层接收 → 数据链路层解封装 → 查转发表确定输出端口
交换结构将分组从输入端口传送到输出端口(经内存/总线/交叉开关)
输出端口缓存排队 → 数据链路层封装 → 物理层发送
路由选择处理器运行路由协议、构建路由表/转发表

路由表 vs 转发表:路由表由路由协议生成(目的网络→下一跳),转发表从路由表导出(目的网络→输出端口+下一跳MAC)。

📌 第四章总结

  • IPv4编址与CIDR计算是客观题+大题双热点
  • IP分片计算:注意片偏移以8B为单位、MF标志
  • ARP/DHCP/ICMP/NAT 经常混合命题
  • RIP更新4步规则 + Bellman-Ford公式是必考计算题
  • OSPF vs RIP 对比 + BGP关键特征是高频选择
  • IPv6的8字段首部和取消项7条对比是近年新宠
  • 路由器架构、IP组播、移动IP 是考纲明确要求
  • 关联陷阱编号:#4 #5 #6 #7 #17 #18 #19 #20

🎯 第四章 Top-Down 案例模板(分组如何跨网到达)

步骤提问模板本章落点
定位同网段还是跨网段?ARP查目标MAC或网关MAC
转发下一跳如何确定?静态/动态路由、RIP/OSPF
适配MTU不够怎么办?IP分片与偏移计算
运维地址不足或协议演进?NAT 与 IPv6 过渡