IGMP スヌーピングとは、不要なマルチキャストトラフィックを転送しないようにする機能です。
通常、マルチキャストトラフィックは同一ネットワークに所属する全てのポートにフラッディングされるため、マルチキャスト受信端末が存在しないポートにもマルチキャストトラフィックが転送されてしまい、無駄に帯域を使用してしまいます。
一方、 IGMP スヌーピングが有効の場合、受信端末が接続されているポートに必要なマルチキャストトラフィックのみが転送されるため、帯域を節約することができます。
以下の例では、受信端末 A ( RX A )が Group A のマルチキャストトラフィックのみ、受信端末 B ( RX B )が Group B のマルチキャストトラフィックのみを受信したい場合において、フラッディングと IGMP スヌーピングの違いを表しています。
フラッディングの場合は RX A の接続ポートに Group A と Group B の両方が転送されますが、IGMP スヌーピングの場合は RX A の接続ポートに Group A のみ転送されます。
フラッディングの場合 |
IGMP スヌーピングの場合 |

|

|
IGMP スヌーピングが有効のスイッチは、どのポートにどのマルチキャストグループを送信すべきか学習するために 「IGMP クエリー(IGMP Query)」 と 「IGMP レポート(IGMP Report)」 を使用します。
以下の例では、 IGMP クエリーと IGMP レポートの処理の流れを表しています。
-
ネットワークの中で 1 台の代表スイッチが定期的に IGMP クエリーを送信します。この IGMP クエリーを送信するスイッチのことを 「クエリアー(Querier)」 と呼びます 。
-
マルチキャスト受信端末は IGMP クエリーを受信すると、その応答として IGMP レポートを送信します。 IGMP レポートには受信端末が受信したいマルチキャストグループの情報が含まれています。
-
スイッチは IGMP レポートの内容を盗み見(スヌーピング)することで、どのポートにどのマルチキャストグループを送信すべきか学習します。
学習したマルチキャストグループ情報は一定時間が経過すると自動的に削除されるため、正しい学習状態を維持するためには、同一ネットワーク内に 1 台のクエリアーが必ず存在する必要があります。
同一ネットワーク内に複数のクエリアーが存在する場合は、 1 台だけクエリアーを残して、それ以外のスイッチは自動的にクエリー送信を停止します。
なお、クエリアーが存在しない場合でも、受信端末側でマルチキャスト受信アプリケーションを起動したときなどに、受信端末が自発的に IGMP レポートを送信する場合もあります。
クエリアーが存在しない状況でマルチキャストグループ情報を学習してしまうと、他の受信端末の接続ポートにそのマルチキャストグループが転送されなくなることがあるため、ご注意ください。