アカデミック

【初学者向け】マルチメディア通信<マルチキャスト編>

この記事では,マルチメディア通信に関わる知識を簡単にまとめていきたいと思います。ただし,全ての知識が詳しく網羅されている訳ではありません。また,分かりやすいように多少意訳した部分もあります。ですので,参考程度におさめていただければ幸いです。

間違えている箇所がございましたらご指摘ください。随時更新予定です。他のサーベイまとめ記事はコチラのページをご覧ください。

マルチキャスト

マルチキャストに関しては,こちらの記事[ブロードキャストストームとは?分かりやすさ重視で説明]でブロードキャストストームと合わせて簡単に説明しています。ここでは,もう少し詳しく見ていきたいと思います。

まず,IPマルチキャストでは送信ノードはグループアドレスに対して1度だけパケットを送ればOKです。受信ノードは,マルチキャスト通信を始めるときにグループに加入して,ルータが複製したパケットを受信するという流れになります。

マルチキャストの加入者をどのように管理するかに関しては,ホスト↔︎ルータ間では「IGMP(IPv4)」や「MLD(IPv6)」など,経路制御に関しては「DVMRP」などがあります。マルチキャストは,回線効率をよくすることができるほか,送信元の負担が軽くなることや宛先アドレスの管理が単純になるというメリットがあります。

IPv4では,クラスDアドレスがマルチキャスト用に割り当てられています。IPv6では上位8bitが全て1であるアドレスがマルチキャスト用に割り当てられています。

マルチキャストでは1対複数通信をするため,トランスポート層ではTCPではなくUDPを利用します。

L2マルチキャスト

Layer2(データリンク層)においてマルチキャストを行う通信を「L2マルチキャスト」と呼びます。L2マルチキャストでは,送信ノードは全ノードにパケットを配信し,受信ノードは自分の必要なパケットのみを拾います。ここが「ブロードキャスト」と異なる点です。

ちなみに,IGMPに従ってさらにL2スイッチが最適化される場合もあります。IGMPはローカルルータが定期的にクエリ(マルチキャストに加わっているかを確認する合図)をホストに送信して,joinしているかどうかを確認する方式です。

マルチキャスト経路制御

マルチキャスト通信における経路制御は,「Dense mode(受信者数がネットワークの規模と比べて多い場合)」と「Sparse mode(受信者数がネットワークの規模と比べて少ない場合)」によって用いられるプロトコル等が異なります。

また,マルチキャストツリーの構成方法によっても分類することができます。1つ目は「Source-based Tree」で,送信者から受信者までの最短経路とRPF(Reverse-path forwarding)によって求めてそれを利用する方法です。2つ目は「Group-shared tree」で1つのグループに対して共有パスを含む配送路を用いる方法です。

ここでは「MOSPF」はSparse modeに分類されていますが,最短経路木を計算して受信者のいないルータも経路情報を交換する必要があるため,Dense modeと分類される場合が多いです。

ここで注目するべきは,Dense modeでShared treeを利用する方式が存在しないことです。これは,Dense modeで共有木を使うと伝送効率が悪いという理由があるからです。また,RPFは受信者が疎であるときには非効率であるため,Dense modeで積極的に用いられます(DVMRP/PIM-DM)。

他にも,ユニキャストにしか対応していないルータを「ユニキャストに似たマルチキャスト通信」で対応する「XCAST」という方式もあります。マルチキャスト通信とは違って,送信者は受信者を指定してあげる必要があります。マルチキャストは素晴らしい通信方式ではありますが,実装が難しいことや対応していない部分に依存してしまうという欠点があるため,その中間的な通信形態ともいえるXCASTが発案されました。

ユニキャストしか対応していないルータを通過させることを「半透明トンネリング」と呼びます。

XCASTは主にIPv6で実装されています。IPv4では途中のルータが全てXCASTに対応していなくてはならないからです。

参考文献

[1] ネットワークエンジニアとして(https://www.infraexpert.com/

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です