跳转至

第4章 网络层

2027 王道 · 专题阅读 · 保留代码与校订注 · 与版本锁一致

第4章 网络层

历年考查的重中之重,尤其容易与第3、5、6章出综合题。IPv4 和路由是核心,必须牢固掌握原理并多做题;IPv6、IP 多播、移动 IP 也要有所了解。

回源 · PDF 第 139 页 · b_139_3

【知识树】第4章骨架

  • 网络层功能
  • 异构网络互连(四类中继系统)
  • 路由与转发(路由表 vs 转发表)
  • 两种服务:虚电路 vs 数据报
  • SDN:控制平面与数据平面解耦
  • 拥塞控制:开环 / 闭环
  • IPv4
  • 分组格式与分片(标识/标志/片偏移)
  • 地址分类、子网划分与子网掩码、CIDR 与路由聚合
  • NAT
  • 转发分组的过程
  • ARP / DHCP / ICMP
  • IPv6:特点、基本首部、地址、过渡策略
  • 路由算法与协议
  • 距离-向量(RIP)/ 链路状态(OSPF)/ 路径向量(BGP)
  • 分层次路由:自治系统 AS、IGP 与 EGP
  • IP 多播:多播地址、硬件多播、IGMP
  • 移动 IP:归属代理、外地代理、转交地址
  • 路由器:组成、路由表与分组转发
回源 · PDF 第 139 页 · b_139_0;PDF 第 139 页 · b_139_2

4.1 网络层的功能

网络层的两大功能和它提供的服务?

网络层提供主机到主机的通信服务,任务是把分组从源主机经多个网络和多段链路送到目的主机,分为分组转发和路由选择两大功能。

⚠️ 两种体系的分歧: - OSI 主张网络层用面向连接的虚电路,认为网络自身要保证可靠性 - TCP/IP 网络层只提供无连接、尽最大努力交付的数据报服务,认为用户主机保证可靠性

好处:分组可能出错、丢失、重复、失序,但路由器可以做得简单、价格低廉,可靠性交给传输层。

回源 · PDF 第 139 页 · b_139_2;PDF 第 139 页 · b_139_5

四类中继系统分别在哪一层?

  • 物理层:转发器、集线器
  • 数据链路层:网桥、交换机
  • 网络层:路由器
  • 网络层以上:网关

⚠️ 用物理层或数据链路层的中继系统时只是把一个网络扩大了,从网络层看仍是同一个网络,一般不称为网络互连 —— 网络互连通常指用路由器连接。

💡 由于历史原因,许多 TCP/IP 文献也把路由器称为网关。

回源 · PDF 第 140 页 · b_140_1;PDF 第 140 页 · b_140_2

什么是虚拟互连网络(IP 网络)?

参与互连的网络都使用相同的网际协议 IP,于是这些性能各异的网络在网络层看起来像一个统一的网络。

好处:主机通信时就好像在单个网络上通信,看不见各网络的异构细节(编址方案、路由协议等)。

回源 · PDF 第 140 页 · b_140_9

路由表和转发表有什么区别?

  • 路由选择:运行路由协议,定期与相邻路由器交换信息,动态生成并维护路由表,计算最优路径 → 路由表侧重拓扑计算
  • 分组转发:根据转发表把分组从合适的输出端口送出 → 转发表由路由表导出,结构使查找最优化

⚠️ 讨论路由选择原理时往往不区分二者,笼统称路由表。

回源 · PDF 第 140 页 · b_140_11

虚电路的五条特点? ★1考

  • 建立与释放连接开销大 → 不适合交互应用或少量数据,适合长时间、大量数据交换
  • 路由选择在连接建立阶段完成,建立后传输路径固定
  • 提供可靠、有序的分组交付,支持端到端流量控制
  • ⚠️ 对故障敏感:任一节点或链路故障,所有经过它的虚电路全部中断
  • 分组首部开销小:只带虚电路号,不带完整目的地址

💡 为什么叫"虚":这条链路并非专用,而是可被多条虚电路共享。

★ 考过 2020

回源 · PDF 第 141 页 · b_141_5

虚电路通信的三个阶段?

  • ① 虚电路建立:A 发"呼叫请求"分组经中间节点到 B,B 同意则返回"呼叫应答"
  • ② 数据传输
  • ③ 虚电路释放:A 发"释放请求",逐段拆除

⚠️ 只有建立阶段用完整的源和目的地址,之后分组首部只需携带虚电路号 VCID;每个中间节点维护一张虚电路表(记录 VCID 和下一跳),内容在建立过程中确定。

回源 · PDF 第 141 页 · b_141_3;PDF 第 141 页 · b_141_4

数据报服务的六条特点?

  • 无须建立连接,随时发送
  • 尽最大努力交付:可能丢失、出错、失序(每个分组独立选路)
  • 每个分组携带完整的源地址和目的地址
  • 存在排队时延与丢包风险,拥塞时时延显著增加
  • 故障适应能力强:更新转发表即可绕行
  • 资源利用率高:带宽由多个会话共享
回源 · PDF 第 142 页 · b_142_2;PDF 第 142 页 · b_142_3

数据报服务 vs 虚电路服务七项对照?

项目 数据报服务 虚电路服务
连接建立 不需要 必须有
目的地址 每个分组都有完整目的地址 仅建立阶段用,之后用短的虚电路号
路由选择 每个分组独立选路 同一虚电路的分组走同一路由
分组顺序 不保证有序 保证有序
可靠性 由用户保证 由网络自身保证
故障适应 强,可寻找新路径 弱,经过故障点的虚电路全断
差错与流控 由用户主机负责 可由分组交换网负责,也可由主机负责

💡 记忆法:"数据报靠端系统,虚电路靠网络",其余全部由此推出。

回源 · PDF 第 143 页 · b_143_2;PDF 第 143 页 · b_143_3

SDN 的核心思想是什么?

网络层可抽象为两个逻辑平面:数据平面(转发平面)负责分组转发,控制平面负责路由选择。

SDN 的核心 = 控制平面与数据平面解耦:控制平面集中化,数据平面分布式部署。 - 传统网络:每台路由器既运行路由协议又维护转发表 - SDN:路由器只保留数据平面,不再运行路由选择软件,彼此之间无须交换路由信息;由逻辑集中的远程控制器掌握全网拓扑,计算最优路径,通过 OpenFlow 等协议把流表下发给路由器

路由器的工作变成三步:接收分组、匹配流表、执行转发。

⚠️ SDN 不是要把整个互联网改造成集中控制(不可行),只在大型数据中心互联的广域网等特定场景显著提升效率。

回源 · PDF 第 143 页 · b_143_5

SDN 的三类接口分别连接谁? ★1考

  • 北向接口:面向上层应用提供标准化 API,开发者无须关注底层转发设备细节
  • 南向接口:控制器 ↔ 转发设备的双向通信,通过 OpenFlow 等协议下发到数据平面
  • 东西向接口:控制器集群内部通信,提升可靠性和可拓展性

💡 记忆法:"北接应用、南接设备、东西接同伴"。

★ 考过 2022

回源 · PDF 第 144 页 · b_144_1

SDN 的三优两劣?

优势: - 集中控制 + 分布转发:控制平面有全局视图便于统一优化,数据平面高速转发 - 灵活可编程 - 降低成本:硬件只需基础转发能力

挑战: - ⚠️ 安全风险:控制器集中化易受攻击,一旦崩溃影响整个网络 - ⚠️ 性能瓶颈:网络规模扩大后控制器可能成为瓶颈

回源 · PDF 第 144 页 · b_144_5

怎么判断网络是否拥塞?

看吞吐量与网络负载的关系: - 负载增大但吞吐量增长甚微 → 可能已轻度拥塞 - 负载增大但吞吐量反而下降 → 很可能已进入拥塞

⚠️ 仅靠增加资源无法根本解决拥塞。

回源 · PDF 第 144 页 · b_144_7;PDF 第 144 页 · b_144_10

拥塞控制和流量控制的根本区别?

  • 拥塞控制:全局性过程,涉及所有主机、路由器及影响网络传输能力的各类因素
  • 流量控制:管理发送方与接收方之间的点对点通信,核心是抑制发送方速率,确保接收方来得及处理

💡 记忆法:"拥塞控制管全网,流量控制管两端"。

回源 · PDF 第 144 页 · b_144_11

开环控制和闭环控制怎么分?

  • 开环控制:系统设计时预先考虑拥塞因素,用静态策略防止拥塞;投入运行后不依赖实时反馈。手段:何时接收新流量、何时丢弃哪些分组、何种调度策略
  • 闭环控制:监测网络状态 → 检测拥塞位置与程度 → 反馈至控制节点 → 调整运行;基于反馈的动态方法

💡 记忆法:"开环靠预案,闭环靠反馈"。

回源 · PDF 第 144 页 · b_144_12

4.2 IPv4

IPv4 首部的固定长度和可选长度? ★2考

  • 固定部分 20B,所有 IP 分组必须有
  • 可选字段 1B~40B,提供错误检测及安全等机制
  • 首部长度字段占 4 位,以 4B 为单位 → 最大 60B(15×4B);最常用 20B(值为 5,不用可选字段)
  • ⚠️ IP 首部长度必须是 4B 的整数倍,不足要填充

💡 解题技巧:IP 首部前两个字节往往以 0x45 开头(版本 4 + 首部长度 5),可用于定位 IP 数据报的开始位置。

★ 考过 2011、2012

回源 · PDF 第 149 页 · b_149_12

IP 首部三个长度字段的单位分别是什么? ★1考

这是最容易算错的地方: - 首部长度 → 4B 为单位(4 位) - 总长度 → 1B 为单位(16 位),所以 IP 数据报最大 2¹⁶−1 = 65535B - 片偏移 → 8B 为单位(13 位)

💡 记忆法:"首 4、总 1、偏 8"。

⚠️ 另一处易错:分析十六进制原始数据时,IP 地址是连续 4B 的十六进制,转成点分十进制极易因字节顺序或进制转换出错。

★ 考过 2011

回源 · PDF 第 150 页 · b_150_16

标识、标志、片偏移分别管什么? ★2考

  • 标识(16 位):源主机用递增计数器为每个数据报设置;⚠️ 它不是"序号"(IP 是无连接的)。分片时所有分片复制原数据报的标识,供目的主机重组
  • 标志(3 位,只有低 2 位有意义):
  • MF=1 后面还有分片,MF=0 是最后一个分片
  • DF=0 才允许分片,DF=1 禁止分片
  • 片偏移(13 位,以 8B 为单位):该分片数据相对于原始数据部分开头的偏移量

