Windows ❀ Tracert与Traceroute的区别梳理

1、如何使用Tracert

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

  • 进入Windows命令提示符程序,Win7/10系统直接在开始菜单下方的输入框中输入“cmd”或“命令提示符”就可以进入了;
  • macOS打开终端输入traceroute + IP地址/域名。

注意:Windows系统使用tracert命令发送的数据包为ICMP协议,而Linux系统使用的命令为traceroute且发送的数据包为UDP 33434端口;

2、Tracert使用案例,

以Windows系统为例子!

2.1打开CMD;

在这里插入图片描述

2.2 打开抓包软件,运行命令并开启抓包模式

此处使用的抓包软件为wireshark,过滤命令为:ip.addr == [本地解析www.baidu.com的IP地址]
,我们可以使用ping命令或者tracert命令解析某一个域名,或着nslookup直接解析具体的域名均可以获得具体的IP地址,见下图;
在这里插入图片描述
数据包转发过程:

  1. 终端设备通过向目标发送不同IP生存时间 (TTL) 值的“Internet控制消息协议 (ICMP)”回应数据包,Tracert诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1。数据包上的 TTL 减为 0 时,路由器应该将“ICMP 已超时”的消息发回源系统。
  2. Tracert 先发送 TTL 为 1 的回应数据包,并在随后的每次发送过程将TTL递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。通过检查中间路由器发回的“ICMP 已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL 过期的数据包,这在 Tracert 实用程序中看不到。
  3. 从左到右的信息分别代表了“生存时间”(每途经一个路由器结点自增1)、“三次发送的ICMP包返回时间”(共计3个,单位为毫秒ms)和“途经路由器的IP地址”(如果有主机名,还会包含主机名)。

3、Tracert数据包转发过程解析

  1. 打开Windows系统抓到的数据包信息如下:
    在这里插入图片描述

  2. 下图为Linux下的traceroute抓包结果,使用协议为UDP 33434端口发送数据包信息;在这里插入图片描述

类型与代码对照表
在这里插入图片描述

4、以下场景下不发送ICMP差错报文

  • 对于携带ICMP差错报文的数据报,不会再产生ICMP差错报文;
  • 对于分片的数据报,如果不是第一个分片,则不会产生ICMP差错报文;
  • 对于具有组(多)播地址的数据报文,不会产生ICMP差错报文;
  • 对于具有特殊地址(如:127.0.0.0和0.0.0.0)的数据报文,不会产生ICMP差错报文
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无糖可乐没有灵魂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值