IGMP / Internet Group Management Protocol


■ IGMPの概要。

 IPマルチキャストを実現するためのプロトコルの1つ。

  IPマルチキャストをサポートするルータが、
  自身の個々のインターフェースに接続された物理ネットワーク上に、
  個々のマルチキャストグループに参加しているホストが存在するか否かを、
  管理するために使用するプロトコル。

  他のルータからマルチキャスト・パケットを受け取ったルーターは、
  インターフェース上に参加を宣言しているホストがある場合のみ、
  パケットを当該LANセグメントへ送出する。

  ホストが参加したいグループをルーターに対して通知することを、
  IGMPレポート(返答)と呼ぶ。
  また、ルータがネットワーク上の参加ホストを確認することを、
  IGMPクエリー(要求)と呼ぶ。

■ IGMPのプロトコル仕様。

  IGMPはIPと同じネットワーク層プロトコルである。
  IGMPメッセージは、オプションなしの固定長メッセージとして、
  IPパケットに格納されて運ばれる。

  IPパケット
  +-------------+--------------+
  |  IPヘッダ   |IGMPメッセージ|
  |(20バイト) |  (8バイト) |
  +-------------+--------------+

  IGMPメッセージのフォーマット

   0                          15  16                      32   
  +---------------+-----------+-----------+------------+
  |IGMPバージョン |IGMPタイプ |  未使用   |チェックサム|
  |  (4ビット)  |(4ビット)|(4ビット)|(16ビット)|
  +---------------+-----------+-----------+------------+
  |       クラスDのマルチキャストグループアドレス         |
  |                    (32ビット)                       |
  +-------------------------------------------------------+

  IGMPタイプ
  1=ルータからのIGMPクエリー(要求)
  2=ホストからのIGMPレポート(応答)

  IGMPには、複数のバージョンがある。
  バージョン1は、RFC1112に規定されており、基本的な機能のみを提供する。
  バージョン2は、RFC2236に規定されており、Leave Group機能を持つ。
  バージョン3は、ドラフト。送信元アドレスベースのフィルタ機能を持つ。
  (2000年現在)

  今使うなら、バージョン2になる。
  Windows98以降は、バージョン2に対応している。
  Windows95は、バージョン1にしか対応していない。

  IPv6では、
  IGMPの代わりにMLD(Multicast Listener Discovery)を使用する。
  RFC2710に規定されている。
  中身はIGMPv2とまったく同じである。

■ IGMPの動作。

  マルチキャスト対応ルータは、以下のようにして、
  ホスト群がグループに参加・脱退したりすることを管理している。

  (1) グループへの参加。

    ホストがはじめてグループに参加する場合は、
    IGMPレポートを10秒間隔で2回送信することになっている。
    ここで送信されるパケットの宛先IPアドレス、IGMPグループアドレスには、
    参加したいマルチキャスト・グループのクラスDアドレスを指定する。
    これは、他のホストの参加の有無に関わらず送信する。

  (2) メンバーの確認。

    マルチキャスト対応ルータは、
    マルチキャスト・グループに参加しているメンバーが
    ネットワーク上に存在しているかを調べるために、
    定期的にIGMPクエリーを送信する。送信間隔はデフォルトで125秒に1回。
    ホールマルチキャストグループ(224.0.0.1)宛てとする。

    LAN上のホストは、クエリーを受け取ると、すぐに返答せずに、
    自身のIPアドレスから生成したランダムなタイマーを起動する。
    最大値は10秒。そしてタイマーが0になると、
    自分が参加したいマルチキャストグループのアドレスを指定して、
    IGMPレポート(返答)を返す。

    もしも、待ち時間の間に、他のホストから
    該当するマルチキャストグループのIGMPレポートが送信された場合には、
    物理メディアを共有する他のホスト(コリジョンドメイン内の)は、
    レポートの送信を控える。

    ルータは、そのグループに参加しているホストの数を管理するのではなく、
    そのグループに参加しているホストの有無だけを管理するからである。

  (3) グループからの離脱。

    Leave Group とも呼ぶ。

    IGMPv1の場合には、
    ホストは自分が参加しているグループから離脱する時に、
    特にメッセージを送信しない。
    もし自分がそのグループに参加している最後のメンバーだったとしても、
    マルチキャストルータは、次のIGMPクエリーで、
    メンバーが存在しないことを検出できるためである。

    IGMPv2の場合には、
    グループから離脱するホストは、離脱メッセージを送信する。
    このとき送信先は、すべてのマルチキャストルータ宛て(224.0.0.2)とする。
    ルータは離脱メッセージを受け取ると、
    同一ネットワーク上の他のホストに送信を止めても良いか確認するために、
    IGMPクエリーを送信する。

    このとき、他のPCから返答があれば送信を続ける判断をする。
    一定の待ち時間を経過しても何も要求が返ってこない場合には、
    そのネットワーク上には参加者がいないと判断して、
    マルチキャスト・パケットの転送を停止する。

以上。

2003/07/03 pm


HOME |  BACK

Gポイントポイ活 Amazon Yahoo 楽天

無料ホームページ 楽天モバイル[UNLIMITが今なら1円] 海外格安航空券 海外旅行保険が無料!