マルチキャスト (Multicast)

Related Post

> ルーティング (経路制御、Routing) > マルチキャスト (Multicast)

マルチキャスト (multicast) とは、コンピュータネットワークにおいて、決められた特定の複数のネットワーク端末(ノード)に対して、同時にパケット(データ)を送信すること。
一対多で通信を行う場合、配信事業者にとってユニキャストを使用するよりもネットワーク負荷を軽減することが出来るため、情報配信などで使用される。インターネット・プロトコル・スイートでは、主にTCPを用いるユニキャストと異なり、マルチキャストはUDPを使用するため、信頼性が求められる情報通信には向かない。また、マルチキャストを行い、対応するサーバのみが返事をすることによりサービス可能な資源(オブジェクト)の位置を特定出来る。
マルチキャストのパケットの宛先IPアドレスはクラスDが用いられる。
同じく複数のネットワーク端末(ノード)に対して、同時にパケット(データ)を送信する「ブロードキャスト」は不特定多数の端末に送信する違いがある。
また、IPマルチキャストとは、受信者が複数いる場合の”1対多”のデータ通信の際に、経路の共通部分では1つのパケットのみを転送し、経路が分かれるときにそのパケットをコピーすることで効率的に通信できる経路制御方式のことを言う。

  • グループに対しての一斉送信
  • 冗長リンクを持ちグループで応答する
    • 1台故障してもシステムは生きている ⇒故障透過性・フォールトトレラント性
  • 複数の分散データベースの同時更新が可能
    • サーバが複数の隣接サーバと記事を交換し、分散データベース同時更新をする。
    • 但し、履歴を保存し、新しい記事があれば捨てる ⇒複製透過性

【概要】

IPマルチキャストはIPネットワーク上で1対多数、および、多数対多数のリアルタイム通信を実現する方法である。 受信者が誰であるか、また受信者の数を事前に知る必要がないため、多数の受信者に宛てた通信に適している。また多数の受信者に転送する必要がある場合でも、源となる送信者(ソース)は1度だけパケットを送信すれば済むため、ネットワークを効率的に利用できる。ネットワーク上のノード(通常はネットワークスイッチとルーター)がパケットの複製を担当し、それぞれの受信者のネットワークへのリンクにメッセージを1度だけ送信する。マルチキャストアドレッシングを利用するもっとも一般的な低レベルプロトコルはUser Datagram Protocol (UDP)である。UDPはコネクション指向でない転送方法であるため信頼性が低く、メッセージが欠けたり順序が入れ替わったりすることがある。例えば Pragmatic General Multicast (PGM)のような、IPマルチキャストの上部に損失検知と再送機能を加えた、信頼性の高いマルチキャストプロトコルが開発されている。
IPマルチキャストの中心的な技術にはIPマルチキャストグループアドレス、マルチキャストディストリビューションツリー、受信者駆動型ツリー形成がある。

【IPマルチキャストグループアドレス】

送信者(ソース)と受信者は、マルチキャストメッセージの送受信のためにIPマルチキャスト グループアドレスを用いる。送信者は、グループアドレスをデータパケットの宛先IPアドレスとする。受信者は、「当該グループアドレス宛て」に送信されたパケットの受信を希望することを通知するため、グループアドレスを使う。例として、データがグループ 239.1.1.1に関連づけられているとき、送信者はパケットを239.1.1.1宛てに送信する。このパケットは送信者の所属するネットワークのデフォルトゲートウェイルーターに到達し、受信者がマルチキャストグループに加入するまで他のルーターへは到達しない。当該データの受信者はグループ 239.1.1.1に送信されたデータパケットの受信を希望することを近傍のルーターへ所定のプロトコルで通知し、受信者が239.1.1.1のアドレスを有するマルチキャストグループに加入するきっかけを作る。マルチキャストグループへの加入を通知するためのプロトコルは、典型的にはInternet Group Management Protocol (IGMP)が用いられる。

【マルチキャストディストリビューションツリー】

