next up previous contents
Next: 6.2.2 XCAST6の導入 Up: 6.2 XCAST Previous: 6.2 XCAST

6.2.1 XCASTとは

XCAST は、eXplicit Multicast の略です。XCASTを説明するに前に、Multicastを 簡単に説明します。Multicastは、IPv6では今まで説明してきたように低レベル で活用をしていますが 、Multicast 自体は IPv4 からあるものです。Multicast は、IPアドレスを 宛先のアドレスとしてではなく、例えばテレビのチャンネルのようなものと して扱います。従って、6チャンネルを指定して見る人全てに同じパケットが 流れるような仕組みになっています。すると、当然、この6チャンネル を誰が視聴しているのかが問題となります。テレビなどの場合には、同じ放送 アンテナから物理的に放射されている電磁波でチャンネルは区別されるので、 好むと好まざるとに関わらず、実は放送は配信されていて、視聴者はその チャンネルを選べば良いだけなのです。このような放送(ブロードキャスト:broadcast) の仕組みは、電波の帯域が有限である以上、誰もが勝手に流せるわけではなく、 電波の使用に関しては許認可が必要になっています。一方、ネットワーク上で、 同じようなことを行うには、ネットワークの帯域は狭すぎるので、必要な人を 調べて必要な人にのみパケットを配信することがMulticastの目的となります。

このような限定的な配信を行うために、受信者管理を行う仕組みを、 IPv4ではIGMP(Internet Group Management Protocol)と言い、IPv6では ICMPv6に組み込まれている MLD (Multicast Listener Discovery)が担っています。 しかし、そうした配信がインターネット全体に及んだときには、どうやって目的の パケットをどういう経路を配信するのかという問題が生じます。結論的には、 インターネット全体でマルチキャストをサポートするのは現在でも困難なことだと されており、実際に放送がマルチキャストで配信されている訳ではなく、ユニキャスト で行われているのが実情であり、そのために現在の形態はある意味で偽物である と言えます。このような困難の原因は 、基本的には配信者管理、マルチキャストアドレスなどのリソース管理、 マルチキャストルーティング管理などの負荷が高く、効率性などを考えると 決定的なプロトコルが存在しないことが原因です。

以上のように、マルチキャストが使えない現状に対して、少人数ならば直ぐに使える マルチキャストとしてXCASTが最近提案されました。概念自体は、XCASTはIPv4でも 可能な筈ですが、実際にはIPv6用のXCAST6があるだけです。XCASTは別名、「 なんちゃってマルチキャスト」とも呼ばれ(開発者が日本人)、バケツリレーのように 配信パケットを受信者から受信者にリレーする方法です。そして、XCAST6は、 これをIPv6ヘッダ構造の特徴をうまく使って実装しています。

下の図のように、Aが配信するパケットを、B,C,D が受信したいとします。

\epsfile{file=xcast-stream}

この時、Aは配信パケットをBに向かってだけ出します。この時、IPv6のIPヘッダの 宛先はマルチキャストと違って、Bのv6アドレスとなっており、つまりは単なる ユニキャストパケットになっています。この際に、後でもう一度このIPv6ヘッダ の特徴について勉強しますが、IPv6ではヘッダをいくつも数珠繋ぎのようにつける ことが出来ることを利用し、C,D宛のv6アドレスも書いておくのです。IPv6では、 通常のルータは最初のヘッダしか読みませんので、このパケットを受け取った ルータはB宛としてだけ解釈し、Bまで送り届けます。受け取ったBのマシンは、 数珠繋ぎヘッダを解釈し、再び C 宛にパケットを複製して送ります。当然、 そのv6ヘッダの数珠繋ぎのヘッダにはD宛の情報も書き込まれています。

このようにして、XCAST6では、最悪の場合、

A → B → C → D
とパケットは受け渡され、非常に効率が悪いのですが、しかし、取りあえずはマルチ キャストの真似事が出来ている訳です。とは言え、このままだとあまり面白くは ないのですが、もしこれらの経路の途中に、XCAST6のヘッダ構造を解釈する ルータがあれば、そのルータがパケットを複製することが可能になります。

例えば、A から Bの間の経路上にXCAST6対応ルータがあったとしたら、以下のように うまく流れるかも知れません。勿論、どこで分岐しているかは、IPv6アドレス的に B,C,Dがどのように位置しているのかによりますが、単なるバケツリレーよりは 効率化されるでしょう。

\epsfile{file=xcast-stream2}



Noriyo Kanayama