考研学习
知识点讲义计算机网络

第 4 章 网络层

408 计算机网络第 4 章 网络层复习讲义,涵盖核心概念、重点考点与典型题型。

Last updated on

一、先建立整章框架

网络层最核心的问题其实只有一句话:

一个 IP 分组,怎样从源主机跨越若干不同网络,最终到达目的主机?

围绕这句话,本章可以拆成 8 块:

网络层
│
├─ 4.1 网络层功能
│   ├─ 异构网络互连
│   ├─ 路由选择 vs 分组转发
│   ├─ 数据报 vs 虚电路
│   ├─ SDN
│   └─ 拥塞控制
│
├─ 4.2 IPv4                 ★★★★★
│   ├─ IPv4 首部             ★★★★
│   ├─ IP 分片               ★★★★★
│   ├─ IPv4 地址
│   ├─ 子网划分              ★★★★★
│   ├─ CIDR                  ★★★★★
│   ├─ 路由聚合              ★★★★★
│   ├─ 最长前缀匹配          ★★★★★
│   ├─ NAT                   ★★★★
│   ├─ ARP                   ★★★★★
│   ├─ DHCP                  ★★★
│   └─ ICMP                  ★★★★
│
├─ 4.3 IPv6                 ★★★
│
├─ 4.4 路由算法与路由协议   ★★★★★
│   ├─ 距离向量
│   ├─ 链路状态
│   ├─ RIP
│   ├─ OSPF
│   └─ BGP
│
├─ 4.5 IP 多播              ★★
├─ 4.6 移动 IP              ★★
└─ 4.7 路由器               ★★★★

从资料中的“考点追踪”看,CIDR、路由聚合、子网划分、IP 分片、ARP、RIP/OSPF/BGP 都反复出现在历年题目中。尤其路由聚合标注了 2009、2011、2013、2014、2018,最长前缀匹配标注 2013、2015,定长/变长子网划分也多次出现。

二、4.1 网络层到底负责什么?

网络层提供的是:

主机到主机的通信。

这一点和另外几层一定区分开:

层大致负责
数据链路层相邻节点之间
网络层主机到主机、跨网络
传输层进程到进程

网络层最核心的两个功能:

1. 路由选择 Routing

解决:

“从这里到目的网络,应该走哪条路?”

它是一个全局问题。

路由器之间运行 RIP、OSPF、BGP 等协议,生成、维护路由表。

2. 分组转发 Forwarding

解决:

“这个已经来到我路由器的分组,具体应该从哪个接口发出去?”

它是一个局部动作。

所以要记住:

路由选择:算路
分组转发:走路

路由表偏向“控制和计算”,转发表偏向“快速查询和真正转发”。资料对此进行了明确区分。

三、异构网络互连

互联网并不是一个巨大的同构局域网,而是:

以太网
Wi-Fi
光纤网络
PPP 网络
各种运营商网络
……

通过路由器互连。

按设备最高工作层:

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

其中真正意义上实现不同网络互连的核心设备是:

路由器。

路由器让不同底层网络统一表现成一个 IP 网络。

四、数据报服务 vs 虚电路服务

这是一个很容易混的概念。

1. 数据报

Internet 的 IP 网络采用:

无连接、尽最大努力交付的数据报服务。

通信前不用建立连接。

每个 IP 数据报:

  • 独立携带目的地址;
  • 独立查路由表;
  • 可以走不同路径;
  • 可能乱序;
  • 可能丢失;
  • 可能重复;
  • IP 不保证可靠。

例如:

A → R1 → R2 → B
A → R1 → R3 → B
A → R4 → R5 → B

同一批 IP 数据报完全可能走不同路线。

2. 虚电路

虚电路先:

建立连接
    ↓
传输数据
    ↓
释放连接

连接建立阶段先确定路径。

之后分组不必携带完整目的地址,而可以使用:

VCID,虚电路号。

因此同一虚电路上的分组通常走相同路径、有序到达。

3. 必考对比

特征数据报虚电路
建立连接不需要需要
路由每个分组独立选择建立时确定
分组携带完整目的地址VCID
顺序可能乱序通常有序
故障适应强较差
网络可靠性尽力而为网络可提供更多保障
Internet IP是否

资料特别指出 TCP/IP 网络层采取的是简单、灵活、无连接、尽最大努力交付的数据报服务。

五、SDN:控制平面和数据平面

这是现在考纲中的新考点。

传统路由器内部同时存在:

控制平面
   ↓
生成路由表/转发表
   ↓
数据平面
   ↓
真正转发数据

传统模式下,每台路由器自己运行路由协议。

而 SDN:

        SDN 控制器
        控制平面
           │
        南向接口
        OpenFlow
           │
 ┌─────────┼─────────┐
交换机     交换机     交换机
数据平面   数据平面   数据平面

核心:

控制平面与数据平面分离。

三类接口

北向接口

应用程序
   ↓
控制器

上层应用访问控制器。

南向接口

控制器
   ↓
交换机

典型 OpenFlow。

这个是真题点:

SDN 控制器向交换机下发流表:南向接口。

东西向接口

控制器和控制器之间。

资料还指出,OpenFlow 流表匹配字段可涉及链路层、网络层和传输层。模拟题中对应答案为 II、III、IV。

六、拥塞控制

先区分:

流量控制

解决:

发送方太快,接收方吃不消。

本质:

发送方 ↔ 接收方

是点到点问题。

拥塞控制

解决:

整个网络中的分组太多,路由器、链路顶不住。

本质:

整个网络

是全局问题。

拥塞严重时会出现:

负载 ↑
但
吞吐量 ↓

这是典型拥塞信号。

方法:

  • 开环控制:事先预防;
  • 闭环控制:检测 → 反馈 → 调整。

七、4.2 IPv4 —— 本章核心

这是整章最重要的部分。

八、IPv4 数据报首部

IPv4 首部最小:

最大:

资料列出的字段中,高频字段尤其包括首部长度、总长度、标识、DF/MF、片偏移、TTL 和协议字段。

