|
IGMP ( Internet Group Management Protocol
) とは
IGMPとは、マルチキャストグループを制御するためのプロトコルです。
マルチキャストグループとはルータと
ホストのことです。IGMPにより、ルータはLAN上のどのホストがマルチキャストグループのメンバーであるか
判断することが出来て、ホストは自分がどのマルチキャストグループのメンバーであるのかを伝えられます。
簡単に平たく言えば、マルチキャストパケットをルータとホスト間でやりとりする為に IGMP が必要なのです。
IGMPのバージョンは、以下の3つのバージョンと
IGMP version3 lite というものがあります。
@ IGMPv1 ( RFC1112 ) A IGMPv2 ( RFC2236 ) B IGMPv3 ( RFC3376 ) C IGMPv3 lite
IGMPv1
データグラムは20バイトのIPヘッダと、8バイトのIGMPメッセージ( 以下のフォーマット
)により構成されます。

| フィールド |
値 |
| バージョン ( Ver ) |
1 ( IGMPのバージョン ) |
| タイプ ( Type ) |
1 (ホスト メンバーシップ クエリ ) |
| 2 (ホスト メンバーシップ レポート) |
| 未使用 ( Unused ) |
0 ( 送信時に 0 に設定され受信時には無視される
) |
| チェックサム ( Checksum ) |
0 (パケットの完全性を確認するために使用
) |
| グループアドレス ( Group Address ) |
0 ( メンバーシップクエリの場合 ) |
| マルチキャストグループアドレス ( メンバーシップレポートの場合
) |
IGMPv1の仕様によると、各LAN ごとにマルチキャストルータが定期的にホストメンバーシップクエリ
メッセージを送信して、LAN上のどのホストグループにメンバーが登録されているかを調べる必要があります。
IGMPクエリメッセージは、全てのホストグループ
( 224.0.0.1) 宛てに、TTL を1にして送信されます。
クエリメッセージを受信したホストは、応答として、各グループのホストメンバーシップレポートを送信します。
それでは、上記4行をより掘り下げて解説していきます。
マルチキャストグループへの参加
マルチキャストグループに参加するにあたり、ホストはルータからのホストメンバーシップクエリを待つ必要は
ありません。マルチキャストグループに参加したい場合、ホストはマルチキャストに対応している全てのルータ
( 224.0.0.2) 宛てにホストメンバーシップレポートを送信します。このホストメンバーシップレポートのことを
「マルチキャストグループに参加したい!」
というメッセージであることから IGMP Join メッセージとも言います。

マルチキャストグループの維持
マルチキャストルータは、ホストメンバーシップレポートを受け取ると、そのグループメンバーシップの存続を
確認するためにも、全てのホストグループ (224.0.0.1) 宛てに、定期的 (60秒ごと) にホストメンバーシップ
クエリを送信します。( 60秒という時間間隔は、ip igmp [ query-interval ] コマンドにより変更できます。)
各マルチキャストグループにつき1つのメンバーのみがこのクエリにレポートで応答します。1台のホストだけが
このクエリーに応答するだけで良いことから、セグメント上の帯域とホストの処理が節約されることになります。
※ 1台のホストだけが応答する・・・ではその応答するホストはどのように決まるのか。クエリーを受信したそのマルチキャストグループの
各ホストが、それぞれがランダムな時間
( 10秒以内) を決定します。その後カウントを始めて、最初に0になったホストが応答するのです。

マルチキャストグループからの離脱
ホストはルータに何も通知することなく、マルチキャストグループから離脱します。マルチキャストルータは、
定期的にクエリーを伝送して、どのマルチキャストグループのメンバーが、どのインターフェースにいるのか
確認して、ルータのローカルグループデータベースを更新しています。クエリーを送信してからホストからの
レポートの応答がない場合、応答のないマルチキャストグループ用のマルチキャスト配信ツリーから削除
できるようなります。全てのメンバーから応答がなくなれば、マルチキャストパケットの転送もなくなります。

※ Resource : IPマルチキャストネットワーク開発ガイド Vol
1 BCMSN認定テキスト 第二版 マスタリングTCP/IP マルチキャスト編
|