0

traceroute を実行すると、送信する最初のパケットは ttl=1 になり、ルーターからの応答は常に「null」「timeout」になります。それが私が理解できない最初のことです:なぜ私のルーターは私に時間を超えた icmp メッセージを送らないのですか?

Wireshark を使用して、最初のパケット (ttl=1 のもの) の複製が少なくとも 2 つあり、ルーターからの null 応答が 1 つだけあることを確認しました。

私はそれが私のコードの問題だと思っていましたが、wireshark が同じことを示している youtube のビデオがたくさんあります: PC は 2 つまたは 3 つのパケットを ttl=1 で送信してから、時間を超えた icmp メッセージを受信し、ttl を 2 に増やします。

これについて説明していただけますか?

編集: 私は間違いを犯しました: "null" または "timeout" パケットはルーターによって送信されません。まだパケットを受信して​​いない 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 に答える