第四章 网络层(⭐⭐⭐⭐⭐)
第四章 网络层(⭐⭐⭐⭐⭐)
4.1 网络层功能与服务模型
- 异构网络互联
- 路由选择与分组转发
- 拥塞控制
- SDU = IP数据报
| 功能 | 说明 |
|---|---|
| 路由选择 | 确定分组从源到目的的路径(静态/动态) |
| 分组转发 | 根据转发表将分组从输入端口送到输出端口 |
| 拥塞控制 | 全局性调节,防止网络过载 |
| 异构网络互联 | 通过路由器将不同物理网络连接 |
静态路由 vs 动态路由:静态由管理员手动配置,适合小型稳定网络;动态通过路由协议自动更新,适合大型复杂网络。
4.2 IPv4 地址与分组
一、分类编址与特殊地址
| 类别 | 网络号位数 | 范围 | 默认掩码 |
|---|---|---|---|
| A类 | 8(0开头) | 1.0.0.0 ~ 126.255.255.255 | 255.0.0.0 (/8) |
| B类 | 16(10开头) | 128.0.0.0 ~ 191.255.255.255 | 255.255.0.0 (/16) |
| C类 | 24(110开头) | 192.0.0.0 ~ 223.255.255.255 | 255.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 子网掩码
- 可用主机数:
- 最长前缀匹配原则:转发表中有多个匹配时,选子网掩码最长的那条
VLSM(变长子网掩码)
- 对同一网络用不同长度子网掩码划分,提高地址利用率
- 计算思路:按需求主机数从大到小依次分配子网
子网划分完整计算示例(⭐ 高频大题)
例:某单位获得网络地址
192.168.1.0/24,需划分4个子网,分别需要 60、30、14、6 台主机,求各子网的地址范围和子网掩码。解(从大到小依次分配):
子网 需要主机 主机位 子网掩码 网络地址 广播地址 可用范围 A 60 6() /26 (255.255.255.192) 192.168.1.0 192.168.1.63 .1 ~ .62 B 30 5() /27 (255.255.255.224) 192.168.1.64 192.168.1.95 .65 ~ .94 C 14 4() /28 (255.255.255.240) 192.168.1.96 192.168.1.111 .97 ~ .110 D 6 3() /29 (255.255.255.248) 192.168.1.112 192.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 片偏移 1 1420 1400 1 0 2 1420 1400 1 175 (=1400/8) 3 1020 1000 0 350 (=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 | 传输方式 |
|---|---|---|---|---|---|
| 1 | Discover | 0.0.0.0 | 255.255.255.255 | 客户MAC | 广播 |
| 2 | Offer | 服务器IP | 255.255.255.255 | 服务器MAC | 广播 |
| 3 | Request | 0.0.0.0 | 255.255.255.255 | 客户MAC | 广播 |
| 4 | ACK | 服务器IP | 255.255.255.255 | 服务器MAC | 广播 |
⚠️ Request 也用广播,是为了让其他DHCP服务器知道客户端选了哪个Offer。
DHCP 中继代理:当DHCP服务器不在同一子网时,路由器可配置为中继代理,转发DHCP报文。
4.5 ICMP 协议
一、ICMP报文分类
| 类型 | 具体报文 |
|---|---|
| 差错报告 | ①目的不可达 ②源站抑制 ③超时 ④参数问题 ⑤重定向 |
| 询问报文 | ①回送请求/应答(Ping) ②时间戳请求/应答 |
二、不发送ICMP差错报文的4条件(⭐ 高频选择)
- 对ICMP差错报文不再发送差错报文(防循环)
- 对分片后非第一片的数据报不发送
- 对组播地址不发送
- 对特殊地址(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)
核心公式:
- :从 到 的最短距离
- : 到邻居 的直接链路开销
- :邻居 声称到 的距离
每个节点周期性地将自己的距离向量发给邻居,邻居据此更新自己的路由表。
⚠️ 问题:坏消息传播慢("计数到无穷"问题),可用毒性反转(告诉邻居经它到达的路由距离为∞)缓解。
二、链路状态路由算法(Dijkstra)
- 每个路由器通过洪泛将自己的链路状态(邻居+开销)通告全网
- 每个路由器获得全网拓扑后,用 Dijkstra 算法计算到所有节点的最短路径
Dijkstra步骤:
- 初始化:(直接邻居),非邻居为
- 选择 最小的未确认节点 加入已确认集合
- 对 的每个邻居 :
- 重复步骤2-3,直到所有节点确认
三、层次路由
- 互联网规模巨大,不可能让所有路由器运行同一路由协议
- 将互联网划分为若干自治系统(AS)
- AS内部用 IGP(RIP/OSPF),AS之间用 EGP(BGP)
4.9 路由协议(⭐⭐⭐⭐⭐)
一、RIP(距离向量)
| 特性 | 说明 |
|---|---|
| 度量 | 跳数(最大15,16=不可达) |
| 更新 | 每30秒广播/组播整个路由表 |
| 传输 | UDP 端口 520 |
| 适用 | 小规模网络 |
RIP 路由表更新4步规则(⭐ 2024真题)
收到邻居 的路由表后,对其中每条路由(目的 ,距离 ):
- 将距离 (经过邻居,所以跳数加一)→ 得到
- 若路由表中无目的 的条目 → 添加(下一跳=N,距离=d')
- 若已有条目且下一跳==N → 无条件替换为 (不论大小,因为信息来自同一邻居)
- 若已有条目且下一跳≠N且 已有距离 → 替换为更短路径
📝 算例:
路由器R1原有路由表:
目的 距离 下一跳 Net1 3 R2 Net2 5 R3 Net3 2 R2 收到来自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大区别(⭐ 高频选择题)
| 对比维度 | RIP | OSPF |
|---|---|---|
| 算法 | 距离向量 | 链路状态 |
| 度量 | 跳数(最大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) | 移动节点在外地获得的临时地址 |
通信过程:
- 通信对端向移动节点的归属地址发送分组
- 归属代理截获 → 通过隧道转发给外地代理(封装在新IP报文中)
- 外地代理解封装 → 交付给移动节点
- 移动节点直接向通信对端发出回程分组(三角路由)
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 过渡 |