💡 记忆法:"标识认亲、MF 排队、DF 放行、偏移定位"。

★ 考过 2011、2021

回源 · PDF 第 151 页 · b_151_1

TTL 到底是什么单位? ★2考

占 8 位,表示数据报允许经过的路由器数的最大值,防止无限循环。 - 每经过一个路由器 TTL 减 1 - TTL 减为 0 就丢弃该数据报 - ⚠️ TTL 初值设为 1,则该数据报只能在本局域网内传输

★ 考过 2014、2024

回源 · PDF 第 150 页 · b_150_9

协议字段和首部检验和有什么要注意的?

  • 协议(8 位):指出数据该交给哪个上层协议 —— 6 = TCP,17 = UDP
  • 首部检验和(16 位):⚠️ 只检验首部,不检验数据部分(减少计算量)
  • 普通 IPv4 转发时,TTL 必减 1,因此首部检验和必须重算
  • 只有发生分片时,总长度、标志、片偏移才随分片改变;只有经过 NAT、隧道或其他特殊中间处理时,源/目的地址才可能改变。不能理解成普通每一跳都会改这些字段

💡 记忆法:"6 是 TCP,17 是 UDP"(6 < 17,TCP 更重要排前面)。

回源 · PDF 第 150 页 · b_150_11;PDF 第 150 页 · b_150_12

分片在哪里做?重组在哪里做? ★1考

  • 分片只能发生在源主机或中间路由器上
  • 重组仅在目的主机上进行

目的主机用标识、标志、片偏移三个字段完成重组:比对标识号判断哪些分片属于同一个原数据报,依据片偏移确定每个分片的起始位置。

⚠️ 为什么不在中间路由器重组:各段链路 MTU 不同(以太网 1500B,很多广域网不超过 576B),提前重组毫无意义。

★ 考过 2011

回源 · PDF 第 151 页 · b_151_2

IP 分片计算怎么做?(4000B 经典例题) ★1考

总长 4000B 的数据报(首部 20B + 数据 3980B)→ MTU=1500B 的链路: - 每个分片都是独立的 IP 数据报,各含 20B 首部 - 每片最多携带 1500 − 20 = 1480B 数据 - 3980 ÷ 1480 → 分成 3 片,数据部分依次为 1480B、1480B、1020B - 片偏移依次为 0、185、370(1480÷8 = 185)

⚠️ 除最后一个分片外,其余分片的数据长度必须是 8B 的整数倍 —— 因为片偏移以 8B 为单位,必须是整数。

💡 做题固定画四列:本片数据起点、数据长度、片偏移=起点÷8、MF。先用 floor((MTU−首部长度)/8)×8 求非末片最大数据量,再逐片填表。

★ 考过 2021

💡 计算口诀:"减首部、除 8 取整、乘 8 定片长"。

回源 · PDF 第 151 页 · b_151_3

4.2.2 IPv4 地址

IP 地址到底标识什么?

IP 地址是给连接到互联网上的每台主机(或路由器)的每个接口分配的全球唯一的 32 位标识符,由 ICANN 统一管理,用点分十进制记法书写。

⚠️ 标识的是网络接口,不是主机本身 —— 主机同时连多个网络时每个接口都要配一个 IP 地址,且各地址的网络号必须不同;所以路由器至少有两个或更多 IP 地址。

回源 · PDF 第 151 页 · b_151_7;PDF 第 151 页 · b_151_8

IP 地址分等级带来哪两个好处?

IP 地址 ::= {<网络号>, <主机号>} —— 网络号在整个互联网范围内唯一,主机号在该网络范围内唯一。

两大优势: - 便于地址管理:管理机构只分配网络号,主机号由获得该网络的单位自行分配 - 显著减小路由表规模:路由器转发时只依据目的地址的网络号

回源 · PDF 第 152 页 · b_152_9

IP 地址还有哪两条容易忽略的性质?

  • 通过集线器或交换机连接的多个网段,逻辑上仍属同一个网络(同一广播域) → 所有主机的 IP 地址网络号必须相同,主机号必须唯一
  • IP 地址是逻辑地址,与底层物理硬件(MAC 地址)无关 → 网络层因此能屏蔽链路层的异构性
回源 · PDF 第 152 页 · b_152_13

五个不能分配给主机的特殊地址? ★1考

  • 主机号全 0 → 本网络本身(网络地址),如 202.98.174.0
  • 主机号全 1 → 本网络的广播地址(直接广播地址),如 202.98.174.255
  • 127.×.×.× → 本地环回测试,只用于本机进程间通信,不会被发送到任何物理网络
  • 0.0.0.0(32 位全 0) → 本网络上的本主机(常用于 DHCP)
  • 255.255.255.255(32 位全 1) → 受限广播地址,仅在本网络内广播

★ 考过 2017

💡 记忆法:"全 0 是网络、全 1 是广播;0.0.0.0 是我自己、全 255 是喊全场、127 是照镜子"。

回源 · PDF 第 152 页 · b_152_2

A/B/C 类地址的网络数和主机数?

类别 最大可用网络数 第一个可用网络号 最后一个可用网络号 每个网络最大主机数
A 2⁷−2 1 126 2²⁴−2
B 2¹⁴ 128.0 191.255 2¹⁶−2
C 2²¹ 192.0.0 223.255.255 2⁸−2

⚠️ A 类网络数为什么减 2:网络号 0(0.×.×.×)保留特殊用途,网络号 127 保留作环回测试。 ⚠️ 主机数为什么都减 2:主机号全 0 是网络地址、主机号全 1 是直接广播地址。

回源 · PDF 第 152 页 · b_152_5;PDF 第 152 页 · b_152_6

两级地址结构有哪三个缺点?

  • 地址空间利用率低:每个物理网络给一个完整网络号,大量主机号未被使用
  • 路由表规模过大:网络数量增长使路由表膨胀,影响转发性能
  • 地址分配缺乏灵活性:无法做更细粒度的划分

解决办法:1985 年起增加"子网号",形成三级结构 IP 地址 ::= {<网络号>, <子网号>, <主机号>}。

回源 · PDF 第 153 页 · b_153_2;PDF 第 153 页 · b_153_3

划分子网的三条基本思想?

  • 对外透明:单位对外仍表现为单一网络,外部路由器无须感知内部子网结构
  • 内部灵活划分:从原主机号中借用若干位作子网号,主机号位数相应减少
  • 分层转发:外部路由器按网络号送到该单位的边界路由器,边界路由器再结合子网号交付到具体子网

⚠️ 两个易错点: - 划分子网只对主机号部分再划分,不改变原网络号 → 无法从 IP 地址本身判断是否划分了子网 - 划分子网提升灵活性,但可分配主机总数会略有减少

回源 · PDF 第 153 页 · b_153_10

C 类网划 4 个子网怎么算?(经典例题)

把 C 类网络 208.115.21.0 划成 4 个子网: - 借 2 位作子网号(2² = 4) - 主机号剩 6 位,每个子网最大主机数 2⁶ − 2 = 62 - 四个子网的网络地址:208.115.21.0 / .64 / .128 / .192

💡 口诀:"借 n 位得 2ⁿ 个子网,剩 m 位得 2ᵐ−2 台主机"。

回源 · PDF 第 153 页 · b_153_14

子网掩码怎么用? ★1考

子网掩码是与 IP 地址对应的 32 位二进制串,一串 1 后跟一串 0:1 对应网络号和子网号,0 对应主机号。

IP 地址 AND 子网掩码 = 该地址所在的子网地址。

默认子网掩码:A 类 255.0.0.0,B 类 255.255.0.0,C 类 255.255.255.0。

⚠️ 现在的标准规定每个网络都必须配置子网掩码(未划分子网的用默认掩码)。路由器交换路由信息时必须同时通告目的网络地址和子网掩码。

★ 考过 2022

回源 · PDF 第 153 页 · b_153_18

使用子网掩码的三条原则?

  • 主机配置 IP 地址时必须同时设置子网掩码
  • 同一子网内的所有主机及路由器接口,必须配置相同的子网掩码
  • 路由表通常包含三项核心信息:目的网络地址、子网掩码、下一跳地址

转发时:分组的目的 IP AND 该路由的子网掩码,若结果等于该路由的目的网络地址则匹配成功。

回源 · PDF 第 153 页 · b_153_22

直接交付和间接交付怎么判断? ★4考

主机把目的 IP 地址与自身 IP 地址、子网掩码比较,判断是否在同一子网: - 在同一子网 → 直接交付:用 ARP 获取目的主机的 MAC 地址,封装成帧直接发给它 - 不在同一子网 → 间接交付:把数据报发往默认网关,用 ARP 获取网关的 MAC 地址,由路由器在网络层转发

默认网关 = 本子网所连路由器接口的 IP 地址。

★ 考过 2015、2016、2019、2022

💡 记忆法:"同网直投,异网找网关;不管哪种,MAC 都要 ARP 问"。

回源 · PDF 第 154 页 · b_154_1

CIDR 的核心思想是什么? ★5考

不再区分网络类别,改用"网络前缀"标识网络部分,前缀长度(掩码中连续 1 的个数)可灵活指定,不再局限于 8/16/24 位。

IP 地址 ::= {<网络前缀>, <主机号>},用斜线记法 "IP地址/前缀长度"。

例:需要约 2000 个地址就分配一个 /21(2048 个),而不是浪费一整个 B 类(65534 个)。

⚠️ "/前缀长度"不可省略 —— 只给 128.14.32.5 无法确定网络地址。

★ 考过 2011、2015、2016、2019、2023

回源 · PDF 第 154 页 · b_154_9

给一个 CIDR 地址怎么求地址块范围? ★1考

以 128.14.32.5/20 为例: - 掩码 = 20 个 1 + 12 个 0 = 255.255.240.0 - 最小地址(主机号全 0)= 128.14.32.0 - 最大地址(主机号全 1)= 128.14.47.255 - 地址总数 = 2¹² = 4096

⚠️ 主机号全 0 或全 1 一般不分配,实际可用是两者之间的地址(2ᴺ − 2)。

★ 考过 2023

💡 做题时直接截取 IP 地址的前 20 位即得网络前缀,不必真做 AND。

