マルチキャストとUDPユニキャスト
両者の違い
- UDPユニキャスト
- 1対1の送信
- サーバ1台,クライアント複数台という1対多の通信を行う場合,"送信する総パケット数 x クライアント台数分" のパケットを送信する必要があり,トラフィックとサーバのリソースを圧迫
- 信頼性を確保するならTCPも利用可能
- マルチキャスト
- 1対多の送信
- 同じパケットを必要とするクライアント群に1パケットのみでデータを送信可能であるため,トラフィックとサーバのリソースを節約
一般的なマルチキャストプロトコル
- 基本的には,単純な同ネットワーク(LAN)環境でのマルチキャスト送信ではルーティングプロトコルは必要ない
- 明示的にマルチキャストルーティングを確立したい場合は以下のプロトコルを用いる
PIM
- 基本的にIGMPとセットで使用
- ルータ間のルーティングを確立するために使用
IGMP
- クライアントのマルチキャストグループの参加/離脱を管理
- クライアントに隣接するルータにIGMPを通してマルチキャストパケットの受信希望を通知
マルチキャストのユースケース
メディア配信やVoIP
- インターネットテレビやIPを通したオンラインビデオ通話サービス
- 一つのサービスを複数のユーザが受信するサービスや各々の通信状況をメンバー全体で共有するビデオ通話などで使用可能
オンラインゲーム
- 自分のプレイ状況をマルチキャストを通してユーザ全体に共有
ストリーミングサービスでは一般的にマルチキャストは使用されていない
ストリーミングサービスではマルチキャストを使用しない場合が多い.大抵の場合はHTTPを通したHLS(HTTP Live Streaming)を使用するため,HTTP通信,つまりTCP(ユニキャスト)を用いる
マルチキャストの課題
マルチキャストではセキュリティや信頼性に関する課題が存在する.
特に信頼性の高いマルチキャスト(Reliable Multicast: RM)は長い間議論されている.しかしながら再送機構をプロトコルレベルで行うRMが無いため一般的には使用されていない.