Tracert 程序使用 ICMP 报文(unix 下为 UDP 报文)和 IP 报文中的 TTL 字段进行传输。
假设我要观察从本机到 SINA 服务器中间经过了哪些服务器处理:
首先,本机当然需要通过 DNS 服务器查找到新浪所对应的 IP 地址:60.28.175.133
查找到之后,就会组装 ICMP 报文(UDP 报文)来探测网络拓扑。帧结构:eth:ip:icmp:data
其中就是利用到了 IP 报文中的 TTL 字段。
在发送的第一个数据包中,把目的 IP 地址设置成新浪地址:60.28.175.133,但是 TTL
字段则设置为 1,这样在路由过程中,遇到第一台路由器时 TTL 减 1 变成 0,这样路由器就
会回送一个超时 ICMP 报文。这样,就知道了第一跳的路由器 IP 地址。
评论4