パソコンからマルチキャストアドレスを指定して動画を視聴する際、IMGPを送信しますが、これをMembership Reportと言います。
Membership Reportを受信したルーターでは、どのインターフェースにどのマルチキャストグループを配信するかと言ったテーブルを作成します。
動画を参照しなくなった場合は、Leave Groupを送信して脱退を通知します。
ルーターではLeave Groupを受信すると、配信用のテーブルから削除します。
尚、IMGPにはバージョン1から3まであります。IGMPv1はLeave Groupがありません。このため、パソコンから明示的に配信停止を通知出来ません。
IGMPv2では、Leave Groupを送信します。
IGMPv3もLeave Groupがありませんが、Membership Reportにまとめられています。
Leave Groupの宛先は224.0.0.2で、全てのルーター宛てを意味します。
Membership Reportを送信した後は、Leave Group等が送信されるまで永久に動画が流れ続ける訳ではありません。ルーターから定期的に送信されるMembership Queryに対し、パソコンがMembership Reportで応答する事により、グループへの参加が継続されます。この定期的な送信間隔はQuery Intervalと呼ばれ、例えば125秒や60秒等です。
応答がない場合は、配信用のテーブルから削除され、動画は配信されなくなります。この待ち時間はGroup Membership Intervalと呼ばれ、例えば260秒や180秒等です。
Membership Queryを定期送信する装置をクエリアと呼びます。クエリアは、サブネットに1つ必要です。
サブネットに2つのルーターが存在した場合、IGMPv1ではPIMによって選出されたルーターがクエリアになります。
IGMPv2とv3では、自身のIPアドレスより小さい送信元IPアドレスのMembership Queryを受信すると、Membership Queryの送信を停止します。
送信を停止したルーターでもMembership Reportは受信するため、動画の配信が可能です。又、クエリアからMembership Queryを受信しなくなると、Membership Queryを送信し始めます。
IGMPではバージョン毎に動作が異なります。
IGMPv1では、Membership Reportは送信しますが、Leave Groupがありません。このため、動画の視聴を停止すると、ルーターから定期的に送信されるMembership Queryに応答がなくなるため、Group Membership Intervalの間待ってから配信が停止されます。
Membership Queryの宛先IPアドレスには、224.0.0.1が使われます。これをGeneral Queryと言います。General Queryは、どのグループに属していても全ての機器がMembership Reportで応答します。つまり、定期的なクエリーに対しては、何れかのグループに参加している全てのパソコンが応答します。
又、IGMPv1とv2のMembership Report宛先は、239.255.0.10等グループアドレスが使われます。
IGMPv2では、IGMPv1と同じでルーターから定期的なMembership Queryを送信します。パソコン側はMembership Reportに加えてLeave Groupも送信します。Leave Groupを受信したルーターは直ぐにテーブルから削除するのではなく、他に同じグループを受信するパソコンがいないか確認するために、Membership Queryを送信します。
PC-bで動画を参照している場合は、Membership Reportを送信する事で継続して動画が配信されます。Membership Reportの応答がない場合は、ルーターから動画が配信されなくなります。この応答待ち時間は10秒等で、IGMPv1の時と比べて早く配信が停止出来ます。
この時のMembership Query宛先IPアドレスは、239.255.0.10等グループアドレスが使われます。これをGroup-Specific Queryと言います。Group-Specific Queryには、グループに属するパソコンだけが応答します。つまり、脱退時のMembership Queryにグループアドレスを使う事で、関連しないパソコンからのMembership Reportを削減出来ます。
Membership QueryにおけるGeneral QueryとGroup-Specific Queryの違いは、以下の通りです。
クエリ | 宛先IPアドレス | 用途 | 使うバージョン |
---|---|---|---|
General Query | 224.0.0.1 | 定期送信 | V1とV2 |
Group-Specific Query | グループアドレス | Leave Groupを受信した時に送信 | V2 |
IGMPv3は、パソコン側ではv2と同様にMembership Reportを送信します。又、ルーター側から定期的なMembership Queryも送信します。IGMPv3の特徴は、Membership Reportで配信の送信元を指定出来る点です。
この指定方法には、INCLUDEモードとEXCLUDEモードがあります。INCLUDEモードは受信する送信元IPアドレスを指定し、EXCLUDEモードは受信しないIPアドレスを指定します。
INCLUDEモードとEXCLUDEモードは、グループレコードのタイプで指定されます。この指定方法は、グループへの参加、脱退でも使われます。例えば、EXCLUDEモードにして送信元指定しないと参加(Join Group)、INCLUDEモードにして送信元指定しないと脱退(Leave Group)となります。
IGMPv1とv2ではMembership Reportの宛先IPアドレスは、参加するグループのマルチキャストアドレスでしたが、v3では224.0.0.22で、全てのIGMPv3対応ルーターが受信します。
バージョンの混在
パソコンからIGMPv3のMembership Reportを送信しても、IGMPv2をサポートしているルーターでは処理されません。
複数のバージョンをサポートしており、バージョンを一致させれる場合は正常に動作します。
例えば、ルーター側から定期的に送信されるIGMPv2のMembership Queryに対し、v2のMembership Reportで応答すればテーブルに登録されます。
この場合、ルーターから定期的(125秒等)なMembership Queryが送信されるまで待った後に、動画が配信される事になります。
最近では、多くの機器やソフトウェアでIGMPv1とv2をサポートしており、v3をサポートしている場合でも通常はv1やv2が利用出来ます。
通信量の抑制
IGMPv1とv2のMembership Report宛先IPアドレスは、グループアドレスです。グループに属する他のパソコンも受信可能で、そのパソコンはMembership Reportを送信しません。ルーターでは、1台だけでもMembership Reportを送信していれば動画を配信するため、Membership Reportを送信しなかったパソコンも視聴出来ます。
IGMPv3では、Membership Reportの宛先IPアドレスは224.0.0.22でルーター宛てのため、この抑制は出来ません。
他のパソコンからMembership Reportが送信されていれば、Leave Groupを送信しない事もあります。自身が動画の視聴を停止した場合でも、他のパソコンが動画を視聴するためにMembership Reportを送信していれば、ルーターからの配信を停止しない方がよいためです。