Traceroute工作原理

网络
Traceroute原理  Traceroute非常简单的基础使用方法是:traceroute hostname  Traceroute程序流程的设计方案是运用ICMP及IP header的TTL(Time To Live)栏位(field)。最先,traceroute送出一个TTL是1的IP datagram(实际上,每一次送出去的为3个40字节数的包,包含源地址,目地详细地址移动和包传出的時间标识)到到达站,当途径上的第一个无线路由器(router)接到这一datagram时,它将TTL减1。这时,TTL变成0了,因此 该无线路由器会将此datagram丢弃,并送到一个「ICMP time exceeded」信息(包含发IP包的源地址,IP包的全部內容及无线路由器的IP地址),traceroute 接到这一信息后,便了解这一无线路由器存有于这一途径上,然后traceroute 再送出去另一个TTL是2 的datagram,发觉第二 个无线路由器......traceroute 每一次将送出去的datagram的TTL 加1来发觉另一个无线路由器,这一反复的姿势一直不断到某一datagram 到达到达站。当datagram抵达到达站后,该服务器并不会送到ICMP time exceeded信息,因为它已经是到达站了,那麼traceroute怎样获知到达站抵达了呢?  Traceroute在送出去UDP datagrams到到达站时,它所挑选送到的port number 是一个一般应用软件都不容易用的号(30000 之上),因此 当此UDP datagram 抵达到达站后该主机遇送到一个「ICMP port unreachable」的信息,而当traceroute 接到这一信息时,便了解到达站早已抵达了。因此 traceroute 在Server端也是沒有说白了的Daemon 程序。  Traceroute获取发 ICMP TTL期满信息机器设备的IP地址并且做好解析域名。每一次 ,Traceroute都复印出一系列数据信息,包含所历经的路由器机器设备的网站域名及 IP地址,三个包每一次往返所花时间。  Traceroute 有一个固定不动的時间等候回应(ICMP TTL期满信息)。假如这一時间过去了,它将复印出一系列的*号说明:在这个途径上,这一机器设备不可以在给出的時间内传出ICMP TTL期满信息的回应。随后,Traceroute给TTL记数器加1,再次开展。
(免责协议:文章如涉及到著作內容、著作权和其他难题,请立即与大家联络,大家将在第一时间删掉內容,文章仅作参考)