Appearance
题目
某自治系统采用 RIP 协议,若该自治系统内的路由器 R1 收到其邻居路由器 R2 的距离矢量中包含信息 <net1, 16>,则可能得出的结论是( )。
错因
A
把方向搞反——题面说"R2 的距离向量",含义是"R2 自己到 net1 的距离 = 16",不是 "R2 经 R1 到 net1"。R2 距离向量只描述 R2 自己的路径,不包括 R2 经 R1 这条假设的路径。错的根源:把距离向量的所有者搞错。
B
读对了主体(R2 到 net1)但错以为 16 是真实跳数——RIP 中 16 是不可达标识,不是"16 跳能到"。RIP 跳数硬上限 15,距离 16 专门用来表示"无法到达"。错的根源:忽略 RIP 的 "16 = ∞" 约定。
C
R1 计算 = R2 距离 + 1 = 16 + 1 = 17 跳。但 RIP 截断规则:距离 ≥ 16 即视为不可达,17 必须截断为 16,不存在"17 跳能到" 这种状态。错的根源:忘了 RIP 截断为 16 的规则。
总解析
第一步:解读 R2 通告的 <net1, 16>
RIP 距离向量格式 <网络, 距离>——含义是"我(R2)到该网络的距离"。
题面 R2 通告 <net1, 16>:
- R2 自己到 net1 的距离 = 16
- RIP 规定 距离 16 = 不可达
- 即 R2 自己根本到不了 net1
第二步:R1 据此能推出什么
R1 收到这个通告后的推理:
| 命题 | 判定 |
|---|---|
| R2 能到 net1 | ❌(R2 自己说不行) |
| R1 经 R2 能到 net1 | ❌(R2 都不行,R1 经 R2 更不行) |
R1 必须放弃"经 R2 到 net1"这条候选路径,转去看其他邻居(如果有)。
第三步:核对选项
| 选项 | 命题 | 判定 |
|---|---|---|
| A | R2 经 R1 到 net1 跳 17 | ❌ 方向错(题面是 R2 自己的距离) |
| B | R2 到 net1 跳 16(可达) | ❌ 16 = 不可达 |
| C | R1 经 R2 到 net1 跳 17 | ❌ R2 不可达,R1 经 R2 也不可达 |
| D | R1 不能经 R2 到 net1 | ✅ 正确推论 |
最终答案是 D(R1 不能经过 R2 到达 net1)。
编者注(生僻术语):"距离 16 = 不可达"是 RIP 特有的硬约定(RFC 2453),目的是防止"计数到无穷"——
如果 RIP 没有 16 上限,路由器之间可能"我经你 + 1 → 你经我 + 1 → 我又 + 1..."无限累加。设了上限后,距离一旦达到 16 就立即被识别为不可达、停止累加。代价是 RIP 网络规模被限制在 15 跳以内。
现代大型网络都用 OSPF / IS-IS 链路状态协议(无跳数限制),RIP 只用于教学和小型 LAN。