计网大题的主场。核心就是三件事:地址怎么分(子网与 CIDR)、分组怎么走(路由表与转发)、路由表怎么来(路由协议)。
这一章只要会:
固定首部 20 B。深色的字段是常考的。
| 字段 | 单位 | 要点 |
|---|---|---|
| 首部长度 | 4 B | 最小值是 5,表示 20 B |
| 总长度 | 1 B | 首部 + 数据的总长 |
| 片偏移 | 8 B | 这一片的数据在原数据报里从第几个 8 B 开始 |
| 标识 | — | 同一个数据报的各个分片,标识相同 |
| 标志 | — | MF = 1 表示后面还有分片;DF = 1 表示不允许分片 |
| TTL | — | 每过一个路由器减 1,减到 0 就丢弃,并发 ICMP 超时报文 |
| 协议 | — | 数据部分交给谁:6 是 TCP,17 是 UDP,1 是 ICMP |
| 首部检验和 | — | 只检验首部。TTL 每跳都变,所以每跳都要重算 |
单位口诀:一总、八片、首四。总长度 1 B,片偏移 8 B,首部长度 4 B。
总长 4000 B = 首部 20 B + 数据 3980 B。每片最多装 1500 − 20 = 1480 B 数据(正好是 8 的倍数)。
| 分片 | 数据范围 | 总长度 | 片偏移 | MF |
|---|---|---|---|---|
| 1 | 0 ~ 1479 | 1500 | 0 | 1 |
| 2 | 1480 ~ 2959 | 1500 | 1480 ÷ 8 = 185 | 1 |
| 3 | 2960 ~ 3979 | 1020 + 20 = 1040 | 2960 ÷ 8 = 370 | 0 |
易错:每一片都要带自己的 20 B 首部;除最后一片外,数据长度必须是 8 的倍数;分片可以在路由器上做,但重组只在目的主机做。
所有计算都是同一个动作:把 IP 地址写成二进制,按前缀长度切成"网络部分"和"主机部分"。
这两个地址都不能分给主机。路由器的接口也要占一个地址。
127.x.x.x:环回测试,不会发到网络上0.0.0.0:本主机还没有地址时用作源地址255.255.255.255:本网络广播,路由器不转发10.0.0.0/8、172.16.0.0/12、192.168.0.0/16,上公网要经过 NAT7 位主机可容纳 126 台,6 位 62 台,5 位 30 台。
把 172.18.129.0/24、172.18.130.0/24、172.18.132.0/24、172.18.133.0/24 聚合成一条。
| 目的网络 | 下一跳 |
|---|---|
| 172.16.0.0/16 | R1 |
| 172.16.8.0/22 | R2 |
| 172.16.10.0/24 | R3 |
| 0.0.0.0/0 | R4(默认路由) |
大题最常问:分组经过每一段链路时,帧里的 MAC 地址和 IP 地址分别是什么。
| H1 经路由器 R 发给 H2 | 源 MAC | 目的 MAC | 源 IP | 目的 IP |
|---|---|---|---|---|
| H1 → R 这一段 | H1 | R 的入口 | H1 | H2 |
| R → H2 这一段 | R 的出口 | H2 | H1 | H2 |
IP 地址从头到尾不变,MAC 地址每一段都换。唯一的例外是经过 NAT 时,源 IP 会被换成路由器的公网地址。
| RIP | OSPF | BGP | |
|---|---|---|---|
| 用在哪 | 自治系统内部 | 自治系统内部 | 自治系统之间 |
| 算法 | 距离向量 | 链路状态 | 路径向量 |
| 和谁交换 | 只和相邻路由器 | 向本区域所有路由器洪泛 | 相邻自治系统的发言人 |
| 交换什么 | 自己的整张路由表 | 自己和各个邻居之间的链路状态 | 到各网络的完整路径 |
| 什么时候 | 每 30 秒一次 | 链路状态变化时 | 有变化时 |
| 用什么传 | UDP | 直接用 IP | TCP |
| 特点 | 以跳数为距离,最多 15 跳,16 表示不可达;好消息传得快,坏消息传得慢 | 每个路由器都有全网拓扑,用 Dijkstra 算最短路径;收敛快 | 只求能到达且不兜圈子,不求最优 |
收到邻居 X 发来的路由表后,先把每一项的距离加 1、下一跳改成 X,再逐项和自己的表比较:
| 目的网络 | B 原来的 | C 发来的(加 1 后) | B 更新后 | 原因 |
|---|---|---|---|---|
| N1 | 7,经 A | 没有 | 7,经 A | 没有新消息 |
| N2 | 2,经 C | 5 | 5,经 C | 下一跳相同,必须更新 |
| N3 | 没有 | 9 | 9,经 C | 新的目的网络 |
| N6 | 8,经 F | 5 | 5,经 C | 距离更小 |
| N8 | 4,经 E | 4 | 4,经 E | 距离一样,不换 |
| N9 | 4,经 F | 6 | 4,经 F | 距离更大,不换 |
目的 MAC 是默认网关的,目的 IP 是主机 B 的。
下一跳本来就是 X,无条件更新:距离改为 8,下一跳仍是 X。