网络相关的命令工具研究报告——Tracert

Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据包访问目标所采取的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由

一、工作原理

通过向目标发送不同IP生存时间 (TTL) 值的"Internet控制消息协议 (ICMP)"回应数据包,Tracert诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1。数据包上的 TTL 减为 0 时,路由器应该将"ICMP 已超时"的消息发回源系统。

Tracert 先发送 TTL 为 1 的回应数据包,并在随后的每次发送过程将TTL递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。通过检查中间路由器发回的"ICMP 已超时"的消息确定路由。某些路由器不经询问直接丢弃 TTL 过期的数据包,这在 Tracert 实用程序中看不到。

 

二、tracert的用法

在使用Tracert命令之前,我先来简单地介绍一下它的语法。其中最简单也是最常用的命令格式为:

1、基本用法

 

 

Tracert 目标设备的ip地址或者网址:

例1、检测ip地址经过几个跃点

 

 

这里面是经过了8个跃点。

例2:检测网址经过几个跃点

 

 

例3、“tracert -d baidu.com”代表不将IP地址解析到主机名称,如下图所示:

 

 

例4、“tracert -h 3 baidu.com”代表本次tracert搜索的最大跳数,输入3表示搜索在路由器跳转3次,如下图所示:

 

 

这个就是查跟设备最近的几个连接点的问题,通常在网络问题中,先要排除前端跟设备直接连接的最近的几个设备是否有故障,如果这几个近点跟踪可以正常互通,那么问题可能就出现在后端。

例5、“tracert -w 6 baidu.com”代表tracert为每次回复所指定的毫秒数,其它命令根据需求,可以根据第二步图介绍使用,如下图所示:

 

 


 

当网络很慢,或者很卡时,我们要检测是那个设备的反应速度比较慢,所以这里面可以设个标准值,例如上面是直接显示回复6ms以内的设备,超过6ms的设备不显示,就是反应比较慢的,这个数值可以根据情况设置。

 

三 、抓取相关包进行分析

 

 

 

主机172.10.100.112向180.101.4911发送一个信息类型为8,代码为0的ICMP请求回显包,路径上第一个路由器在转发数据包之前将数据包上的TTL递减 1,当数据包上的TTL减为0时,路由器丢弃该数据包,并将“ICMP Time Exceeded”(超时)的消息发回源主机A,此时,发现路径上的第一个路由器。

Tracert命令将 TTL 值加1,主机发送TTL值为2的回显数据包,数据报由路由器A转发至路由器B,由于该数据报的TTL值在第一跳时被减去了1,因此在到达路由器B后,TTL值为0。路由器B丢弃该数据包,并向主机A返回“ICMP Time Exceeded(超时)”的报文,从而获得路径上的第二个路由器信息。

之后一直重复上述步骤,可以看到之后只有TTL为3、4、7时收到了超时消息,与cmd中显示的tracert命令执行结果一致,未收到ICMP差错报文无法确定路由信息,只显示请求超时。在TTL为10时,收到ICMP回应答复包时停止tracert,由此可知TTL域为10。

 

posted @ 2019-11-27 21:35  空白124  阅读(418)  评论(0编辑  收藏  举报