IGMP

読み:あいじーえむぴー / 英語表記:Internet Group Management Protocol

IPv4で、ホストがどのマルチキャストグループに参加しているかを、同じネットワークのルータに知らせるためのプロトコル。

イマシルちゃんの解説

マルチキャストは、「このチャンネルを見たい人にだけ番組を届ける」仕組みなんだ。
でも、ルータはそのネットワークに見たい人がいるかどうかを知らないと、番組を届けていいかわからないよね。

そこでIGMPを使って、パソコンがルータに「ぼく、このチャンネル見たい!」「もう見ないよ」って伝えるんだ。
ルータは、見たい人がいるネットワークにだけ番組を流すんだよ!

より深い解説

定義

IGMP(Internet Group Management Protocol)は、IPv4のホストとそのネットワークに接続されたマルチキャストルータとの間で、マルチキャストグループへの参加・離脱を管理するプロトコルである。IPヘッダーのプロトコル番号は2。

IGMPが扱うのは、ホストとルータの間(同じネットワークの中)だけである。ルータ同士がマルチキャストの配信経路を作るには、PIMなどのマルチキャストルーティングプロトコルを別に使う。

バージョン

バージョン主な特徴
IGMPv1参加の通知(メンバーシップレポート)と、ルータからの問い合わせ(クエリ)だけ
IGMPv2離脱を明示的に知らせるLeaveメッセージを追加。離脱が速く伝わる
IGMPv3受信したい(または受信したくない)送信元を指定できる。SSM(送信元指定マルチキャスト)で使う

動作の流れ(IGMPv2)

  1. ホストは、グループに参加したいときに、メンバーシップレポートを送る
  2. ルータは、定期的に一般クエリ(全ホスト宛て 224.0.0.1)を送り、まだ参加しているホストがいるかを確かめる
  3. 参加しているホストは、レポートで応答する
  4. ホストがグループを抜けるときは、Leaveメッセージ(全ルータ宛て 224.0.0.2)を送る
  5. ルータは、そのグループの特定クエリを送り、ほかに参加者がいなければ配信を止める

IGMPスヌーピング

スイッチは、通常、マルチキャストのフレームをブロードキャストと同じようにすべてのポートへ送ってしまう。IGMPスヌーピングは、スイッチがホストとルータの間のIGMPのやり取りを盗み見て、どのポートにどのグループの参加者がいるかを学習し、参加者がいるポートにだけマルチキャストのフレームを転送する機能である。映像配信などで、不要なポートに流れるトラフィックを抑えられる。

IPv6での対応

IPv6では、IGMPの代わりにMLD(Multicast Listener Discovery)を使う。MLDは独立したプロトコルではなく、ICMPv6のメッセージとして実装されている。

IPv4IPv6
IGMPv2MLDv1
IGMPv3MLDv2

よく混同されるプロトコル

プロトコル役割
IGMPマルチキャストのグループ管理
ICMPエラーの通知や診断(ping など)
ARPIPアドレスからMACアドレスを求める

名前が似ているIGMPとICMPは、役割がまったく異なる。IPv6でARPの役割を担うのはICMPv6であり、IGMPv2ではない。

実際の試験ではここに出る!

この用語が出てくる記事

↑