Ping 和 tracert 命令结果

网络工程 网络 跟踪路由
2022-03-01 03:13:36

在这里,当我对 google.com 使用命令 ping 和 tracert 时,我得到了响应

在此处输入图像描述

现在,我还是网络新手,但我需要知道如何解释我在这里得到的响应:

1)首先,我需要知道在这两种情况下发送了多少个数据包,使用 ping 很容易,因为它明确表示发送了 4 个数据包。

我如何知道使用 tracert 命令发送了多少数据包?我只能从对 Tracert 的响应中读取跳数。

2) 现在,我如何知道这两种情况下 IP 数据包的大小?

使用 ping 我有 32 个字节的数据和 20 个字节的 IP 标头,但我不知道 ICMP 标头的大小(它可能是 8 个字节,因为它在 UDP 中,但我不确定)

另一方面,使用tracert,没有关于正在发送的数据大小的信息,所以我什么都不知道。

3) 在第一种情况和第二种情况下,根据 IP 标头发送了多少个不同的数据包?(我不知道如何回答这个问题,我认为发送回显请求时IP头没有改变,但我不知道tracert)

4) 当我们发送这些消息时,与 google.com 建立了多少双向 TCP 连接?

我想答案是零,因为 ping 和 tracert 都使用 ICMP 协议。那是对的吗?

任何帮助表示赞赏!

1个回答
  1. Traceroute 通过发送具有增加的生存时间值的数据包来工作。不同版本的 traceroute 发送不同类型的数据包,但基本思想是:a) 数据包到达目标,目标进行应答,或者 b) 路由器发现 TTL 已过期并返回错误的 ICMP 数据包。由于整个业务在很多方面都是不可靠的,因此大多数 traceroute 发送每个 TTL 的数据包 3 次。因此,您的示例显示了 27 个数据包。再说一遍,它并没有向您显示从 A 到 B 的路线;它显示了 27 个数据包放弃的点。如果路由没有改变,可能会向您显示正常数据包的正常路由,但这只是来自失败数据包的反向散射的猜测。

  2. 了解数据包大小的常规方法是使用数据包分析器,例如 tcpdump 或 Wireshark(或其命令行姐妹 tshark)。您的问题中没有足够的信息来回答这个问题。要了解 ICMP 数据包的详细信息,请参阅RFC 792

  3. 查看不同标头的最佳方法是使用数据包分析器查看它们;但基本上 ping IP 标头从一个到下一个是相同的(但 ICMP 值不同);而在 traceroute 中,标头具有不同的 TTL 值。

  4. 显然,ping 中没有 TCP,所以那里没有。在 traceroute 中,只有三个数据包到达目标。通常这些是 UDP 数据包,接收 ICMP Port Unreachable 数据包;根据 traceroute 实现,它们可能是 TCP 打开,也接收到端口不可达,但可能会偶然命中一个打开的端口并接收到一个 SYN-ACK,但这不会算作打开双方的完整三向握手TCP 连接。