H O M E > ネットワークのおべんきょしませんか? Cisco CCNA/CCNP/CCIE、ネットワークスペシャリスト試験の勉強にピッタリ > 2003年2月
(所属カテゴリー:マルチキャスト---投稿日時:2003年2月23日)
IGMPによって、マルチキャストグループの管理を行います。管理するとは、具体的に
あるコンピュータがマルチキャストのアプリケーションでマルチキャストを受信したいと設定したとします。つまり、マルチキャストグループに入りたいという設定を行うと、コンピュータはIGMPメンバーシップレポートを送信します。このマルチキャストグループへ入りたいというタイミングで送信するIGMPメッセージをIGMP Joinメッセージと呼びます。
IGMP JoinメッセージのIPヘッダの送信先IPアドレスは加入したいグループアドレスを指定します。IGMPが有効になっているルータは、Joinメッセージを受け取ると、受け取ったインタフェースの先にマルチキャストグループのメンバーがいるということがわかりり、該当のマルチキャストグループへのパケットを転送するようになります。IGMP Joinメッセージによって、「マルチキャストグループに入りたいんです!」ということをルータに知らせています。
たとえば、あるコンピュータAが224.10.10.10のグループに加入したいときは、次の図のようになります。
ルータは、さらにインタフェースの先にマルチキャストグループが存在しているかどうかを確認しなくてはいけません。そのために、定期的な問い合わせ、クエリーを行います。
デフォルトの設定では、60秒に1度、ルータはジェネラルクエリーを送信します。ジェネラルクエリーの送信先IPアドレスは224.0.0.1です。この224.0.0.1というアドレスはWell-knownのマルチキャストグループであり、ネットワーク上のすべてのマルチキャストホストを示しています。ジェネラルクエリーを送信することによって、ルータは「マルチキャストグループのメンバーの人いますか~?」と問い合わせをしているんですね。
問い合わせを受けたマルチキャストグループのメンバーは、返事を返します。でも、返事を返すのはひとりだけです。ルータはひとりでもグループのメンバーがいれば、マルチキャストを中継するので何人も返事を返す必要はありません。
返事を返すメンバーを決める仕組みは、ジェネラルクエリーを受け取ると、受け取ったメンバーはタイマーをスタートさせます。タイマーの初期値は10秒以内のランダムな値です。このタイマーが最初に0になったメンバーがルータに返事を返します。返事の内容は、Joinのときと同じメンバーシップレポートとなっています。
あるコンピュータが「もうマルチキャストを受け取りたくない!」というとき、IGMPv1では何もしません。IGMPv1は、グループから抜けるときには黙って抜けていきます。
ルータは、マルチキャストグループのメンバーがいないところへいつまでもパケットを転送しても仕方がないですね。ルータが送信するジェネラルクエリーに対する返事(レポート)が一定時間内に返ってこないと、グループのメンバーがいなくなったと判断して、そのインタフェースへマルチキャストを転送しなくなります。
以上のように、