Tracerouteパケットのデータ長が64バイトであるのに、pingパケットのデータ長が32であるのはなぜですか?その理由はありますか?または、この違いに利点はありますか?
現実はもう少し複雑です。
Pingとtracerouteの両方に、パケットサイズを変更するオプションがあります。
pingのオプションは、ペイロードサイズを変更します。ランニング ping -s 1 www.google.com
は、合計29バイトのパケット(20バイトのIPヘッダー+ 8バイトのICMPヘッダー+ 1バイトのデータ)でgoogleにpingします。
traceroteのオプションは、totalサイズを変更します。例:ランニング traceroute www.google.com 80
は、合計サイズが80バイトのUDPパケットを送信します(20バイトのIPヘッダー+8バイトのUDP + 52バイトのデータ)。
Pingとtracerouteのバージョンが異なると、デフォルトも異なります。ただし、それらはすべて100バイト未満の範囲であり、正確なバイト数は重要ではありません。 pingのデフォルトが32の場合、パケットの合計サイズは60バイトであり、tracerouteのサイズと大差ありません。
パケットの合計サイズは、IPv4またはIPv6を使用しているかどうか、IPオプションセットなどによって異なる場合があります。
Pingとtracerouteの両方のパケットサイズを増やす最も一般的な理由は、MTUの問題をデバッグすることです。それ以外の場合は、デフォルトで問題なく動作します。