windows系统下
windows系统下执行Traceroute命令:
Tracert hostname
用于侦测主机到目的主机之间所经路由情况。
Traceroute的原理:
在解析出目的主机的IP后,首先给目的主机发送一个TTL=1的UDP数据包,而经过的第一个路由器收到这个数据包以后,就自动把TTL减1,而TTL变为0以后,路由器就把这个包丢弃,并同时产生一个超时的ICMP数据报给主机。主机收到这个数据报以后再发一个TTL=2的UDP数据报给目的主机,然后刺激第二个路由器给主机发超时ICMP数据报,如此往复直到到达目的主机。这样,traceroute就拿到了所有的路由器IP。
怎么知道UDP到没到达目的主机呢?
普通网络程序只监控少数几个编号较小的常用端口号,而traceroute发送的是端口号>30000的UDP报文,所以到达目的主机时,目的主机检查没有哪个应用程序使用该端口,就只能发送一个端口不可达的ICMP数据报报给主机,主机接到这个报文后就知道已到达目的主机,停止发送UDP报文。