IGMP
IPv4で、ホストがどのマルチキャストグループに参加しているかを、同じネットワークのルータに知らせるためのプロトコル。
イマシルちゃんの解説
マルチキャストは、「このチャンネルを見たい人にだけ番組を届ける」仕組みなんだ。
でも、ルータはそのネットワークに見たい人がいるかどうかを知らないと、番組を届けていいかわからないよね。
そこでIGMPを使って、パソコンがルータに「ぼく、このチャンネル見たい!」「もう見ないよ」って伝えるんだ。
ルータは、見たい人がいるネットワークにだけ番組を流すんだよ!
より深い解説
定義
IGMP(Internet Group Management Protocol)は、IPv4のホストとそのネットワークに接続されたマルチキャストルータとの間で、マルチキャストグループへの参加・離脱を管理するプロトコルである。IPヘッダーのプロトコル番号は2。
IGMPが扱うのは、ホストとルータの間(同じネットワークの中)だけである。ルータ同士がマルチキャストの配信経路を作るには、PIMなどのマルチキャストルーティングプロトコルを別に使う。
バージョン
| バージョン | 主な特徴 |
|---|---|
| IGMPv1 | 参加の通知(メンバーシップレポート)と、ルータからの問い合わせ(クエリ)だけ |
| IGMPv2 | 離脱を明示的に知らせるLeaveメッセージを追加。離脱が速く伝わる |
| IGMPv3 | 受信したい(または受信したくない)送信元を指定できる。SSM(送信元指定マルチキャスト)で使う |
動作の流れ(IGMPv2)
- ホストは、グループに参加したいときに、メンバーシップレポートを送る
- ルータは、定期的に一般クエリ(全ホスト宛て 224.0.0.1)を送り、まだ参加しているホストがいるかを確かめる
- 参加しているホストは、レポートで応答する
- ホストがグループを抜けるときは、Leaveメッセージ(全ルータ宛て 224.0.0.2)を送る
- ルータは、そのグループの特定クエリを送り、ほかに参加者がいなければ配信を止める
IGMPスヌーピング
スイッチは、通常、マルチキャストのフレームをブロードキャストと同じようにすべてのポートへ送ってしまう。IGMPスヌーピングは、スイッチがホストとルータの間のIGMPのやり取りを盗み見て、どのポートにどのグループの参加者がいるかを学習し、参加者がいるポートにだけマルチキャストのフレームを転送する機能である。映像配信などで、不要なポートに流れるトラフィックを抑えられる。
IPv6での対応
IPv6では、IGMPの代わりにMLD(Multicast Listener Discovery)を使う。MLDは独立したプロトコルではなく、ICMPv6のメッセージとして実装されている。
| IPv4 | IPv6 |
|---|---|
| IGMPv2 | MLDv1 |
| IGMPv3 | MLDv2 |
よく混同されるプロトコル
名前が似ているIGMPとICMPは、役割がまったく異なる。IPv6でARPの役割を担うのはICMPv6であり、IGMPv2ではない。
実際の試験ではここに出る!
- ネットワークスペシャリスト 令和6年度 春期 午前Ⅱ 問6
- ネットワークスペシャリスト 令和6年度 春期 午前Ⅱ 問7
- ネットワークスペシャリスト 令和4年度 春期 午前Ⅱ 問7
- ネットワークスペシャリスト 令和4年度 春期 午前Ⅱ 問13
- ネットワークスペシャリスト 平成30年度 秋期 午前Ⅱ 問8
- ネットワークスペシャリスト 平成30年度 秋期 午前Ⅱ 問11