◆ IGMPv3
IGMPはIPでカプセル化されており、IPプロトコル番号は「2」です。IGMPv3のフォーマットは以下です。
IGMPv3の場合、IGMPメンバーシップクエリーと、IGMPメンバーシップレポートとではフォーマットが
大きく異なるので、分けて解説します。
フィールド |
ビット |
内容(値) |
タイプ |
8ビット |
メンバーシップクエリー( 0x11 ) |
最大応答時間 |
8ビット |
クエリーを受信後にレポートを返すまでの最大応答時間(100 = 10秒) |
チェックサム |
16ビット |
パケットの完全性を確認するために使用( 0 ) |
グループアドレス |
32ビット |
ジェネラルクエリーの場合は 0.0.0.0 |
グループスペシフィッククエリーとグループソーススペシフィッククエリーの場合
マルチキャストアドレス
|
Resv |
4ビット |
送信時に 0 にセットされ、受信時は無視される(0) |
S |
1ビット |
クエリーメッセージの受信後に通常のタイマー更新を実行しない(0) |
QRV |
3ビット |
Querier Robustness Value。タイマーと再試行の回数に影響を及ぼす。 |
QQIC |
8ビット |
Qurier's Query Interval Code。クエリアが使用するクエリインターバルを指定。 |
送信元の数 |
16ビット |
クエリー内の送信元IPアドレスの数 |
送信元アドレス |
32ビット |
送信元のIPアドレス |
フィールド |
ビット |
内容(値) |
タイプ |
8ビット |
メンバーシップレポート( 0x22 ) |
予約 |
8ビット |
送信時に 0 にセットされ、受信時は無視される(0) |
チェックサム |
16ビット |
パケットの完全性を確認するために使用( 0 ) |
予約 |
16ビット |
送信時に 0 にセットされ、受信時は無視される(0) |
グループレコードの数 |
16ビット |
レポートに含まれているグループレコードの数 |
グループレコード |
- |
マルチキャストグループの送信元のメンバーシップに関する情報 |
フィールド |
ビット |
内容(値) |
レコードタイプ |
8ビット |
1:MODE_IS_INCLUDE、2:MODE_IS_EXCLUDE |
補助データ長 |
8ビット |
送信時に 0 にセットされ、受信時は無視される(0) |
送信元の数 |
16ビット |
グループレコードに含まれる送信元の数 |
マルチキャストアドレス |
32ビット |
グループレコードに関連するマルチキャストアドレス |
送信元アドレス |
- |
送信元のIPアドレス |
補助データ |
- |
グループレコードに関連する追加のデータ |
◆ IGMPv3の動作
IGMPv1とIGMPv2では、Receiverがマルチキャストグループに参加する時、IGMPメンバーシップレポート
には参加するマルチキャストグループアドレスのみを指定していました。IGMPv3では、Joinメッセージを
送信する際にマルチキャストグループアドレスだけではなく「送信元」を指定することができます。これに
より、不正なマルチキャストのSenderからのトラフィックを受信することを防ぐことができます。
IGMPv3における送信元IPアドレスを指定したマルチキャストパケットの受信をソースフィルタと呼びます。
ソースフィルタには、以下の2つのフィルターモードがあります。IGMPv3は、IGMPv2でのマルチキャスト
グループの参加、維持、離脱の動作に加えてフィルターモードが追加されていることをまず理解しましょう。
フィルターモード |
説明 |
INCLUDEモード |
指定した送信元IPアドレスから送信されるマルチキャストパケットのみ受信 |
EXCLUDEモード |
指定した送信元IPアドレス以外から送信されるマルチキャストパケットのみ受信 |
|