派筹生活圈
欢迎来到派筹生活圈,了解生活趣事来这就对了

首页 > 健康知识 正文

tracert原理(探究tracert的原理)

jk 2023-05-11 11:24:42 健康知识183

探究tracert的原理

什么是tracert?

Tracert(Trace Route)是Windows操作系统用来诊断网络连接问题的命令行工具。它可用于发现数据经过一个网络通道时所经过的每一个网址。

tracert的原理是什么?

Tracert 运行的基础是「Internet Control Message Protocol」(ICMP),它是TCP/IP协议族的一员,主要用于传递检测信息,ICMP消息是由网络层发出的,因此ICMP不可靠。

Tracert 就是利用了 ICMP 协议及 TTL(Time to Live)机制,通过给 IP 包的 TTL 域设置数值,并对不同的IP包使用不同的 TTL 进行数据包发送,以实现追踪数据包路径的目的。

tracert的具体步骤是怎样的?

假设我们 traceroute www.baidu.com,下面就是这个 tracert 过程中具体的三个步骤:

第一步:发起请求

Tracert 在你输入域名 www.baidu.com 的时候,首先会去查询它对应的 IP 地址,这个过程叫做 DNS 查找。在我们得到 www.baidu.com 对应的 ip 地址后,就可以发起第一个 ICMP 请求了。

第二步:匹配路由表,转发ICMP请求

此时,你的电脑之外的路由器会开始参与到上述 ICMP 请求的转发当中。当一个路由器接收到 ICMP 请求时,首先通过路由表匹配 IP 的前缀,找到下一个合适的路由器,并把请求包送过去,这个过程叫做转发。它会把 ICMP 向这个路由器发起恳求,在 ICMP 报文中,TTL 的值一开始会被初始化为一个固定的值(我使用 tracert 操作的时候是 1),每经过一个路由器就会减小一次。这个过程一直持续,直到 ICMP 请求发现了目标主机,你的电脑才能获得这个 ICMP 回复的响应包。

第三步:确定IP包路径

进行到第三步之前,已经枚举了所有的 TTL 值,也就是经过了一次请求的发送和接收。最终,traceroute 构建出了一个包含所有经过的路由器的列表。这个列表就是我们最初的问题:“这个 ip 地址到底经过了哪些路由器?”得到的答案。

综上所述,tracert 确实是一个利用 ICMP 监控网络节点、查找故障的好工具,通过诊断 ICMP 请求的流向,我们可以快速找出导致网络连接出问题的原因。同时,因为 ICMP 数据包并没有用到基于 TCP 的传输机制,所以使用他并不会产生过多的网络开销。

猜你喜欢