2012年3月9日金曜日

ICMPエコー・パケット

  • このエントリーをはてなブックマークに追加


ICMPエコーとは、指定したエコー(データ・パケット)を2つのノード(PC)の間で送受信するためのメッセージです。
送信元が送信先に対して、エコーメッセージを送ります。データが送信先に届くと、送信先から送信元に全く同じデータを送り返します。このような通信によって、両ノード間でネットワークの疎通を確認することができます。普段よく使うpingコマンドは、ICMPエコー機能を使って実現されています。ICMPエコーパケットの構造は下記です。

・タイプ:ICMPエコーの種類を示す(8→要求;0→応答)
・ID、シーケンス番号:ICMPエコーの識別ID
・echoダータ:ICMPエコーのダータの長さ、pingで指定できる。

実際にpingで試してみましょう。
コマンドプロンプトで、【ping www.google.com –l 1472 –f –n 2】を打ってみましょう。
-l → echoデータのLength
-f →  パケットを分割することを許可しない
-n → パケットの送信回数
image
オプション「-l」に1472より大きな値を指定した場合は、以下の様に、”パケットの断片化が必要ですが、DF が設定されています。”というエラーが出ます。※「DF」はIpヘッダのフラグの1つで、ipパケットを分割しないことを意味します。
image
これは、LANでイーサネットのMTUサイズが1500になっているからです。
ipヘッダ20byte + icmpヘッダ8byte + echoデータ1473byte =1501 >1500
 補足:イーサネットフレームのヘッダは14byte;Tcpのヘッダは20byte

参考
ICMPメッセージの構造

この記事がお役にたちましたらシェアをお願いします:)

  • このエントリーをはてなブックマークに追加

0 件のコメント:

コメントを投稿