特定のIPマルチキャストグループに受信者が加入しようとすると、受信者が所属しているネットワークに関連しているルーターが有しているマルチキャストディストリビューションツリーが更新され、受信者がどのマルチキャストグループアドレスの受信を要求しているのかの情報、そして受信者の上流に位置しかつネットワークに面しているルーターが存在していることを示す情報、この2つの情報がルーター内部に追加される。この更新はルーター間で再帰的に行われ、最終的に各々のルーターが管轄するネットワーク内に流れるパケットの宛先がツリーの中に含まれるマルチキャストグループアドレスと一致した時、そのルーターは該当パケットを保持しているツリーにマッチしたネットワーク内へと中継する。この処理をルーターを挟んだネットワーク毎に再帰的に行うことで、送信者のパケットは受信者のもとに届く。ルーター間でツリーを更新するためのプロトコルとして最も広く用いられるのがProtocol Independent Multicast (PIM)である。 例えば、グループ 239.1.1.1 に送信された全てのデータパケットは239.1.1.1に加入した全ての受信者が受信する。PIMの実装にはいくつかのバリエーションがある: スパースモード(SM), デンスモード(DM), ソーススペシフィックモード(SSM)と双方向モード(Bidir,スパースデンスモード(SDM))である。これらのうち、PIMスパースモード(PIM-SM)は2006年現在で最も広く用いられている; SSMとBidirはPIM-SMよりも後に開発され、よりシンプルで拡張性が高く、より多く採用されつつある。

【受信者駆動型ツリー形成】

IPマルチキャストはグループの受信者を知っているアクティブなソースを必要としない。マルチキャストディストリビューションツリーの作成は受信者駆動型であり、受信者に近いネットワークノードが開始する。IPマルチキャストは受信者が多い場合に適している。インターネット活動委員会(現インターネットアーキテクチャ委員会)の1981年から1989年7月まで会長であったデービッド・ダナ・クラークはIPマルチキャストモデルについて「パケットをネットワークの一方の端から入れると、そのパケットをほしい者なら誰にでも届くようネットワークが協力する」と述べた。

IPマルチキャストはネットワークのマルチキャストディストリビューションツリー毎に状態情報を作成する。あるルータが1,000個のマルチキャストツリーに関係している場合、そのルータはマルチキャストルーティングと転送のためのエントリを1,000個持つ。しかしその一方で、マルチキャストルータはインターネット上の他のマルチキャストツリーに到達する方法を知っている必要はなく、下流に受信者のいるマルチキャストツリーについてだけ知っていればよい。このことがマルチキャストアドレスサービスの拡張性を高めている。コアインターネットルータが全てのマルチキャストディストリビューションツリーの状態情報を保持する必要に迫られることは稀である。下流にメンバーのいるツリーの状態情報だけを保持すればよい。これに比べユニキャストルータは、実際にはデフォルトのルートを使うだけだとしても、インターネット上の全てのユニキャストアドレスに到達する方法を知っていなければならない。 このため、ユニキャストルーティングでは経路集約が重要となる。コアルータの中には、インターネットルーティングテーブルを有するため、数万もの経路情報を保持しているものもある。

【アドレッシング】