回源 · PDF 第 154 页 · b_154_13

"CIDR 不使用子网"这句话怎么理解? ★4考

它指的是 CIDR 不在全局地址结构中预设固定的子网字段,但不妨碍拿到地址块的单位在内部继续划分子网。

例:某单位拿到一个 /20 地址块,从主机号借 3 位划成 8 个子网,此时每个子网的前缀长度变成 /23。

⚠️ 地址块的地址总数一定是 2 的整数次幂:主机号占 N 位 → 2ᴺ 个地址,可分配 2ᴺ−2 个。前缀越短,地址块越大。

★ 考过 2011、2012、2018、2019

回源 · PDF 第 154 页 · b_154_20

路由聚合是怎么回事? ★5考

一个大的 CIDR 地址块包含多个较小的地址块,于是路由表里可以用大块代替多个小块,让一个项目代表原来的多条路由 → 压缩路由表规模,提升网络性能。

判断能否聚合的两个条件(教材例子): - 这些网络的地址前缀在二进制下前若干位完全相同(如前 16 位相同,第 17 位分别为 0 和 1) - 下一跳相同(都经 R2)

于是聚合成 206.1.0.0/16,两条路由变一条。

💡 最稳做法:把各网络地址对齐写成二进制,从最高位向右只取连续公共前缀;再回算聚合块范围,检查是否把不应覆盖的网络也包了进去。

★ 考过 2009、2011、2013、2014、2018

回源 · PDF 第 155 页 · b_155_3

最长前缀匹配为什么选最长的? ★2考

用 CIDR 时,目的地址可能匹配多个路由项,此时选网络前缀最长的那条(也称最佳匹配)。

理由:前缀越长,对应的地址块越小,路由信息就越具体、越精确。

⚠️ 实现方式:路由器把 CIDR 路由表组织成层次式数据结构(如 Trie 树),自上而下快速定位。

★ 考过 2013、2015

💡 CIDR 的精髓一句话:"外部聚合、内部细分"。

回源 · PDF 第 155 页 · b_155_7

定长子网掩码划分怎么做? ★4考

特点:每个子网掩码相同、地址数相同 → 容易浪费。

例:208.115.21.0/24,三个部门分别 50、20、5 台主机(各加 1 个路由器接口 → 实际需 51、21、6 个): - 借 2 位作子网号 → 4 个子网,每个可用 2⁶ − 2 = 62 个,均满足需求 - 208.115.21.0/26(部门1)、.64/26(部门2)、.128/26(部门3)、.192/26(备用) - 子网掩码 255.255.255.192

⚠️ 极易漏算:每个部门要额外算上一个路由器接口的地址。

★ 考过 2009、2010、2017、2018

回源 · PDF 第 155 页 · b_155_15

变长子网掩码怎么划才不浪费? ★3考

特点:每个子网可用不同掩码、地址数可不同 → 更高效。

同样是 208.115.21.0/24,需 51、21、6 个地址: - 部门1 主机号需 6 位 → /26,掩码 255.255.255.192,可分配 62 个 → 208.115.21.0/26 - 部门2 主机号需 5 位 → /27,掩码 255.255.255.224,可分配 30 个 → 208.115.21.64/27 - 部门3 主机号需 3 位 → /29,掩码 255.255.255.248,可分配 6 个 → 208.115.21.96/29 - 剩余 256−64−32−8 = 152 个备用

⚠️ 两条铁律:从最大的子网开始划分(避免地址碎片);各子网范围不重叠,且起始地址必须对齐到其前缀对应的地址边界。方案不唯一。

★ 考过 2019、2021、2025

💡 口诀:"先算需求含接口、由大到小、边界对齐"。

回源 · PDF 第 156 页 · b_156_2

点对点链路该分配 /30 还是 /31?

  • 传统做法:/30 —— 主机号 2 位,4 个地址,可分配 2 个,恰好给链路两端接口
  • 最新标准:可不分配 IP 地址;若要分配则用 /31 —— 主机号 1 位,2 个地址,无须保留网络地址和广播地址,两个都能直接用,零浪费

⚠️ 近年统考真题仍采用旧标准(/30),做题时按 /30 走。

回源 · PDF 第 156 页 · b_156_8

4.2.3 网络地址转换 NAT

三个私有地址块分别是什么? ★1考

  • 10.0.0.0/8(10.0.0.0 ~ 10.255.255.255)= 1 个 A 类网络
  • 172.16.0.0/12(172.16.0.0 ~ 172.31.255.255)= 16 个连续的 B 类网络
  • 192.168.0.0/16(192.168.0.0 ~ 192.168.255.255)= 256 个连续的 C 类网络

⚠️ 公网 Internet 不为 RFC1918 私有前缀提供全局路由;但企业私网、实验网或 VPN 内的路由器当然可以转发私有地址。原书的“一切路由器一律不转发”只应理解为公网语境。私有 IP 地址也称可重用地址。

★ 考过 2011

💡 记忆法:"10 一个 A、172.16 十六个 B、192.168 二百五十六个 C"(1/16/256 正好翻 16 倍)。

回源 · PDF 第 157 页 · b_157_1;PDF 第 157 页 · b_157_2;PDF 第 157 页 · b_157_3;PDF 第 157 页 · b_157_4;PDF 第 157 页 · b_157_5;PDF 第 157 页 · b_157_6

NAT 转换的四步流程? ★4考

以家庭主机 10.0.0.1:3345 访问 Web 服务器 128.119.40.186:80 为例(网关全球地址 138.76.29.7): - ① 主机发出请求,源 = 10.0.0.1:3345 - ② NAT 路由器把源地址换成 138.76.29.7、源端口换成新分配的 5001,并在 NAT 转换表新增映射 - ③ Web 服务器完全不知道地址被转换过,响应的目的 = 138.76.29.7:5001 - ④ 路由器查 NAT 表还原为 10.0.0.1:3345,转发给主机

NAT 转换表保存的是 {私有IP:端口} ↔ {全球IP:端口} 的对应关系,所以多个私有地址能共享同一个全球 IP。

💡 计算题画两行即可:出站改源 IP/端口,入站按表改目的 IP/端口;每次改 IP 或端口后都要相应更新检验和。这个例子实际是 NAPT/PAT,不能推出所有 NAT 都一定改端口。

★ 考过 2016、2019、2020、2023

回源 · PDF 第 157 页 · b_157_7;PDF 第 157 页 · b_157_8;PDF 第 157 页 · b_157_9;PDF 第 157 页 · b_157_10;PDF 第 157 页 · b_157_11;PDF 第 157 页 · b_157_12

动态 NAT 和静态 NAT 的区别?

  • 动态 NAT:内网主机发起连接时自动创建映射,一段时间后自动清除
  • 静态 NAT:管理员手工配置 {公网IP+端口} → {内网IP+端口} 的映射,用于内网服务器对公网提供服务(Web、FTP 等)
回源 · PDF 第 157 页 · b_157_13

NAT 路由器和普通路由器差在哪?

  • 普通路由器转发时不改变源/目的 IP 地址,仅工作在网络层
  • NAT 路由器转发时修改源 IP(出站)或目的 IP(入站),而且要看并转换传输层的端口号 → 功能涉及传输层

NAT 的三点作用:缓解 IP 地址短缺(私有地址可重用)、对外隐藏内部网络结构、降低内网被攻击的风险。

回源 · PDF 第 158 页 · b_158_1

4.2.4 网络层转发分组的过程

为什么转发始终基于"目的网络"而不是目的主机?

因为互联网中的网络数量远小于主机数量,按网络转发能显著压缩转发表的规模。

路由器按目的 IP 的网络前缀查表,转发表每条路由至少包含两项:(目的网络地址,下一跳地址)。分组经过多次间接交付到达目的网络的边缘路由器,最后一跳由它直接交付给目的主机。

⚠️ 转发表不提供到目的网络的完整路径,只指明"下一跳路由器" —— 是逐跳转发。

回源 · PDF 第 158 页 · b_158_2

两种特殊路由的前缀和优先级? ★3考

  • 特定主机路由:为某台主机单独设一条路由,前缀写成 a.b.c.d/32;便于网络管理员控制和测试。⚠️ "/32" 在子网划分中无意义,但在转发表中是标识单个主机的特殊前缀
  • 默认路由:前缀 0.0.0.0/0;全 0 掩码与任何目的地址相与都得 0.0.0.0,所以匹配一切未被其他路由项覆盖的地址;常用于连接互联网(海量网络无法一一列出)

优先级:特定主机路由最高(前缀最长 /32),默认路由最低(前缀最短 /0)。

★ 考过 2009、2014

💡 记忆法:"越具体越优先" —— 优先级完全由前缀长度决定。

回源 · PDF 第 158 页 · b_158_11

路由器的分组转发算法四步?

  • ① 从 IP 分组首部提取目的 IP 地址 D,从转发表第一项开始检查(按前缀长度降序排列,找到即停,无须继续查)
  • ② 若存在特定主机路由(D/32),按其下一跳转发
  • ③ 把当前路由项的子网掩码与 D 逐位"与",结果等于该项的网络前缀则匹配成功 → 直接交付本网络的目的主机,或转发至下一跳路由器;否则检查下一项
  • ④ 全部不匹配时:有默认路由(0.0.0.0/0)就走默认路由,否则报告"目的不可达"
回源 · PDF 第 158 页 · b_158_14

下一跳的 IP 地址会写进分组首部吗?

不会。

从转发表得到下一跳路由器的 IP 地址后,是通过 ARP 解析出对应的 MAC 地址,填入链路层帧首部作为目的地址。帧发到下一跳路由器后,路由器剥离帧首部,取出 IP 分组,再交给网络层处理。

⚠️ 更准确地说:在无 NAT、隧道、代理等特殊处理的普通逐跳转发中,端到端源/目的 IP 通常不变,逐跳改变的是外层 MAC 地址;经过 NAT 时,源或目的 IP 会按映射改写。

回源 · PDF 第 159 页 · b_159_3;PDF 第 159 页 · b_159_5;PDF 第 159 页 · b_159_11

4.2.5 地址解析协议 ARP

IP 地址和 MAC 地址的四点分层抽象?

  • 在 IP 层抽象的互联网上,只能看到 IP 数据报
  • 虽然首部有源 IP,但路由器仅依据目的 IP 地址转发
  • 在局域网链路层只能看到 MAC 帧;每经过路由器转发都要解封装再重新封装,MAC 帧的源/目的地址都随之改变 → 这决定了 MAC 地址无法用于跨网络通信
  • IP 层屏蔽了底层硬件地址体系的差异

