web-dev-qa-db-ja.com

ICMPエコー要求およびエコー応答パケットにデータ部分が含まれているのはなぜですか?

ICMPエコー要求パケットとエコー応答パケットにはデータ部分が含まれています。たとえば、これはEcho Requestパケット(Windowsでpingコマンドを使用して送信されたもの)です。

enter image description here

ご覧のとおり、パケットには32バイトで構成されるデータ部分があり、このデータは何も意味していないようです(アルファベットの一部にすぎません)。

データ部分は必須ですか、それともオプションですか?

1
user603337

要求パケットにデータ部分がある場合、replyパケットではデータ部分が必須です。応答システムは、まったく同じデータ部分を含む応答を送信する必要があります。 RFC792 は、要求パケットのデータ部分が必須かどうかを指定しません。このスキーマのDataは、他の多くのRFCのように(optional)としてマークされていません。

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |     Type      |     Code      |          Checksum             |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |           Identifier          |        Sequence Number        |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |     Data ...
 +-+-+-+-+-

ただし、ゼロバイトのデータでpingを送信することは完全に可能です。 Windowsで試してみてください:

ping <destination> -l 0

これは、ICMP-Echo-Requestのデータ部分がオプションであることを証明しています。

1
Jonas Köritz