IGMPの概要

IGMP(Internet Group Management Protocol)はマルチキャストレシーバがラストホップルータへマルチキャストグループへの参加、脱退を通知するためのプロトコルです。

マルチキャストソースとマルチキャストレシーバが同じサブネットに接続されている場合は、IGMPは特に必要ありません。しかし、マルチキャストソースとマルチキャストレシーバが異なるサブネットに接続されている場合が多いでしょう。この場合、ディストリビューションツリーを作成する必要があります。

マルチキャストレシーバが自身のマルチキャストグループの参加をIGMPでラストホップルータへ通知することにより、ラストホップルータはレシーバの存在を認識します。そして、レシーバへマルチキャストパケットをルーティングするために、マルチキャストルーティングプロトコルと連携してディストリビューションツリーの作成を行っていくことになります。

また、IGMPによってマルチキャストレシーバがグループから脱退するということもラストホップルータへ通知することができます。

IGMPには、v1、v2、v3と3つのバージョンがあります。ここでは、v2を中心に解説します。

IGMPv2のフォーマット

IGMPはIPでカプセル化されて転送されます。IPヘッダのプロトコル番号は2です。IGMPのフォーマットは次の図のようになります。

図 IGMPv2のフォーマット
図 IGMPv2のフォーマット

IGMPのフォーマットの各フィールドは次のような意味があります。

タイプ

IGMPメッセージタイプを表します。

0x11:メンバーシップクエリー
0x12: v1メンバーシップレポート
0x13: v2メンバーシップレポート
0x17:リーブグループ

最大応答時間

クエリーを受信してからメンバーシップレポートを返すまでの最大の遅延時間

チェックサム

エラーチェック用

グループアドレス

マルチキャストグループアドレス

IPマルチキャストの仕組み