Skip to content

2015年 408 计算机网络 第 38 题

计算机网络2015年选择题2分

题目

某路由器的路由表如下表所示:

目的网络下一跳接口
169.96.40.0/23176.1.1.1S1
169.96.40.0/25176.2.2.2S2
169.96.40.0/27176.3.3.3S3
0.0.0.0/0176.4.4.4S4

若路由器收到一个目的地址为 169.96.40.5 的 IP 分组,则转发该 IP 分组的接口是( )。

错因

A

S1 对应 /23 是匹配的,但不是最长前缀——S2 (/25)、S3 (/27) 都也匹配,且前缀更长。路由表查找规则是"最长前缀匹配",应取掩码最长的项。错的根源:找到第一条匹配项就停下,没继续比较前缀长度。

B

S2 对应 /25 也匹配,但 /25 比 /27 短——S3 (/27) 也匹配且前缀更长,应优先 S3。错的根源:同 A,没找到最长前缀。

D

S4 是 0.0.0.0/0(默认路由),匹配任何地址。但只有当没有任何更具体的路由匹配时才用默认路由。本题有 3 条具体路由都匹配,默认路由不会被用。错的根源:忘了"默认路由是兜底,最后才用"的原则。

总解析

第一步:逐项判断每条路由是否匹配 169.96.40.5

需要把目的 IP 169.96.40.5 与每个目的网络号在掩码长度内做比较。

把 169.96.40.5 第三、四字节展开:

  • 第三字节 40 = 00101000
  • 第四字节 5 = 00000101
路由项网络号掩码长度网络位(第三+第四字节)是否匹配
S1169.96.40.0/23第三字节高 7 位 0010100169.96.40.5 的第三字节高 7 位 = 0010100匹配
S2169.96.40.0/25第三字节 + 第四字节高 1 位 = 00101000_0第三字节 40 + 第四字节 5 高 1 位 = 00101000_0匹配
S3169.96.40.0/27第三字节 + 第四字节高 3 位 = 00101000_000第三字节 40 + 第四字节 5 高 3 位 = 00101000_000匹配(5 = 00000101 高 3 位 = 000
S40.0.0.0/0默认匹配(任何地址)

第二步:取最长前缀

路由掩码长度
S1/23
S2/25
S3/27 ← 最长
S4/0

最长前缀匹配规则:路由器按最长掩码(最具体)的路由转发。本题最长是 S3 (/27)

第三步:核对

最终答案是 C(S3)

编者注(生僻术语):"最长前缀匹配"(Longest Prefix Match, LPM)是 IP 路由的核心规则——路由表里多条路由可能都匹配某个 IP,路由器永远选最具体(掩码最长)的那条。这条规则确保:

  • 默认路由(/0)只在没有任何其他匹配时生效
  • 子网划分能"覆盖"超网(如 /23 母网下的 /27 子网会被优先匹配)

LPM 的实现需要专用的硬件结构(TCAM、Trie 树)以达到线速查找——这是路由器与交换机的关键技术差异之一。

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数