スポンサーリンク

【応用情報技術者試験】マルチキャスト

マルチキャストとは

マルチキャストとは、ネットワークで特定の複数のノードに対して、1つのデータを同時に送信することです。例えば、ビデオサーバからストリーミング配信される1つのデータを特定の複数のクライアントへ同時に送信できます。テレビ会議システムの映像や音声データ、動画配信などにおいてトラフィックを効率よく伝送するためにマルチキャストは一般的に使用されます。Ciscoの音声システムでは保留音の伝送等でも利用されます。


    


マルチキャストでは、マルチキャスト用のIPアドレス(224.0.0.0 ~ 239.255.255.255)が用意されておりマルチキャスト用のIPアドレスをアプリケーションで指定します。また、マルチキャスト用のMACアドレスもあり、マルチキャストを受信するマルチキャストグループに対してはこのマルチキャストMACアドレス宛のパケットが受信できるように設定されます。スイッチはマルチキャストトラフィックをフラッディングするため、Receiver以外のクライアントPCにもマルチキャストは届きますが、受信処理は行われずに破棄します。

フラッディング
ネットワークやシステムに大量のデータやリクエストが短時間に送り込まれ、システムが処理能力を超えてしまう現象を指します。


マルチキャストを理解するために、ユニキャスト伝送とブロードキャスト伝送について以下で解説します。これらの違いを理解することで、動画配信において大容量のデータ伝送を行うことに、なぜユニキャスト伝送では拡張性がなく、なぜブロードキャスト伝送では非効率で無駄な帯域消費が発生するのか分かります。

通信方式説明
ユニキャストユニキャストは、単一のアドレスを指定して、1対1で行われるデータ通信のことです。
マルチキャストマルチキャストは、特定のアドレスを指定して、1対複数で行われるデータ通信のことです。
ブロードキャストブロードキャストは、同じデータリンク内の全宛先を指定し、1対不特定多数で行われるデータ通信。

ユニキャスト伝送の動作

ユニキャストでは、1対1の通信であることから、全ての受信者ごとに別々の伝送を行う必要があります。メールチェック、ネットサーフィン、ファイルのダウンロードのトラフィック伝送では問題ないのですがストリーミング配信などでは宛先の数だけ大容量のデータを送信する必要があり、送信元サーバ側の負荷と使用する帯域幅が非常に大きくなります。

下図の通り、配信サーバから3Mbpsのストリーミングデータを受けるとします。ユニキャスト通信の場合受信クライアントの数だけ同じデータを送信する必要があります。つまり、クライアントが1000台の場合、3Gbps帯域幅を送信側で消費することになり、それを送出し続けるサーバ側にも、大きな負荷になります。


    

ブロードキャスト伝送の動作

ブロードキャストは1対ネットワーク上の全ホストの通信であることから、送信するパケットは1つでよくユニキャスト伝送のように、送信側で激しく帯域消費したり、送信元側の負荷は大きくなりません。ただし、同一セグメント上の全てのクライアントがトラフィックを受信することになり、ネットワーク全体としては負荷となります。また、ストリーミングデータを受信する必要のないクライアントにとっては、それを受信処理する無駄なCPU処理と無駄な帯域消費が発生してしまいます。


    

マルチキャスト伝送の動作

マルチキャストでは、1対特定グループのホストの通信であることから、送信するパケットが1つでよい上にデータを受信したい特定のグループのホストだけが受信できるので、ユニキャストやブロードキャスト伝送による問題も発生しません。

下図の配信サーバは、マルチキャストグループで囲んでいる2台の持つマルチキャストアドレスを宛先に指定してデータを送信して、受信したいクライアントだけがトラフィックを受信して処理していくことになります。非受信クライアントにもトラフィック自体は着信しますが、マルチキャストグループに参加していないので、マルチキャストトラフィックの受信処理は行われず、非受信クライアントでの無駄なCPU消費は発生しません。


    


スイッチでは、ブロードキャストやマルチキャストのトラフィックは、そのままフラッディングさせるので非受信クライアントにもマルチキャストのトラフィックは着信します。ただし、マルチキャストルーティングによって着信してくるマルチキャストパケットは、ホストとルータ間でやりとりするIGMPパケットを盗み見するスイッチのIGMPスヌーピング機能で、非受信クライアントに対する無駄なトラフィック転送を防げます。

コメント

タイトルとURLをコピーしました