ここから本文です。
IGMPとは?意味やメリット・デメリット、仕組みなどを解説
スイッチングハブ、ネットワークシステム構築に関するお問い合わせはこちら
IGMPとは?
IGMPは「Internet Group Management Protocol」の頭文字で、IPv4ネットワークを使ってマルチキャスト(一対多、あるいは多対多の通信)を行うために、複数の端末が1つのIPアドレスを共有し、同じデータを受信できるようにするための通信プロトコルです。
例えば、動画配信では同じデータを複数の端末に送信することになりますが、送信する端末の数だけデータを用意し、各端末に送信しているとネットワークのトラフィックが増え、サーバやネットワーク機器への負荷が高くなってしまいます。場合によっては、遅延などのトラブルが発生します。また同じデータをいくつも用意することは非効率的です。
IGMPを使うと、複数の端末が1つのIPアドレスを共有して、同じデータを受信できるようになります。1回のデータ送信で複数の端末宛てにデータを送ることができ、ネットワークの効率的な利用が可能になります。結果的に、遅延などのトラブルを防ぐことにもつながります。
IGMPスヌーピングとは
IGMPスヌーピングとは、IGMPを使ったデータ送信をスイッチなどが途中でスヌーピング、つまり「のぞき見」することをいいます。
IGMPを使うとデータ送信を効率化できるものの、IPアドレスを共有している全端末宛てにデータが送られてしまいます。IGMPスヌーピングは、データをのぞき見して、データ送信が不要な端末にデータを送らないようにする仕組みです。IGMPでのデータ送信をさらに効率的なものにし、ネットワークのより効率的な利用を可能にします。
IGMPスヌーピングクエリアについて
IGMPスヌーピングでは、各端末にデータ送信の要/不要を確認するためのデータ「メンバーシップクエリ」が送信されます。メンバーシップクエリを送信する機器を「IGMPスヌーピングクエリア」と呼びます。ほとんどの場合、動画などの配信元のルータがクエリアになります。
クエリアは60秒間隔で各端末にメンバーシップクエリを送信します。配信をそのまま継続して受け取る端末は「メンバーシップレポート」を送り返します。メンバーシップクエリに対して、端末からメンバーシップレポートが返信されている限り、スイッチは該当する端末にデータを送信し続けます。一方、メンバーシップクエリに対して、メンバーシップレポートの返信がない端末に対しては、データ送信をストップします。
IGMPのシーケンスとは
IGMPのシーケンスは、マルチキャストグループへの参加表明、参加の維持、脱退の3つに分けられます。
端末(レシーバ)はデータ配信元のルータに「IGMP Joinメッセージ(メンバーシップレポート)」を送信し、グループへの参加を表明します。
データ送信元のルータは、60秒ごとに「メンバーシップクエリ」を送り、レシーバの存在を確認します。データ配信の継続を求めるレシーバは「メンバーシップレポート」を返信します。レポートを返信している限り、参加が維持されます。
端末がグループから脱退するときは「IGMP リーブメッセージ」を送信します。リーブメッセージを受け取ったルータは、グループ宛てに他のレシーバの有無を確認する「IGMP グループスペシフィッククエリ」を送信します。グループから脱退するレシーバの他に、データ配信の継続を希望する端末が存在する場合は、そのままマルチキャストグループ宛てにデータ送信を続けます。
IGMPのバージョンを表で比較
IGMPには、IGMPv1、IGMPv2、IGMPv3の3つのバージョンがあります。バージョンごとの各シーケンスの動作の違いをまとめました。
参加表明 | |||
---|---|---|---|
送信者:各端末(レシーバ) | |||
IGMPのバージョン | v1 | v2 | v3 |
宛先IP | 230.4.5.6 | 224.0.0.22 | |
メッセージ | 230.4.5.6に参加します。 | 230.4.5.6に参加します。 送信元IPアドレスを指定します。 |
参加の維持(確認) | |||
---|---|---|---|
送信者:ルータ | |||
IGMPのバージョン | v1 | v2 | v3 |
宛先IP | 224.0.0.1 | ||
メッセージ | 参加している端末はグループアドレスを教えてください。 |
参加の維持(返信) | |||
---|---|---|---|
送信者:各端末(レシーバ) | |||
IGMPのバージョン | v1 | v2 | v3 |
宛先IP | 230.4.5.6 | 224.0.0.22 | |
メッセージ | 230.4.5.6に参加しています。 | 230.4.5.6に参加しています。 送信元IPアドレスを指定します。 |
脱退 | |||
---|---|---|---|
送信者:各端末(レシーバ) | |||
IGMPのバージョン | v1 | v2 | v3 |
宛先IP | -(サポートせず) | 224.0.0.2 | 224.0.0.22 |
メッセージ | - | 230.4.5.6から離脱します。 |
脱退後の存在確認 | |||
---|---|---|---|
送信者:ルータ | |||
IGMPのバージョン | v1 | v2 | v3 |
宛先IP | -(サポートせず) | 224.0.0.1 | |
メッセージ | - | 230.4.5.6の参加者はいますか? |
IGMPのバージョンによる機能の違いを紹介
IGMP version 2
IGMP version 2(IGMPv2)では、version 1(v1)から以下の4つの機能が追加されました。
1. クエリアの選択
複数のルータが存在する場合、IGMPv2では最も小さなIPアドレスを持つルータがIGMPクエリアとなります。
2. クエリに対する最大応答時間の設定
IGMPクエリアからのクエリに対する最大応答時間は、v1では10秒で固定でしたが、v2では変更が可能になりました。
3. リーブメッセージ
グループから脱退する場合、v1ではクエリに応答しないことで脱退していましたが、v2ではリーブメッセージがサポートされました。
4. グループスペシフィッククエリ
リーブメッセージのサポートとともに、グループスペシフィッククエリもサポートされました。
IGMP version 3
さらにIGMP version 3(IGMPv3)では、version 2(v2)から以下の2つの機能が追加されました。
1. 送信元アドレス(ソース)の指定
マルチキャストグループに参加する際、グループアドレスだけでなく、送信元アドレスを指定できるようになりました。
指定方法(モード)は2種類あります。指定したアドレスからのデータを受信する「INCLUDEモード」と、指定したアドレス以外から送信されるデータを受信する「EXCLUDEモード」です。
2. リーブメッセージをメンバーシップレポートに統合
v2でリーブメッセージが採用されましたが、メンバーシップレポートに統合されました。
IGMP スヌーピングのメリット・デメリットとは
メリット
L2スイッチはデフォルトではマルチキャストグループ宛てに送られてきたデータを、IPアドレスを共有している端末が接続された全ポートに送ります。これを「フラッディング」と呼びます。日本語に訳すと、洪水、氾濫という意味です。全ポート、つまり送信を要求していない端末が接続されたポートにも送るため、無駄なトラフィックが発生します。
IGMPスヌーピングのメリットは、このフラッディングをなくし、スイッチの負荷を軽減できることです。
またIGMPでは、配信元のルータは定期的にレシーバの存在を確認するメンバーシップクエリを送信します。それに対して、複数の端末から配信を求めるメンバーシップレポートがルータ宛てに送信された場合、スイッチは最初の1台のメンバーシップレポートだけをルータに送信します。2台目以降のメンバーシップレポートの送信を行わない「通信抑制機能」で、帯域の消費を防ぐこともIGMPスヌージングのメリットです。
デメリット
グループから脱退する時は、端末はIGMPリーブメッセージを送信しますが、バージョンによってはリーブメッセージがサポートされておらず、ルータからのクエリに返信しないことでグループから脱退します。そのため、ルータからのクエリを待ち、それに返信しないことでグループから削除されることを待つというタイムラグが発生します。
IGMPスヌーピングでは、リーブメッセージを送った端末は即座にスイッチのMACアドレステーブルから削除され、データ送信は停止します。IGMPスヌーピングの「即時脱退機能」です。
文字どおりすぐに送信を止めることができるメリットがありますが、他の端末が同じ動画を閲覧していた場合、リーブメッセージを送っていないにもかかわらず送信が停止してしまうというデメリットがあります。
IGMP、IGMPスヌーピングを上手に活用しよう
IGMP、IGMPスヌーピングは、ネットワークの広帯域化とともにビジネスのさまざまな場面で、動画コンテンツの有効活用が求められている今、重要な技術になっています。貴重な経営資源であり、ビジネスを支える基盤となっているネットワークリソースや帯域をフルに活用するためにも、IGMP、IGMPスヌーピングを十分に理解し、上手に使いこなしてください。