路由器的组成、路由表与分组转发
路由器是一种具有多个输入/输出端口的专用计算机,其任务是连接不同的网络(连接异构网络)并完成分组转发。在多个逻辑网络(多个广播域)互连时必须使用路由器(路由器的功能 2010 年考过)。
本页是第 4 章的收尾:4.1.2 讲了路由器的两个功能,这里讲这两个功能分别由路由器的哪部分实现;4.2.4 讲了转发算法,这里给出标准路由表的四列格式。本页 3 道错题都在问”路由器能做什么、不能做什么”。
机制
4.7.2 路由器的功能
当源主机向目标主机发送数据报时,路由器先检查源主机与目标主机是否连接在同一个网络上。若源主机和目标主机在同一个网络上,则直接交付而无须通过路由器;若源主机和目标主机不在同一个网络上,则路由器按照转发表(由路由表得出)指出的路由将分组转发给下一个路由器,这称为间接交付。可见,在同一个网络中传递数据无须路由器的参与,而跨网络通信必须通过路由器进行转发。例如,路由器可以连接不同的 LAN,连接不同的 VLAN,连接不同的 WAN,或者把 LAN 和 WAN 互连起来。路由器隔离了广播域。
错题复盘:远处的两个局域网互连,要用路由器,还要用广域网技术
王道 4.7.4 第 4 题:一个局域网与在远处的另一个局域网互连,则需要用到(A. 物理通信介质和集线器 B. 网间连接器和集线器 C. 路由器和广域网技术 D. 广域网技术)。答案 C。
局域网的互连需要路由器作为连接设备,同时是远程的局域网,因此要用到广域网技术。两个条件缺一不可:只有广域网技术(D),两个局域网之间没有做网络互连的设备;集线器(A、B)是物理层设备,只能把一个网络扩大,谈不上互连两个网络,更无法跨越远距离。
“局域网之间走广域网”的一种具体形式,就是第 3 章的 PPP 链路:路由器之间用点对点的广域网链路相连(3.7)。
路由器的组成
从结构上看,路由器由路由选择和分组转发两部分构成;而从模型的角度看,路由器是网络层设备,它实现了网络模型的下三层,即物理层、数据链路层和网络层。
flowchart TB subgraph RS["路由选择部分(控制部分)"] RP["路由选择处理机<br/>运行路由选择协议 → 路由表"] end subgraph FW["分组转发部分"] direction LR IN["输入端口<br/>1 → 2 → 3"] --> SF["交换结构<br/>(按转发表处理分组)"] SF --> OUT["输出端口<br/>3 → 2 → 1"] end RP -- "由路由表得出转发表" --> SF
路由选择部分也称控制部分,核心构件是路由选择处理机,其任务是根据所选定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断更新和维护路由表。
错题复盘:计算路由信息的是路由选择处理机,交换结构只按转发表搬运分组
王道 4.7.4 第 10 题:路由器中计算路由信息的是(A. 输入队列 B. 输出队列 C. 交换结构 D. 路由选择处理机)。答案 D。
路由选择处理机的任务是根据所选定的路由选择协议构造路由表,同时经常或定期地与相邻路由器交换路由信息而不断地更新和维护路由表——“计算路由”就是它的工作。
交换结构属于分组转发部分,它根据转发表把分组从输入端口送到输出端口,只查表、不算表;输入队列、输出队列是端口中暂存分组的缓冲。这道题实际是在问 4.1.2 的控制平面与数据平面各对应路由器的哪个部件(4.1.4)。
分组转发部分由三部分组成:交换结构、一组输入端口和一组输出端口。交换结构也称交换组织,其作用是根据转发表对分组进行处理,将某个输入端口进入的分组从一个合适的输出端口转发出去。交换结构本身就是一个”在路由器中的网络”。
路由器的端口中都有物理层、数据链路层和网络层的处理模块。输入端口在物理层接收比特流,在数据链路层提取出帧,剥去帧的首部和尾部后,分组就被送入网络层的处理模块;输出端口执行相反的操作。端口在网络层的处理模块中都设有一个缓冲队列,用来暂存等待处理或已处理完毕待发送的分组,还可用来进行必要的差错检测。若分组处理的速率赶不上分组进入队列的速率,就会使后面进入队列的分组因缓冲区满而只能被丢弃。 需要说明的是,路由器的端口一般都具有输入和输出的功能,王道的结构图中分别画出输入和输出端口是为了更容易理解。
4.7.3 路由表与分组转发
路由表是根据路由选择算法得出的,主要用途是路由选择。从历年统考真题可以看出,标准的路由表有 4 个项目:目的网络 IP 地址、子网掩码、下一跳 IP 地址、接口(根据网络拓扑并利用路由聚合构造出路由表 2009、2013 年考过)。
例(路由表转发分组的分析 2014 年考过):路由器 R2 通过接口 L1(131.34.6.1/16)连接互联网,通过接口 E1 连接局域网 1(202.114.3.0/24),通过接口 L0(202.114.2.2/24)与路由器 R1 的接口 L0(202.114.2.1/24)相连;R1 通过接口 E1 连接局域网 2(202.114.1.0/24)。
flowchart LR I(("互联网")) ---|"L1 131.34.6.1/16"| R2{{"R2"}} L1N(("局域网 1<br/>202.114.3.0/24")) ---|E1| R2 R2 ---|"L0 202.114.2.2/24 ↔ L0 202.114.2.1/24"| R1{{"R1"}} R1 ---|E1| L2N(("局域网 2<br/>202.114.1.0/24"))
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 |
与 R1 直接相连的两个网络,下一跳写”—“,从对应接口直接交付;局域网 1 和互联网都要经过 R2,下一跳是 R2 靠近 R1 一侧的接口地址 202.114.2.2。
转发表是从路由表得出的,其表项和路由表项有直接的对应关系,但转发表的格式和路由表的格式不同,其结构应使查找过程最优化(而路由表则需对网络拓扑变化的计算最优化)。转发表中含有一个分组将要发往的目的网络,以及分组的下一跳(下一步接收者的目的地址,实际为 MAC 地址)。转发表中还可设置一条默认路由,只要目的网络不在转发表中,就一律选择默认路由转发,默认路由表项的匹配优先级最低。路由表总是用软件来实现的;转发表可以用软件来实现,甚至也可以用特殊的硬件来实现。
注意转发和路由选择的区别:“转发”是路由器根据转发表把收到的 IP 数据报从合适的端口转发出去,它仅涉及一个路由器;而”路由选择”则涉及很多路由器,路由表是许多路由器协同工作的结果。这些路由器按照复杂的路由算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由,并由此构造出整个路由表。
路由表不等于转发表,分组的实际转发是靠直接查找转发表,而不是查找路由表。
边界
下一跳是相邻路由器上与本路由器同一网络的那个接口的地址。 R2 有三个接口,R1 路由表里的下一跳只能是 202.114.2.2,因为只有它和 R1 的 L0 在同一个网络上。
路由器实现下三层,不是只实现网络层。 它的每个端口都要做物理层的比特接收和链路层的帧处理(王道 4.7.4 第 5 题)。
路由器的缓冲区满了就丢分组。 这是”尽最大努力交付”中丢包的主要来源,也是拥塞的直接表现(4.1.5)。
错题复盘:路由器检验首部并丢弃出错的分组,但不保证分组不丢失
2012 年统考真题(王道 4.7.4 第 20 题):下列关于 IP 路由器功能的描述中,正确的是(Ⅰ. 运行路由协议,设置路由表 Ⅱ. 监测到拥塞时,合理丢弃 IP 分组 Ⅲ. 对收到的 IP 分组头进行差错检验,确保传输的 IP 分组不丢失 Ⅳ. 根据收到的 IP 分组的目的 IP 地址,将其转发到合适的输出线路上)。选项为 A. 仅Ⅲ、Ⅳ B. 仅Ⅰ、Ⅱ、Ⅲ C. 仅Ⅰ、Ⅱ、Ⅳ D. Ⅰ、Ⅱ、Ⅲ、Ⅳ。答案 C。
Ⅰ和Ⅳ显然是路由器的功能,分别对应路由选择部分和分组转发部分。Ⅱ:当路由器监测到拥塞时,可合理丢弃 IP 分组,并向发出该 IP 分组的源主机发送一个源点抑制的 ICMP 报文(最新标准已不再使用,4.2.7)。Ⅲ:路由器对收到的 IP 分组首部进行差错检验,丢弃有差错首部的报文,但不保证 IP 分组不丢失。
Ⅲ 前半句对、后半句错:检验首部的结果恰恰是丢弃,不是补救。IP 尽最大努力交付,保证不丢失是 TCP 的职责(4.1.1)。
对照速查
| 说法 | 对错 |
|---|---|
| 同一个网络中的主机通信也要经过路由器 | ❌(直接交付) |
| 路由器可以连接不同的 VLAN | ✅ |
| 路由器只实现网络层的功能 | ❌(实现下三层) |
| 路由表由路由选择处理机构造和维护 | ✅ |
| 交换结构根据路由表转发分组 | ❌(根据转发表) |
| 标准路由表的 4 项:目的网络、子网掩码、下一跳、接口 | ✅ |
| 分组的实际转发靠查找路由表 | ❌(查找转发表) |
| 转发表可以用硬件实现 | ✅ |
| 转发涉及许多路由器,路由选择仅涉及一个路由器 | ❌(反了) |
| 路由器可以根据物理地址进行转发 | ❌(根据 IP 地址) |
考点
- 路由器:连接异构网络、隔离广播域;直接交付 vs 间接交付(2010)
- 路由选择部分(路由选择处理机)+ 分组转发部分(交换结构、输入端口、输出端口)
- 实现物理层、数据链路层、网络层三层
- 标准路由表 4 项;根据拓扑与路由聚合构造路由表(2009、2013、2014)
- 路由表 ≠ 转发表:前者软件、面向拓扑计算,后者可硬件、面向查找
链接
- 🏠 返回总览:计算机网络第 4 章:网络层总览
- ⬅️ 上一节:4.7.1 冲突域和广播域
- 🔗 4.1.2 路由与转发
- 🔗 4.2.4 网络层转发分组的过程(转发算法)
- 🔗 4.2.3 路由聚合
- 🔗 第 5 章:传输层(下一章)
- 📖 名词库:第 4 章名词库