GigEカメラのGVSPマルチキャスト出力をIGMP制御
IGMPの設定が必要な理由
産業用GigEカメラが出力するGVSP(GigE Vision Stream Protocol)は大容量非圧縮画像データです。このデータをマルチキャストストリーム(※)したい時、ネットワーク機器の接続構成や設定によっては、他のネットワーク機器に対してパケット負荷がかかってしまいます。そこで、カメラが特定のマルチキャストグループにのみGVSPを届ける為に使うのが、IGMP(Internet Group Management Protocol)というプロトコルです。スイッチングハブに対して、GigEカメラ、マスターPC、受信PCのそれぞれが特定のマルチキャストグループに参加している事を通知する必要があります。以下では、そのスイッチングハブについての設定方法を説明しています。
(※)マルチキャストとは、単一の送信元から特定のグループに所属する複数の受信者へ、パケットを同時送信する通信方式です。不特定多数を対象とするブロードキャストとは異なり、特定の宛先グループのみにデータを転送できます。
スイッチングハブのIGMPの設定
スイッチングハブは、このIGMPによる参加情報をIGMP Snooping機能によって監視し、参加表明しているポートにのみデータを転送します。もしスイッチ側でこの機能が無効になっていると、スイッチングハブは転送先を特定できないため、すべてのポートに対してデータを一斉送信(フラッディング)します。これは実質的にブロードキャストと同じ挙動であり、ネットワーク全体に負荷をかける原因となります。そのため、マルチキャストを適切に運用するためには、スイッチングハブ側でIGMP Snooping機能を有効化することが必須となります。
複数台のPCにマルチキャストストリームをすると以下のような状況になります。
- 同一ネットワーク内に2台以上のマルチキャストをするカメラがある場合

- 社内LANなど他の機器が繋がっている場合

マルチキャストスト設定がされているGigEカメラがスイッチングハブに接続されていてIGMPの設定をしていない場合、スイッチに物理的に接続されている他のGigEカメラ、社内LAN、PLC、サーバーなどに大容量パケットが流れ込み、他のGigEカメラの不安定動作や帯域汚染につながる場合があります。それを回避するために、スイッチングハブでIGMPの設定が必要になります。
- IGMP Snooping
- IGMP Snooping Interface Configuration
- IGMP Snooping Querier
それぞれの設定方法は以下の通りです。
IGMP設定例
IGMP Snoopingはスイッチングハブの設定で有効化できます。
下記では例としてNETGEAR GS110TPを使って設定を行っています。
IGMP Snooping
- IGMP Snooping Status:Enable
- Block Unknown Multicast Address:Enable
Block Unknown Multicast Addressは、IGMP Snoopingテーブルに登録されていないマルチキャスト宛パケットを、フラッディングせずに破棄する機能です。これを有効にすることで、不要なマルチキャストが全ポートへ流れることを防げます。もしこの項目をDisableにした場合、カメラから送信されるGVSPパケットがスイッチ内でフラッディングされ、ネットワーク全体が不安定になる可能性があります。結果として、スイッチ内部でパケットが滞留し、映像のカクつきやフレームドロップといった問題が発生する恐れがあります。

IGMP Snooping Interface Configuration
- Admin Mode:Enable
IGMP Snooping Interface Configurationでは、スイッチの各物理ポートに対してIGMP Snoopingの対象になるように有効にしています。
これにより、「どのポートにどのマルチキャストグループの受信者がいるか」というIGMP Snoopingテーブルを動的に作成できるようになります。

IGMP Snooping Querier
- Querier Admin Mode:Enable
IGMP Snooping Querierを有効にすると、マルチキャストグループが存在するのかQuery(確認)を送ることができます。定期的にQueryを送ることで、PCからスイッチングハブに対してIGMP Membership Report(Join)を送信し、スイッチングハブ側で受信者が存在すると認識するので、マルチキャスト配信が時間経過しても安定して継続することができます。

補足:設定した後のWireShark
以下の通り、WireSharkで確認すると、PCがどのマルチキャストグループのパケットを要求しているのか分かります。以下は Wireshark でパケットを監視した例です。カメラをスイッチングハブに接続し、カメラをオープンしAcquisition Startが行われると、PC側のOS/NICドライバがマルチキャスト受信を開始し、その結果としてIGMP Membership Report(Join)が自動的に送信されていることが分かります。

その後、スイッチングハブ側でIGMP Snooping Tableに自動的に登録されます。
なお、アプリケーションを終了すると、PC から Leave(または一定時間後のタイムアウト)によりテーブルから削除されます。



