ICMPとは

ICMPは、IP(Internet Protocol)通信において、パケットの配送状況を確認したり、通信エラーが発生した際にその原因を送信元に通知したりするためのプロトコルのことです。

正式名称をInternet Control Message Protocol(インターネット制御通知プロトコル)と呼び、OSI参照モデルのネットワーク層(第3層)に位置付けられています。IP自体には通信の信頼性を確保する機能が備わっていないため、ICMPがその補完的な役割を担うことで、ネットワークの診断や運用の安定性を支えています。

ICMPの役割と仕組み

ICMPは、独立したプロトコルとして機能するのではなく、IPパケットの一部としてカプセル化されて伝送されます。主に「エラー通知」と「情報の照会」という2つの大きな目的があります。

1. エラー通知(Error Reporting)

ルータやホストがパケットを処理する過程で問題が発生した際、送信元に対して何が起きたのかを報告します。

  • 宛先到達不能(Destination Unreachable):ネットワーク経路の断絶や、指定されたポートが閉鎖されている場合に通知されます。
  • 時間超過(Time Exceeded):パケットの生存期間を示すTTL(Time To Live)が0になった際に通知され、ルーティングループの検知に役立ちます。

2. 情報の照会(Query)

ネットワークの状態を調査するために、特定のノードに対して応答を求めるメッセージを送信します。

  • エコー要求/応答(Echo Request/Reply):pingコマンドで利用され、対象となるホストとの疎通確認や往復時間の測定に用いられます。

代表的な利用ツール

ICMPを利用した診断ツールは、ネットワーク管理において極めて重要な役割を果たしています。

ping(Packet INternet Groper)

特定のIPアドレスに対してICMPエコー要求を送信し、相手からのエコー応答を待つことで、ネットワークの接続性を確認します。

traceroute

パケットのTTLを1ずつ増やしながら送信し、経由するルータが返却するICMP時間超過メッセージを追跡することで、宛先までの経路を特定します。

メッセージの構造

ICMPメッセージは、タイプ、コード、チェックサム、およびデータ部分で構成されています。タイプはメッセージの概略を示し、コードはさらに詳細な理由を示します。

例えば、通信の成功率を示すパケット損失率

P_{loss}

、送信したエコー要求の総数を

N_{sent}

、受信したエコー応答の総数を

N_{recv}

とすると、以下の式で算出されます。

P_{loss} = \frac{N_{sent} - N_{recv}}{N_{sent}} \times 100

セキュリティ上の留意点

ICMPは非常に便利なプロトコルですが、攻撃に悪用されるケースもあるため、運用には注意が必要です。

  • ICMP Flood攻撃:大量のICMPパケットを送りつけることで、標的のネットワーク帯域やリソースを枯渇させるサービス拒否(DoS)攻撃の一種です。
  • ネットワークスキャン:pingを広範囲に実行することで、稼働中のホストを特定し、攻撃の足がかりとされることがあります。

このため、多くの企業のファイアウォールや外部公開サーバーでは、セキュリティポリシーに基づき、必要最小限のICMPタイプを除いて通信を遮断(フィルタリング)する設定が一般的となっています。

IPv6におけるICMPv6

IPv6環境では、ICMPv6と呼ばれる拡張版が利用されます。ICMPv6は従来のエラー通知に加え、近隣探索プロトコル(NDP)としての機能を統合しており、MACアドレスの解決(IPv4におけるARPの代替)や、ルータ広告によるアドレス自動設定など、IPv6ネットワークの根幹を支えるより重要な役割を担っています。

関連用語

OSI | 今更聞けないIT用語集
プロトコル | 今更聞けないIT用語集
クラウドソリューション

お問い合わせ

システム開発・アプリ開発に関するご相談がございましたら、APPSWINGBYまでお気軽にご連絡ください。

APPSWINGBYの

ソリューション

APPSWINGBYのセキュリティサービスについて、詳しくは以下のメニューからお進みください。

システム開発

クラウドネイティブ技術とアジャイル手法を駆使し、市場投入スピード(Time-to-Market)を最大化。「進化し続けるアプリケーション」を開発します。初期リリースを最速化し、拡張性と柔軟性を備えた、ビジネスの成長に追従できるアプリケーションを開発します。

DX・AI戦略支援

「何から手を付けるべきか分からない」「AIを導入したいが、費用対効果が見えない」といった経営課題に対し、技術とビジネスの両面から解を導き出します。 絵に描いた餅で終わる戦略ではなく、エンジニアリングの実装能力に基づいた、「実現可能で、勝てる技術戦略」を策定します。


リファクタリング・リアーキテクチャ

「システムが古くて改修できない」「障害が頻発する」といった技術的負債を解消します。既存資産の徹底的な診断に基づき、コードのクリーン化(リファクタリング)や、クラウドへの移行(リアーキテクチャ)を行い、システムの寿命を延ばしコストを最適化します。