单选题
87.从源设备到目的设备之间有两台路由器RTA和RTB,使用Tracert命令来检测路径。检测第一跳RTA时,源设备对目的设备的某个较大的端口送一个TTL为1的UDP报文,当该报文到达RTB时,TTL将变为0,于是RTA对源设备回应一个ICMP消息。
A
EchoRequest
B
PortUnreachable
C
TimeExceeded
D
EchoReply
答案解析
正确答案:C
解析:
这道题考查的是 `Tracert`(在 Linux/Unix 系统中通常为 `traceroute`)命令的工作原理,特别是基于 UDP 协议的实现机制以及 ICMP 错误报文的触发条件。
### 核心原理解析
1. **Tracert 的基本机制**:
`Tracert` 利用 IP 报文头部中的 **TTL(Time To Live,生存时间)** 字段来探测路径上的每一跳路由器。
* 源设备首先发送一个 TTL = 1 的探测报文。
* 当该报文到达路径上的第一台路由器(本题中为 RTA)时,路由器会将 TTL 值减 1。
* 此时 TTL 变为 0。根据 IP 协议规定,当路由器处理数据包发现 TTL 减为 0 时,必须丢弃该数据包,并向源发送方返回一个 **ICMP Time Exceeded(超时)** 消息。
2. **题目场景分析**:
* **发送报文**:源设备发送一个 TTL = 1 的 UDP 报文。
* **经过 RTA**:报文到达第一跳路由器 RTA。RTA 将 TTL 减 1,结果 TTL = 0。
* **触发动作**:因为 TTL 变为 0,RTA 丢弃该 UDP 报文,并生成一个 ICMP 错误消息回送给源设备,告知“时间超过”。
* **关于 RTB**:题目中提到“当该报文到达 RTB 时...”,这里存在表述上的逻辑陷阱或笔误。实际上,TTL=1 的报文在到达 **第一跳 RTA** 时 TTL 就会减为 0 并被丢弃,根本不会到达第二跳 RTB。无论题目描述如何细微偏差,关键点在于:**TTL 减为 0 时,当前处理该包的路由器会回应什么 ICMP 消息?**
3. **选项分析**:
* **A. Echo Request**:这是 `Ping` 命令使用的 ICMP 请求报文,用于测试连通性,不是错误报告消息。
* **B. Port Unreachable**:当 UDP 报文最终到达目的主机,但目的端口未开放时,目的主机会返回此消息。在 `Tracert` 过程中,只有当 TTL 足够大,报文到达最终目的地时才会触发此消息,用于标识追踪结束。
* **C. Time Exceeded**:当路由器收到 TTL=1 的报文,递减后 TTL=0,路由器丢弃报文并返回此 ICMP 消息。这正是 `Tracert` 用来发现中间节点路由器的机制。
* **D. Echo Reply**:这是 `Ping` 命令中目的主机对 Echo Request 的响应,与 TTL 超时无关。
### 结论
当 TTL 减为 0 时,路由器返回的 ICMP 消息类型是 **Time Exceeded**(类型 11,代码 0)。
因此,正确答案是 **C**。
相关知识点:
Tracert检测路径,TTL超时回TimeExceeded
题目纠错
华为数通工程师HCIA题库
相关题目
单选题
714.SNMPv1 定义了 5 种协议操作。
单选题
713.RSTP 中 Backup 端口可以替换发生故障的根端口。
单选题
712.STP 协议当指定端口收到比自己差的配置 BPDU 时, 立刻向下游发送自己的 BPDU。
单选题
711.运行 STP 的设备收到 RSTP 的配置 BPDU 时会丢弃。
单选题
710.交换机收到一个单播数据帧,如果该数据帧目的 MAC 在 MAC 地表中能够找到, 这此数据帧一定 会从此 MAC 对应端口转发出去。
单选题
709.ICMP 报文不包含端口号,所以无法使用 NAPT。
单选题
708.如果一个网络的网络地址为 192.168.1.0,那么它的广播地址一定是 192.168.1.255。
单选题
707.ACL 不会过滤设备自身产生的访问其它设备的流量;只过滤转发的流量,转发的流量中包括其它设 备访问该设备的流量。
单选题
706.交换机的端口在收到不携带 VLAN TAG 数据帧时, 一定添加 PVID。
单选题
705.路由器所有的接口属于同一个广播域。