⚠️ IP 地址是分层式地址(网络层及以上),MAC 地址是平面式地址(数据链路层)。路由器每个接口都配一个 IP 地址和一个 MAC 地址。

回源 · PDF 第 159 页 · b_159_7

ARP 高速缓存里存什么?多久失效? ★3考

每台主机和路由器都维护一个 ARP 高速缓存(ARP 表),存放本局域网内各主机和路由器接口的 IP 地址 ↔ MAC 地址映射。

动态更新,每个表项设生存时间(例如 20 分钟),超时自动删除。

⚠️ 分层口径存在差异:按王道/408,本章把 ARP 归为网络层相关协议;工程教材也常把它放在链路层或称“网络层与链路层之间”,因为 ARP 不封装在 IP 中,而是直接由以太网等链路层承载。考试按题目教材口径,不要只凭“使用 IP 地址”就下唯一结论。

★ 考过 2011、2012、2021

回源 · PDF 第 159 页 · b_159_15;PDF 第 159 页 · b_159_16;PDF 第 160 页 · b_160_1;PDF 第 160 页 · b_160_7

ARP 请求和响应各用什么方式发送? ★2考

  • ① A 先查自己的 ARP 缓存;查不到就构造 ARP 请求分组,封装在目的 MAC 为 FF-FF-FF-FF-FF-FF 的帧中广播:"我的 IP 是…,MAC 是…,我想知道 IP 为 X 的主机的 MAC"
  • ② B 发现问的是自己,向 A 单播发送 ARP 响应分组,附上自己的 MAC;⚠️ 同时 B 把 A 的映射写入自己的 ARP 缓存
  • ③ A 收到后把 B 的映射写入缓存,再封装数据帧发送

💡 记忆法:"请求广播、响应单播;一问一答,双方都学到对方"。

★ 考过 2011、2015

回源 · PDF 第 160 页 · b_160_0

跨网络时 ARP 解析的是谁的 MAC? ★1考

⚠️ ARP 只作用于同一局域网(广播域),无法跨网络工作。

跨网通信时,ARP 解析的是下一跳路由器接口的 MAC 地址,而非最终目的主机。

使用 ARP 的 4 种典型情况: - 主机 → 本网络上的另一台主机:解析目的主机的 MAC - 主机 → 其他网络上的主机:解析本网络默认网关(路由器接口)的 MAC - 路由器 → 直连网络上的主机:在该网络上解析目的主机的 MAC - 路由器 → 非直连网络上的主机:在出接口所在网络上解析下一跳路由器接口的 MAC

★ 考过 2015

回源 · PDF 第 161 页 · b_161_2

一个分组跨两个路由器,MAC 地址变几次? ★1考

H1 → R1 → R2 → H4 的例子: - H1 到 R1 段:源/目的 = H1 和 L1 的 MAC - R1 到 R2 段:解封装再封装,源/目的 = L2 和 L3 的 MAC - R2 到 H4 段:再次更新,源/目的 = L4 和 H4 的 MAC

结论:IP 分组每经过一个路由器,外层 MAC 帧的源/目的地址就更新为当前链路两端设备的接口 MAC 地址。

💡 一句话记:"IP 头不变,MAC 头逐跳换"。

★ 考过 2015

回源 · PDF 第 161 页 · b_161_4

4.2.6 动态主机配置协议 DHCP

DHCP 属于哪一层?基于什么协议?

DHCP 是应用层协议,基于 UDP。

⚠️ 为什么用 UDP 不用 TCP:DHCP 客户在初始阶段既无 IP 地址,又不知道服务器地址,无法建立 TCP 连接;而 UDP 无须连接且支持广播。

连接到互联网的计算机需要配置四项:IP 地址、子网掩码、默认网关、域名服务器的 IP 地址。

回源 · PDF 第 161 页 · b_161_8

DHCP 四步交互的源地址和目的地址? ★4考

步骤 报文 源地址 目的地址
① DHCP Discover(客户广播) 0.0.0.0 255.255.255.255
② DHCP Offer(服务器广播) 服务器地址 255.255.255.255
③ DHCP Request(客户广播) 0.0.0.0 255.255.255.255
④ DHCP ACK(服务器广播) 服务器地址 255.255.255.255

⚠️ 两个关键"为什么": - 发现报文用 0.0.0.0 做源地址,因为此时客户还没有 IP 地址,也不知道服务器地址;所有主机都收得到,但只有 DHCP 服务器会响应 - 第③步为什么仍用广播:客户可能收到多台服务器的提供报文,只能选一个,广播是为了让未选中的服务器释放为它预留的资源

★ 考过 2015、2022、2025

回源 · PDF 第 162 页 · b_162_0;PDF 第 162 页 · b_162_1

提供报文里有什么?租用期是谁定的?

DHCP Offer 中包含:提供的 IP 地址、子网掩码、默认网关、DNS 服务器、租用期。

服务器先在数据库中查找该计算机的配置信息,找到就返回;找不到就从 IP 地址池取一个分配。

租用期由 DHCP 服务器决定,分配的地址是临时的。

回源 · PDF 第 161 页 · b_161_12

租用期 50% 和 87.5% 分别做什么?

  • 过 50%:客户发 DHCP 请求报文(源 = 客户当前 IP,目的 = 为其分配地址的那台服务器,即单播)请求续租;服务器同意回 DHCP 确认(单播),不同意回 DHCP 否认(单播) → 此时必须停止使用当前 IP,重新申请
  • 过 87.5%:若上次续租无响应,客户改为广播 DHCP 请求(源 = 当前 IP,目的 = 255.255.255.255)以提高成功率;仍无响应则租用期到后停止使用并重新申请
  • 随时可提前终止:发 DHCP 释放报文(单播给原服务器)

💡 记忆法:"一半单播续租,八七点五改广播,到期不续就归还"。

回源 · PDF 第 162 页 · b_162_4

4.2.7 网际控制报文协议 ICMP

ICMP 是哪一层的协议? ★1考

ICMP 是网络层协议,作用是让主机或路由器向源点报告网络中的差错或异常,从而更有效地转发 IP 数据报、提高交付成功率。

⚠️ ICMP 报文被封装在 IP 数据报中传送,但它不是高层协议。

★ 考过 2012

回源 · PDF 第 162 页 · b_162_9

五种 ICMP 差错报告报文? ★1考

  • 终点不可达:路由器或主机无法交付数据报
  • 时间超过:TTL 减为 0 被丢弃;⚠️ 或目的主机在规定时间内未收齐某数据报的所有分片,丢弃已收到的分片
  • 参数问题:发现数据报首部中某些字段的值不正确(注意并非任意字段)
  • 改变路由(重定向):通知源点下次把数据报发给另一个路由器,使路径更短
  • 源点抑制:因拥塞丢弃数据报时,请求源点降低发送速率

⚠️ “源点抑制”按王道/408 用于识别历史报文类型即可;ICMP Source Quench 已废弃,现代网络不能把它当作现行拥塞控制机制。

★ 考过 2022

💡 记忆法:"不可达、超时间、参数错、改路由、抑制源"。

回源 · PDF 第 162 页 · b_162_12

哪四种情况不发 ICMP 差错报告?

  • 对 ICMP 差错报告报文本身
  • 对第一个数据报片之后的所有后续分片
  • 对目的地址是多播或广播地址的数据报
  • 对具有特殊地址(如 127.0.0.0 或 0.0.0.0)的数据报

💡 目的都是避免无限循环或无意义的反馈。

回源 · PDF 第 163 页 · b_163_0

ICMP 询问报文两种类型 + 两个典型应用?

询问报文: - 回送请求和回答:测试目的主机是否可达并获取状态信息 - 时间戳请求和回答:据报文中的时间戳估算往返时延

两个典型应用: - PING(分组网间探测):用 ICMP 回送请求与回答报文,测两台主机的连通性 - Traceroute / Tracert:逐步增大 TTL,触发沿途路由器返回 ICMP 时间超过报文,从而追踪分组经过的路由路径

⚠️ 别记混:PING 用回送请求/回答,Tracert 用时间超过。

回源 · PDF 第 163 页 · b_163_8

4.3 IPv6

解决 IP 地址耗尽的三种措施,哪种是根本?

  • CIDR 无类别编址:使 IP 地址分配更合理
  • NAT:节省全球唯一的公网 IP 地址
  • IPv6:采用更大地址空间的新版本 IP 协议

⚠️ 前两种只是延缓了 IPv4 的使用寿命,只有 IPv6 能从根本上解决。(IPv4 地址已于 2011 年 2 月耗尽。)

回源 · PDF 第 193 页 · b_193_7;PDF 第 193 页 · b_193_8

IPv6 的十条特点? ★1考

  • 更大的地址空间(最重要):32 位 → 128 位,是 IPv4 的 2⁹⁶ 倍
  • 扩展的地址层次结构
  • 灵活的首部格式:定义许多可选扩展首部,且路由器通常不处理扩展首部 → 提高处理效率
  • 改进的选项:IPv6 首部长度固定,选项放在有效载荷中;IPv4 选项放在首部的可变部分
  • 允许协议继续扩充(IPv4 功能固定不变)
  • 支持即插即用(自动配置地址)→ 通常不需要 DHCP
  • 支持资源预分配(实时音视频)
  • ⚠️ 只有源主机才能分片,不允许中间路由器分片
  • 首部长度固定 40B(IPv4 可变,必须是 4B 整数倍)
  • 增大了安全性:身份鉴别和保密由扩展首部提供

⚠️ IPv6 与 IPv4 不兼容,但与 TCP、UDP、ICMP、IGMP、DNS 等总体兼容(只为处理更长地址做了必要修改)。

★ 考过 2023

回源 · PDF 第 193 页 · b_193_8;PDF 第 193 页 · b_193_14

IPv6 相比 IPv4 取消了哪些字段?

  • 首部长度 → 取消(基本首部固定 40B)
  • 服务类型 → 取消(功能由优先级和流标号实现)
  • 总长度 → 改为有效载荷长度
  • 标识、标志、片偏移 → 取消(移到分片扩展首部)
  • TTL → 更名为跳数限制(作用不变)
  • 协议 → 改为下一个首部
  • 首部检验和 → 取消(传输层已提供差错检测,可加快路由器处理速度)
  • 选项 → 取消(由扩展首部实现)