1. 三个“长度单位”是大坑

必须背:

字段单位
首部长度4B
总长度1B
片偏移8B

这是非常典型的选择题陷阱。

2. 首部长度

4 bit。

所以最大:

没有选项字段:

因此看到:

45

IPv4 首部很常见。

其中:

4 → IPv4
5 → 5×4 = 20B首部

九、TTL —— 高频

TTL 即 Time To Live。

虽然叫“生存时间”,IPv4 实际上主要按:

跳数

处理。

经过一个路由器:

若减为 0:

丢弃 IP 数据报
        ↓
向源主机发送 ICMP 时间超过报文

为什么要 TTL?

为了防止路由环路:

R1 → R2 → R3
↑         ↓
└─────────┘

否则数据报可能无限循环。

这也是 traceroute 的基础。

十、协议字段

告诉 IP:

“数据部分应该交给谁?”

典型:

ICMP 也直接封装在 IP 中。

十一、IPv4 分片 —— ★★★★★

这是大重点。

资料明确标记 IP 分片字段在 2011、分片原理在 2021 等年份出现。

1. 为什么分片?

假设:

IP 数据报:4000B
↓
某条链路 MTU:1500B

4000B 放不进帧。

所以:

IP 数据报必须拆成多个更小的 IP 数据报。

2. MTU 是什么?

Maximum Transmission Unit:

链路层帧的数据部分能装的最大长度。

比如典型以太网:

注意:

这里的 1500B 包括整个 IP 数据报,即 IP 首部 + IP 数据。

十二、分片最重要的三个字段

1. Identification 标识

同一个原始数据报产生的所有分片:

标识相同。

目的主机靠它判断:

这些分片是不是一家人?

模拟题里就有:

第一次 UDP 数据报分成 4 片,只收到后两片;重传后只收到前两片。能不能拼起来?

不能。

因为这是两次不同的 IP 数据报:

标识字段不同。

2. MF

More Fragment。

MF=1:后面还有
MF=0:最后一片

注意:

第一片、中间片通常 MF=1。

只有最后一片:

3. DF

Don't Fragment。

DF=1:禁止分片
DF=0:允许分片

十三、片偏移 —— 最容易算错

片偏移单位:

不是 1B。

因此:

注意是:

数据部分的位置,不包括 IP 首部。

十四、分片通用算法

假设:

  • 原 IP 数据报总长度
  • IP 首部长度
  • 链路 MTU 为

每一个非最后分片允许携带的最大数据量:

这是建议你直接记住的公式。

为什么还要除 8 再乘 8?

因为除最后一片之外:

数据长度必须是 8B 整数倍。

例题

原数据报:

首部:

所以原数据:

MTU:

每片最多:

而:

所以很好。

数据分:

1480
1480
1020

第一片

数据:

总长度:

片偏移:

MF:

第二片

前面已经有 1480B:

MF:

总长:

第三片

前面已经有:

所以:

最后一片:

总长度:

最终表:

片数据总长OffsetMF
11480150001
2148015001851
3102010403700

和资料示例一致。

十五、谁负责分片、谁负责重组?

IPv4:

源主机:可以分片
中间路由器:可以继续分片
目的主机:重组

重点:

中间路由器绝不重组。

否则:

分片可能走不同路线

路由器没办法确定后面的分片都会经过它。

408 模拟资料也专门强调:

IP 分片重组属于目的主机网络层的工作,而乱序 TCP 数据则由传输层重新排序。

十六、IPv4 地址 —— 一定理解“接口”

IPv4:

最重要的一句话:

IP 地址严格来说标识的是网络接口,不是整台主机。

例如一个路由器:

        R
      /   \
接口1       接口2
IP1         IP2

会有多个 IP 地址。

因为每个接口处于不同网络。

十七、传统 A/B/C 类

现在实际网络更多使用 CIDR,但考试仍然要会。

类第一字节默认前缀
A1~126/8
B128~191/16
C192~223/24
D224~239多播
E240~255保留

几个特殊地址:

网络地址

主机号全 0。

例如:

192.168.1.0/24

广播地址

主机号全 1:

192.168.1.255/24

环回

127.x.x.x

未指定地址

0.0.0.0

DHCP 初始阶段常用。

受限广播

255.255.255.255

十八、子网掩码 —— ★★★★★

这是你做网络层计算题的核心工具。

假设:

IP:
192.168.1.130

掩码:
255.255.255.192

二进制:

192 = 11000000

因此掩码:

11111111.11111111.11111111.11000000

也就是:

网络地址怎么求?

公式:

130:

10000010

192:

11000000

AND:

10000000 = 128

所以网络地址:

192.168.1.128/26

十九、一个前缀有多少地址?

若前缀:

主机位:

地址总数:

传统情况下可用主机地址数:

减掉:

  • 网络地址;
  • 广播地址。

例如:

主机位:

总地址:

可用:

二十、快速算地址块:块大小法

这个方法非常适合考场。

例如掩码:

255.255.255.224

最后一个有效字节:

块大小:

所以网络地址按 32 跳:

0
32
64
96
128
160
192
224

即:

192.168.1.0/27
192.168.1.32/27
192.168.1.64/27
...

假设 IP:

192.168.1.77/27

77 落在:

64 ~ 95

因此:

网络地址 192.168.1.64
广播地址 192.168.1.95
可用地址 192.168.1.65 ~ 94

二十一、定长子网划分 FLSM —— ★★★★★

假设:

192.168.5.0/24

现在使用:

255.255.255.248

248:

11111000

所以:

原来:

借了:

位做子网号。

子网数:

剩余主机位:

每子网地址:

可用:

所以:

32 个子网,每子网最多 6 个可分配地址。

这正是资料列出的 2010 真题类型。

二十二、VLSM 变长子网划分 —— ★★★★★

这是现在非常重要的题型。

核心原则:

按需求从大到小分。

例如获得:

192.168.1.0/24

三个部门分别需要:

