日立製作所
まず最初にIPv6におけるマルチキャストの概要について解説する。ユニキャストとの違いや長所・短所を説明したあと、マルチキャストの構成要素である送信端末、ルータ、イーサネット、受信端末などについてふれ、またマルチキャストアドレスのフォーマットについて解説する。
マルチキャストの概要
マルチキャストとは、「グループアドレス」と呼ばれる特別な宛先アドレス宛のパケットをグループに参加する複数の端末へ同時に送信する技術である。通常のユニキャスト通信を複数の端末へ繰り返し行なうのとは異なり、送信端末は1回マルチキャストパケットを送信するだけで複数の端末へパケット送信できる(図1)。

図1 マルチキャスト通信とユニキャスト通信の違い
ユニキャスト通信を繰り返すのに比べると、マルチキャスト通信には、
- 一度のパケット送信だけで十分
送信端末側は一度だけパケットを送ればよい。送信端末やネットワークの負荷が軽減につながる他、送信データのリアルタイム性を確保しやすい
- アドレス管理が楽
送信端末側はグループアドレスだけを知っていれば、送信先端末のIPアドレスをすべて知らなくても通信できる
- TCP通信ができない
ただしFEC(Forward Error Correction)のようなパケット損失対策技術や、DCCP(Datagram Congestion Control Protocol)のような帯域調整技術により、TCP通信に近いことはある程度実現可能である。
- 全ルータのマルチキャスト化が必要
マルチキャスト通信を行なうネットワーク内のルータは、すべてマルチキャストパケットを中継できなければならない。
これらの特徴から、マルチキャスト通信はストリーミングに代表される放送アプリケーションやNeighbor Discovery Protocol(NDP:近隣探索プロトコル)や経路制御プロトコルに代表されるサービス検出プロトコルに用いられることが多い。
マルチキャストの構成要素
マルチキャスト通信を構成する要素としては、送信端末、受信端末およびそれらの間にあるルータがある(図2)。その他、必須ではないものの、マルチキャスト通信においてはイーサネットが大きな役割を果たす。

図2 マルチキャスト通信の構成要素とプロトコル
送信端末
送信端末は、通常のユニキャスト通信と同様にIPパケットをネットワークへ送信する。ユニキャスト通信と異なることは、その宛先アドレスがグループアドレスという、マルチキャスト通信専用のアドレスになることだけである。IPv6でのマルチキャストアドレスの詳細については、この後で述べる。
ルータ
ルータは、送信端末からマルチキャストパケットを受信すると、そのパケットを受ける受信端末が存在する可能性のあるインターフェイスへ、パケットを出力する。パケットの出力されるインターフェイスは1つとは限らないため、このパケット中継の繰り返しにより、1つのパケットが複数の宛先に複製されることになる。
ルータがマルチキャストパケットを中継するときには、マルチキャスト経路表(図3)を参照して、出力先インターフェイスを決定する。ユニキャスト経路表と異なり、マルチキャスト経路表には、宛先のグループアドレスだけではなく、送信元の情報も経路表に含まれている。同じマルチキャストアドレス宛のパケットでも、送信元によって出力先が異なることがあるためである。
図3 マルチキャスト経路表
ルータは、2種類のプロトコルを用いてマルチキャスト経路表を構築する。1つは「ルータ−ホスト間プロトコル」であり、ルータが受信端末からのマルチキャスト受信要求を学習するために用いられる。もう1つは「ルータ−ルータ間プロトコル」であり、ルータ−ホスト間プロトコルで学習したマルチキャスト受信要求の存在をルータ間で交換し、実際にマルチキャストパケットをどのように中継するかを決定するために用いられる。これらのプロトコルの詳細については、PART2で述べる。
イーサネット
特に、ルータがパケットをイーサネットインターフェイスへ出力するとき、イーサネットのメディアの特性がマルチキャスト通信にとっては大きなメリットとなる。第1オクテットの上から6ビット目がONになっている物理アドレス宛イーサネットフレームは、プロトコルに関係なく同一イーサネット上に存在するすべての端末へブロードキャストされるからである(図4)。

図4 イーサネット上でのブロードキャスト通信
受信端末
受信端末は、自らが参加しているマルチキャストグループアドレス宛のパケットを、自宛パケットと見なして受信する。
受信端末は、あるマルチキャストグループ宛のパケットの受信を開始するときに、そのアドレスに関するマルチキャスト参加要求を、ホスト−ルータ間プロトコルにより、そのネットワークへ送信する。マルチキャストでは、ユニキャストとは異なり、受信端末は自らのIPアドレスではないアドレス宛のパケットを、受信する必要がある。そのため、受信端末はパケット受信開始前にネットワークへ、このような参加要求を行わなければならない。
IPv6マルチキャストアドレス
マルチキャストアドレスとは、1つのマルチキャストグループを特定するために用いられるIPアドレスである。IPv6においては、上位8ビットがすべて1のアドレス(FF00::/8)をマルチキャストアドレスとして使用する。
FF00::/8のアドレスフォーマットを図5に示す。

図5 IPv6マルチキャストのフォーマット
9〜12ビット目は、マルチキャストアドレスの意味を示す、フラグフィールドである。フラグビットの値に応じて、group IDフィールドのフォーマットが規定される。 T=0ならば、そのアドレスはIANAによって割り当てられた、固定的なマルチキャストアドレスであることを示す。ff02::1(全ノード・リンクローカル・マルチキャストアドレス)がその代表例である。
P=1ならば、グループID部分の先頭部に、そのマルチキャストアドレスを割り当てたネットワークのプレフィックス情報(e.g.プロバイダの所有するアドレスブロック)を埋め込む。その埋め込み方は、図6の通りである。なお、ネットワークによって異なるアドレスになるため、必然的にT=1となる。

図6 P=1のときのIPv6マルチキャストアドレスフォーマット
13〜16ビット目は、スコープと呼ばれ、マルチキャストアドレスの有効範囲を示すフィールドである。たとえば2(link-local scope)ならば、そのマルチキャストアドレスは、リンク内限定で有効であることを示す。したがって、リンクローカルなマルチキャストアドレスは、リンクが異なれば、同じマルチキャストアドレスでも別のグループに対応付けられる(図7)。

図7 マルチキャストアドレスのスコープ
【参考文献】
マルチキャスト概要:
[1]draft-ietf-dccp-spec-06.txt Datagram Congestion Control Protocol(DCCP)
[2]RFC3452 Forward Error Correction(FEC)Building Block
[3]RFC3306 Unicast-Prefix-based IPv6 Multicast Addresses
[4]RFC3307 Allocation Guidelines for IPv6 Multicast Addresses
[5]RFC3513 Internet Protocol Version 6(IPv6)Addressing Architecture
この記事のトラックバックURL
http://www.ipv6style.jp/trackback/255





