traceroute(路由追踪traceroute分析)
什么是TraceRoute?
TraceRoute命令使用ICMP协议来定位您的计算机和目标计算机之间的所有路由器,其中TTL值可以反映数据包通过的路由器或网关的数量。通过操纵独立的ICMP呼叫报文的TTL值,观察报文丢弃的返回信息。
追踪路线原则
traceroute最简单的基本用法是:Traceroute主机名
Traceroute程序是利用ICMP的TTL(生存时间)字段和IP报头设计的。traceroute首先向目的地发送一个TTL为1的IP数据报(实际上一次发送三个40字节的数据包,包括源地址、目的地址和数据包发送的时间标签),当路径上的第一个路由器收到这个数据报时,它将TTL减去1。此时,TTL变为0,因此路由器丢弃该数据报,并发回“ICMP超时”消息(包括IP数据包的源地址、IP数据包的所有内容和路由器的IP地址)。收到此消息后,traceroute知道此路由器存在于此路径上。Traceroute然后发送另一个TTL为2的数据报,并发现第二个路由器...traceroute每次发现另一台路由器时都会将发送的数据报的TTL加1,这种重复的操作一直持续到数据报到达目的地。当数据报到达目的地时,主机不会发回ICMP超时消息,因为它已经是目的地,那么traceroute如何知道目的地已经到达呢?
当Traceroute向目的地发送UDP数据报时,它选择传递的端口号是一个普通应用程序不使用的数字(超过30000)。因此,当UDP数据报到达目的地时,主机会发回一条“ICMP端口不可达”的消息,traceroute收到这条消息时,就知道目的地已经到达。因此,traceroute在服务器端没有守护程序。
Traceroute提取发送ICMP TTL到期消息的设备的IP地址,并进行域名解析。每次Traceroute都会打印一系列数据,包括它所经过的路由设备的域名和IP地址,以及三个数据包来回所需的时间。
Traceroute等待响应的时间是固定的(ICMP TTL过期消息)。如果该时间已经过去,它将打印一系列*符号,指示该设备无法在该路径上的给定时间内发送ICMP TTL到期消息的响应。然后,Traceroute将TTL计数器加1并继续。
网关
通常Traceroute(或Tracert)是基于一台主机的,但通常你只能知道从手边的主机到互联网上任何一台在线主机的路由连接质量和数据传输效率。在基于网络的模式下,只要主机安装了特定的CGI程序,用户就可以通过该主机运行相关程序并执行Traceroute功能。我们称这个主机为Traceroute网关。Traceroute网关可以帮助用户了解网络的物理和逻辑连接的拓扑结构以及数据传输的效率。如果有足够多的网关,我们就可以很容易地知道主机之间的连接。
功能
Traceroute最早是由范·雅各布森在1988年写的。当时主要是解决他遇到的一些网络问题。Traceroute是正确理解IP网络、理解路由原理的重要工具。他们是网管方便的程序,网管负责网络工程技术和系统管理。
对于ISP来说,建立Traceroute网关将使网络服务提供商能够帮助用户建立和保持对服务提供商服务质量的信心。服务质量高的ISP可以设置Traceroute网关,让用户知道自己与网络的连接和数据传输的效率。当然,基础设施差、服务质量低的ISP是不敢提供这种服务的。因为,通过这种方式,用户可以使用这个工具来了解服务提供商的网络连接。
主机安装了Traceroute的CGI程序后,可以输入相应目的主机的IP地址或名称,获取相关数据。
推荐教程:PHP教程