⚠️ 结果很反直觉:字段数减少到只有 8 个,首部长度反而从 20B 增到 40B —— 因为地址从 32 位涨到 128 位。

回源 · PDF 第 194 页 · b_194_1;PDF 第 194 页 · b_194_7

IPv6 基本首部的关键字段? ★1考

  • 版本(4 位)= 6
  • 通信量类(8 位):区分数据报的类别或优先级
  • 流标号(20 位):流 = 从特定源点到特定终点的一系列数据报(如实时音视频),同一个流的数据报流标号相同,路径上的路由器据此提供服务质量保证
  • 有效载荷长度(16 位):基本首部之后的字节数(含所有扩展首部和上层数据),最大 65535B
  • 下一个首部(8 位):无扩展首部时标识上层协议;有扩展首部时标识紧随其后的第一个扩展首部类型
  • 跳数限制(8 位):等同 TTL,最大初值 255
  • 源地址、目的地址(各 128 位)

★ 考过 2023

回源 · PDF 第 195 页 · b_195_0

IPv6 的三种地址类型?任播是什么?

  • 单播:传统点对点,发给唯一指定的接收方
  • 多播:一点对多点,发给所有加入该多播组的接口
  • 任播:IPv6 新增,特点是"一址多用、就近交付" —— 标识一组接口,但网络只交付给路由距离最近的那一个

⚠️ IPv6 没有广播地址,广播的功能由多播实现。

回源 · PDF 第 195 页 · b_195_3;PDF 第 195 页 · b_195_10

IPv6 地址的两条缩写规则?

用冒号十六进制记法:分成 8 组,每组 16 位(4 个十六进制数),冒号分隔。

  • 省略前导零:每组前面连续的零可省,但至少保留一个数字 4BF5:0000:0000:0000:BA5F:039A:000A:2176 → 4BF5:0:0:0:BA5F:39A:A:2176
  • 双冒号 :: 替换连续全零组:⚠️ 一个地址中只能用一次(否则无法确定省略了多少组,因为总组数要能恢复为 8) → 4BF5::BA5F:39A:A:2176

💡 记忆法:"零可省,:: 只准用一次"。

回源 · PDF 第 195 页 · b_195_7

IPv6 的五类地址前缀?

地址类型 CIDR 记法 说明
未指明地址 ::/128 不能作目的地址,仅供尚未配置地址的主机作源地址
环回地址 ::1/128 IPv6 中仅定义这一个环回地址
多播地址 FF00::/8 占 IPv6 地址空间的 1/256
本地链路单播地址 FE80::/10 仅用于本地链路,不能被路由器转发
全球单播地址 — 使用得最多

全球单播地址划分非常灵活:可整 128 位作节点地址;或 n 位子网前缀 + (128−n) 位接口标识符;或三级 全球路由选择前缀 + 子网标识符 + 接口标识符。

回源 · PDF 第 195 页 · b_195_10;PDF 第 195 页 · b_195_11

从 IPv4 过渡到 IPv6 的两种策略? ★1考

  • 双协议栈:一台主机同时装 IPv4 和 IPv6 两个协议栈,各配一个地址;⚠️ 通过应用层的 DNS 获知目的主机的地址类型 —— DNS 返回 IPv4 地址就用 IPv4,返回 IPv6 地址就用 IPv6
  • 隧道技术:IPv6 数据报进入 IPv4 网络时,整个封装为 IPv4 数据报的数据部分,如同在隧道中穿过;离开 IPv4 网络后再取出交给 IPv6 协议处理

⚠️ 过渡必须逐步演进,新部署的 IPv6 系统要向后兼容(能接收、转发 IPv4 数据报并为其选路)。

★ 考过 2023

💡 记忆法:"双栈是两套装备,隧道是套个外壳"。

回源 · PDF 第 196 页 · b_196_7

4.4 路由算法与路由协议

静态路由和动态路由怎么选?

  • 静态路由:网络管理员手工配置每一条路由;实现简单、开销小,但不能及时适应网络变化 → 适用于简单的小型网络
  • 动态路由:根据网络状态变化(链路故障或新增)动态调整路由表;实现复杂、开销大 → 适用于较复杂的大型网络

动态路由算法分两类:距离-向量算法和链路状态算法。

⚠️ 路由算法的目标是找费用最低的路径,费用可按跳数、带宽、延迟等定义。

回源 · PDF 第 198 页 · b_198_6

距离-向量算法的核心公式和依据?

基于 Bellman-Ford 算法:

d_x(y) = min{ c(x,v) + d_v(y) },v 是 x 的所有邻居

其中 c(x,v) 是 x 到邻居 v 的链路费用。即:已知所有邻居到 y 的最短费用后,x 到 y 的最短费用就是这些"到邻居的费用 + 邻居到 y 的费用"中的最小值。

⚠️ 所有最短路径算法都依赖的基本性质:"两点之间的最短路径,必然包含路径上任意子路径的最短路径"。

回源 · PDF 第 198 页 · b_198_11

DV 算法中每个节点维护哪三样东西?

  • 到每个直接相连邻居 v 的链路费用 c(x,v)
  • 自己的距离向量(x 到网络中其他所有节点的费用)
  • 从每个邻居收到的距离向量副本

⚠️ 它不要求节点掌握完整的网络拓扑,只需知道到邻居的距离和各邻居到目的节点的最短距离。

回源 · PDF 第 199 页 · b_199_0

DV 算法什么时候发送更新?什么时候收敛? ★1考

运行规则: - 每个节点定期向所有邻居发送自己的距离向量 - 收到邻居的新距离向量后,更新本地副本,用 Bellman-Ford 公式重算自己的距离向量 - ⚠️ 只有当自己的距离向量发生变化时,才立即向所有邻居发送更新(教材例子中 x、z 变了要再发,y 没变就不发) - 当各节点重算后距离向量不再变化,算法收敛并进入静止状态

⚠️ 缺点:更新报文的大小与网络节点数成正比,大型网络中通信开销较大。

★ 考过 2021

💡 最常见的 DV 协议是 RIP,它用跳数作为费用度量。

回源 · PDF 第 199 页 · b_199_8

链路状态算法要求节点做什么两件事?

链路状态 = 本路由器与哪些邻居相连、对应链路的代价。LS 算法要求每个节点都掌握完整的全网拓扑图,为此每个节点: - 主动探测所有相邻节点的状态 - 定期用洪泛法把自身的链路状态信息传播给全网所有节点

然后每个节点用 Dijkstra 最短路径算法独立算出到所有其他节点的最短路径;链路状态一变就立即重新运行 Dijkstra。

💡 典型的 LS 算法是 OSPF。

回源 · PDF 第 199 页 · b_199_13;PDF 第 199 页 · b_199_14

链路状态算法的三个优点?

  • 所有节点基于相同的链路状态数据库独立计算,不依赖邻居的路由决策 → 避免了 DV 算法的无穷计数问题
  • 每个节点有完整拓扑,可本地计算全局最优路径,收敛快且无环
  • 链路状态报文只包含本节点的直连链路信息,单个报文大小与网络总规模无关 → 大型网络中可扩展性更好
回源 · PDF 第 200 页 · b_200_2

DV 和 LS 两种算法的根本区别?

对比项 距离-向量 DV 链路状态 LS
交换对象 只与直接邻居交换 洪泛给全网所有节点
交换内容 完整的距离向量(我到所有点的费用) 本节点直连链路的状态(局部信息)
报文大小 与节点数成正比 与网络规模无关
拓扑认知 不掌握全网拓扑 掌握完整全网拓扑
算法 Bellman-Ford Dijkstra
代表协议 RIP OSPF

💡 记忆法:"DV 告诉邻居全世界,LS 告诉全世界我的邻居"。

回源 · PDF 第 200 页 · b_200_1

4.4.2 分层次的路由选择协议

为什么互联网要分层次做路由?什么是自治系统?

两个原因:互联网规模非常庞大;许多联网单位不愿对外暴露其内部网络细节。

于是整个互联网被划分为多个自治系统 AS:每个 AS 对外表现为一个单一且一致的路由选择策略,其管理者有权自主决定内部使用何种路由协议(RIP 或 OSPF)。

回源 · PDF 第 200 页 · b_200_3

IGP 和 EGP 分别管什么?

  • 内部网关协议 IGP:用于自治系统内部的路由选择,与其他 AS 采用什么协议无关;代表是 RIP 和 OSPF
  • 外部网关协议 EGP:源主机和目的主机位于不同 AS 时,把路由信息从一个 AS 传到另一个 AS;当前广泛使用的是 BGP-4

术语对应:AS 之间 = 域间路由选择;AS 内部 = 域内路由选择。

⚠️ 每个 AS 都至少有一个边界路由器,它除运行本系统的 IGP 外,还要运行 EGP(BGP-4)。

回源 · PDF 第 200 页 · b_200_7;PDF 第 200 页 · b_200_8

4.4.3 路由信息协议 RIP

RIP 的五条规定? ★1考

  • 用跳数衡量距离:到直连网络的距离为 1,每经过一个路由器加 1
  • 认为"好"的路由 = 所经路由器数量最少(跳数最少)
  • ⚠️ 一条路径最多 15 个路由器,跳数 16 = 目的网络不可达 → RIP 仅适用于小型自治系统
  • 路由表项三个字段:<目的网络 N,距离 d,下一跳路由器 X>
  • 每个路由器维护一个距离向量

★ 考过 2010

💡 记忆法:"直连是 1,十六不可达"。

回源 · PDF 第 201 页 · b_201_0

RIP 的"三个交换"?

  • 和谁交换:仅和直接相邻的路由器
  • 交换什么:本路由器当前的完整路由表(全部路由信息)
  • 何时交换:固定时间间隔(默认 30 秒);⚠️ 网络拓扑变化时也及时通告

路由器刚工作时路由表是空的,先知道到直连网络距离为 1,再周期性交换,若干轮后所有路由器都获知到本 AS 内任意网络的最少跳数和下一跳 —— 这一过程称为收敛。

回源 · PDF 第 201 页 · b_201_2

RIP 和 OSPF 分别属于哪一层、用什么传送? ★2考

  • RIP 是应用层协议,使用 UDP 传送,端口 520
  • OSPF 是网络层协议,不用 UDP 或 TCP,直接封装在 IP 数据报中(IP 首部协议字段 = 89)

