【小ネタ】pingの出力結果について

前のエントリーでping監視の1行コマンドを書きましたが、pingコマンドのオプションで気になったことをメモ。

まず、「-s 1」で1バイトのパケットを投げてるのに、どうして
9 bytes from 192.168.0.1: icmp_seq=0 ttl=255
みたいなレスポンスが帰ってくるかっていうと、「8バイトのICMPヘッダと1バイトのパケットの合計」なので、辻褄があうのです。試しに1バイトのパケットを投げたときの出力結果と8バイトのパケットを投げたときの出力結果を比較してみましょう。

■ 1バイトのパケットを投げたとき

$ ping -c 1 -s 1 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 1(29) bytes of data.
9 bytes from 192.168.0.1: icmp_seq=0 ttl=255

--- 192.168.0.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
, pipe 2


■ 8バイトのパケットを投げたとき

$ ping -c 1 -s 8 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 8(36) bytes of data.
16 bytes from 192.168.0.1: icmp_seq=0 ttl=255 time=0.552 ms

--- 192.168.0.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.552/0.552/0.552/0.000 ms, pipe 2


このように、自分が投げたパケットサイズにプラスして、8バイトのヘッダがくっつくのです。

あと、jmanのping(8)の項目を見て思ったのですが、
> -s packetsize
> 何バイトのデータが送られるかを指定する。デフォルトは 56 で、 ICMP ヘッダの 8 バイトを加えて、
> 64 バイトの ICMP データになる。 スーパーユーザーだけがこのオプションを使用できる。
ってあるんだけど、rootじゃないのにこのオプション使えてるのです。どーでもいーっちゃいーんだけど気になったので、
手元の端末でmanを見てみた。

$ man ping
(中略)
> -s packetsize
> Specifies  the number of data bytes to be sent.  The default is 56, which translates into 64 ICMP data bytes when combined with
> the 8 bytes of ICMP header data.

とだけ書いてあるので、特にスーパーユーザーでないとこのオプションが使えないってわけじゃないのかなーと。
ちなみに、(っ´∀`)っ ゃーのマシンにインストールされているpingのバージョンは

$ ping -V
ping utility, iputils-ss020927

で、pingコマンドが含まれているパッケージ「iputils」のバージョンは

$ rpm -q iputils
iputils-20020927-19.EL4.5

です。

トラックバック(0)

このブログ記事を参照しているブログ一覧: 【小ネタ】pingの出力結果について

このブログ記事に対するトラックバックURL: http://www.blogcube.info/cgi-bin/mt-tb.cgi/120

カスタム検索

カレンダー



このブログ記事について

このページは、(っ´∀`)っ ゃーが2008年5月 2日 17:34に書いたブログ記事です。

ひとつ前のブログ記事は「【小ネタ】複数のホストにpingを打ってその結果をわかりやすく出力する」です。

次のブログ記事は「【pound】 poundインストール」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.01