インターネット制御メッセージプロトコルとは何ですか?
インターネット制御メッセージプロトコル(ICMP)は、コンピューターネットワークでエラーの報告と診断を行うために使用されるユーティリティです。 ICMPはインターネットプロトコル(IP)スイートの一部であり、さまざまな目的の定義済みメッセージで構成されています。 インターネット制御メッセージプロトコルのほとんどの側面はエンドユーザーに気付かれませんが、tracerouteやpingなどのいくつかのネットワークツールは、機能についてICMPメッセージに依存しています。
インターネットと小規模なコンピューターネットワークの中心には、IPスイートと呼ばれるプロトコルのコレクションがあります。 これらのプロトコルは、ネットワークデバイス間で交換されるメッセージの形式を指定し、それらのメッセージの送受信方法に関するルールを確立します。 プロトコルも階層化され、各層はその下の層に依存します。 ICMPは、2番目に高い層であるインターネット層の一部です。 この層には、1つ以上のネットワークを介した、パケットと呼ばれるデータの個々のグループの送信を担当するよく知られたインターネットプロトコルが含まれます。
ICMPは、インターネットプロトコルを使用して、デバイスまたはホスト間でエラーメッセージまたは診断情報を送信するために使用されます。 ICMPメッセージは事前定義されており、名前またはタイプ番号で参照できます。 これらのメッセージのほとんどは、さまざまなタイプのエラー報告用です。 たとえば、特定のホストに到達できない場合、データ配信を妨げる特定の問題を示すICMPメッセージがしばしば生成されます。 他の種類のメッセージは、パケットが破損した場合、またはネットワーク内のルーターまたはホストが輻輳した場合に送信されます。
パケットの最大サイズは事前定義されていませんが、特定のネットワークリンクの最大伝送ユニット(MTU)によって決まります。 リンクごとに異なるMTUを設定できますが、パケットは、特定のパスに沿った最小のMTUよりも小さくなければ、移動できません。 Path MTU Discovery(PMTUD)と呼ばれる技術は、ICMPメッセージを使用して、パケットが特定のパスセグメントに対して大きすぎる場合に送信者に通知します。
ICMPルーター発見プロトコル(IRDP)と呼ばれる関連プロトコルは、それをサポートするホストの自動ネットワーク構成を容易にします。 IRDPは、2種類のインターネット制御メッセージプロトコルメッセージを使用して、近くのルーター、つまり2つ以上のネットワークに接続するホストをアナウンスおよび検出します。 IRDPをサポートするルーターは、その存在をホストに通知するICMPルーター広告メッセージを定期的にブロードキャストします。 ホストは、近くのすべてのルーターに自分自身を識別するよう要求する要請メッセージを送信することもできます。
一部の一般的なネットワークユーティリティは、インターネットコントロールメッセージプロトコルにも依存しています。 1つのツールであるtracerouteは、パケットの有効期限が切れるか、「存続可能時間」(TTL)を超えたときに生成されるICMPメッセージを利用します。 パケットのTTL値を意図的に低く設定することにより、tracerouteは、パケットが期限切れになる前に到達した最後のルーターからICMP Time Exceededメッセージを受信します。 このプロセスを繰り返し、TTL値を増やすと、理論的には、パケットが通過するすべてのホストのリストが生成されます。
pingと呼ばれる別のツールは、ICMP Echo Replyメッセージで応答されるICMP Echo Requestメッセージに依存しています。 残念ながら、ハッカーが偽の送信者情報を含むエコーリクエストを送信すると、いわゆる「スマーフ攻撃」でpingが悪用される可能性があります。 これにより、正当なパケットが通過できないポイントまでネットワークを輻輳させることができます。これは、サービス拒否と呼ばれる状況です。