100
50
20

1. 100 台

找最小 :

所以前缀:

分:

192.168.1.0/25

范围:

0 ~ 127

2. 50 台

所以:

接着从 128 开始:

192.168.1.128/26

范围:

128 ~ 191

3. 20 台

所以:

接:

192.168.1.192/27

范围:

192 ~ 223

所以最终:

100台 → /25
50台  → /26
20台  → /27

最关键:

不要先给小子网分。

资料给出的 VLSM 示例也是按“先分配最大子网”的原则处理。

二十三、CIDR —— ★★★★★

CIDR 的核心:

不再死板地分 A/B/C 类。

而是:

IP地址/前缀长度

例如:

128.14.32.5/20

说明:

前 20 位:网络前缀
后 12 位:主机

掩码:

255.255.240.0

/20 地址范围怎么求?

第三字节掩码:

240

块大小:

32 落在:

32 ~ 47

所以:

网络地址:
128.14.32.0

广播地址:
128.14.47.255

总地址:

二十四、路由聚合 —— ★★★★★

也叫:

supernetting / route aggregation

核心思想:

多个连续小网络,用一个更大前缀表示。

例如:

206.1.0.0/17
206.1.128.0/17

前 16 位相同:

206.1

第 17 位不同。

所以可以聚合:

206.1.0.0/16

资料正是用这个例子解释路由聚合。

二十五、路由聚合题万能算法

给一组网络地址:

第一步

全部写成二进制。

第二步

从左向右找:

公共前缀。

第三步

公共前缀长度就是聚合后的 /n。

例如:

192.168.4.0
192.168.5.0
192.168.6.0
192.168.7.0

第三字节:

4 = 00000100
5 = 00000101
6 = 00000110
7 = 00000111

共同:

000001

前面已有:

这里再相同:

所以:

聚合:

192.168.4.0/22

二十六、最长前缀匹配 —— ★★★★★

这是 CIDR 转发题的灵魂。

假设路由表:

10.0.0.0/8     → R1
10.1.0.0/16    → R2
10.1.2.0/24    → R3
0.0.0.0/0      → R4

目的:

10.1.2.100

它同时匹配:

/8
/16
/24
/0

应该选:

/24 → R3

原则:

前缀最长 = 范围最小 = 信息最具体。

资料称之为“最长前缀匹配/最佳匹配”。

二十七、特殊路由

主机路由

某一台具体主机:

192.168.1.7/32

前缀最长:

所以优先级很高。

默认路由

0.0.0.0/0

匹配所有地址。

但:

优先级最低。

可以理解:

实在找不到路了,就往这里发。

二十八、直接交付 vs 间接交付

假设 A 发给 B。

A 首先判断:

和:

是否相同。

相同

同子网:

A
 ↓ ARP查B
B

直接获取 B 的 MAC。

不相同

跨网:

A
 ↓
默认网关
 ↓
其他路由器
 ↓
B

A 此时:

ARP 查询的不是 B 的 MAC。

而是:

默认网关接口的 MAC。

这是超级高频易错点。

二十九、NAT —— ★★★★

NAT 解决:

私有地址如何共享少数公网 IP 上网。

三个私有地址块必须背:

10.0.0.0/8

172.16.0.0/12
即 172.16.0.0 ~ 172.31.255.255

192.168.0.0/16

资料指出这些私有地址不能直接在公网路由,而要通过 NAT 映射成公网地址。

三十、PAT/NAPT 的本质

例如:

内网:
10.0.0.1:3345

公网:
138.76.29.7

NAT 可以改成:

138.76.29.7:5001

建立:

10.0.0.1:3345
        ↕
138.76.29.7:5001

服务器返回:

138.76.29.7:5001

NAT 查表:

↓
10.0.0.1:3345

所以:

一个公网 IP 可以依靠大量不同端口映射许多内网连接。

普通路由器转发一般不修改端到端 IP 地址;NAT 路由器会修改地址,并通常还会涉及端口,因此功能涉及网络层和传输层信息。

三十一、ARP —— ★★★★★

ARP 解决:

已经知道下一跳 IP,但不知道下一跳 MAC。

所以可以记:

IP → MAC

资料将 ARP 工作原理、解析过程和跨局域网解析都列作高频考点。

三十二、ARP 完整过程

A:

IP_A
MAC_A

想找 B:

IP_B
MAC_B = ?

首先查:

ARP Cache

若没有:

ARP Request

目的 MAC:

FF:FF:FF:FF:FF:FF

广播:

“谁是 IP_B?请告诉 IP_A。”

整个广播域收到。

B 发现:

目标IP = 自己

于是返回:

ARP Reply

通常单播:

B → A

告诉:

IP_B ↔ MAC_B

A 存入 ARP Cache。

三十三、跨网络 ARP —— 必须彻底理解

假设:

H1 —— R1 —— R2 —— H4

H1 要发送给 H4。

H1 已知:

目的 IP = IP_H4

但 H4 不在同一网络。

所以 H1 不会问:

“IP_H4 的 MAC 是什么?”

因为 ARP 广播过不了路由器。

而是:

“我的默认网关 R1 的 MAC 是什么?”

于是第一跳帧:

源 MAC:MAC_H1
目的 MAC:MAC_R1

但 IP 数据报:

源 IP:IP_H1
目的 IP:IP_H4

到了 R1:

拆帧
↓
看 IP
↓
查路由
↓
找下一跳 R2
↓
ARP 找 R2 MAC
↓
重新封帧

第二跳:

源MAC:R1出口MAC
目的MAC:R2入口MAC

IP 仍是:

IP_H1 → IP_H4

最后:

R2 → H4

才解析 H4 的 MAC。

资料专门强调:每经过一台路由器,外层 MAC 帧的源、目的地址都可能改变。

三十四、需要形成的“跨网通信脑图”

这是整章最重要的综合理解:

应用数据
   ↓
TCP/UDP
   ↓
IP数据报
源IP = A
目的IP = B
   ↓
