マルチキャスト通信
相手が1つではなく、グループ宛ての通信もあります。
本項では、マルチキャスト通信について説明します。
マルチキャスト通信とは
動画を参照する際、多数のパソコンで参照するとパソコン1台1台にデータを流した場合は大きな帯域を必要とし、帯域が細い場合は動画が見れなくなってしまいます。
大勢で同じ動画を参照する場合、送られるデータが同じであるため1つのフレームで多数のパソコンに配信できれば少ない帯域で済みます。
これを、マルチキャスト通信と言います。
マルチキャストアドレス
マルチキャスト通信は、宛先としてマルチキャストアドレスを使います。マルチキャストアドレスの範囲は、224.0.0.0から239.255.255.255です。
動画を配信するサーバーでは、自身が使うマルチキャストアドレスを指定します。パソコンでは、動画を参照するソフトに、サーバーで指定したマルチキャストアドレスを指定して配信を要求します。
これで、サーバーからマルチキャストアドレス宛てに動画が配信されてきて、パソコンで参照できるようになります。
PC-AだけでなくPC-Bも239.255.0.10を要求すると、LANスイッチAまでは1つのパケットで送信され、LANスイッチAでコピーされて2つのパソコンに送信されます。
また、パソコンで異なるマルチキャストアドレスを指定すると、異なる動画を参照することができます。
PIM-SM
パソコンでマルチキャストアドレスを指定して配信を要求すると説明しましたが、そこにはIGMP(Internet Group Management Protocol)とマルチキャストルーティングが関係します。
サーバーはマルチキャストアドレスを設定して配信する機能を有効にすると、動画を見る人がいなくても常にルーターまで動画を配信します。この時点では、ルーターは他に動画を流しません。
パソコンは、動画参照のソフトでマルチキャストアドレスを入力して動作させると、IGMPというプロトコルが流れます。IGMPを受け取ったルーターは、そのインターフェースに動画を配信するパソコンがいると判断します。
ルーターBは、ルーターAにPIM(Protocol Independent Multicast)というプロトコルを流して、動画の配信を要求します。
すべてのルーターがどこに配信すればよいかわかったので、必要なインターフェースにだけ配信されます。
パソコンが動画配信を必要としなくなった時、同様にIGMP、およびPIMを利用して配信不要を伝達することで動画が流れなくなります。
この方式を、PIM-SM(Protocol Independent Multicast - Sparse Mode)と言います。また、PIM-SMなどで配信経路を確保し、ルーターがパケットを転送することをマルチキャストルーティングと言います。
上の図で、ルーターAをRP(Rendezvous Point)と呼びます。RPまでサーバーは動画を常に配信し、RPまでIGMPとPIMを使って配信要求が来るように設定します。RPは、サーバーのすぐ近くのルーターである必要はありませんが、RPまでは常に配信されるため、近くの方が好ましいです。
RPのIPアドレスは各ルーターに設定することも可能ですが、1台、または複数のルーターから情報を配信して他のルーターは自動で設定させることも可能です。RPの情報を配信するルーターを、BSR(BootStrap Router)と言います。
上の図のように、RPとBSRを同じにすることもできます。BSRからRPのIPアドレスを受信したルーターは、IGMPで要求があるとPIMでRPに向かって配信を要求するということになります。
PIM-DM
マルチキャストルーティングの実現方法として、PIM-SM以外にPIM-DM(Protocol Independent Multicast - Dense Mode)という方法もあります。
PIM-DMではRPがなく、サーバーから動画が配信され始めるとルーターはすべてのインターフェースに転送します。転送されてきたルーター側で必要かどうかを判断し、不要な場合はPIMによりそれを伝えます。
データが流れてきた方向に不要なことを伝えればいいため、RPやBSRは不要です。
このように、PIM-SMでは要求があって初めて配信されますが、PIM-DMでは要求される前に配信します。
PIM-DMは不要な枝(送り先)を減らしていくようなしくみなので、枝刈りに例えられます。
RPFチェック
マルチキャストで動画を配信する際、以下のように経路が二重にある場合、同じパケットを複数受信しないようにする必要があります。
マルチキャストにはRPF(Reverse Path Forwarding)チェックというしくみがあり、送られてきたパケットの送信元IPアドレスをユニキャストのルーティングテーブルと照らし合わせ、ルーティングテーブルに載ってない場合は破棄します。
上の図で、ルーターBからサーバーにユニキャストを送信する時、ルーティングテーブルにはルーターAのIPアドレスがネクストホップになっていたとします。
この場合、サーバーからマルチキャストがルーターAとルーターCの両方から送られてきた場合でもルーターCのパケットは破棄します。
つまり、マルチキャストの配信を行うためにはユニキャストの通信が正常に行える状態である必要があります。
IGMPスヌーピング
IGMPスヌーピングはレイヤ2の機能ですが、マルチキャスト通信と深い関係があるため、本項で説明します。
すでに説明したとおり、パソコンからIGMPを送信することで動画が配信されるようになります。
LANスイッチはこのIGMPを傍受して、必要なインターフェースにだけ動画を流すようにできます。
これを、IGMPスヌーピングと言います。
IGMPスヌーピングが有効でないと、動画を参照しないパソコンが接続されたインターフェースまでパケットを転送してしまいます。基本的に、LANスイッチ(L2スイッチ)はマルチキャストアドレス宛ての通信を、すべてのインターフェースに転送するためです。
つまり、IGMPスヌーピングを有効にすると、必要なインターフェースにしか転送しないため、無用な通信を抑えることができるという訳です。
関連ページ
- 追補版「IGMP詳細」
- IGMPの動作やしくみなど詳細や、パケットフォーマットを説明しています。
- 設定編「マルチキャストルーティングの設定」
- Catalystでのマルチキャストルーティングの設定方法を説明しています。