⚠️ 术语辨析:"用 UDP 传送"= 协议数据作为 UDP 报文的数据部分;"直接用 IP 数据报传送"= 协议数据直接作为 IP 数据报的数据部分。

⚠️ RIP 选择的路径不一定时延最短,但一定跳数最少(它只看跳数)。

★ 考过 2017(RIP)、2017(OSPF)

💡 记忆法:"RIP 应用层跑 UDP 520,OSPF 网络层协议号 89,BGP 应用层跑 TCP 179"。

回源 · PDF 第 201 页 · b_201_6

收到邻居的 RIP 报文怎么更新路由表? ★1考

第一步(无脑操作):把收到的报文中所有项目的"下一跳"改为 X,"距离"全部加 1。

第二步(逐项判断): - 原表中没有目的网络 N → 加入路由表(发现新网络) - 原表中有 N,且原下一跳就是 X → 无条件替换(⚠️ 不管距离变大还是变小都要更新,以最新消息为准) - 原表中有 N,但原下一跳不是 X → 只有新距离 d 更小才替换(距离更大时不更新) - 其余情况什么也不做

第三步:连续 180 秒(默认超时)没收到某邻居的更新 → 把对应路由项的距离置为 16(不可达)

★ 考过 2024

💡 口诀:"同一个下一跳,听它的;不同下一跳,比距离"。

回源 · PDF 第 201 页 · b_201_11

RIP 的两优三缺? ★1考

优点: - 实现简单、开销小、收敛过程较快 - "好消息传播得快":发现更短路由后,更新信息迅速传遍所有路由器

缺点: - ⚠️ 限制网络规模,最大有效距离 15(16 = 不可达) - ⚠️ 交换的是完整路由表,网络越大通信开销越大 - ⚠️ "坏消息传播得慢"(慢收敛):故障时要反复多次交换才能收敛

★ 考过 2024

回源 · PDF 第 202 页 · b_202_9;PDF 第 202 页 · b_202_11

"坏消息传播得慢"到底怎么发生的? ★1考

设 R1 中 ,R2 中 ,两者已收敛。R1 检测到 N 不可达(距离置 16),但可能要等下一次周期性更新(默认 30s)才通知 R2。

这期间 R2 先把 发给了 R1: - R1 误以为能通过 R2 到达 N → 更新为 - R1 通知 R2 → R2 更新为 - …… 如此往复,直到两者的距离都增至 16,才知道 N 不可达

⚠️ 若没有跳数上限 15 的限制,路由器将无限循环转发无效路由 —— 所以"坏消息传播得慢"也称无穷计数问题。

对照"好消息传播得快":R1 发现到 N 的距离由 4 变 1,通知 R2,R2 更新为 2 并回告 R1,R1 不再修改,两轮就静止。

★ 考过 2016

回源 · PDF 第 203 页 · b_203_0

4.4.4 开放最短路径优先 OSPF

OSPF 与 RIP 的四点核心区别? ★1考

对比项 OSPF RIP
发给谁 洪泛法发给本 AS 中所有路由器 仅直接相邻的几个
发什么 本路由器与相邻路由器之间的链路状态(局部拓扑) 全部路由信息(完整路由表)
何时发 拓扑变化时立即触发洪泛;LSA 还会老化并周期刷新 不论是否变化都定期交换,拓扑变化也可触发通告
层次/承载 网络层,直接封装在 IP 中(协议字段 89) 应用层,UDP 端口 520

⚠️ 洪泛的细节:路由器通过所有输出端口向相邻路由器发送,邻居再转发给它的所有邻居,但不再回传给刚刚发信息的那个路由器。

★ 考过 2024

💡 OSPF 收敛速度快,不会出现 RIP 的"坏消息传得慢"问题。注意“仅在变化时更新”只是在对比触发洪泛,不能抹掉 LSA 的周期刷新。

回源 · PDF 第 203 页 · b_203_6;PDF 第 203 页 · b_203_10;PDF 第 204 页 · b_204_9

OSPF 的五条额外优势?

  • 支持对每条路由设置不同的代价,可针对不同业务类型计算差异化路径
  • 存在多条代价相同的路径时可实现负载分担(负载均衡)
  • 分组具备鉴别功能,仅在可信路由器之间交换链路状态
  • 支持可变长子网掩码和无分类编址
  • 每条链路状态通告携带一个 32 位序号,序号越大状态越新
回源 · PDF 第 203 页 · b_203_15

LSDB 和路由表是什么关系?

各路由器频繁交换链路状态,最终所有路由器构建出一致的链路状态数据库 LSDB;然后每个路由器基于 LSDB 用 Dijkstra 算法算出到各目的网络的最优路径,生成自己的路由表。

⚠️ 关键细节:尽管 Dijkstra 能算出完整的最优路径,路由表中却不存完整路径,只存"下一跳" —— 到了下一跳后才能确定再下一跳怎么走。

回源 · PDF 第 204 页 · b_204_1

OSPF 为什么要划分区域?分组怎么跨区域走?

好处:把洪泛交换链路状态的范围限制在各区域内,而不是整个 AS,从而显著减少网络通信开销。

  • 每个区域至少有一个区域边界路由器,负责为进出该区域的分组提供路由
  • AS 内必须有一个主干区域,它包含 AS 内的所有区域边界路由器,用于连通其他区域
  • 跨区域转发路径:源区域 → 本地区域边界路由器 → 主干区域 → 目的区域边界路由器 → 目的地
  • ASBR(自治系统边界路由器)负责把外部路由引入 OSPF 域。⚠️ ASBR 的定义不要求它必须位于 Area 0;原书图中 R6 恰好位于主干区并充当 ASBR,只能当作图例
回源 · PDF 第 204 页 · b_204_2;PDF 第 204 页 · b_204_4

OSPF 的五种分组?

  • 问候(Hello):发现邻居、维持邻接关系,确认链路双向连通性
  • 数据库描述 DD:向邻居发送自己 LSDB 中所有链路状态项目的摘要
  • 链路状态请求 LSR:请求某些链路状态项目的详细信息
  • 链路状态更新 LSU:用洪泛法发送 LSA,是 OSPF 最核心的部分
  • 链路状态确认 LSAck:对链路更新分组的确认

💡 记忆法:"打招呼(Hello)—报目录(DD)—点菜(LSR)—上菜(LSU)—签收(LSAck)"。

回源 · PDF 第 204 页 · b_204_5

OSPF 的四个关键时间?

  • 每 10s 相邻路由器周期性交换问候分组
  • 40s 内未收到邻居的问候分组 → 判定邻居不可达,立即更新 LSDB 并重新运行 Dijkstra
  • 每条 LSA 最大生存时间 60 分钟
  • 生成该 LSA 的路由器每隔 30 分钟刷新一次,防止 LSA 丢失或异常

⚠️ 网络中传送的大多数 OSPF 分组都是问候分组。

💡 记忆法:"10 秒问一次、40 秒判死、30 分钟续命、60 分钟到期"。

回源 · PDF 第 204 页 · b_204_9

LSDB 初始同步的四步交互?

路由器刚启动时只能通过问候分组发现直连邻居;若全网广播所有完整链路状态,开销巨大。OSPF 的做法: - ① 相邻路由器用 DD 分组交换 LSA 的摘要 - ② 根据摘要对比,用 LSR 分组请求自己缺失或过期的 LSA 详细内容 - ③ 对方用 LSU 分组发送所请求的 LSA - ④ 接收方返回 LSAck 确保可靠传输

链路状态变更时:立即生成新 LSA,用 LSU 以可靠的泛洪方式向整个区域传播,其他路由器确认 → 更新 LSDB → 重新运行 Dijkstra。

回源 · PDF 第 205 页 · b_205_0;PDF 第 205 页 · b_205_1

4.4.5 边界网关协议 BGP

BGP 为什么只求"较好"而不求"最佳"? ★1考

两个原因: - 互联网规模太大,AS 之间寻找最佳路由很不现实(主干网路由器表项极其庞大) - AS 之间的路由选择必须考虑政治、安全或经济等因素

所以 BGP 只力求找一条能够到达目的网络且比较好的路由(不能兜圈子)。它采用路径向量路由选择协议,与 DV(RIP)和 LS(OSPF)都有很大区别。

⚠️ BGP 是应用层协议,基于 TCP(端口 179)实现。

★ 考过 2013、2017

回源 · PDF 第 205 页 · b_205_14

BGP 路由的两个最重要属性?

BGP 路由 = <前缀, AS-PATH, NEXT-HOP> - AS-PATH:记录该路由所经过的自治系统序列(每个 AS 由全局唯一的 ASN 标识),每经过一个 AS 就把自己的 ASN 加入 AS-PATH。⚠️ 它只指明经过哪些 AS,不指明具体经过哪些路由器 - NEXT-HOP:接收该路由的路由器去往目的网络时应使用的下一跳地址;通常是通告此路由的邻居 AS 的边界路由器上与本 AS 直连的接口 IP 地址

💡 AS-PATH 还能防环:看到自己的 ASN 已在路径里就丢弃。

回源 · PDF 第 205 页 · b_205_16;PDF 第 205 页 · b_205_17

eBGP 和 iBGP 有什么区别? ★1考

每对通过 TCP 连接交换 BGP 报文的路由器称为 BGP 对等方,该连接称为 BGP 会话(端口 179 的半永久 TCP 连接,交换完信息仍保持): - eBGP(外部)会话:跨越两个 AS - iBGP(内部)会话:位于同一 AS 内

⚠️ 所以 BGP 不只用于 AS 之间,也运行在 AS 内部,以确保外部路由信息在整个 AS 中正确传播。

⚠️ 经典、未使用路由反射器或联盟的 iBGP 设计要求各 iBGP 路由器逻辑全互联,但不要求物理直连;现代网络可用 Route Reflector/Confederation 避免全网状,不能把全互联写成无条件定理。

★ 考过 2024

回源 · PDF 第 206 页 · b_206_1

收到一条 BGP 路由后怎么写进路由表?

R4(在 AS2)收到 "X, AS-PATH=AS1, NEXT-HOP=R1": - ① 解析 NEXT-HOP:R1 在 AS1,AS2 的内部路由器无法直接把分组发给 R1,必须先到自己的边界路由器 R2(R2 是 R1 的 eBGP 对等方)→ 路径变成 R2→R1→X - ② 用 IGP 查找从自己到 R2 的最优路径,假设下一跳是 R3 - ③ 在路由表中添加

