マルチキャスト
IGMP
- ホストがマルチキャストグループに加入したいときに使用する
- ルータがメンバシップクエリを一定間隔(60秒)で224.0.0.1に送信
- サブネット上にどのグループのメンバーがいるか調べる
- メンバシップクエリを受信したホストは特定のグループを指定したIGMPメンバーシップ(join)レポートを送信し、マルチキャストグループへの参加要求をする
- クエリを待たずにいつでも参加要求は送ることができる
IGMPレポート抑制メカニズム
- ルータがクエリを送信
- クエリを受信したホストは、参加要求が必要なグループに対するレポートタイマのカウントダウンを開始する(タイマ値は0〜10秒の間でランダムにセットされる)
- ホストAはカウントが0になったら224.1.1.1のメンバシップレポートを送信し、ルータからのクエリに最初に応答する(ホストAのタイマが最初に切れたと仮定)
- 同一サブネットに接続されているホストBは、Aが送信した224.1.1.1のメンバシップレポートを受信する。その結果ホストBは224.1.1.1に対するレポートタイマをキャンセルし、グループへのメンバーシップレポート送信を抑制する
Querier
- 同一サブネット上に複数のマルチキャストルータが存在する場合に、すべてのルータがQueryを送信するのは帯域の無駄
- クエリを送信する1台の?選出されたルータのことをQuerierと呼ぶ
- IGMPv1: 選出方法がないため、レイヤ3マルチキャストルーティングプロトコル(PIMなど)に基づいてクエリアを選出する
- IGMPv2: サブネット上で最も低いIPアドレスを持つルータが選出される。
IGMPv1とIGMPv2の違い
- Querier選出メカニズム(最も低いIPのルータが選出される)
- グループ指定クエリ
- 特定のマルチキャストグループを指定して送信する
- クエリの対象となるグループがグループアドレスフィールドに含まれ、それを受信したホストがメンバシップレポートによって応答する
- アドレスフィールドが0.0.0.0のものはGeneral Queryとしてルータが全グループに定期的に送信する
- 特定のマルチキャストグループを指定して送信する
- グループ脱退メッセージ(leave)
- Query間隔の応答時間
IGMPv3