ICMPとは

あいしーえむぴー

Internet Control Message Protocolの略。IPの通信で起きた誤りや状態を知らせるためのプロトコル。宛先に届けられない(Destination Unreachable)、TTLが0になった(Time Exceeded)といったことを送信元に通知する。pingはエコー要求とエコー応答で相手に届くかとRTTを調べ、tracerouteはTime Exceededの通知を使って経路を調べる。IPv6ではICMPv6が近隣探索なども担う。

「ICMP」は、2分野の2問の練習問題に出てきます(クラウドとコンテナの基礎, ネットワークの基礎など)。

この用語の分野: ネットワークの基礎

ICMPの練習問題に挑戦

IPv4ヘッダのTTL(Time To Live)の役割として正しいものはどれか。

  1. Aパケットを送ってから応答が返るまでの時間を記録し、TCPの再送の時期を決める
  2. Bルータを通るたびに1ずつ減らし、0になったパケットを捨てることで、経路のループでパケットが回り続けるのを防ぐ
  3. C値が大きいパケットほど、ルータで優先して転送させる
答えと解説を見る

正解:B. ルータを通るたびに1ずつ減らし、0になったパケットを捨てることで、経路のループでパケットが回り続けるのを防ぐ

TTLは名前に「時間」とありますが、実際にはルータを通るたびに1ずつ減らす、通過できるルータの数(ホップ数)の上限として使われています。0になるとルータはそのパケットを捨て、送信元にICMPの時間超過のメッセージを返します。そのため、設定の誤りなどで経路がループしても、パケットが永久に回り続けることはありません。例えばTTLを64で送ったパケットは、ルータを3台通ると61になって届きます。tracerouteはTTLを1、2、3…と増やしながら送り、各ルータが返す時間超過のメッセージから経路を調べます。IPv6では同じ役割のフィールドをホップリミットと呼びます。

解説の中の「ICMP」

「ICMP」が出てくる問題(2問)

  1. 上のDockerfileから作ったイメージ pinger を、docker run pinger example.com として起動した。コンテナの中で実行されるコマンドとして、正しいものはどれか。
  2. IPv4ヘッダのTTL(Time To Live)の役割として正しいものはどれか。

ネットワークの基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

関連する用語

Docker コンテナ JSON 引数 IPv4 ルータ パケット IPv6 RTT(往復遅延時間) IP(インターネットプロトコル)

用語集の一覧へ