于是转发路径为 R4→R3→R2→R1→X。

💡 一句话:每收到一条新的 BGP 路由通告,都要做"NEXT-HOP 解析 + IGP 查找"两步,才能写入本地路由表。

回源 · PDF 第 206 页 · b_206_7

BGP 选路的四条优先顺序? ★1考

  • ① 本地偏好值 LOCAL-PREF 最高的优先 —— 由管理员按政治或经济策略设置;⚠️ 缺点:即使高速链路过载,BGP 也无法自动把流量切到空闲的低速链路
  • ② AS 跳数最少(AS-PATH 最短) —— ⚠️ 缺点:AS 跳数最少的未必最好(一个很大的 AS 内部可能要转发很多次)
  • ③ 热土豆路由选择算法 —— 像扔烫手的热土豆,让分组经过最少的转发次数离开本 AS;需要用 IGP 计算,不同路由器得出的结果不同
  • ④ BGP 标识符数值最小的路由(BGP 报文首部中运行 BGP 路由器的唯一标识符)

★ 考过 2024

💡 记忆法:"先看偏好、再看跳数、再扔土豆、最后比号"。

回源 · PDF 第 206 页 · b_206_10

BGP 的四种报文? ★1考

  • Open(打开):与对等方建立关系,使通信初始化
  • Update(更新):通告可达前缀及其路径属性,也可列出要撤销的前缀
  • Keepalive(保活):周期性证实与对等方的连通性
  • Notification(通知):发送检测到的差错

⚠️ Update 是 BGP 的核心。同一报文可通告多个共享同一组路径属性的 NLRI 前缀,也可一次撤销多个前缀;原书“新增时只能一条”不成立。

★ 考过 2024

回源 · PDF 第 208 页 · b_208_2;PDF 第 208 页 · b_208_3;PDF 第 208 页 · b_208_4;PDF 第 208 页 · b_208_6

BGP 的两个时间和"首次/非首次"区别?

  • 两个路由器建立 TCP 连接后先交换 Open 报文互相识别、协商参数;接受则返回 Keepalive
  • 会话建立后周期性交换 Keepalive,默认间隔 60 秒
  • 每个 BGP 路由器维护一个保持时间计时器,收到任意 BGP 报文就重置为 0;保持时间默认 180s,超时未收到任何报文就认为对等方失效并关闭连接(Keepalive 间隔正好是保持时间的 1/3)

⚠️ 交换内容随时机变化:BGP 刚启动时交换完整的 BGP 路由表,此后仅在路由变化时发送更新部分 —— 节省带宽、降低开销。

回源 · PDF 第 208 页 · b_208_7

RIP / OSPF / BGP 六项总对照?

项目 RIP OSPF BGP
类型 内部 内部 外部
路由算法 距离向量 链路状态 路径向量
传递协议 UDP(520) IP(协议号 89) TCP(179)
路径选择 跳数最少 代价最低 较好,非最佳
交换节点 相邻路由器 网络中所有路由器 相邻路由器
交换内容 自己的整张路由表 相邻路由器的链路状态 首次整表,之后只发变化部分

💡 记忆法:"R 用 U(DP)、O 用 I(P)、B 用 T(CP)"。

回源 · PDF 第 208 页 · b_208_9

4.5 IP 多播

多播省在哪里?

视频服务器向 90 台主机发送相同视频分组:单播要发 90 份,多播只发 1 份。

该分组只在传输路径上遇到分岔节点时才被复制转发,到达目的局域网后已加入该多播组的主机都能收到。

⚠️ 多播的实现依赖路由器的支持,支持多播路由协议的路由器称为多播路由器。

回源 · PDF 第 220 页 · b_220_13

IP 多播地址的范围和三条注意?

IP 多播地址就是 IPv4 的 D 类地址:前四位 1110,范围 224.0.0.0 ~ 239.255.255.255,可支持 2²⁸ 个多播组,主机可随时加入或离开。

三条注意: - 多播数据报也是"尽最大努力交付",不提供可靠交付 - ⚠️ 多播地址只能用于目的地址,不能用于源地址 - ⚠️ 对多播数据报不产生 ICMP 差错报文

协议字段值由上层协议决定:携带 UDP 数据为 17,携带 IGMP 报文为 2。

回源 · PDF 第 221 页 · b_221_4;PDF 第 221 页 · b_221_5

为什么多播只能用 UDP 不能用 TCP?

因为 UDP 能把同一报文同时发给多个接收者;而 TCP 是面向连接的,建立的是一对一的端到端连接,无法支持一对多通信。

⚠️ IP 多播分两种:只在本局域网上的硬件多播、互联网范围内的多播。由于大部分主机通过局域网接入互联网,互联网多播的最后阶段仍要用硬件多播交付给组成员。

回源 · PDF 第 221 页 · b_221_11

D 类地址映射成 MAC 地址为什么会冲突?

IANA 保留的以太网多播地址范围是 01-00-5E-00-00-00 ~ 01-00-5E-7F-FF-FF:48 位中前 25 位固定,只有后 23 位可用。

而 D 类地址有 28 位用于标志多播组 → 高 5 位无法映射 → 2⁵ = 32 个不同的 IP 多播地址映射到同一个多播 MAC 地址,是多对一关系。

例:224.128.64.32 和 224.0.64.32 都映射为 01-00-5E-00-40-20。

⚠️ 因此主机收到多播数据帧后,还要在 IP 层用目的 IP 地址再过滤一次,只保留本机所属多播组的数据报。

💡 记忆法:"28 位塞进 23 位,差 5 位 → 32 个撞一个"。

回源 · PDF 第 222 页 · b_222_3

IGMP 管的是什么范围?

IGMP 让连接到本地局域网上的多播路由器获知本局域网上是否有主机加入或退出某个多播组。

⚠️ IGMP 仅作用于本地子网,它既不知道某个多播组的总成员数量,也不了解成员分布在哪些网络。

⚠️ IGMP 报文封装在 IP 数据报中(协议字段值 2);它是 IP 的配套协议,不视为单独协议,而是整个 IP 协议的一个组成部分。

回源 · PDF 第 222 页 · b_222_4

IGMP 工作的两个阶段?

  • 第一阶段(加入):主机加入新多播组时,向该组的多播 IP 地址发送 IGMP 报文声明成为成员;本地多播路由器收到后,用多播路由选择协议把这种组成员关系通告给互联网上的其他多播路由器
  • 第二阶段(维持):组成员关系是动态的,本地多播路由器周期性查询本局域网主机;只要有一台主机响应就认为该组仍活跃;连续多次查询都无响应才判定该组已无成员,停止向其他多播路由器通告
回源 · PDF 第 222 页 · b_222_8

多播转发树的三条性质?

多播路由选择实际上是构造一棵以源主机为根节点的多播转发树: - 每个分组在每条链路上仅被传送一次 - 参与转发的路由器不会收到重复的多播数据报 - ⚠️ 不同多播组对应不同的转发树;同一个多播组,源主机不同,转发树也不同

回源 · PDF 第 222 页 · b_222_11;PDF 第 222 页 · b_222_15

4.6 移动 IP

移动 IP 要解决的核心问题是什么?

让移动主机切换网络接入点时仍保持永久 IP 地址不变,使发往它的分组自动、透明地正确投递,对上层应用(如 TCP 连接)完全透明。

⚠️ 反例辨析:笔记本关机后从家搬到办公室,用 DHCP 拿一个新 IP 重新联网 —— 这不属于移动 IP(因为 IP 地址已改变)。

实现移动中 TCP 连接不中断的关键,就在于保持移动节点的 IP 地址不变,这才是移动 IP 研究的问题。

回源 · PDF 第 224 页 · b_224_1

移动 IP 的三种功能实体?

  • 移动节点:拥有永久 IP 地址、可在不同网络间移动的主机
  • 归属代理(本地代理):连接在归属网络上的路由器,负责截获并转发发往移动节点的数据
  • 外地代理:连接在被访网络上的路由器,协助移动节点接收数据

外地代理的两个重要功能: - 为移动站分配一个临时的转交地址(属于被访网络,标识当前位置) - 把转交地址及时通知给归属代理,建立转发路径

⚠️ 转交地址仅用于移动站、归属代理和外地代理之间的通信,应用程序不会使用它;外地代理向被访网络中的移动站发分组时,直接通过 MAC 地址做链路层交付。

💡 生活类比:毕业后不知道未来地址,就互留家庭地址(永久地址),信寄到家里由家人代为转交。

回源 · PDF 第 224 页 · b_224_3

移动 IP 通信的五个步骤?

  • ① 本地通信:A 在归属网络时,按传统 TCP/IP 方式直接通信
  • ② 漫游与注册:A 漫游到被访网络,先向外地代理登记获得转交地址,外地代理把转交地址注册到 A 的归属代理
  • ③ 接收数据(B→A):归属代理截获所有发往 A 的分组,构建一条通往转交地址的 IP 隧道,把原分组封装在新的 IP 包中发给外地代理;外地代理解封装还原后直接交付给 A
  • ④ 发送数据(A→B):A 仍用永久地址作源地址,⚠️ 可直接通过被访网络的外地代理转发,无须经过归属代理(这就是所谓"三角路由"的成因)
  • ⑤ 移动与返回:再次漫游时新外地代理注册新的转交地址;返回归属网络后向归属代理注销转交地址

⚠️ B 与 A 通信时完全不需要知道 A 的当前位置,只用 A 的永久地址作目的地址。

💡 记忆法:"去时报到、来信转寄、回信直发、回家注销"。

回源 · PDF 第 225 页 · b_225_7

支持移动 IP,网络层要增加哪四个功能?

  • 移动站到外地代理的登记协议
  • 外地代理到归属代理的注册协议
  • 归属代理的隧道封装协议
  • 外地代理的隧道拆封协议
回源 · PDF 第 225 页 · b_225_3

4.7 网络层设备

冲突域和广播域分别属于第几层? ★2考

  • 冲突域:连接到同一物理介质上、存在介质争用的所有节点集合 —— 属于第 1 层(物理层)概念
  • 广播域:能接收同一广播帧的所有节点集合 —— 属于第 2 层(数据链路层)概念

