ICMP / Ping の仕組みとエラー原因(Destination Unreachable など)

  • URLをコピーしました!

ネットワークの疎通確認で最もよく利用される「Ping」コマンドは、ICMP(Internet Control Message Protocol)というプロトコルを使っています。 ここでは ICMP の基本的な仕組みと、Ping で発生する代表的なエラー原因について解説します。

ICMPとは?

ICMP は、IP 通信における制御メッセージを送受信するためのプロトコルで、主に以下の目的で使用されます。

  • 通信経路上のエラー通知(宛先不達など)
  • ネットワーク疎通の確認(Ping)
  • 経路情報の収集(Traceroute)

ICMP は TCP や UDP のようなアプリケーションデータを運ぶものではなく、通信状態を伝える補助的な役割を担っています。

Ping の仕組み

Ping コマンドは、ICMP の「Echo Request(エコー要求)」メッセージを送信し、宛先からの「Echo Reply(エコー応答)」を受け取ることで、通信が可能かどうかを確認します。

Ping 実行の流れは以下の通りです。

  1. 送信元が宛先に対して ICMP Echo Request を送信
  2. 宛先ホストが受信すると、 ICMP Echo Reply を返信
  3. 送信元は応答を受け取ることで「到達可能」と判断

実際のコマンド例(Windows の場合):

ping 8.8.8.8

結果には送信・応答時間(遅延)やパケット損失率などが表示され、通信品質の判断にも利用されます。

代表的なICMPエラータイプ

Ping やその他の通信で返ってくる代表的な ICMP エラーメッセージは以下の通りです。

エラータイプ説明主な原因
Destination Unreachable(宛先到達不能)宛先ホストまたはネットワークに到達できない場合に返される。ルーティング設定ミス 宛先ホストがダウンしている ファイアウォールでブロックされている
Time Exceeded(TTL超過)パケットがループして TTL(生存時間)を超過した場合に返される。ルーティングループ Traceroute 実行時に経路確認で利用
Parameter ProblemIPヘッダの形式や値に問題がある場合。機器間の不整合やバグ
Redirectより適切な経路を通知する際に送信される。ルータ設定変更時などに発生

トラブルシューティングのポイント

  • 宛先ホストの稼働確認: 実際にそのホストが起動しているか確認します。
  • ルーティングの確認: 「tracert(Windows)」「traceroute(Linux)」で経路を確認します。
  • ファイアウォール設定: ICMP パケットが遮断されていないか確認します。
  • TTL値の確認: ネットワークループや過剰な中継が発生していないか調べます。

まとめ

  • Ping は ICMP の Echo Request / Reply を使って疎通確認を行う。
  • ICMP は通信状態を通知する「補助プロトコル」であり、データ転送は行わない。
  • エラーの多くはネットワーク経路・ファイアウォール・設定ミスが原因である。

ICMP の挙動を理解しておくことで、Ping 結果の意味やネットワークトラブル時の原因特定がスムーズに行えます。

目次