Tracert
简单网络诊断工具,探测数据包从源地址到目的地址的路由器IP地址。
提示:Tracert命令用IP生存时间(TTL)字段和ICMP错误消息来确定从一个主机到网络上其他主机的路由。
1.实现原理
1、Tracert发出TTL值为1的ICMP数据包(40个字节,源地址、目的地址和发出时间标签,一般发3个)
2、当到达路径上第一个路由器时,路由器会将TTL值减1
3、此时TTL值为0,该路由器将此数据包丢弃,向源地址返回1个ICMP超时通知(数据包的源地址,路由器的IP地址)
4、当Tracert收到该数据包,获得了该路径上的第一个路由器地址
5、Tracert再发送另一个TTL值为2的数据包
6、第一个路由器会将此数据包发送给第二个路由器
7、当TTL值为0时,第二个路由器返回一个超时通知,Tracert得到第二个路由器的地址
Tracert每次发送数据包时都会将TTL的值加1,以便发现下一个路由器。
这个动作一直重复,直到到达目的地或者确定目标主机不可达为止
到达目的IP后,目的主机并不返回超时报文
Tracert发送数据包时,会选择一个一般应用程序不会使用的号码来做端口(3000以上)
当到达目的地后,目标主机返回一个ICMP port unreachable (端口不可达)的消息
当Tracert收到这个消息后,就知道到达目的地了
Tracert命令有一个固定的时间等待响应(ICMP TTL到期消息)。如果这个时间过了,它将
打印出一系列的*号表明:在这个路径上,这个设备不能在给定的时间内发出ICMP TTL到
期消息的响应。然后,Tracert给TTL计数器加1,继续进行。(注意:默认是最多30跳就
结束)
Tracert接受和发送的数据包:
Tracert接收的数据包:
Tracert的用法:
例如:
- Tracert -h 跃点数 域名
只追踪5个路由器(默认最多30个路由器)
总结
使用tracert时,可以通过命令行参数来定制查询,例如设置最大跳数、使用特定的数据包大小等。这些参数可以帮助网络管理员或用户更有效地诊断网络问题。
tracert命令的主要功能和特点如下:
- 路径发现:tracert显示数据包从源到目的地的完整路径,包括经过的所有路由器和网络设备。
- 延迟测量:tracert测量每个跳点的往返时间,帮助诊断网络延迟问题。
- 网络故障诊断:通过分析tracert的结果,可以识别网络中的瓶颈或故障点,如某个路由器响应时间过长或完全不响应。
- IP地址和域名:tracert显示每个跳点的IP地址,有时也显示与该IP地址关联的域名。
- 跳数限制:tracert允许用户设置跳数限制,以避免不必要的网络负载。
- 数据包大小:用户可以指定发送的数据包大小,以便测试不同大小的数据包在网络中的表现。
- 路由变化:tracert可以显示网络路由的变化,尤其是在网络拓扑发生变化时。
- 命令行工具:tracert是一个命令行工具,可以在Windows的命令提示符(CMD)或Unix/Linux的终端中使用。
- 安全性:在某些网络环境中,tracert可能会被防火墙或安全策略阻止,因此可能无法显示完整的路径。
- 局限性:tracert只能显示ICMP或UDP请求的路径,对于基于TCP的路径,可能需要使用其他工具。