0

当我执行跟踪路由时,我发送的第一个数据包的 ttl=1 并且来自我的路由器的回复总是“空”“超时”。这是我不明白的第一件事:为什么我的路由器不向我发送时间超过 icmp 消息?

使用wireshark我观察到第一个paket至少有2个重复(ttl = 1的那个),只有一个来自路由器的空回复。

我认为这是我的代码的问题,但是 youtube 上有很多视频,其中 wireshark 显示了相同的内容:PC 在收到超时 icmp 消息并将 ttl 增加到 2 之前发送 2 或 3 个 ttl=1 的数据包。

你能解释一下吗?

编辑:我犯了一个错误:路由器没有发送“空”或“超时”数据包;这是一条来自 pc 的消息,尚未收到任何数据包。所以 ttl 没有增加。现在我可以提出正确的问题:为什么第一个数据包不能到达目的地?这不是 ttl 的问题(我可以将其设置为 2-3-4,而且我在第一次发送时总是有相同的副本)。

也许这是一个碎片问题?但为什么?一些wireshark 的日志强调,在第一次传输后mss(或mtu..can't rememebr)发生了变化。

4

1 回答 1

0

“我认为这是我的代码的问题”

这是代码或 traceroute 命令的问题吗?第一个数据包的 TTL 为 1,第一个路由器减少 TTL,看到它为 0,并且应该以错误响应,我记得 TTL Time Exceeded。

于 2011-11-26T21:35:08.163 回答