第一跳以太网帧
源MAC = A
目的MAC = 默认网关R1
   ↓
R1拆帧
   ↓
查目的IP
   ↓
R1重新封帧
源MAC = R1出口
目的MAC = R2入口
   ↓
R2
   ↓
……
   ↓
最后一跳
源MAC = 最后一台路由器
目的MAC = B

绝大多数普通情况下:

端到端:
源IP、目的IP基本不变

逐跳:
源MAC、目的MAC不断变化

另外:
TTL 每过一台路由器减1

NAT 是 IP 地址可能被修改的重要例外。

三十五、DHCP —— ★★★

解决:

新主机怎么自动得到 IP、掩码、网关、DNS?

DHCP:

应用层协议,使用 UDP。

模拟题也直接考过“DHCP 属于哪一层”,答案为应用层。

三十六、DHCP 四步:DORA

必须会:

Discover
Offer
Request
ACK

简称:

DORA

第一步 Discover

主机刚开机:

我是谁不知道
DHCP服务器是谁也不知道

所以:

源 IP:

0.0.0.0

目的:

255.255.255.255

广播。

第二步 Offer

DHCP Server:

“我可以给你 192.168.1.100。”

并提供:

  • IP;
  • 子网掩码;
  • 默认网关;
  • DNS;
  • 租期。

第三步 Request

客户端:

“我要接受这台 DHCP 服务器给我的地址。”

为什么仍常广播?

因为可能同时收到了:

Server A Offer
Server B Offer
Server C Offer

广播 Request 可以让其他 Server 知道:

我没有选择你们,可以释放预留资源。

第四步 ACK

服务器确认:

这个 IP 正式租给你。

三十七、DHCP 端口

常考:

Server:UDP 67
Client:UDP 68

三十八、ICMP —— ★★★★

ICMP:

Internet Control Message Protocol

功能:

网络层差错报告和控制。

它不是 TCP/UDP 上面的应用协议。

而是:

ICMP
 ↓
IP

即:

ICMP 报文封装在 IP 数据报中。

模拟题中就考到:ICMP 不由 TCP 提供服务,而是直接由 IP 承载。

三十九、ICMP 五类差错报告

资料列出的主要类型:

1. 终点不可达

无法到达目标。

2. 时间超过

典型:

也包括分片重组超时。

3. 参数问题

IP 首部字段有问题。

4. 重定向

路由器告诉主机:

“以后去那个网络别先给我,直接发给另一个更合适的路由器。”

5. 源点抑制

资料中保留这一传统 ICMP 类型,用于让源端降低发送速率。

四十、什么时候不能产生 ICMP 差错报告?

非常适合选择题。

资料列出:

  • ICMP 差错报告报文本身出错;
  • 非第一个 IP 分片;
  • 目的地址为广播或多播;
  • 某些特殊地址。

核心思想:

防止 ICMP 错误导致新的 ICMP 错误,无限套娃。

四十一、PING 原理

PING:

ICMP Echo Request
        ↓
ICMP Echo Reply

主要测试:

  • 主机是否可达;
  • RTT。

注意:

ping 不用 TCP,也不用 UDP。

四十二、Traceroute 原理

非常经典。

先发:

第一台路由器:

TTL 1→0
丢弃
返回 ICMP 时间超过

于是知道第一跳。

再:

第二台返回。

然后:

这样逐跳得到路径。

四十三、IPv6 —— 中等重点

IPv6 地址:

IPv4:

所以地址空间扩大:

倍。

四十四、IPv6 相比 IPv4 的重点变化

资料总结得非常适合考试:

IPv6 基本首部固定

IPv4:

20~60B

IPv6 取消首部校验和

为什么?

路由器每跳都要改 Hop Limit。

如果存在首部校验和:

每经过一跳
↓
修改首部
↓
重算校验和

很浪费。

所以 IPv6 去掉。

IPv6 路由器不负责分片

IPv6:

只有源主机分片。

不同于 IPv4。

TTL 改名

IPv4:

TTL

IPv6:

Hop Limit

更准确。

Protocol 改为

Next Header

因为它可能指向:

扩展首部

也可能直接指向:

TCP
UDP
ICMPv6

资料指出 IPv6 基本首部固定 40B、取消首部检验和,且路由器不再分片。

四十五、IPv6 地址书写

128 bit:

xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx

8 组,每组:

前导零可以省

039A → 39A
000A → A

但是:

只能省前导零。

比如:

D000

不能写:

D0

因为值已经变了。

连续全 0 组

可以:

::

例如:

4BF5:0:0:0:BA5F:39A:A:2176

写成:

4BF5::BA5F:39A:A:2176

一个 IPv6 地址:

:: 最多只能出现一次。

否则无法恢复到底省略了几组。

四十六、IPv6 三种通信地址

单播

一对一

多播

一对多

任播

一个地址代表一组节点
但只交给其中“最近”的一个

任播是 IPv6 中很重要的新概念。

四十七、IPv4 → IPv6 过渡

两个重点:

双协议栈

设备同时:

IPv4
+
IPv6

根据目标选择。

隧道

IPv6 网络之间隔着 IPv4 网络:

IPv6
  ↓
封装进 IPv4
  ↓
穿越 IPv4 网络
  ↓
解封装
  ↓
IPv6

资料把双协议栈和隧道技术列为主要过渡策略。

四十八、4.4 路由算法 —— 第二核心

这一块的总框架:

动态路由
│
├─ Distance Vector
│      ↓
│  Bellman-Ford
│      ↓
│     RIP
│
└─ Link State
       ↓
    Dijkstra
       ↓
      OSPF

不同AS之间:
BGP

资料明确说明,DV 基于 Bellman-Ford,LS 需要掌握全网拓扑并使用 Dijkstra。

四十九、静态路由 vs 动态路由

静态

管理员手工填:

Network X → Router Y

优点:

  • 简单;
  • 无协议开销。

缺点:

  • 网络变了不会自动调整。

动态

路由器自己交换信息。

例如:

链路断了
↓
协议检测
↓
重新计算
↓
更新路由表

适合大型网络。

五十、距离向量算法 DV —— ★★★★★

Distance Vector:

每个路由器不需要知道完整网络拓扑。

只需要知道:

  1. 我的邻居是谁;
  2. 到邻居费用多少;
  3. 邻居告诉我:“它到各目标多远”。

核心 Bellman-Ford:

意思:

x 去 y,可以先经过某个邻居 。

把:

x→v

的成本:

加上邻居告诉你的:

v→y

成本:

然后所有邻居中取最小。

五十一、DV 举例

假设:

      2
 X ------- Y
  \       /
   \7   1/
    \   /
      Z

X 到 Z:

直接:

通过 Y:

所以:

下一跳:

Y

这就是 DV 的本质。

五十二、链路状态算法 LS —— ★★★★★

Link State:

每个路由器最终都知道完整拓扑。

每台路由器先告诉大家:

我连接谁?
每条链路代价是多少?

通过:

洪泛 Flooding

传播到整个区域。

于是大家得到相同:

LSDB
链路状态数据库

之后每台路由器自己运行:

Dijkstra

得到最短路径树。

五十三、Dijkstra 在网络中的做法

假设从节点 出发。

维护:

N':已确定最短路径的节点集合
D(v):当前到v的最小估计距离

初始化:

对于与 直接相连的:

其余:

重复:

第一步

从未确定节点中选:

最小的 。

加入:

第二步

松弛:

直到所有节点处理完成。

五十四、DV vs LS

DVLS
典型RIPOSPF
算法Bellman-FordDijkstra
拓扑知识只知道邻居提供信息完整拓扑
信息发送给邻居洪泛到整个区域
信息内容距离向量/路由信息自己的链路状态
收敛较慢较快
路由环路可能较少
适合小网络大网络

五十五、为什么要自治系统 AS?

Internet 太大。

不可能:

全世界所有路由器运行一个算法,共享所有详细拓扑。

所以划成:

AS1
AS2
AS3
……

AS:

Autonomous System,自治系统。

AS 内

使用:

IGP

例如:

RIP
OSPF

AS 间

使用:

EGP

现在最重要:

BGP

五十六、RIP —— ★★★★★

RIP:

Routing Information Protocol

典型:

Distance Vector。

1. 距离单位

RIP 用:

跳数。

经过一个路由器:

2. 最大距离

最大有效:

所以:

这是经典考点。

3. RIP 使用 UDP

RIP:

应用层协议
↓
UDP

端口:

这个和 OSPF、BGP 特别爱一起考。模拟资料也专门提醒:不能笼统说 RIP、OSPF、BGP 都是网络层协议。

五十七、RIP 路由表更新算法 —— 一定掌握

假设:

R1 收到相邻 R2 的 RIP 表

第一步:

所有距离先 +1。

因为从 R1 去任何 R2 报告的网络,首先要走:

R1 → R2

然后对于目的网络 :

情况 1:我没有 N

直接加入。

情况 2:原本也是通过 R2

无论新距离:

更大
还是
更小

都更新。

因为:

我的这条路本来就依赖 R2,R2 告诉我状态变了,我就应该相信最新信息。

这个是最容易做错的地方。

情况 3:原下一跳不是 R2

比较:

新路线 < 原路线

才替换。

情况 4

新路线不更好:

不更新。

五十八、资料中的 RIP 题

R1 原表:

网络距离下一跳
100直接
207R2
304R2

R2 发来:

网络距离
103
204
303

先:

得到:

10 → 4
20 → 5
30 → 4

但是:

10

本地直连:

不会换成 4。

20

原本下一跳就是 R2。

所以即便:

更新。

30

也是 R2:

保持 4。

结果:

0, 5, 4

答案 D。资料中的模拟选择题正是这类 RIP 更新题。

五十九、RIP 最大问题:坏消息传播慢

假设:

R1 —— N
 |
R2

原来:

R1 到 N = 4
R2 到 N = 5,经R1

后来 N 断了。

R1:

N不可达

但是 R2 还不知道,告诉 R1:

“我到 N 距离 5。”

R1 误以为:

“那我可以经过 R2 去 N。”

于是:

随后 R2 又听 R1 说:

于是认为:

循环:

6
7
8
9
...
16

直到:

才认定不可达。

这叫:

count to infinity,无穷计数。

资料称:

好消息传播快,坏消息传播慢。

六十、OSPF —— ★★★★★

OSPF:

Open Shortest Path First

采用:

链路状态算法
+
Dijkstra

OSPF 和 RIP 的关键区别

RIP

告诉邻居:

“我到所有网络分别多远。”

OSPF

告诉大家:

“我直接连接了哪些邻居,这些链路代价是多少。”

非常重要。

六十一、OSPF 信息传播

OSPF 使用:

洪泛。

假如 R1 产生新链路状态:

R1
↓ ↓ ↓
邻居
↓ ↓ ↓
邻居的邻居
...

直到区域内所有路由器都拥有副本。

最终:

所有路由器 LSDB 基本一致

然后每台自己运行 Dijkstra。

六十二、OSPF 不走 UDP/TCP

OSPF:

直接封装在 IP 中。

IP Protocol:

对比:

RIP → UDP 520
OSPF → IP protocol 89
BGP → TCP 179

这张表一定背。

六十三、OSPF 为什么适合大网络?

因为:

  1. 收敛快;
  2. 没有 RIP 15 跳限制;
  3. 链路变化立即传播;
  4. 支持 CIDR/VLSM;
  5. 支持区域 Area;
  6. 可做等价路径负载均衡。

模拟资料也把 RIP 与 OSPF 的区别整理为:RIP 适合规模较小、较稳定网络;OSPF 更适合大型、动态网络。

六十四、OSPF Area

大 AS 仍然太大。

所以:

AS
│
├─ Area 1
├─ Area 2
├─ Area 3
└─ Backbone Area

核心:

链路状态洪泛限制在区域内部。

