IGMP(アイジーエムピー)とは | 意味や読み方など丁寧でわかりやすい用語解説
IGMP(アイジーエムピー)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
インターネットグループ管理プロトコル (インターネットグループカンリプロトコル)
英語表記
IGMP (アイジーエムピー)
用語解説
IGMPはInternet Group Management Protocolの略称であり、TCP/IPネットワークにおいてマルチキャスト通信を実現するために使用されるプロトコルである。その主な役割は、コンピュータなどのホストが、特定のマルチキャストグループに参加したり、離脱したりする意思を、ネットワーク上のルーターに伝えることにある。これにより、ルーターはどのホストがどのマルチキャストデータを受信したいのかを把握し、必要な場所にのみデータを転送することができる。結果として、ネットワーク上に不要なトラフィックが流れることを防ぎ、帯域を効率的に利用することが可能となる。IGMPは、IPプロトコルと同じネットワーク層で動作し、IPパケットに内包される形で通信が行われる。主に動画配信やオンラインゲーム、株価情報の一斉配信など、同一のデータを同時に多数の受信者に届けるサービスでその真価を発揮する。
IGMPを深く理解するためには、まずユニキャスト、ブロードキャスト、マルチキャストという3つの通信方式の違いを把握する必要がある。ユニキャストは、送信者と受信者が1対1で行う最も一般的な通信である。ブロードキャストは、1つの送信者がネットワーク上のすべてのホストに対してデータを送信する1対全員の通信方式であり、特定の用途以外ではネットワークに大きな負荷をかける。これに対しマルチキャストは、1つの送信者が特定のグループに所属する複数のホストに対してのみデータを送信する1対特定の複数という通信方式である。マルチキャストを利用することで、送信者はデータを一度送信するだけで、受信を希望するすべてのホストにデータを届けることができ、ネットワーク帯域の消費を大幅に削減できる。
この効率的なマルチキャスト通信を実現する上で中心的な役割を担うのがIGMPである。ネットワーク上のホストは、マルチキャストデータを受信したい場合、まずそのデータが属するマルチキャストグループに参加する必要がある。この「参加したい」という意思表示をルーターに伝えるのがIGMPの役割である。具体的には、ホストは「メンバーシップレポート」と呼ばれるIGMPメッセージを送信し、ルーターにグループへの参加を通知する。逆に、データの受信が不要になった場合は、「離脱メッセージ」を送信してグループから抜けることを伝える。
ルーターは、これらのIGMPメッセージを受け取ることで、自身の配下にあるどのネットワークセグメントに、どのマルチキャストグループの受信者が存在するかを管理する。そして、上流からマルチキャストデータが流れてきた際に、受信者が存在するセグメントにのみデータを転送する。もしIGMPがなければ、ルーターはマルチキャストデータをブロードキャストのように扱わざるを得なくなり、受信を希望しないホストにもデータが送られ、ネットワーク全体のパフォーマンスが著しく低下してしまう。
IGMPにはいくつかのバージョンが存在し、機能が拡張されてきた。IGMPv1は最も初期のバージョンで、グループへの参加を通知する機能はあったが、離脱を明示的に通知する仕組みがなかった。そのため、ホストがグループを離脱しても、ルーターがそれを検知するまでに時間がかかるという課題があった。IGMPv2では、ホストが自発的にグループからの離脱を通知する「Leave Group」メッセージが追加された。これにより、ルーターはより迅速にグループメンバーの情報を更新でき、不要なトラフィックの転送を素早く停止できるようになった。また、複数のルーターが存在する環境で、どのルーターが代表してホストに問い合わせを行うか(クエリアの選出)の仕組みも改善された。
さらに進化したIGMPv3では、SSM (Source-Specific Multicast) という機能がサポートされた。これは、特定の送信元(ソースアドレス)からのマルチキャストデータのみを受信したいという、より詳細な制御を可能にするものである。従来のバージョンでは、あるマルチキャストグループに参加すると、そのグループアドレス宛のデータであれば送信元を問わずすべて受信してしまっていた。IGMPv3では、ホストが「グループA宛で、かつ送信元がサーバーXのデータだけが欲しい」といった指定ができるようになり、セキュリティの向上や、より柔軟なサービス設計が可能になった。
実際のネットワーク環境では、ルーターだけでなくスイッチの役割も重要である。通常、レイヤー2スイッチはIPアドレスを見ずにMACアドレスのみでフレームを転送するため、マルチキャストパケットをブロードキャストと同様に扱ってしまい、VLAN内の全ポートに転送してしまう。これを防ぐのが「IGMPスヌーピング」と呼ばれる機能である。IGMPスヌーピングを有効にしたスイッチは、ホストとルーター間でやり取りされるIGMPメッセージを「盗み聞き(snoop)」する。これにより、スイッチ自身がどのポートの先にどのマルチキャストグループの受信者がいるかを学習し、マルチキャストパケットを必要なポートにのみ転送するようになる。IGMPスヌーピングは、IGMPプロトコルそのものではないが、IGMPと連携してマルチキャスト通信の効率化に大きく貢献する重要な機能である。
このように、IGMPはマルチキャスト通信における「交通整理役」として機能し、ホストからの参加・離脱要求を管理することで、ネットワークリソースの有効活用を実現している。システムエンジニアとしてネットワークを設計・構築する際には、このIGMPの仕組みとIGMPスヌーピングの重要性を理解しておくことが不可欠である。