比思論壇

標題: trace route命令tracert [打印本頁]

作者: hncszz    時間: 2020-1-15 17:06
標題: trace route命令tracert
tracert程序允许使用者跟踪从一台主机到世界上任意一台其它主机之间的路由。

tracert是用ICMP报文来实现的。为了判断源和目的之间所有路由器的名字和IP地址,源主机中的tracert向目的主机发送一批普通的IP数据报。这些数据报每个携带都携带了具有一个不可达UDP端口号的UDP报文段。第一个数据报的TTL=1;第二个数据报的TTL=2;第三个数据报的TTL=3,以此类推。源主机也为每一个数据报启动定时器。当第n个数据报到达第n个路由器时,第n个路由器正好观察到这个数据报的TTL终止,根据IP协议规定,该路由器将丢弃该IP数据报,并向源主机发送一个警告报文(类型:11,编码:0)。该警告报文含有路由器的名字与IP地址。当该ICMP报文达到源主机时,源主机从定时器得到往返时延,从ICMP报文中得到第n个路由器的名字和IP地址。

tracert源主机是怎么知道何时停止发送UDP报文的呢?

因为源主机为它发送的每一个数据报的TTL值依次+1,因此,这些数据报之一将最终沿着这条路径到达目的主机。目的主机不会丢弃该报文,因为它已经到达了它的最终目的地。ICMP报文如何发送回到源主机?

因为该数据报包含了一个具有不可达的端口号,该目的主机将向源主机发送一个目的端口不可达的ICMP报文(类型3,编码3),当源主机收到这个特殊的ICMP报文时,它便知道了它不需要再发送另外的探测分组了。





歡迎光臨 比思論壇 (http://108.170.5.75/) Powered by Discuz! X2.5