否则所有路由器频繁向整个 AS 洪泛,开销太大。

六十五、OSPF 五种报文 —— 选择题高频

按工作流程理解,不要死背。

Hello

你还活着吗?
我是你的邻居。

发现/维护邻居。

DD

Database Description。

这是我数据库的大纲。

不是完整内容。

LSR

Link State Request。

你这个LSA我没有/太旧,给我完整版本。

LSU

Link State Update。

这是你要的完整链路状态信息。

核心更新报文。

LSAck

我收到了。

确认。

所以顺序逻辑:

Hello
↓
DD
↓
LSR
↓
LSU
↓
LSAck

六十六、BGP —— ★★★★

BGP:

Border Gateway Protocol

作用:

不同 AS 之间交换路由。

BGP 为什么不能简单用 Dijkstra?

因为 AS 之间不仅考虑技术性能。

还考虑:

  • 商业;
  • 政策;
  • 安全;
  • 运营商关系;
  • 哪些 AS 可以经过。

所以 BGP 的目标不是:

数学意义上的绝对最短。

而是:

策略允许条件下的一条较好的、可达、无环路径。

六十七、BGP 是路径向量

RIP:

距离向量

OSPF:

链路状态

BGP:

路径向量

核心属性:

AS-PATH
NEXT-HOP

资料明确把 BGP 定义为基于 TCP 的应用层路径向量协议。

六十八、AS-PATH 为什么能防环?

假设路由:

AS1 → AS2 → AS3 → X

AS-PATH:

AS1 AS2 AS3

如果 AS2 收到一个路由通告,发现:

AS-PATH 已经含有 AS2

说明:

这条路会绕回来。

直接拒绝。

六十九、BGP 使用 TCP

端口:

所以三大协议:

协议类型算法承载
RIPIGPDVUDP 520
OSPFIGPLSIP 89
BGPEGPPath VectorTCP 179

这张表价值非常高。

七十、eBGP 与 iBGP

eBGP

不同 AS:

AS1 ↔ AS2

iBGP

同一 AS 内部,把外部 BGP 路由传播给本 AS 的其他 BGP 路由器。

所以:

BGP 不只是“边界路由器之间有一个协议”这么简单。

AS 内部也需要 iBGP。

七十一、BGP 路由选择

按资料的考研框架,主要顺序理解成:

第一

优先:

LOCAL-PREF 更高。

代表管理员的策略。

第二

若本地偏好相同:

AS-PATH 更短。

第三

仍相同:

热土豆路由。

即:

尽快把数据丢出自己的 AS。

利用 IGP 比较到不同出口的代价。

第四

最后还相同:

进一步根据标识等规则决策。

对于 408,理解前面三项尤其重要。

七十二、BGP 四种报文

Open

建立 BGP 会话。

Update

增加/撤销路由。

Keepalive

保持连接。

Notification

报告错误。

记:

Open → 建关系
Update → 说路由
Keepalive → 还活着
Notification → 出错了

七十三、RIP / OSPF / BGP 一张终极表

RIPOSPFBGP
范围AS 内AS 内AS 间为核心
类型IGPIGPEGP
算法距离向量链路状态路径向量
底层UDPIPTCP
端口/协议号UDP 520IP 89TCP 179
度量跳数链路代价策略、AS-PATH 等
最大跳数15无 RIP 式限制不这样衡量
信息交换邻居区域内洪泛BGP 对等体
内容路由信息/距离向量直连链路状态BGP 路由、AS-PATH 等
收敛慢快强调策略稳定性
典型规模小大Internet AS 间

资料中的模拟题也集中考这些区别。

七十四、IP 多播 —— 理解即可

单播:

服务器 → A
服务器 → B
服务器 → C

发三份。

多播:

          ┌→ A
服务器 → 网络
          ├→ B
          └→ C

服务器只需发一份。

在分叉处复制。

七十五、IPv4 多播地址

D 类:

224.0.0.0
~
239.255.255.255

即:

注意:

多播地址只能作为目的地址。

不能作为源地址。

七十六、IP 多播和 MAC 多播映射

以太网多播 MAC 范围前缀:

01-00-5E

IPv4 多播有:

位标识组。

MAC 这里只映射:

位。

因此:

个不同 IP 多播地址:

可能映射到同一个 MAC 多播地址。

因此收到 MAC 多播帧后:

IP 层还要进一步检查目的 IP。

资料对此给出了完整映射说明。

七十七、IGMP

IGMP:

管理主机加入、离开多播组。

它回答的是:

“这个局域网里还有没有某个组的成员?”

不是:

“全互联网某个组到底有多少成员?”

这是典型辨析。

七十八、移动 IP —— 理解

核心问题:

假设手机/笔记本:

网络 A
↓
移动
↓
网络 B

普通 DHCP:

IP地址也变化

但 TCP 连接会因为 IP 变化而受到影响。

移动 IP 希望:

移动以后仍保留永久地址。

七十九、三个实体

Mobile Node

移动节点。

Home Agent

归属代理。

Foreign Agent

外地代理。

八十、移动 IP 通信过程

假设移动主机永久 IP:

131.8.6.7

现在跑到另一个网络。

获得:

Care-of Address,转交地址。

归属代理记录:

永久IP
↓
现在实际在哪里
↓
转交地址

外部主机 B 仍然发给:

永久IP

分组先到:

Home Agent

然后:

封装
↓
IP隧道
↓
Foreign Agent
↓
解封装
↓
移动主机

资料将这个过程概括为“邮件转寄”模型。

八十一、路由器 —— ★★★★

路由器内部核心:

       路由选择处理机
         控制平面
             │
          路由表
             ↓
          转发表
             │
输入端口 → 交换结构 → 输出端口
             数据平面

资料明确把路由器分为路由选择/控制平面和分组转发/数据平面。

八十二、路由器收到一个帧到底做什么?

假设:

以太网帧

进入路由器。

1. 物理层

接收比特。

2. 数据链路层

检查帧,并:

