◇软件背景Ping是一个大家都比较熟悉的网络工具。
然而,Ping的一些参数进行组合之后,可以得到非常有意思的应用哦。比如Ping的TTL,每当数据包经过一个路由器时它就会减1,然后转发给下个网络节点;当TTL变为0时,数据包停止继续转发并返回“ICMP Time Exceeded”的消息。
利用上述原理,通过控制不同的TLL的数值,就可以获取目标主机与当前主机之间的网络节点数量和数据包转发的路径了(简称路由跟踪)。这样的工具叫做TraceRoute,Windows和Linux都有对应的命令行。
最近看到这个工具的描述原理之后,就想着自己也通过Ping的组合,来实现这个工具。当然,这个是图形用户界面的,用于满足更多的交互应用。
◇应用场景不得不说,TraceRoute的应用其实还是广阔的。
●如果你是技术人员,当你的系统在通信过程中发生故障时,可以通过这个工具,寻找到网络数据包停止的位置,或者协助找出网络响应速度过慢的节点,然后做进一步的验证和处理。
●如果你拥有Web服务器,随着访问量的增加,你肯定很想知道,用户们是否都能顺利连接,以及连接效率如何。这些数据,对你的服务扩展、ISP选择等等,都能提供有价值的参考。
●如果你做着类似安防的工作,对数据安全比较敏感,那么这个工具也可以帮忙了。比方原本设计的网络,只有A到D四个网络节点,忽然某一天C和D多了一个节点或者C变了(比如该节点侦听记录数据然后继续转发数据包),那么可以进行简单有效地跟踪此类ARP攻击。
●如果你是网管,那么对于设置静态路由、多网段问题跟踪等,都能协助到你的工作。
TraceRoute的应用场景还有很多很多,主要看不同的人用在什么具体的场景中。总的来说,工具提供的就是,获取当前机器与目标主机之间,通过的网络节点路径,以及连接速度的数据。
◇说明“目标”文本框里,可以输入IP、域名、机器名的数据。输入的历史数据,会存储在下拉列表里,当你下次输入内容时,软件也提供“自动完成”哟。
“详细参数”面板,提供更加详细的数据。比如,获取的最大路由数量,超过这个数量则停止继续获取;超时时间,当超过这个数值仍然没返回数据时,则认为网络超时;是否获取网络名称,如果你不关注网络名称,则可以取消这个勾进而加快整体的速度。