IPアドレッシングには4つの形態があり、それぞれに固有の特性がある。

  • ユニキャスト: IPアドレスの最も一般的なもので、IPv4、IPv6ともに利用できる。ユニキャストでは送信者1に対し受信者1を前提としており、送信と受信の両方に用いることができる。通常は、ユニキャストアドレスは単一のデバイスまたはホストに関連づけられるが、完全に1対1対応となるわけではない。例えば、PC1台が固有のユニキャストアドレスを複数持ち、それぞれ固有の用途に用いることができる。同一のデータをn個のユニキャストアドレスに送信した場合、送信者はそれぞれの受信者に対して1度ずつ、n回データを送信しなければならない。
  • ブロードキャスト: IPv4では、送信者は送信可能なすべての宛先に対して1度だけデータを送信し(全てのホストに「放送(ブロードキャスト)」し)、全ての受信者が送信されたデータのコピーを受け取ることが可能である。IPv4プロトコルではアドレス255.255.255.255がローカルブロードキャストに用いられる。これに加えて、ダイレクト(制限)ブロードキャストを行うこともできる。この場合、アドレスを作成するには、アドレスのネットワーク部はそのままでホスト部のビットを全て1にする。例えば192.0.2.0/24ネットワークに所属するデバイスにダイレクトブロードキャストを行う場合の宛先アドレスは192.0.2.255である。IPv6ではブロードキャストアドレスは実装されず、代わりに特に定義された「全ノードマルチキャストアドレス」へのマルチキャストが使われる。
  • マルチキャスト: マルチキャストアドレスは、データの受信を希望する受信者のグループに関連づけられる。IPv4では、アドレス224.0.0.0から239.255.255.255 (クラスフルネットワークにおけるClass Dアドレス)がマルチキャストアドレスとして指定されている。[1] IPv6では、ff00::/8で始まるアドレスブロックをマルチキャストアプリケーションのために予約している。どの場合でも、送信者が単一のデータグラムを、送信者のユニキャストアドレスからマルチキャストグループアドレスに宛てて送信し、経由するルータがデータグラムの複製と、それに対応するマルチキャストグループに所属する全ての受信者への送信を担当する。
  • エニーキャスト: エニーキャストは、1対多のルーティングトポロジである点がブロードキャストやマルチキャストと似ている。しかし、データストリームが全ての受信者に送信されるわけではなく、ルータがネットワークで「最も近い」と判断した相手にのみ送信される点が異なる。[Note 1] エニーキャストはグローバルな負荷分散を図る上で便利であり、DNSの通信で広く使われる。

【プロトコルとアプリケーション】

IPマルチキャストは、企業、証券取引所、マルチメディアコンテンツの配信ネットワークなどで広く展開されている。企業でよく見られるIPマルチキャストの用途は、遠隔学習やテレビ会議などのIPTVアプリケーションである。
マルチキャストはユニキャストとは異なる伝送モードであるから、マルチキャストのために設計されたプロトコルのみが使用できる。
マルチキャストを利用する既存のアプリケーションプロトコルのほとんどはUser Datagram Protocol (UDP)上で動作する。多くのアプリケーションでは、マルチメディアコンテンツのフレームをマルチキャストで送出するためReal-time Transport Protocol (RTP)を利用する。マルチキャストによる配布をサポートするネットワークでは、帯域予約にResource Reservation Protocol (RSVP)が利用される場合がある。
LANでは、マルチキャストによる送信はIPv4ネットワークではIGMPが、IPv6ネットワークではMLDが制御する。ルーティングドメインの内側では、PIMMOSPFが利用される。ルーティングドメインをまたがる場合は、MBGPのようなドメイン間マルチキャストルーティングプロトコルを利用する。
ユニキャスト向けのパケットを誤ってマルチキャストアドレスに送信すると多数のエラーを発生しうる。特に、サービス拒否攻撃では、到達するパケットの数を増やすための手段として、ICMPパケットがマルチキャストアドレスに送信されることがある。

【IPマルチキャストプロトコル】

【ルーティング】

マルチキャストグループの受信者メンバーとなりたい(つまり、ある特定のマルチキャストアドレスに紐付いたデータを受信したい)それぞれのホスト―実際はホスト上のそれぞれのアプリケーション―は、マルチキャストグループに加入するためInternet Group Management Protocol (IGMP)を利用しなければならない。同じネットワーク内であっても同様である。

ユニキャストルーティングでは、それぞれのルータは、受信したパケットの宛先をルーティングテーブルと照合し、より宛先に近づくためにどのインタフェースを利用すべきか判断する。このとき、ソースアドレスはルータと無関係である。

