tracert原理和使用方法

网络基础


前言

tracert


tracert

简单网络诊断工具,探测数据包从源地址到目的地址经过的路由器IP地址

Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。

实现原理

1、tracert发出TTL值为1的ICMP数据包(40个字节、源地址、目标地址和发出时间标签,一般发3个)

2、当到达路径上第一个路由器时,路由器会将,TTL值减1

3、此时TTL值为0,该路由器将此数据包丢弃,向源地址返回一个ICMP超时通知(数据包的源地址、路由器的IP地址)

4、当tracert收到该数据包,获得了这个路径上的第一个路由器的地址

5、tracert再发送另一个TTL为2的数据包

6、第一个路由器会将此数据包转发给第二个路由器

7、当TTL=0,第二个路由器返回一个超时通知,tracert得到第二个路由器地址

Tracert每次发出数据报时便会将TTL加1,发现下一个路由器

这个动作一直重复,直到到达目的地或者确定目标主机不可到达为止

到达目的IP后,目标主机并不返回超时报文

Tracert发送数据报时,会选择一个一般应用程序不会使用的号码来做端口(3000以上)

当到达目的地后,目标主机返回一个ICMP port unreachable(端口不可达)的消息

当tracert收到这个消息后,就知道目的地到达了

Tracert会提取ICMP的超时回应数据报中的IP地址并作主机名解析
(用-d参数表示不解析主机名,解析主机名会耽误一些时间),

然后将所经过的路由器的主机名及IP地址、数据报每次往返花费的时间显示出来。
Tracert有一个固定的等待响应时间,如果这个时间过了
tracert就会输出“*”来表示某个设备没有在规定的时间内作出响应,然后tracert会将TTL值加1,继续进行检测。

ICMP差错报文

1、终点不可达

2、端口不可达

3、源点抑制

给IP提供一种流量监控的机制

ICMP源点抑制机制并不能控制流量大小,但能根据流量使用情况,给源主机提供一些建议

作用:

通知数据报在拥塞时被丢弃了

还会警告源主机流量出现了拥塞的情况,然后源主机然后源主机根据反馈的ICMP源点一直报文信息做出处理

4、ICMP超时报文

  • 当路由器接收到的数据报的TTL生命周期字段值为0时,路由器会把该数据报丢掉,并向源主机发回一个ICMP超时报文

  • 当目标主机在规定时间内没有收到所有的数据分片时,会把已收到的所有数据分片丢弃,向源主机发回一个ICMP超时报文

什么时候会发送ICMP超时报文呢?

比如:当路由器R4收到数据报文TTL减1后值为0的话,那么路由器R4会丢弃该数据报文,然后向主机A发送一个ICMP超时报文。如图所示:

在这里插入图片描述

当主机A给主机B发送一个数据报文时,该数据报文在网络中会有一个TTL生存时间字段,就是数据报文每经过一台路由器,TTL字段值就会减1,当路由器收到数据报文后TTL字段值减1后为0的话,那么该路由器就会把数据报丢弃并向主机A发回一个ICMP超时报文,这种机制有效的防止了路由环路,也就是解决了数据报在路由器之间一直转圈的问题。

在实际情况中会出现TTL=55 TTL=118
因为生命周期的初始值:255、128、64对于不同系统有不同的TTL初始值
实际TTL=初始值减去经过的路由器

使用方法1

1、打开命令行
2、输入tracert 后面加域名

在这里插入图片描述

DNS自动将域名转换为IP地址,查出途径的路由器信息

带*号的信息表示该次ICMP包返回时间超时

从左到右五条信息

TTL “生存时间”(每途径一个路由器节点自增1)

三次发送的ICMP包返回时间

途经路由器的IP地址

使用方法2

在这里插入图片描述

tracert URL -h 5

在tracert命令与URL(或IP地址)之间输入-h 5

在这里插入图片描述
只在追踪5个路由器

在这里插入图片描述

参考资料:

https://cn.bluehost.com/blog/

https://blog.csdn.net/qq_35733751/article/details/80053091

  • 44
    点赞
  • 295
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Tracert(也称为traceroute)是一种网络诊断工具,用于确定从源计算机到目标计算机的网络路径。它通过发送 ICMP Echo 请求消息,使用不同的 TTL(Time to Live)值,从而在每个路由器上跟踪数据包的路径,直到到达目标计算机或达到最大跃点数。每个路由器将返回一个 ICMP Time Exceeded 消息,这样 tracert 就可以确定网络路径。 以下是 tracert 的工作原理: 1. Tracert 向目标计算机发送一个 ICMP Echo 请求消息,并将 TTL 设置为 1。 2. 第一个路由器接收到 ICMP Echo 请求消息并减少 TTL 的值。如果 TTL 的值降为 0,则路由器将返回一个 ICMP Time Exceeded 消息。 3. Tracert 接收到 ICMP Time Exceeded 消息并记录第一个路由器的 IP 地址和响应时间。 4. Tracert 再次向目标计算机发送 ICMP Echo 请求消息,并将 TTL 设置为 2。 5. 第二个路由器接收到 ICMP Echo 请求消息并减少 TTL 的值。如果 TTL 的值降为 0,则路由器将返回一个 ICMP Time Exceeded 消息。 6. Tracert 接收到 ICMP Time Exceeded 消息并记录第二个路由器的 IP 地址和响应时间。 7. Tracert 重复上述步骤,直到到达目标计算机或达到最大跃点数。 8. Tracert 显示每个路由器的 IP 地址、响应时间和路由器名称(如果可用)。 通过 tracert,用户可以确定到目标计算机的网络路径,识别网络瓶颈和故障,并进行网络优化和故障排除。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值