スポンサーリンク

【応用情報技術者試験】ICMPエコー要求パケット

ネットワーク通信の基本|IP・TCP・UDP・ICMP ネットワーク

ICMPエコー要求は、相手へEcho Requestを送り、Echo Replyが返るかを確かめるためのメッセージです。pingの基礎になる仕組みですが、TCP接続を張る処理とは異なります。

要求と応答の流れ

  1. 送信元がEcho Requestを宛先へ送る。
  2. 宛先が要求を受け付け、対応するEcho Replyを返す。
  3. 送信元が識別情報などで要求と応答を対応させ、往復時間等を測る。

Echoでは要求のデータ部分を応答で返します。受信したIPパケット全体を一切変えずに送り返すわけではありません。IPの送信元・宛先、ICMPのTypeなどは要求と応答で変わります。

IPv4とIPv6で番号が異なる

方式 Echo Request Echo Reply
ICMP(IPv4) Type 8、Code 0 Type 0、Code 0
ICMPv6 Type 128、Code 0 Type 129、Code 0

「Echo要求は必ずType 8」とだけ覚えず、IPv4とIPv6のどちらを扱っているか確認します。

識別子・シーケンス番号・データ

項目 主な用途
識別子 やり取りの識別を助ける
シーケンス番号 複数の要求と応答の対応を助ける
データ 応答で返す内容。実装により時刻情報等を含めることがある

ここでのシーケンス番号はTCPのバイト列管理とは別です。また、ポート番号を使うTCP/UDPの通信でもありません。

応答で確かめられる範囲

応答の有無とRTT(往復時間)は、そのEcho交換の結果です。スループットを直接測るものではなく、応答が速いだけで大量転送も速いとは限りません。要求・応答の経路や処理条件によって結果は変わります。

タイムアウトは機器停止のほか、フィルタリング、経路の問題、応答制限などでも起こります。Webサービスの正常性は、そのサービスに合う確認と組み合わせて判断します。

確認問題:Echo Replyは、受信したIPパケットを全く変更せず送り返す?

いいえ。Echoのデータ部分は返しますが、送信元・宛先やICMP Typeなどは要求と応答で異なります。

次の学習:TCP/IP全体とつなげる

EchoはIPの制御通信、TCPは接続とデータ転送の制御です。note教材でTCPの3ウェイハンドシェイクと比較すると、似た「要求と応答」でも役割が違うことを確認できます。

TCP/IPのnote教材でTCP・UDP・ポート番号を復習する

関連記事

note教材ナビで学習テーマを選ぶ

参考資料

RFC 792:IPv4のEcho / RFC 4443:IPv6のEcho

コメント