Appearance
408 > 计算机网络 > 路由器工作原理
一、定位信息
- 所属圈层:核心层
- 前置知识:需了解IPv4分组格式(CN-04-04)和路由表的基本概念,以及数据链路层帧的封装和解封装
- 知识网络位置:路由器是网络层最核心的设备,理解其工作原理是理解整个网络层的基础。路由器的转发过程串联了IP分组处理、路由表查找、ARP解析、数据链路层封装等多层知识
- 考点热度等级:H级(高频重点) — 路由器的转发过程和路由表查找是408综合题的常见考点
二、知识点讲解
2.1 路由器的基本结构
路由器由以下四个主要部分组成:
①输入端口(Input Port)
- 接收物理层信号
- 完成数据链路层解封装(去除帧首部和尾部)
- 查找转发表确定输出端口
- 将分组放入交换结构
②交换结构(Switching Fabric)
- 将分组从输入端口传送到输出端口
- 三种实现方式:内存交换、总线交换、交叉开关交换
③输出端口(Output Port)
- 从交换结构接收分组
- 完成数据链路层封装(添加帧首部和尾部)
- 将分组发送到物理链路
④路由处理器(Routing Processor)
- 运行路由协议(如OSPF、BGP)
- 维护路由表和转发表
- 处理异常分组(如ICMP报文)
- 执行网络管理功能
2.2 控制平面与数据平面
| 平面 | 功能 | 运行位置 |
|---|---|---|
| 控制平面 | 运行路由协议,计算路由表 | 路由处理器(软件) |
| 数据平面 | 分组转发,查表,封装/解封装 | 输入/输出端口(硬件) |
控制平面计算出的路由表被下载到输入端口的转发表中,数据平面根据转发表独立完成转发,不需要每次都询问路由处理器。
2.3 路由器转发分组的完整过程
当路由器收到一个IP分组时,完整处理过程如下:
步骤一:物理层接收
- 输入端口接收比特流,恢复为数据帧
步骤二:数据链路层解封装
- 检查帧校验序列(FCS),丢弃损坏的帧
- 去除帧首部和尾部,提取IP分组
- 检查帧的目的MAC地址:如果是发给本路由器的MAC地址或者是广播地址,则继续处理;否则丢弃
步骤三:网络层处理
- 检查IP分组首部校验和
- 检查TTL,减1。如果TTL=0,丢弃分组并发送ICMP超时报文
- 查找转发表:
- 使用最长前缀匹配算法
- 根据目的IP地址查找匹配的路由条目
- 确定输出端口和下一跳IP地址
步骤四:数据链路层封装
- 通过ARP解析下一跳的MAC地址
- 用新的帧首部封装IP分组:
- 源MAC = 输出端口的MAC地址
- 目的MAC = 下一跳的MAC地址
- 生成帧校验序列(FCS)
步骤五:物理层发送
- 将帧转换为比特流发送到输出端口的链路
2.4 交换结构的三种实现
| 方式 | 原理 | 速度 | 复杂度 |
|---|---|---|---|
| 内存交换 | 通过CPU将分组从输入端口复制到输出端口 | 慢 | 低 |
| 总线交换 | 通过共享总线传输分组 | 中等 | 中等 |
| 交叉开关交换 | 通过专用硬件交叉连接 | 快 | 高 |
2.5 输入端口的排队与调度
当多个输入端口同时要将分组发送到同一个输出端口时,会发生输入排队。此时需要调度算法决定哪个分组先发送。
当输出端口的到达速率超过发送速率时,会发生输出排队。此时需要:
- 调度算法:决定哪个分组先发送(如FIFO、优先级调度、加权公平排队)
- 丢弃策略:当缓冲区满时决定丢弃哪个分组(如尾部丢弃、RED随机早期检测)
三、记忆与理解辅助
口诀:"路由器四部分,输入输出交换处理器;物理层收链路解,网络层查表转发快;最长前缀来匹配,ARP解析下一跳。"
转发过程速记:"收帧→解封→查表→封装→发帧"(五步)
控制平面 vs 数据平面:
- 控制平面 = 大脑(计算路由表,软件实现,慢)
- 数据平面 = 手脚(执行转发,硬件实现,快)
路由器 vs 交换机 vs 集线器:
| 对比维度 | 集线器 | 交换机 | 路由器 |
|---|---|---|---|
| 工作层次 | 物理层 | 数据链路层 | 网络层 |
| 转发依据 | 无(广播) | MAC地址 | IP地址 |
| 隔离冲突域 | 否 | 是 | 是 |
| 隔离广播域 | 否 | 否 | 是 |
四、例题与精解
例题1(基础巩固)
题目:路由器在转发IP分组时,以下哪个操作是必须执行的?( ) A. 修改源IP地址 B. 重新计算首部校验和 C. 重新计算数据部分的校验和 D. 修改目的IP地址
命题意图:考查路由器转发分组时的具体操作。
精解:
- 审题分析:选出路由器转发时必须执行的操作。
- 解题思路:分析路由器转发过程中哪些字段会被修改。
- 完整步骤:
- A错误:路由器通常不修改源IP地址(NAT除外,但NAT不是路由器的标准转发行为)。
- B正确:路由器转发时会修改TTL(减1),由于TTL是首部的一部分,修改后必须重新计算首部校验和。
- C错误:路由器不处理数据部分,也不计算数据部分的校验和。数据完整性由上层协议保证。
- D错误:路由器不修改目的IP地址。目的IP地址在整个传输过程中保持不变(端到端不变)。
- 方法反思:路由器转发时修改的字段只有TTL和首部校验和。目的MAC地址会变(改为下一跳的MAC),但目的IP地址不变。
例题2(中等提升)
题目:路由器R1的路由表如下:
| 目的网络 | 子网掩码 | 下一跳 | 输出接口 |
|---|---|---|---|
| 192.168.1.0 | 255.255.255.0 | 10.0.0.2 | eth0 |
| 192.168.1.128 | 255.255.255.128 | 10.0.0.3 | eth1 |
| 0.0.0.0 | 0.0.0.0 | 10.0.0.4 | eth2 |
R1收到一个目的IP地址为192.168.1.200的分组。请给出R1的转发决策过程和最终结果。
命题意图:考查路由器的最长前缀匹配算法和默认路由。
精解:
- 审题分析:目的IP=192.168.1.200,路由表有三条记录,需要找出匹配的条目。
- 解题思路:将目的IP与每条路由的子网掩码做按位与运算,检查是否匹配目的网络,然后按最长前缀匹配选择。
- 完整步骤:
条目1:目的网络192.168.1.0/24
- 192.168.1.200 AND 255.255.255.0 = 192.168.1.0
- 192.168.1.0 = 192.168.1.0 ✓ 匹配,前缀长度24
条目2:目的网络192.168.1.128/25
- 192.168.1.200 AND 255.255.255.128 = 192.168.1.128
- 192.168.1.128 = 192.168.1.128 ✓ 匹配,前缀长度25
条目3:默认路由0.0.0.0/0
- 总是匹配,前缀长度0
最长前缀匹配:
- 条目1:/24
- 条目2:/25
- 条目3:/0
- 选择条目2(前缀最长,/25)
转发结果:
- 输出接口:eth1
- 下一跳:10.0.0.3
- R1需要通过ARP解析10.0.0.3的MAC地址(如果ARP缓存中没有)
- 方法反思:最长前缀匹配是路由器转发的核心算法。当多条路由匹配时,选择前缀长度最长的(最精确的匹配)。默认路由(/0)是"兜底"选项,只有在没有更精确匹配时才使用。
五、考情分析
- 考查频次:近5年出现4-5次
- 常见题型:选择题考查路由器结构和转发过程;综合题考查路由表查找(最长前缀匹配)
- 分值占比:选择题2分,综合题5-8分
- 命题趋势:路由器转发过程的综合题一直是408的重点,常与IP分片、ARP、子网划分等知识点结合出题
六、易错点提醒
错误表现:认为路由器会修改目的IP地址
- 错误原因:混淆了MAC地址和IP地址在转发过程中的变化
- 正确理解:路由器转发时修改目的MAC地址(改为下一跳的MAC),但不修改目的IP地址(保持端到端不变)
错误表现:认为路由器转发时会修改数据部分
- 错误原因:对路由器的处理范围理解不清
- 正确理解:路由器只处理网络层首部(修改TTL和校验和),不处理数据部分。数据部分原封不动地转发
错误表现:混淆路由表和转发表
- 错误原因:两者名称相似
- 正确理解:路由表由路由处理器(控制平面)维护,存储路由协议计算的结果;转发表由输入端口(数据平面)使用,是路由表的优化版本,用于快速查找
错误表现:默认路由匹配时优先级最高
- 错误原因:认为"默认"就是"首选"
- 正确理解:默认路由(0.0.0.0/0)的前缀长度为0,是最低优先级的匹配。只有在没有更具体的路由匹配时才使用默认路由
七、来源标注
- 依据2026考研统考大纲
- 依据《计算机网络(第8版)》谢希仁版
- 依据《计算机网络:自顶向下方法》Kurose & Ross版