设备的隔离能力: - 第 1 层设备(集线器、中继器):只复制转发信号,不能划分冲突域,所有端口同属一个冲突域 - 第 2 层设备(网桥、交换机):可划分冲突域,但所连节点通常仍在同一广播域 - 第 3 层设备(路由器):冲突域和广播域都能划分

⚠️ 局域网 LAN 在逻辑上等同于一个广播域,路由器用于连接不同的 LAN,即分隔不同的广播域。

★ 考过 2010、2020

回源 · PDF 第 226 页 · b_226_6

路由器由哪两大部分组成? ★1考

  • 路由选择部分(控制平面):核心是路由选择处理机,按 RIP/OSPF 等协议构建路由表,并周期性与相邻路由器交换路由信息
  • 分组转发部分(数据平面):由交换结构 + 一组输入端口 + 一组输出端口组成

交换结构是路由器内部连接输入与输出端口的高速通路,本身就是"一个在路由器中的网络"。

⚠️ 路由器是工作在网络层的设备,转发决策基于 IP 地址,但其端口还要具备物理层和数据链路层的处理能力。多个逻辑网络(多个广播域)互连时必须使用路由器。

★ 考过 2010

回源 · PDF 第 226 页 · b_226_13

一个分组进入路由器端口后怎么走?

  • 物理层接收比特流
  • 数据链路层提取帧、剥离帧头帧尾,把分组送入网络层模块
  • 网络层判断:
  • 普通数据分组 → 按目的 IP 查转发表,经交换结构送到相应输出端口
  • 路由协议分组(RIP、OSPF 报文) → 交给路由选择处理机处理

⚠️ 端口设有缓冲区暂存分组并可差错检测;到达速率超过处理能力时缓冲区溢出,后续分组被丢弃。 ⚠️ 实际上路由器的物理端口通常兼具输入和输出功能,图上分开画只为便于理解。

回源 · PDF 第 227 页 · b_227_4

标准路由表包含哪四个字段? ★3考

根据历年统考真题,标准路由表通常包含四个字段: 目的网络 IP 地址、子网掩码、下一跳 IP 地址、接口

教材中 R1 的路由表示例(含一条默认路由): | 目的网络 IP 地址 | 子网掩码 | 下一跳 IP 地址 | 接口 | |---|---|---|---| | 202.114.1.0 | 255.255.255.0 | 直连 | E1 | | 202.114.2.0 | 255.255.255.0 | 直连 | L0 | | 202.114.3.0 | 255.255.255.0 | 202.114.2.2 | L0 | | 0.0.0.0 | 0.0.0.0 | 202.114.2.2 | L0 |

⚠️ 做大题时直连网络的下一跳写"直连",最后一行 0.0.0.0/0.0.0.0 就是默认路由。

★ 考过 2009、2013、2014

回源 · PDF 第 227 页 · b_227_7

路由表和转发表的设计目标差在哪?

  • 路由表:使路由计算优化,便于动态更新和拓扑变化处理;通常由软件维护
  • 转发表:使高速查找优化,用于实际的数据转发;通常包含目的网络前缀 + 下一跳;既可软件实现,也可专用硬件实现

⚠️ 转发 vs 路由选择: - 转发 = 单个路由器根据转发表把数据报从合适端口送出 → 数据平面操作 - 路由选择 = 多个路由器协同,交换拓扑信息、运行路由算法生成路由表 → 控制平面操作

回源 · PDF 第 228 页 · b_228_1

【疑难点】第4章

"尽最大努力交付"到底包含哪五条?

  • 不保证无差错地到达目的主机
  • 不保证在规定时间内交付
  • 不保证按发送顺序交付
  • 不保证不重复交付
  • 不会为了提供可靠性而主动重传、排序或去重,但并非只在两种情况下才丢包。除首部检验和错或缓存满外,还可能因 TTL 到 0、无可用路由、策略/ACL、DF=1 且超出 MTU、分片重组超时等丢弃

⚠️ 一个重要推论:凡交付给目的主机的 IP 数据报,其首部均未检出差错(有错早被丢弃)→ IP 层可确保首部完整性,但不保证数据部分正确性或传输可靠性。需要可靠传输就由 TCP 实现。

回源 · PDF 第 235 页 · b_235_1;PDF 第 235 页 · b_235_2;PDF 第 235 页 · b_235_3;PDF 第 235 页 · b_235_4;PDF 第 235 页 · b_235_5;PDF 第 235 页 · b_235_6;PDF 第 235 页 · b_235_7

A 广播 ARP 找 B,到底是谁回应?

  • B 与 A 在同一局域网:B 直接向 A 单播 ARP 响应,返回 B 自身的硬件地址
  • B 不在 A 的局域网(正常流程):A 先用掩码判断 B 非直连,随后 ARP 请求的目标 IP 应当是默认网关接口的 IP;网关以自己的身份响应,返回自己的 MAC
  • 只有启用了代理 ARP时,网关才会代替远端 B 回答“谁拥有 B 的 IP”这一 ARP 请求

💡 这解释了一个常见困惑:主机的 ARP 缓存里永远不会出现外网主机的 MAC 地址。

回源 · PDF 第 160 页 · b_160_9;PDF 第 160 页 · b_160_10;PDF 第 161 页 · b_161_0;PDF 第 161 页 · b_161_1

首部没有下一跳字段,路径是怎么定的?

路由器收到数据报后查路由表得出下一跳 IP 地址,但不修改 IP 数据报内容;该 IP 地址交给数据链路层,通过 ARP 缓存取得(缓存未命中时才发起 ARP 请求)对应 MAC 地址并填入 MAC 帧首部,从而在物理网络中送达下一跳。每个数据报都会重复“查路由并逐跳重新封装帧”的过程,但不会每次都重新广播 ARP。

能不能在路由表里直接用硬件地址省掉 ARP?不能。 - IP 地址的抽象性屏蔽了底层网络差异,是互联网可扩展性的基础 - 若直接用平面化的硬件地址,会导致表项数量剧增、管理复杂,得不偿失

回源 · PDF 第 235 页 · b_235_10

"路由器实现了三层"具体指什么?

指路由器具备处理这三层协议的能力: - 物理层:能接收和发送比特流 - 数据链路层:能识别帧结构、解析 MAC 地址,完成帧的解封装与重新封装 - 网络层:能读取 IP 首部,按目的 IP 查路由表做出转发决策

回源 · PDF 第 235 页 · b_235_14

【易混点】第4章成对概念对照

概念 A 概念 B 一句话切分
虚电路 数据报 网络保证可靠 vs 端系统保证可靠
路由选择 分组转发 控制平面、多路由器协同 vs 数据平面、单路由器动作
路由表 转发表 为计算优化(软件) vs 为查找优化(可硬件)
拥塞控制 流量控制 全局 vs 点对点两端
开环控制 闭环控制 静态预案 vs 动态反馈
标识 序号 标识只用于分片重组,IP 无连接没有序号
DF MF DF=1 禁止分片 vs MF=1 后面还有片
0.0.0.0 255.255.255.255 本网络本主机 vs 受限广播
直接交付 间接交付 同一子网内直投 vs 先发默认网关
定长子网掩码 变长子网掩码 等分、易浪费 vs 按需、要从大到小
普通路由器 NAT 路由器 不改 IP vs 改 IP 还改端口(涉及传输层)
ARP DHCP IP→MAC(网络层) vs 动态配 IP(应用层/UDP)
ICMP 回送请求 ICMP 时间超过 PING 用前者 vs Tracert 用后者
DV 算法 LS 算法 告诉邻居全世界 vs 告诉全世界我的邻居
RIP OSPF UDP 520/跳数/定期发整表 vs IP 89/代价/变化才洪泛
IGP EGP AS 内(域内) vs AS 间(域间)
eBGP iBGP 跨 AS 会话 vs 同一 AS 内会话
集线器/交换机/路由器 — 都不隔 / 只隔冲突域 / 两个都隔
多播地址 多播 MAC 28 位 → 23 位,32 个撞一个,IP 层还要再过滤
移动 IP DHCP 换网 IP 地址不变(TCP 不断) vs IP 变了(不算移动 IP)

【必背数字】第4章

数字 含义
20B / 60B / 1B~40B IP 固定首部 / 最大首部 / 可选字段长度
4B / 1B / 8B 首部长度 / 总长度 / 片偏移的单位
65535B IP 数据报最大总长度(2¹⁶−1)
0x45 IP 首部常见开头(版本 4 + 首部长度 5)
6 / 17 / 1 / 2 / 89 协议字段:TCP / UDP / ICMP / IGMP / OSPF
1500B / 576B 以太网 MTU / 很多广域网的 MTU 上限
2⁷−2 / 2¹⁴ / 2²¹ A / B / C 类最大可用网络数
2²⁴−2 / 2¹⁶−2 / 2⁸−2 A / B / C 类每网最大主机数
126 / 191.255 / 223.255.255 A / B / C 类最后一个可用网络号
255.0.0.0 / 255.255.0.0 / 255.255.255.0 A / B / C 类默认子网掩码
10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 三个私有地址块(1 个 A、16 个 B、256 个 C)
/30 或 /31 点对点链路(旧标准 /30,新标准 /31 零浪费)
0.0.0.0/0 与 a.b.c.d/32 默认路由(优先级最低)与特定主机路由(最高)
128 位 / 40B / 8 个字段 IPv6 地址长度 / 基本首部长度 / 字段数
2⁹⁶ 倍 IPv6 地址空间是 IPv4 的倍数
::/128、::1/128、FF00::/8、FE80::/10 未指明 / 环回 / 多播 / 本地链路单播
255 IPv6 跳数限制的最大初值
15 / 16 RIP 最大有效距离 / 不可达
30s / 180s RIP 更新周期 / 超时判定
520 / 89 / 179 RIP 的 UDP 端口 / OSPF 的 IP 协议号 / BGP 的 TCP 端口
10s / 40s / 30min / 60min OSPF 问候间隔 / 判邻居失效 / LSA 刷新 / LSA 最大生存
60s / 180s BGP Keepalive 间隔 / 保持时间(1:3)
224.0.0.0~239.255.255.255 D 类多播地址范围,共 2²⁸ 个组
01-00-5E-00-00-00 ~ 01-00-5E-7F-FF-FF 以太网多播 MAC 范围(前 25 位固定)
32(2⁵) 映射到同一多播 MAC 的 IP 多播地址个数