网络相关的命令工具研究报告-tracert

tracert命令用于跟踪一个消息从一台计算机到另一台计算机所走的路径,用于确定 IP 数据包访问目标所采取的路径。通过向目标计算机发送具有不同生存时间的ICMP数据包来确定至目标计算机的路由。tracert 会先发送 TTL 为 1的三个探测分组,之后每次发送都将TTL加1并且每次都发送三个探测分组,直到目标响应或 TTL 达到最大值,从而确定路由。

使用tracert跟踪本机到百度的路径,分析其具体原理。

网络相关的命令工具研究报告-tracert_第1张图片

具体过程:

从源地址发出一个ICMP请求回显数据包到目的地址,并将TTL设置为1;

到达路由器时,将TTL减1;

当TTL变为0时,包被丢弃,路由器向源地址发回一个ICMP超时通知,其中包括发送IP包的源地址,IP包的所有内容及路由器的IP地址;

当源地址收到该ICMP包时,显示这一跳路由信息;

重复上述步骤,并每次设置TTL加1;

直至目标地址收到探测数据包,并返回ICMP回应答复;

当源地址收到ICMP回应答复包时停止tracert。

网络相关的命令工具研究报告-tracert_第2张图片

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

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

网络相关的命令工具研究报告-tracert_第3张图片

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

tracert命令行选项:

用法: tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout][-R] [-S srcaddr] [-4] [-6] target_name
选项:
-d 不将地址解析成主机名。
-h maximum_hops 搜索目标的最大跃点数。
-j host-list 与主机列表一起的松散源路由(仅适用于 IPv4)。
-w timeout 等待每个回复的超时时间(以毫秒为单位)。
-R 跟踪往返行程路径(仅适用于 IPv6)。
-S srcaddr 要使用的源地址(仅适用于 IPv6)。
-4 强制使用 IPv4。
-6 强制使用 IPv6。
target_name 目标 主机的名称或 IP 地址。

你可能感兴趣的:(网络相关的命令工具研究报告-tracert)