しかし、マルチキャストルーティングでは、データストリームの向きを決定するため、ソースアドレス(これは単なるユニキャストアドレスである)が利用される。マルチキャストトラフィックのソースが上流と見なされるのである。ルータはまずどの下流インタフェースがマルチキャストグループの宛先かを決定し、次いで適切なインタフェースに向けてパケットを送信する。Reverse path forwarding(RPF)という語は、マルチキャストルーティングにおいては「宛先に向ける」というよりは「ソースから遠ざかる」ようにパケットをルーティングする、という概念を説明するために用いられる。

【レイヤ2転送】

ユニキャストでは、特定のレイヤ2MACアドレスEthernetパケットアドレスに設定すると、EthernetやIEEE 802.3サブネット上の特定の受信者にパケットを配送できる。 ブロードキャストパケットを作成するためには、ブロードキャスト用のMACアドレス(FF:FF:FF:FF:FF:FF)を利用する。このときアドレスの中のブロードキャスト/マルチキャストビットがセットされる。IANAOUIとしてMACアドレス01:00:5eを保有しているので、マルチキャストパケットはEthernet MACアドレスの01:00:5e:00:00:00 – 01:00:5e:7f:ff:ffの範囲(これは利用可能なアドレス空間のうち23ビット分である)を利用して配送される。第1オクテット(01)にブロードキャスト/マルチキャストビットが含まれている。 28ビットのマルチキャストIPアドレスのうち下位の23ビットは、利用可能なEthernetアドレス空間のうちの23ビットにマップされる。これはパケットの配送に曖昧さがあるということである。 例えば、同一サブネット上にある2台のホストが、それぞれ別のマルチキャストグループに所属しているとする。マルチキャストグループの最初の5ビットだけが異なるとしよう。この場合、それぞれのマルチキャストグループに宛てたEthernetパケットは両方のホストに配送されてしまう。このため、ホスト上のネットワークソフトウェアは不必要なパケットを判別して捨てる必要がある。
IPv6マルチキャストアドレスでは、Ethernet MACアドレスは下位の4オクテットとMACアドレス33:33:00:00:00:00の論理和で求められる。IPv6アドレスFF02:DEAD:BEEF::1:3はEthernet MACアドレス33:33:00:01:00:03にマップされる
レイヤ2スイッチがマルチキャストアドレスを解決できない場合、スイッチはマルチキャストグループに送信されたデータをLAN上の全てのメンバーにブロードキャストする。この時、ネットワークカードやOSが、自分へのものでないパケットをフィルタリングしなければならない。
IGMPトラフィックをlistenして、どのネットワークシステムがどのマルチキャストグループに所属するかを示す状態テーブル(state table)を維持するスイッチもある。このようなスイッチは、状態テーブルを利用してあるグループに宛てたトラフィックだけを転送できるので、受信するホスト(ポート)を限定できる。状態テーブルを作成するためIGMPスヌーピングが利用される。
レイヤ3機能を有するスイッチには、IGMPクエリーを送出するルータ(IGMPクエリア(querier))として動作できるものもある[3]。ネットワーク上にマルチキャストルータとして動作可能なルータがない場合、IGMPスヌーピングが可能なスイッチを代用してIGMPメッセージを生成させ、マルチキャストトラフィックを受信することができる。

【信頼性マルチキャスト】

マルチキャストはその性質上、コネクション指向ではない。このため、TCPのように欠けたパケットを再送可能なプロトコルを使用するのは適切でない。オーディオ/ビデオストリーミングのようなアプリケーションで、たまにパケットをドロップしたとしても問題はないのである。しかし、重要なデータを配布する場合、再送要求のためのメカニズムが必要となってくる。
シスコシステムズが提案した再送スキームにPGMがある(もとはPretty Good Multicastingの略とされたが、商標上の理由でPragmatic General Multicastに改められた)[要出典]。PGMはRFC 3208で文書化されている。このスキームでは、マルチキャストパケットはシーケンス番号を有する。パケットが欠けた場合、受信者は欠けたパケットを再びマルチキャストするよう要求できる。同一マルチキャストグループに所属する他のメンバーは、自分に必要なければ再送データを無視する。拡張バージョンであるPGM-CCは最も低い帯域幅の受信者に合わせてグループ全体の帯域を下げ、IPマルチキャストをより「TCPフレンドリ」にしようと試みている。
Internet Engineering Task Force (IETF)により文書化されたその他のスキームは以下の2つである:

  • NACK-Oriented Reliable Multicast (NORM) : RFC 5740とRFC 5401で文書化されている。standard-track(標準化過程)のプロトコルである。
  • File Delivery over Unidirectional Transport (FLUTE) : RFC 3926に文書化されている。experimental(実験)段階のプロトコルである。