去掉 MAC 帧头/帧尾

得到:

IP 数据报

3. 网络层

读取:

目的 IP

查转发表。

TTL:

必要时更新 IPv4 首部校验和。

4. 找下一跳

得到:

下一跳IP

5. ARP

得到:

下一跳MAC

6. 重新封装

新的:

MAC帧

7. 输出

从对应接口发送。

八十三、交换机与路由器:广播域/冲突域

集线器

不能隔离冲突域
不能隔离广播域

交换机

每端口一个冲突域
但默认不隔离广播域

路由器

隔离冲突域
隔离广播域

因此:

路由器每个接口通常属于不同广播域。

资料也把冲突域/广播域作为 2010、2020 的考点。

八十四、整章最重要的综合通信过程

假设:

H1
|
SW1
|
R1
|
R2
|
SW2
|
H2

H1 向 H2 发 TCP 数据。

你做综合题时按下面顺序分析。

第一步:H1 判断 H2 是否同网段

计算:

和:

若不同:

发给默认网关 R1。

八十五、第二步:H1 ARP 默认网关

H1 不知道 R1 MAC:

ARP Request

交换机:

广播

R1 回复:

ARP Reply
单播

H1 得到:

IP_R1 ↔ MAC_R1

八十六、第三步:第一跳帧

IP:

Src IP = H1
Dst IP = H2

MAC:

Src MAC = H1
Dst MAC = R1

八十七、第四步:R1 转发

R1:

拆 MAC 帧
↓
读取 H2 的 IP
↓
查路由表
↓
最长前缀匹配
↓
找到下一跳 R2
↓
ARP 找 R2 MAC

新的 MAC:

Src MAC = R1出口
Dst MAC = R2

而 IP 仍然是:

H1 → H2

TTL:

八十八、第五步:R2 到目的 LAN

R2 判断:

H2网络是直连

ARP:

H2 IP → H2 MAC

最后一跳:

Src MAC = R2
Dst MAC = H2

Src IP = H1
Dst IP = H2

最终送到 H2。

八十九、如果中间有 NAT?

那么会出现额外变化:

普通路由:

IP 源/目的地址一般保持

NAT:

会修改 IP 地址
甚至修改 TCP/UDP 端口

所以遇到综合题一定先看:

有没有 NAT。

九十、整章最值得熟练到“秒杀”的计算公式

1. 主机位

2. 地址块大小

3. 普通可分配主机数

4. 从原 /m 借 位

新前缀:

子网数:

5. 网络地址

6. IPv4 分片每片最大数据

7. 片偏移

8. 距离向量

九十一、几个特别容易错的点

错误 1

ARP 查最终目的主机 MAC。

只有同一广播域才是。

跨网:

查下一跳 MAC。

错误 2

IP 地址标识主机。

更准确:

标识接口。

错误 3

MAC 地址端到端不变。

反了。

通常:

MAC逐跳变
IP端到端基本不变

错误 4

路由器重组 IPv4 分片。

不。

目的主机重组。

错误 5

MF=0 表示没分片。

不一定。

它只表示:

后面没有更多分片。

最后一个分片同样是:

错误 6

Offset 单位是 B。

错:

错误 7

RIP 的 16 跳还能到。

不。

错误 8

RIP、OSPF、BGP 都用 UDP/TCP。

不。

RIP → UDP
OSPF → IP
BGP → TCP

错误 9

默认路由优先匹配。

恰恰相反。

是最短前缀:

最后兜底。

错误 10

最长前缀匹配选网络最大的。

恰恰相反:

前缀越长
↓
地址块越小
↓
路由越精确
↓
越优先

九十二、408 复习优先级

如果准备考试,建议这一章分三档。

第一档:必须做到计算题基本不失分

  1. 子网掩码;
  2. CIDR;
  3. 网络地址、广播地址;
  4. FLSM;
  5. VLSM;
  6. 路由聚合;
  7. 最长前缀匹配;
  8. IPv4 分片;
  9. 路由表转发;
  10. RIP 更新算法。

这些是全章真正的核心。

第二档:必须能够画出完整通信过程

  1. ARP;
  2. 跨网 ARP;
  3. 默认网关;
  4. IP 地址与 MAC 地址变化;
  5. NAT;
  6. DHCP;
  7. ICMP;
  8. RIP/OSPF/BGP。

尤其要能够回答:

“H1 给不同网段的 H2 发一个 HTTP/TCP/IP 数据,DNS、ARP、交换机、路由器、MAC、IP、TCP 分别发生什么?”

这类题可以横跨网络几乎所有章节。

第三档:选择题级理解

  1. SDN;
  2. IPv6;
  3. IP 多播;
  4. IGMP;
  5. 移动 IP。

不需要像子网划分一样大量算题,但概念不能混。

九十三、最后用一张“大图”把第 4 章串起来

应用要把数据发给另一台主机
              │
              ▼
       得到目的 IP 地址
              │
              ▼
      判断是否处于同一子网
      IP AND Mask 比较
          /           \
        是             否
        │              │
        │          下一跳=默认网关
        │              │
        └──────┬───────┘
               ▼
       ARP:下一跳IP→MAC
               │
               ▼
          封装 MAC 帧
               │
               ▼
             发送
               │
               ▼
             路由器
               │
        解开链路层帧
               │
               ▼
        读取目的 IP 地址
               │
               ▼
        TTL = TTL - 1
               │
               ▼
   查路由表 / 最长前缀匹配
               │
               ▼
         得到下一跳 IP
               │
               ▼
          ARP 获取 MAC
               │
               ▼
        重新封装 MAC 帧
               │
               ▼
            下一路由器
               │
              ...
               │
               ▼
          目的主机所在 LAN
               │
               ▼
        ARP 得到目的 MAC
               │
               ▼
           最终交付主机

这张流程如果真正理解,第 4 章至少有一半已经打通了。

