1999/09/20

ネットワーク (13)


マルチキャスト (復習)

マルチキャストのデータグラムが単一のネットワーク上で 送られる場合は、
01:00:5e:00:00:00 --- 01:00:5e:7f:ff:ff
の範囲のがEthernet Address の範囲が使われる。 すわなち、Ethernet Address 48bits のうち 23bits が自由に 決められるので、Multicast Group ID の下位 23bits をコピー して使う。 Multicast Group ID のうち5bits分は利用されないので、 32種類の異なるmulticast group idが 同じ Ethernet Address にマッピングされる。
                                <------- 23bits -------->
                      1110YYYY YXXXXXXX XXXXXXXX XXXXXXXX  IP Address
                                ||||||| |||||||| |||||||| copy
    00000001 00000000 01011110 0XXXXXXX XXXXXXXX XXXXXXXX  Ethernet Address
「multicastに参加する」ホストは、multicast frameを受信するように 設定しておかなくてはならない。
multicast router が、与えられた物理ネットワーク上に特定の multicast groupに属するホストがいるかどうかを知るための プロトコル→ Internet Group Management Protocol (IGMP)

Internet Group Management Protocol

マルチキャストのデータグラムがルータによって中継される場合、 Internet Group Management Protocol (IGMP) が使われる。

IGMP メッセージは IP データグラムとして送られる。

    +-----------------+--------+
    | IP Header       |IGMP Msg|
    +-----------------+--------+
         20 byte         8byte
IGMP Message
                     1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 (32bits width)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|version| type  |    unused     |         Checksum              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Group Address (IP Address of Class D)              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    version: 1
    type: 1 の場合 → マルチキャストルータから送られた照会
          2 の場合 → ホストから送られた応答

IGMP Protocol

ホストは、マルチキャストグループを
    (「グループアドレス」, 「特定のインターフェイス」)
の組で定義している。あるホスト上のプロセス(OS上で動作しているプログラム)は、 そのホストの 「特定のインターフェイスにおけるマルチキャストグループに参加する」 ことができる。

IGMP レポート および 照会

  1. 最初のプロセスがグループに参加したとき、ホストはIGMPレポートを 送る。このレポートは、プロセスがグループに参加した同じインターフェイスに 送り出される。
  2. ホストは、グループ最後のプロセスがグループから離脱しても レポートを送らない。 「次の照会を受け取っったときグループをレポートしない」ことで 結果的に離脱を知らせる。
  3. マルチキャスト・ルータは、カクホストに定期的にIGMP照会を送る。 ルータは各インターフェイスごとに1つの照会を送る (照会の中のグループアドレスは0)。
  4. ホストは、プロセスが所属しているグループ毎に1つのIGMPレポートを 送る。
図13.3 は、グループアドレスに関する、ルータからの照会と、 ホストからのレポートである。 図の中の、IGMP照会の宛先である 224.0.0.1 は All Host Group Address (物理ネットワーク上のマルチキャスト可能な全てのホストおよびルータ) である。 TTLが1になっているのは、物理ネットワーク上のみで通信すればよいから。
(注)TTLが2以上のマルチキャスト・データグラムを使うと、 アプリケーションは最寄りのサーバを発見することができる。