IGMP【Internet Group Management Protocol】
IGMPとは
- 最終更新
- 2006-03-12T01:38:00+09:00
- この記事のURI参照
https://www.7key.jp/nw/tcpip/ip/igmp.html#what
IGMPはIPマルチキャストでマルチキャストグループを制御するために使われるプロトコルです。ホストがマルチキャストグループへ参加・脱退したり、マルチキャストルータ間でマルチキャストグループに関する情報を遣り取りしたりするのに使われます。通常、IPの一部として実装され、IPプロトコル識別子が2の場合、IGMPであることが示されます。下にホストからマルチキャストルータへ送られるIGMPメッセージフォーマットを示します(括弧内単位はbit)。
IGMPのメッセージフォーマット
V (4) | T (4) | 未使用(8) | チェックサム(16) |
グループアドレス |
- V:Version
- プロトコルのバージョン番号が入ります。現在は1です。
- T:Type
- 1が入れられた場合、このメッセージがメンバーシップ照会であることを示します。これを使い、マルチキャストルータはローカルネットワークに接続されたホストに問合せを行い、どのマルチキャストグループにホストがあるかを知ります。また、2が入れられた場合、このメッセージがメンバーシップ報告であることを示します。これはローカルホストが問合せメッセージに応答する際に使われます。
- Unused
- 送信時は0が入れられ、受信側はこのフィールドを無視します。
- Checksum
- IGMPメッセージの1の補数和の1の補数が入れられます。
- Group Address
- メンバーシップ照会の際には、送信時に0が入れられ、受信側はこれを無視します。メンバーシップ報告の際は、報告グループのIPマルチキャストグループアドレスが入れられます。
IGMPの手順
- 最終更新
- 2006-03-12T13:34:00+09:00
- この記事のURI参照
https://www.7key.jp/nw/tcpip/ip/igmp.html#preccess
- マルチキャストルータがIGMP照会メッセージを送信します。この際、宛先は自ネットワーク内の全てのホスト(
224.0.0.1
)で、転送されないようTTLを1として送ります。
- メッセージを受信したホストは、自分が属するマルチキャストグループのアドレスを設定したIGMP報告メッセージを作成し、応答します。
- ただし、全てのホストが同時に応答をするのでは、このローカルネットワークのトラフィックが一時的に大きなものとなることが予想されるため、これを解決する方法として次の2点がRFC1112に示されています。
- 問合せを受信したホストは属しているグループごとに、自身のIPアドレスをSeedとした乱数を使いタイマーを起動します。そのタイマーが終了した際に、該当するマルチキャストグループについての報告を作成します。また、特定のマルチキャストグループのタイマーが、照会メッセージ受信時に既に起動している場合は、このタイマーをリセットせずそのまま動作させ、それが終了すると報告を作成、送信します。
- 各ホストは報告メッセージを送信する際、報告内容のホストグループと同じIP宛先アドレスを付け、TTLを1にします。このことによって、同じマルチキャストグループの他のホストは、隣接ステーションの送信を聴取し、同じグループに属していればそのタイマーを停止させることが出来ます。
- マルチキャストルータは、アドレス情報を定期的(一般に1分に1回を超える頻度で送られることはありません)に更新するために照会メッセージを発信し、応答がないホストには他ネットワークからの転送をしません。
- マルチキャストグループに新たに参加するホストは、報告メッセージを送信してグループ参加を通知します。この際、照会メッセージを待つことはありません。一般にこの報告は2,3回繰り返され、喪失や破損のおそれをなくするようになっています。
その他
224.0.0.1
宛照会は、タイマー設定も報告もしません。
- IGMP照会以外のタイプは破棄します。
各ホストの状態
- 最終更新
- 2006-03-12T14:21:00+09:00
- この記事のURI参照
https://www.7key.jp/nw/tcpip/ip/igmp.html#status
ホストはどのインターフェイスのどのグループに対しても、次に示す3つの状態のいずれかとなります。
非メンバー状態【Non-Menber State】
非メンバー状態にあるホストは、このインターフェイス上のそのマルチキャストグループには属していません。AllHostsグループを除いて、どのマルチキャストグループに対してもこれが初期状態となります。ホストが報告メッセージを送信してグループ参加を通知できるのは、この状態からだけです。
遅延メンバー状態【Delaying Member State】
遅延メンバー状態にあるホストは、このマルチキャストグループに属しており、乱数タイマーを起動してこれから報告メッセージを送信しようとしています。タイマーの終了によって報告を送信する、他のホストからの報告メッセージを受信してタイマーを停止させる、グループからの離脱をホストが選択するなどによって別の状態に遷移します。
待機メンバー状態【Idle Member State】
待機メンバー状態にあるホストは、このインターフェイス上のマルチキャストグループに属していますが、乱数タイマーは起動していません。この状態から照会メッセージを受信すると、ホストは遅延メンバー状態に遷移します。
IGMPv1からIGMPv2への変更点
- 最終更新
- 2006-03-12T14:34:00+09:00
- この記事のURI参照
https://www.7key.jp/nw/tcpip/ip/igmp.html#igmp2
IGMPv1からIGMPv2への変更点はRFC2236に記載されています。
- バージョンフィールドとタイプフィールドが1つのタイプフィールドとなった。
- IGMPv2離脱グループメッセージが追加された。ルータからの照会メッセージに対し、最後のメンバーホストはグループ離脱メッセージを送信しなければならない(SHOULD)。最後でなければ何も送信しなくてもよい(MAY)。自分が最後かどうかを記憶しておくための十分な記憶域を持たないメンバーホストは、グループ離脱メッセージを送信しても良い(MAY)。
- 照会メッセージの未使用フィールドを最大応答時間(Max Response Time)へ変更。
- 照会ルータの選出方法をIGMPv2で規定。
- 1物理ネットワーク内で照会を行うルータを一つに限定。他は非照会ルータとし、ここからIGMPv2で照会ルータを選出する。選出はルータ起動時に照会メッセージを送信して行う。その後、一定時間間隔で照会メッセージが来たときには非照会ルータに変わり、来ない場合には照会ルータとなる。照会ルータは一定時間間隔で自ネットワークの照会を行う。
- メッセージ長が8オクテットでチェックサムが正しいという2条件のみをチェックするよう、チェック項目が緩やかとなった。
- ルータがIPパケットの内容をより詳細にチェックするオプションが増えた。
補足知識
- 最終更新
- 2006-03-11T01:53:00+09:00
- この記事のURI参照
https://www.7key.jp/nw/tcpip/ip/igmp.html#supplement
- RFC1112【Host extensions for IP multicasting -- August 1989】
- RFC2236【Internet Group Management Protocol, Version 2 -- November 1997】
臨時マルチキャストグループの割り当ては特に決まったものはありません。RFC1112では、ホストがマルチキャストグループアドレスを無作為に割り当て、それが既に使われていれば変更をすることを提案しています。
当ページ作成にあたり、参考にさせてもらったリソース
このページに関するご案内
-
この文書は
Keyから
ネットワーク、
TCP/IP、
IPとリンクを辿ると、当ページ
IGMPとはに辿り着きます。
- Site mapよりこのサイトの全体的な構造を把握できます。
- 索引よりこのサイト内にある任意のキーワードを含んだ文書を探すことができます。
- この文書のURIは
https://www.7key.jp/nw/tcpip/ip/igmp.html
です。
Copyright (C) 2006 七鍵 key@do.ai 初版:2006年03月11日 最終更新:2006年03月12日