一、题目
从源设备到目的设备之间有两跳,使用tracert命令检测路径。检测第一跳时,源设备对目的设备的某个较大的端口发送一个TTL为1的UDP报文,当该报文到达中间一跳时,TTL将变为0,于是该设备对源设备回应一个ICMP_____消息。
A、Time Exceeded
B、Echo Request
C、Echo Reply
D、Port Unreachable
二、答案
A
三、解析
A. 正确。当数据包的 TTL 值递减为 0 时,路由器会丢弃该数据包,并向源设备发送 ICMP Time Exceeded(超时) 消息,tracert 正是利用这一原理探测路径。
B. 错误。Echo Request 是 ping 命令发送的回显请求报文,用于连通性测试,与 TTL 超时无关。
C. 错误。Echo Reply 是 ping 命令收到的回显应答报文,用于回应回显请求。
D. 错误。Port Unreachable(端口不可达)是当目的端口未开放时,目的主机返回的 ICMP 消息,并非 TTL 为 0 时的消息。
四、扩展——tracert 工作原理
tracert 的核心原理:利用 TTL 超时 + ICMP 消息,逐跳发现从源到目标的路径。
源主机会依次向目的主机发送 TTL 从 1 开始递增 的 UDP 探测数据包。数据包每经过一台路由器,TTL 值就会减 1。当某台路由器收到数据包后将 TTL 减至 0 时,会直接丢弃该数据包,并向源主机回复一个 ICMP Time Exceeded(超时) 消息。源主机根据收到该消息的设备 IP,就能记录下路径中的每一跳,以此逐跳探测并展示从源到目的的完整路由路径。
