Internet Group Management Protocol(IGMP)は、ネットワークに接続された機器のグループが同じIPアドレスを共有し、同じメッセージを受信することを可能にするものです。
この記事を読み終えると、以下のことができるようになります。
関連コンテンツ
是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!
記事のリンクをコピーする
Internet Group Management Protocol(IGMP)は、複数の機器が1つのIPアドレスを共有することで、すべての機器が同じデータを受信できるようにするためのプロトコルです。IGMPはインターネットプロトコルバージョン4(IPv4)を使用するネットワーク上でマルチキャスト接続を確立するために使用されるネットワーク層のプロトコルです。具体的には、IGMPを使用することでデバイスをマルチキャストグループに参加させることができます。
マルチキャストでは、デバイスのグループがすべて同じメッセージ(パケット)を受信します。マルチキャストは、1つのIPアドレスを複数のデバイスで共有することで機能します。そのIPアドレスに向けられたネットワークトラフィックは、1つのデバイスだけでなく、そのIPアドレスを共有するすべてのデバイスに届けられます。これは、従業員のグループが、特定のメールエイリアスに向けられた企業の電子メールを全員が受信するのとよく似ています。
ネットワークに接続されているコンピュータやその他の機器は、IGMPを使用してマルチキャストグループに参加にします。IGMPに対応するルーターは、どの機器がどのマルチキャストグループに属しているかを把握するために、機器からのIGMP送信を待ち受けます。
IGMPは、マルチキャスト用に確保されたIPアドレスを使用します。マルチキャストのIPアドレスは、224.0.0.0~239.255.255.255の範囲にあります(これに対してエニーキャストネットワークでは任意の通常のIPアドレスを使用できます)。マルチキャストグループごとに、これらのIPアドレスを1つずつ共有します。ルータは、共有IPアドレスに向けられた一連のパケットを受信すると、それらのパケットを複製し、マルチキャストグループのすべてのメンバーにコピーを送信します。
IGMPマルチキャストグループはいつでも変更することができます。デバイスは任意の時点で IGMPに「Join Group」または「Leave Group」メッセージを送信することができます。
IGMPは、インターネットプロトコル(IP)の上で直接動作します。各IGMPパケットには、IGMPヘッダーとIPヘッダーの両方があります。ICMPのように、IGMPはTCPやUDPのようなトランスポート層プロトコルを使用しません。
IGMPプロトコルでは、次のような数種類のIGMPメッセージを使用することができます:
IGMPはネットワーク層のプロトコルの一つであり、このネットワーク層を認識するネットワーク機器のみがメッセージの送受信を行うことができます。ルーターはネットワーク層で動作しますが、 ネットワークスイッチはデータリンク層として知られるレイヤー2のみを認識する場合があります。そのため、スイッチはどのネットワークデバイスがマルチキャストグループの一部で、どれがそうでないかを認識していない可能性があります。その結果、マルチキャストトラフィックが不要なデバイスに転送されしてしまい、ネットワークの帯域幅とデバイスの処理能力が消費され、ネットワーク全体の速度を低下させる可能性があります。
IGMPスヌーピングは、スイッチがIGMPメッセージを「スヌーピング(覗き見)」することによって、この問題を解決しています。通常、レイヤ2スイッチはIGMPメッセージを認識しませんが、IGMP スヌーピングによってIGMPメッセージを見ることができます。これにより、正しいデバイスだけがマルチキャストトラフィックを受信できるように、マルチキャストメッセージの転送先を識別できます。
IPv4とIPv6は、インターネットプロトコル(IP)の2つの異なるバージョンです。IPv6の方がより新しいものですが、IPv4もまだ広く使用されています。IPv6におけるマルチキャスト用のプロトコルはIGMPではなくMulticast Listener Discovery(MLD)です。
エニーキャストは、ネットワーク通信を複数の場所に送ることを可能にするもう一つの技術です。マルチキャストと同様に、エニーキャストネットワークでは、同じグループのサーバーで1つまたは複数のIPアドレスを共有することができます。ただし、すべてのサーバーにそれらのIPアドレスへのすべてのトラフィックが送信されるのではなく、ネットワークは事前に定義された条件に基づいて、それらのサーバーのうちの1つにトラフィックをルーティングします。また、エニーキャストネットワークでは、マルチキャストグループよりも広範囲のIPアドレスをサポートすることができます。例として、Cloudflareネットワークは、エニーキャストを使用してすべてのユーザートラフィックを最も近いデータセンターにルーティングしています。
「ユニキャスト」は、インターネットのほとんどで使用されている仕組みのことです。ユニキャストネットワークでは、ネットワーク上のすべての接続デバイスには一意のアドレスが割り当てられています。このアドレス(インターネットではIPアドレス)宛のメッセージは、マルチキャストのように複数のデバイスに送信されるのではなく、そのデバイスにのみ送信されます。