Pingの-sオプションについて

  • フォーラムは新サイトへ移行しました。
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2013-8-15 7:25
ironsand  半人前   投稿数: 10
Pingの-sオプションで送信バイト数が設定できるとあるのですが、
実際にデフォルトの -s 56 に設定すると 64byte が送信されてますよね?

ヘッダー部分が8バイトあるのかと思って調べたのですが
http://itpro.nikkeibp.co.jp/article/COLUMN/20070731/278719/
IPヘッダだと大きすぎるし、ICMPヘッダーだけだと4バイトで計算が合いませんでした。

この差分の8バイトはどこから出てきてるのでしょうか?
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2013-8-15 13:15
arashi1977  長老 居住地: 広島  投稿数: 1715
PINGコマンドのmanページを確認したところ、以下の記述があります。
引用:
-s packetsize
何バイトのデータが送られるかを指定する。デフォルトは 56 で、 ICMP ヘッダの 8 バイトを加えて、 64 バイトの ICMP データになる。 スーパーユーザーだけがこのオプションを使用できる。
で、確かに56バイトがデータとなっています。
そして、ICMP ヘッダの 8 バイトとあるように、ヘッダー部は8バイトで間違いありません。

実はICMPパケットはタイプによって、チェックサム以降に追加されるヘッダが異なるんですね。
RFC792(INTERNET CONTROL MESASAGE PROTOCOL)で確認していただきたいのですが、pingに相当するEcho Request/Reply については
エコーメッセージ・エコーリプライメッセージ(Echo or Echo Reply Message)

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    タイプ     |    コード     |        チェックサム           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             識別子            |         シーケンス番号        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  データ ...
   +-+-+-+-+-
のように、「識別子」および「シーケンス番号」の4バイト分がヘッダとして使用されます。
ですので、じつは
引用:
ICMPヘッダーだけだと4バイトで計算が合いませんでした。
はICMP共通ヘッダの部分だけだった、というわけです

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.