要約
- IGMPv1/v2では、各ホストがランダムなタイマーを動かし、同じグループの有効なMembership Reportを先に聞くと自分の送信を取り消した。通常、ルーターが得るのはリンク上に少なくとも一人いるという一件の証拠だった。
- v2のLeaveは不在の確定ではなく、短い再確認を始める合図だった。v3では送信元リストや状態変更、ポート別転送により報告が互換でなくなり、ホスト間の報告抑制が廃止された。
問いを小さくしたから、一人で足りた
LANに接続されたマルチキャスト・ルーターは、グループGの通信をそのリンクへ流し続けるか決めなければならない。最初の判断に必要なのは受信者名簿ではない。誰か一人でもGを必要としているか、である。
1989年8月のRFC 1112は、後に最初の広く展開されたIGMP版と位置づけられる仕組みを定めた。メンバーシップは動的で、特定のインターフェースに属する。送信者はグループのメンバーでなくてもよい。グループ・アドレスは所有者名でも、利用者台帳でもなかった。
隣接ルーターに渡す事実は限定されていた。「この直結網には少なくとも一つの受信主体がある」。同じ肯定を返す限り、どのホストの報告もその判断に対して等価だった。
十秒の抽選が一時的な証人を決めた
ルーターはTTL 1で全ホスト宛て224.0.0.1にQueryを送る。受信したホストは、そのインターフェース上の対象グループごとに、ゼロ秒から十秒までのランダムな報告遅延タイマーを始める。
最初にタイマーが切れたホストは、報告対象のグループ・アドレスへMembership Reportを送る。このパケットもTTL 1なので、同じリンクの他メンバーが聞ける。まだ待機中のホストは、有効な同グループ報告を受けると自分のタイマーを止める。
ランダム化は返答を時間的に散らし、聞き取りによる取り消しは総数を減らした。通常は一グループ一報告で済む。勝ったホストが代表権を得たわけではない。次のQueryでは別の端末が最初になる。
「抑制」という言葉も範囲を守って読む必要がある。消えたのは一回の応答予定であって、メンバーシップでも受信能力でもない。ルーターの状態が「インターフェースIにGが存在」だけなら、二件目の肯定を省いても判断材料は減らなかった。
参加はすぐ報告し、不在は時間で確かめた
ルーターは定期的にQueryを送り、状態を更新する。規定の照会と待機を経ても報告がなければ、ローカル・メンバーはいないとみなし、遠隔から来たGの通信をリンクへ出す必要がなくなる。
これは更新される限り生きるsoft stateである。端末が故障して別れを告げられなくても、誰も存在を更新しなければ状態は消える。障害を永久登録にしない代わりに、不在の判断には待ち時間が必要だった。
新規参加は反対に即時だった。ホストはQueryを待たずにReportを送り、最初のパケット損失に備えて短い遅延後に繰り返す。リンク上の最初の一人なら、その通知が届くまでデータ自体が転送されない可能性があるからだ。
一人で証明できるのは存在である。全員の不在は、全員に機会を与えても誰も答えなかった後でしか証明できない。この非対称性がv1の静かな効率を支えた。
Leaveは結論ではなく、再質問だった
1997年11月のRFC 2236はIGMPv2を定義した。Max Response Time、querier選出、Group-Specific Query、Leave Groupが加わり、最後の受信者が去った後の不要な転送を早く止められるようになった。
直前のQueryで自分が最後にReportを送ったと覚えているホストは、離脱時に224.0.0.2へLeaveを送るべきとされた。最後の報告者でなければ、別のメンバーの存在が最近確認されているので黙ってもよい。
しかし「最後に報告した」は「最後に残った」と同義ではない。querierはLeaveを受けてもGを即座に削除せず、短い間隔で複数回のGroup-Specific Queryを送る。残っているメンバーが一人でも答えれば状態は維持される。最後の応答窓まで空だったときだけ、不在と判断する。
つまりLeaveは「今すぐ確かめ直してほしい」という要求であり、他人の受信を止める命令ではない。v1メンバーがいるグループではv2ルーターがLeaveを無視する互換規則も、この慎重さから生まれる。旧ホストは新しい離脱手順に答えられない。
GだけでなくSを報告するようになった
IGMPv3では、観測対象そのものが細かくなった。2002年のRFC 3376がv3を定義し、2025年のRFC 9776が誤りの修正と明確化を行った現行標準になっている。
INCLUDEでは、グループGについて列挙した送信元だけを受け取りたいと表明する。EXCLUDEでは、列挙した送信元以外を受け取る。socketごとの希望はインターフェース状態へ集約され、報告には現在状態、フィルター・モード変更、新たに許可する送信元、止めたい送信元が記録される。
同じGを聞く二台が異なるSを望むことは正当である。RFC 4607のSource-Specific Multicastはチャネルを(S,G)として扱う。一台目のS1に関する報告は、二台目のS2に関する希望を代弁できない。
そこでv3は、古い最適化を明示的に外した。他ホストのv3 Reportを聞いても、自分のReportを取り消さない。標準の設計理由は、fast leaveや課金のためのホスト別観測、IGMP snooping bridgeとの不整合、ホスト状態機械の簡素化を挙げる。さらに一つのv3パケットへ複数のGroup Recordを束ねられるため、違いを失わずにパケット数を減らせる。
ランダムな待機は残った。General Queryへの応答はMax Response Time内へ散らし、受信直後に全員が送ってはならない。v3が廃止したのは応答の分散ではなく、「他人が話したから自分の証拠は不要」という推論だった。
スイッチはリンクをポート単位で見ていた
初期の抑制は、全メンバーが同じ報告を聞ける共有空間を前提にする。IGMP snoopingを行うスイッチは、同じLANをポートごとの転送表として見る。
通常のbridgeはマルチキャストをfloodする。snooping switchはIGMPを読み、関心があると推定したポートだけへデータを送る。RFC 4541はInformational文書として、Membership Reportをホスト専用ポートへ広げず、マルチキャスト・ルーター側へ転送する考え方を記す。
もしv1/v2 Reportが別ポートのホストへ届くと、そのホストは自分の報告を抑制し得る。ルーターはリンク上のGを認識したが、スイッチは沈黙したホストのポートを学べない。実際の受信者へデータを送らないという逆転が起こる。
一つの証拠が二つの地図で使われた。ルーターには「リンク上にG」、スイッチには「このポートにG」が必要だった。前者で等価な証人は、後者では等価でない。
v3 Reportは224.0.0.22へ送られ、複数レコードを一つに収められる。効率を捨てたのではなく、情報を消す抑制から、情報を保つ集約へ圧縮方法を変えたのである。
古い一台が沈黙の意味を戻す
実際のリンクでは複数版が共存する。v3ホストは古いQueryを聞くと互換タイマーを動かし、その間は旧形式で応答する。ルーターも旧メンバーの存在を保持する。Leaveや送信元リストをどこまで信頼できるかが変わるからだ。
一台の旧端末が、一定期間グループ全体の表現力を下げることになる。互換性は移行中のサービスを守るが、最も粗い参加者が全員の証明可能性を決める費用も持つ。
SSM-awareなホストについて、RFC 9776はv1/v2 Reportで自分のv3 Membership Recordを抑制させてはならないとする。監視画面が「IGMP有効」だけを示し、版と互換モードを隠せば、この意味の後退は見えない。
受信希望は許可証ではない
IGMPが伝えるのは、IPv4マルチキャストを受信したいというローカルな状態である。広域の配信木を作らず、加入者を認証せず、送信権を決めず、パケット到着を保証しない。
RFC 9776は機密性もないと明記する。リンク上の機器は、機微なグループへの関心を観測できる。偽Reportは実在しないメンバーのために転送を継続させ、偽の旧版Reportは互換状態を延ばしてfast leaveや送信元処理を弱め得る。TTL 1、Router Alert、オンリンク送信元確認は一部の経路を制限するが、暗号学的認証ではない。
この狭さは設計の価値である。転送に必要な証拠だけを共通化し、利用者の身元や権利は別の仕組みに残す。Membership Reportをそのまま本人確認や課金台帳に変えれば、プロトコルが持たない権限を後から付与することになる。
出典と限界
RFC 1112はランダム・タイマーと報告抑制、RFC 2236はLeaveとlast-member確認を定義する。RFC 3376はv3の歴史的理由を残し、RFC 9776が現行仕様である。RFC 4541はsnooping switchの注意点、RFC 4607は(S,G)モデルを記す。
これらは普及率、製品実装、受信者の人物同定を証明しない。抑制廃止を「証拠の交換可能性が変わった結果」と読む部分は、仕様の状態モデルと明記された設計理由からの分析である。
会員向け解説
プロフィールの詳細
適切な会員レベルでログインすると、解説全文と出典メモをご覧いただけます。
Strategic Circle 限定
Strategic Circle
すべての読者に公開されています。参加してログインすると プロフィール解説 を閲覧できます。
Strategic Circle に参加Leadership Alliance 会員限定
Leadership Alliance
対象となる IP 資産の所有者・管理者向けです。ログインすると Leadership Alliance の解説を閲覧できます。
Leadership Alliance に参加
