ICMPエコーとは、指定したエコー(データ・パケット)を2つのノード(PC)の間で送受信するためのメッセージです。
送信元が送信先に対して、エコーメッセージを送ります。データが送信先に届くと、送信先から送信元に全く同じデータを送り返します。このような通信によって、両ノード間でネットワークの疎通を確認することができます。普段よく使うpingコマンドは、ICMPエコー機能を使って実現されています。ICMPエコーパケットの構造は下記です。
実際にpingで試してみましょう。
参考
ICMPメッセージの構造
送信元が送信先に対して、エコーメッセージを送ります。データが送信先に届くと、送信先から送信元に全く同じデータを送り返します。このような通信によって、両ノード間でネットワークの疎通を確認することができます。普段よく使う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 → パケットの送信回数
オプション「-l」に1472より大きな値を指定した場合は、以下の様に、”パケットの断片化が必要ですが、DF が設定されています。”というエラーが出ます。※「DF」はIpヘッダのフラグの1つで、ipパケットを分割しないことを意味します。
これは、LANでイーサネットのMTUサイズが1500になっているからです。
ipヘッダ20byte + icmpヘッダ8byte + echoデータ1473byte =1501 >1500
補足:イーサネットフレームのヘッダは14byte;Tcpのヘッダは20byte参考
ICMPメッセージの構造
この記事がお役にたちましたらシェアをお願いします:)
0 件のコメント:
コメントを投稿