1-1 IGMPv2
IGMPv1と同様にIGMPv2は、マルチキャストグループの管理を行う。IGMPv2は、IGMPv1と同じ機能に加えいくつかの拡張機能を提供
している。
1-2 IGMPv2のパケットフォーマット
IGMPパケットはIPでカプセル化されて転送される 。 IGMPのフォーマットの各フィールドは次のような意味がある。
1-3 IGMPv2の動作
【マルチキャストグループへの加入】
マルチキャストグループへの加入は、IGMPv1と同じ。マルチキャストグループに入るためには、
ホストはマルチキャストメンバーシップレポート(IGMP Join)を送信する。
【マルチキャストグループへの維持】 マルチキャストグループの維持は、IGMPv1と同じくルータが定期的(60秒ごと)
にクエリーを送信することによって行う。 ●クエリア ( クエリを送信するルータ )選出メカニズム
同一セグメント上に複数のIGMPv1ルータが存在す
る場合は、マルチキャストルーティングプロトコルが全てのマルチキャストルータの中でどの
ルータがメンバーシップクエリを実行するかを決定していた。
IGMPv2では、セグメント上の最も低いIPアドレスを持つルータを選出する
。
自分よりも小さな IPアドレスを持つルータのクエリを検出した場合、クエリアとしての動作を
止める。つまり、より小さな IP アドレスを持つルータがクエリア
になる。 例えば下記の図では、インターフェイスのIPアドレスが最も小さいのはルータBなので、ルータBがクエリアとなる。 ●クエリインターバルの最大応答時間が追加された
IGMPv1ではグループのメンバー(ホスト) がクエリア ( ルータ ) からクエリを受け取っ
てから、メンバー(ホスト)が
その応答としてタイマーの値の最大値が10秒で、レポートメッセージが送信する必要があった。
IGMPv2では、このタイマーの値を設定で決めることができるようになっている。 これにより、マルチキャストグループの最後のメンバー(ホスト)が離脱したとき、
ルータはそのグループに対するマルチキャストトラフィックの転送を数秒以内に中止することができる。
IGMPv1と異なる点の3つ目は、 ●グループ指定クエリ グループ指定クエリメッセージとは、ルータが特定のマルチキャストグループ
を指定するクエリのこと。グループ指定クエリでは、
クエリの対象となるグループがグループアドレスフィールドに含まれ、それを受信したホス
トがメンバーシップレポートによって応答する。
IGMPv1と異なる点の4つ目は、
●ホストがグループから離脱する際、グループ脱退(リーブ)メッセージを送出する
この時ルータは
念のためクエリを再度(クエリ間隔:1秒)送信する。
従って、IGMPv2では、3秒以内にマルチキャストトラフィックの転送を中止することができる。
これにより、マルチキャストグループから離脱するホストが、そのグループの最後のメンバーであった時、
そのマルチキャストグループに対する離脱遅延も短くなることから、ルータからの意味のないマ
ルチキャストパケットの転送時間も短くなる。
IGMPv1と異なる1つ目は、
IGMPv1と異なる点の2つ目は、
応答時間はクエリメッセージの最大応答時間フィールドで指定
する。
【マルチキャストグループからの脱退】
●リーブメッセージを受け取った際、グループ指定クエリを送出する
IGMPv1ではホストがグループから脱退する際に、黙って脱退していた。
ルータは定期的にクエリ送出感覚を待つ間、無駄なマルチキャストを流し続けていたが、IGMPv2では「もう必要ない」というグループ脱退(リーブ)メッセージをすべてのマルチキャスト対応ルータ
(224.0.0.2)に伝達してから、グループからの脱退を行う。
IGMPv2ルータは、グループ脱退(リーブ)メッセージを受信すると、グループ224.1.1.1に残
っているホスト(受信者)が存在しないかを
確認するために、グループ指定クエリを送信する。
最後の受信者からのグループ脱退(リーブ)メッセージであった場合、グループ指定クエリに対する応答は返ってこない。