TRACERT命令
一、工作原理
tracert(windows)或traceroute(linux/macos)是一个强大的网络诊断工具,用于追踪数据包从你的计算机到达目标主机所经过的网络路径(路由器或网关)。它的工作原理巧妙地利用了ip数据包的生存时间字段和icmp协议。
1、Ttl(Time To Live)
- ttl是ip数据包头部中的一个字段(8位,取值范围1-255)。
- ttl是为了防止数据包在网络中因路由环路等原因无线循环下去。
- 每当一个路由器(或三层设备)转发一个数据包时,他会将该数据包的ttl值减1。
- 如果路由器在转发前发现ttl值减为0(或已经是0),它会丢弃该数据包,并向数据包的源地址发送一个icmp time exceeded消息。这个消息包含了丢弃该数据包的路由器的ip地址。
2、Tracert的步骤:
- 第一步探测:
- 计算机创建一个探测数据包(通常是icmp echo request-windows tracert,或udp到高端口-传统unix traceroute)发送给目标主机。
- 将这个探测包的ttl值设置为1.
- 第一个接收到该数据包的路由器(你本地网关或isp的第一个路由器)会将ttl减1(变成0)。
- 该路由器丢弃数据包,并向你的计算机发送一个icmp time exceeded消息。
- tracert程序收到这个icmp消息,记录:
- 发送该icmp消息的路由器的ip地址。
- 从发