一、概述
tracert是Windows网络中的Trace Route功能的缩写, 用于确认数据包访问目标IP所经过的路径。
二、用法
tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name
三、参数
-d 指定不将地址解析为计算机名.
-h maximum_hops 指定搜索目标的最大跃点数.
-j host-list 与主机列表一起的松散源路由(仅适用于IPv4),指定沿host-list的稀疏源路由列表序进行转发。host-list是以空格隔开的多个路由器IP地址,最多9个。
-w timeout 等待每个回复的超时时间(以毫秒为单位).
-R 跟踪往返行程路径(仅适用于 IPv6).
-S srcaddr 要使用的源地址(仅适用于 IPv6).
-4 强制使用 IPv4.
-6 强制使用 IPv6.
target_name 目标计算机的名称.
最简单的用法就是"tracert hostname",其中"hostname"是计算机名或想跟踪其路径的计算机的IP地址,tracert将返回他到达目的地的各种IP地址.
四、原理
1、tracert发出TTL值为1的ICMP数据包(40个字节、源地址、目标地址和发出时间标签,一般发3个)
2、当到达路径上第一个路由器时,路由器会将,TTL值减1
3、此时TTL值为0,该路由器将此数据包丢弃,向源地址返回一个ICMP超时通知(数据包的源地址、路由器的IP地址)
4、当tracert收到该数据包,获得了这个路径上的第一个路由器的地址
5、tracert再发送另一个TTL为2的数据包
6、第一个路由器会将此数据包转发给第二个路由器
7、当TTL=0,第二个路由器返回一个超时通知,tracert得到第二个路由器地址
Tracert每次发出数据报时便会将TTL加1,发现下一个路由器
这个动作一直重复,直到到达目的地或者确定目标主机不可到达为止
到达目的IP后,目标主机并不返回超时报文
Tracert发送数据报时,会选择一个一般应用程序不会使用的号码来做端口(3000以上)
当到达目的地后,目标主机返回一个ICMP port unreachable(端口不可达)的消息
当tracert收到这个消息后,就知道目的地到达了
五、常用命令
$ tracert 10.1.61.128
$ tracert -w 2000 10.1.61.128
$ tracert -d 10.1.61.128
$ tracert -w 2000 www.baidu.com