Wireshark で ping コマンドをキャプチャしたときに表示される「データ」内の文字列は何ですか?

Wireshark で ping コマンドをキャプチャしたときに表示される「データ」内の文字列は何ですか?

すべての ping キャプチャabcdef...の「データ」にこのシーケンスがありますが、これは何か関連があるのでしょうか、それとも単なるダミー データでしょうか。往復時間を測定する以外に、何か目的があるのでしょうか。

ここに画像の説明を入力してください

答え1

これは、パケットをパディングして、最小イーサネット フレーム サイズである 64 バイト (16 進数 40) に達するようにするだけです。

ICMP セグメントは 64 より小さいため、最小値を満たすようにパディングする必要があります。これは、最小値に達するまでアルファベットを追加するだけで実行されます。

Wikipediaを参照 イーサネットフレーム

答え2

ペイロードは必ずしもただパディング。実際、ペイロードは、ある程度、OS のフィンガープリントを作成するためにも使用できます。この場合、次の 2 つの理由から、ping は Windows マシンから実行されたと確信しています。

  1. ペイロードにタイムスタンプがない
  2. 識別子は1です

これを Mike Muuss ベースの ping (FreeBSD、Mac OSX、...) と比較してみましょう。

  1. ペイロードの最初の8バイトはタイムスタンプを表します(struct tv32)
  2. 識別子は、プログラム自体のプロセス ID の下位 16 ビットですping

または、Solaris では、タイムスタンプは「struct timeval」であり、秒の値には 64 ビットの秒フィールドが含まれる場合があります。他の OS でもペイロードが異なる場合があります。

参考までに、古いWiresharkのバグに関するコメントを読むと、バグ 5770

もちろん、ICMPペイロードにはICMPトンネリングなどの他の用途もあります。これについて説明している記事が1つあります。Ping パワー - ICMP トンネル

いずれにせよ、ICMP ペイロードは必ずしもパディングだけではありません。

関連情報