本文为大家介绍traceroute 原理(tracert的工作原理),下面和小编一起看看详细内容吧。
traceroute 的工作原理
traceroute最简单的基本用法是:traceroute主机名
traceroute 程序旨在使用icmp 和ip 标头的ttl(生存时间)字段。首先,traceroute向目的地发送一个ttl为1的ip数据报(实际上每次发送3个40字节的数据包,包括源地址、目的地址和发送数据包时的时间戳),当第一个时一个路由器(router)收到这个数据报,它会将ttl减1。
此时ttl变为0,因此路由器会丢弃该数据报并发回“icmp超时”报文(包括ip包的源地址、ip包的所有内容和路由器的ip地址) ), traceroute收到这个报文后,就知道这个路由器存在于这条路径上,然后traceroute再发送一个ttl为2的数据报,发现第二个路由器.
traceroute 每次发送的数据报的ttl 加1 以发现另一个路由器,如此重复的动作一直持续到数据报到达目的地。当数据报到达目的地时,主机不会发回icmp超时报文,因为它已经是目的地了,那么traceroute如何知道目的地已经到达呢?
当traceroute向目的地发送udp数据报时,它选择的端口号是一般应用程序不使用的端口号(30000以上),所以当udp数据报到达目的地时,主机会发回“icmp端口不可达”消息,当traceroute 收到这条消息时,它就知道目的地已经到达。所以traceroute在server端并没有所谓的daemon程序。
traceroute提取发送icmp ttl过期报文的设备ip地址,进行域名解析。 traceroute每次都会打印一系列数据,包括它经过的路由设备的域名和ip地址,以及三个数据包每次来回所花费的时间。
traceroute 有固定的时间来等待响应(icmp ttl 过期消息)。如果这个时间已经过去,它会打印一系列*标志,表明该路径上的设备无法在给定时间内响应icmp ttl expired 消息。然后,traceroute 将ttl 计数器加1 并继续。
好了,traceroute 原理(tracert的工作原理)的介绍到这里就结束了,想知道更多相关资料可以收藏我们的网站。