traceroute原理(深入探究Traceroute)
深入探究Traceroute
当我们在浏览器输入网址,访问远程服务器时,数据需要经过多个路由器跳转,这时候traceroute就可以帮助我们了解数据包是如何在网络中传输的,以及网络的连接状况等信息。
Traceroute的原理
traceroute是基于ICMP协议实现的,它通过向目标主机发送一些基于UDP的数据包,并在每跳的路由器上留下时间戳以及令人诧异的域名系统(DNS)查询。这些数据包携带有闪包(TTL)的时间戳。TTL指的是时限值,其初值为1,每经过一个路由器,就会减少1个单位,这样就避免了数据包被无尽循环的情况。当请求到达了目标主机时,目标主机会发送ICMP响应消息报告数据包已经抵达,traceroute就可以通过这些ICMP响应消息来确定网络的状况和经过的路由器数量。
Traceroute的使用
Traceroute是在命令行下实现的,需要向目标服务器发送三个及的包。可以通过在命令行输入以下命令:traceroute[目标网站的IP地址/域名]
当执行该命令时,我们可以看到路由信息以及延迟时间。例如:traceroutewww.baidu.com
traceroutetowww.baidu.com(220.181.38.148),30hopsmax,60bytepackets1router.asus.com(192.168.123.1)1.449ms1.346ms1.223ms2192.168.0.1(192.168.0.1)6.373ms6.238ms6.093ms393.36.254.190.rev.sfr.net(93.36.254.190)32.854ms32.717ms32.580ms481.248.65.10.rev.sfr.net(81.248.65.10)29.241ms*29.592ms5tel2-3-bras2-n1000.dc2.poneytelecom.eu(89.84.1.203)35.488ms35.600ms35.686ms6lhcbiherm1-pao-n7.ecritel.net(213.186.33.186)111.183ms111.032ms110.879ms7220.181.16.246(220.181.16.246)222.321ms220.181.16.238(220.181.16.238)227.029ms220.181.16.236(220.181.16.236)222.272ms8bd-13-52-gru001-pe02.48347.net(220.181.38.1)224.673msbd-13-53-r0101-pe02.48347.net(220.181.38.3)225.167msbd-13-54-r0101-pe02.48347.net(220.181.38.5)225.303ms9hn.kd.ny.adsl(42.120.244.101)235.465ms234.906ms233.262ms10*220.181.5.221(220.181.5.221)233.102ms*11***12220.181.90.78(220.181.90.78)239.238ms220.181.90.82(220.181.90.82)239.605ms*13***14***15***16***17***18***
从上述输出信息中,可以看到数据包进行了18次跳转,每次跳转都被路由器记录了下来,在输出结果中也可以看到每一跳花费的相应的时间,方便我们了解网络的状况。
Traceroute的限制和问题
Traceroute的使用在大多数情况下是相当可靠的,但是有时你会在使用时遇到一些问题,例如:
- 防火墙屏蔽traceroute。如果目标主机或中间的某个路由器配置了防火墙,则traceroute可能无法工作。防火墙通常被配置为阻止传入的ICMP数据包,而正是ICMP数据包驱动着traceroute。
- 过于耗时。如果您查询的目标主机不响应icmp请求,则traceroute可能需要30次的请求才能中断查询。这样就会花费很长的时间,这时候就需要使用键盘快捷键Ctrl-C来中断traceroute查询。
- 域名解析的问题。traceroute输出结果中显示的是ip地址,而不是站点名称,这是因为traceroute只获取IP地址,而不会解析域名,需要手动转换为站点名称。
需要注意的是,虽然traceroute通过发送数据包来帮助确定网络状况和路由器数量,但是它并不能保证数据包的安全,因此,需要对敏感数据进行加密传输或使用VPN等方式进行保护。
,Traceroute为我们提供了了解网络传输情况的一种方法,它可以帮助我们快速定位可能存在的网络连接问题,如果您对网络感兴趣,也可以尝试使用traceroute来探索更多的网络细节。