如何使用Traceroute识别网络问题
Traceroute是Windows和其他操作系统附带的命令行工具。与ping命令一起,它是了解Internet连接问题(包括数据包丢失和高延迟)的重要工具。
如果我们无法连接到网站,traceroute可以告诉我们问题出其中。它还可以帮助可视化计算机和Web服务器之间的通信路径。
Traceroute如何工作
当我们连接到网站时,例如theitroad.local,访问该网站之前,流量必须经过多个中介。流量通过本地路由器,Internet服务提供商的路由器进入较大的网络,等等。
Traceroute向我们显示了访问网站的流量。它还显示每个停靠点发生的延迟。如果我们在访问网站时遇到问题,并且该网站正常运行,则可能是计算机与网站服务器之间的路径上存在问题。 Traceroute将向我们显示问题所在。
我们使用traceroute来解释和演示谁为Internet服务提供商提供Internet服务。
用更专业的术语来说,traceroute使用ICMP协议(用于ping命令的协议)发送一系列数据包。第一个数据包的生存时间(也称为TTL或者跳数限制)为1,即第二个数据包的TTL为2,依此类推。每次将数据包传递到新路由器时,TTL都会减小1. 当它达到0时,该数据包将被丢弃,并且路由器会返回一条错误消息。通过以这种方式发送数据包,traceroute可以确保路径中的每个路由器都将丢弃数据包并发送响应。
如何使用Traceroute
Traceroute是从命令提示符或者终端窗口运行的。在Windows上,按Windows键,键入Command Prompt,然后按Enter启动一个。
要运行traceroute,请运行tracert命令,后跟网站地址。例如,如果要在iGiftIdea上运行traceroute,则可以运行以下命令:
tracert theitroad.local
(在Mac或者Linux上,请改为在theitroad.local上运行traceroute。)
随着计算机沿途收到路由器的响应,我们将逐渐看到路由的形式。
如果我们为另一个网站(尤其是托管在世界其他地区的一个网站)运行跟踪路由,则我们会看到路径如何不同。第一跳与流量到达ISP时相同,而后一跳则与数据包到达其他位置时不同。例如,在下面,我们可以查看在中国Baidu.com传播的数据包。
了解输出
基本思想是不言自明的。第一行代表家用路由器(假设我们在路由器后面),下一行代表ISP,每行越下方代表的路由器就越远。
每行的格式如下:
Hop RTT1 RTT2 RTT3 Domain Name [IP Address]
跃点:每当数据包在路由器之间传递时,这称为跃点。例如,在上面的输出中,我们可以看到从我当前的位置到达iGiftIdeas服务器需要14跳。
RTT1,RTT2,RTT3:这是数据包到达跳点并返回到计算机所需的往返时间(以毫秒为单位)。这通常称为延迟,与使用ping时看到的数字相同。 Traceroute会向每个跃点发送三个数据包并每次显示一次,因此我们对延迟的一致性(或者不一致)有所了解。如果在某些列中看到*,则没有收到可能表示数据包丢失的响应。
域名[IP地址]:域名(如果可用)通常可以查看路由器的位置。如果此选项不可用,则仅显示路由器的IP地址。
现在,我们应该能够使用tracert命令并了解其输出。