资料本章的总结也特别强调了两个关键联系:一是路由表给出下一跳 IP 后,还需要 ARP 将它解析为 MAC 地址;二是路由器转发时会解封装输入链路的帧、处理 IP 数据报,再针对下一链路重新封装,因此它能够互连底层技术不同的网络。

最需要反复练的顺序建议是:

把这 7 组题型吃透,第 4 章就从“知识很多很杂”变成了一套非常有规律的地址计算 + 逐跳转发 + 路由生成体系。

On this page

一、先建立整章框架二、4.1 网络层到底负责什么?1. 路由选择 Routing2. 分组转发 Forwarding三、异构网络互连四、数据报服务 vs 虚电路服务1. 数据报2. 虚电路3. 必考对比五、SDN:控制平面和数据平面三类接口北向接口南向接口东西向接口六、拥塞控制流量控制拥塞控制七、4.2 IPv4 —— 本章核心八、IPv4 数据报首部1. 三个“长度单位”是大坑2. 首部长度九、TTL —— 高频十、协议字段十一、IPv4 分片 —— ★★★★★1. 为什么分片?2. MTU 是什么?十二、分片最重要的三个字段1. Identification 标识2. MF3. DF十三、片偏移 —— 最容易算错十四、分片通用算法例题第一片第二片第三片十五、谁负责分片、谁负责重组?十六、IPv4 地址 —— 一定理解“接口”十七、传统 A/B/C 类网络地址广播地址环回未指定地址受限广播十八、子网掩码 —— ★★★★★网络地址怎么求?十九、一个前缀有多少地址?二十、快速算地址块:块大小法二十一、定长子网划分 FLSM —— ★★★★★二十二、VLSM 变长子网划分 —— ★★★★★1. 100 台2. 50 台3. 20 台二十三、CIDR —— ★★★★★/20 地址范围怎么求?二十四、路由聚合 —— ★★★★★二十五、路由聚合题万能算法第一步第二步第三步二十六、最长前缀匹配 —— ★★★★★二十七、特殊路由主机路由默认路由二十八、直接交付 vs 间接交付相同不相同二十九、NAT —— ★★★★三十、PAT/NAPT 的本质三十一、ARP —— ★★★★★三十二、ARP 完整过程ARP RequestARP Reply三十三、跨网络 ARP —— 必须彻底理解三十四、需要形成的“跨网通信脑图”三十五、DHCP —— ★★★三十六、DHCP 四步:DORA第一步 Discover第二步 Offer第三步 Request第四步 ACK三十七、DHCP 端口三十八、ICMP —— ★★★★三十九、ICMP 五类差错报告1. 终点不可达2. 时间超过3. 参数问题4. 重定向5. 源点抑制四十、什么时候不能产生 ICMP 差错报告?四十一、PING 原理四十二、Traceroute 原理四十三、IPv6 —— 中等重点四十四、IPv6 相比 IPv4 的重点变化IPv6 基本首部固定IPv6 取消首部校验和IPv6 路由器不负责分片TTL 改名Protocol 改为四十五、IPv6 地址书写前导零可以省连续全 0 组四十六、IPv6 三种通信地址单播多播任播四十七、IPv4 → IPv6 过渡双协议栈隧道四十八、4.4 路由算法 —— 第二核心四十九、静态路由 vs 动态路由静态动态五十、距离向量算法 DV —— ★★★★★五十一、DV 举例五十二、链路状态算法 LS —— ★★★★★五十三、Dijkstra 在网络中的做法第一步第二步五十四、DV vs LS五十五、为什么要自治系统 AS?AS 内AS 间五十六、RIP —— ★★★★★1. 距离单位2. 最大距离3. RIP 使用 UDP五十七、RIP 路由表更新算法 —— 一定掌握情况 1:我没有 N情况 2:原本也是通过 R2情况 3:原下一跳不是 R2情况 4五十八、资料中的 RIP 题102030五十九、RIP 最大问题:坏消息传播慢六十、OSPF —— ★★★★★OSPF 和 RIP 的关键区别RIPOSPF六十一、OSPF 信息传播六十二、OSPF 不走 UDP/TCP六十三、OSPF 为什么适合大网络?六十四、OSPF Area六十五、OSPF 五种报文 —— 选择题高频HelloDDLSRLSULSAck六十六、BGP —— ★★★★BGP 为什么不能简单用 Dijkstra?六十七、BGP 是路径向量六十八、AS-PATH 为什么能防环?六十九、BGP 使用 TCP七十、eBGP 与 iBGPeBGPiBGP七十一、BGP 路由选择第一第二第三第四七十二、BGP 四种报文OpenUpdateKeepaliveNotification七十三、RIP / OSPF / BGP 一张终极表七十四、IP 多播 —— 理解即可七十五、IPv4 多播地址七十六、IP 多播和 MAC 多播映射七十七、IGMP七十八、移动 IP —— 理解七十九、三个实体Mobile NodeHome AgentForeign Agent八十、移动 IP 通信过程八十一、路由器 —— ★★★★八十二、路由器收到一个帧到底做什么?1. 物理层2. 数据链路层3. 网络层4. 找下一跳5. ARP6. 重新封装7. 输出八十三、交换机与路由器:广播域/冲突域集线器交换机路由器八十四、整章最重要的综合通信过程第一步:H1 判断 H2 是否同网段八十五、第二步:H1 ARP 默认网关八十六、第三步:第一跳帧八十七、第四步:R1 转发八十八、第五步:R2 到目的 LAN八十九、如果中间有 NAT?九十、整章最值得熟练到“秒杀”的计算公式1. 主机位2. 地址块大小3. 普通可分配主机数4. 从原 /m 借 位5. 网络地址6. IPv4 分片每片最大数据7. 片偏移8. 距离向量九十一、几个特别容易错的点错误 1错误 2错误 3错误 4错误 5错误 6错误 7错误 8错误 9错误 10九十二、408 复习优先级第一档:必须做到计算题基本不失分第二档:必须能够画出完整通信过程第三档:选择题级理解九十三、最后用一张“大图”把第 4 章串起来