これらプロトコルの実装例はプロプライエタリ、オープンソースそれぞれに存在する。Scalable Reliable Multicastのようなプロトコルも存在するが「何をもって『信頼性(がある)』とするのか」といった基本概念、エラー検知の手段、エラー回復に用いるメカニズム、エラー回復の拡張性に違いがある。 ACMのSIGCOMM Multicast Workshop(1996年8月27日)は信頼性マルチキャストプロトコルのリストを掲載し、この問題についていくつもの解決法を文書化した。
Internet Protocol Multicast Standards Initiative (IPMSI)のような独立グループは、提案中のSecure Multicast for Advanced Repeating of Television (SMART)のような真に拡張性に優れたセキュアな信頼性IPマルチキャストプロトコルが不足しており、このことがドメイン間ルーティングへのIPマルチキャストの採用を妨げている、と主張している。
マスメディアが、スポーツイベント(例えばスーパーボウルのような)やニュース速報を公共のインターネットに配信できないのは、AES水準のセキュリティと信頼性を有する拡張の容易なシステムが不足していることが原因である
前述のPGMやSMARTのような信頼性IPマルチキャストプロトコルは未だ実験(experimental)段階である。NORMは標準化過程(standards-track)に昇格した(RFC 3941のstandards-track revisionはRFC 5401であり、RFC 3940のstandards-track revisionはRFC 5740である)。

【ワイヤレス(802.11)における考慮点】

802.11ワイヤレスネットワークでは、マルチキャストトラフィックの取り扱いはDelivery Traffic Indication Message (DTIM)とビーコン間隔の設定により異なる。 あるベーシックサービスセットに属するすべてのステーションがパワーセーブモードに設定されていない場合、マルチキャストパケットは到着し次第すぐに送信される。一方、1以上のステーションがパワーセーブモードに設定されている場合、アクセスポイントは各々のDTIM間隔の後にマルチキャストトラフィックを配送する。このときベーシックレートセットで定義されたレートの中から、対応するレートを一つを選んで送信する。 現在入手できるワイヤレスアクセスポイントやルータの多くでは、間隔は102.4 ミリ秒 (DTIM=1 (ビーコン間隔))で、伝送レートは1 Mbpsか6 Mbpsのいずれかである(動作する周波数帯と保護モードが適用されるか否かによる)。結論として、ワイヤレスネットワークでマルチキャストを実装する際は、パフォーマンスが最適になるように、DTIMとビーコン間隔設定を調整すべきである。

 

 

【商業展開】

2005年[8]から、BBCはイギリスのインターネットサービスプロバイダ(ISP)に対し、ISPのネットワークでマルチキャストアドレスが利用可能なサービスに適応するよう奨励し、高品質なBBCラジオをマルチキャストで提供している[9]。他にもGCAPEMAPVirgin Radioのような商業ラジオネットワークがこれを支援している[要出典]

ドイツの公共放送局ARD[10]ZDFFranco-GermanネットワークのArteは複数のネットワークでテレビ番組をマルチキャストしている。オーストリアのインターネットサービスプロバイダであるテレコム・オーストリアDSLの加入者に対してテレビとラジオを受信できるセットトップボックスをマルチキャストアドレスを利用して提供している。ドイツでは、ドイツテレコムのブランドであるT-Homeで類似のサービスを提供している。

【IPマルチキャストソフトウェア】