メインコンテンツまでスキップ

7.2 Extensions to the IP Module (IP モジュールの拡張)

7.2. Extensions to the IP Module (IP モジュールの拡張)

マルチキャスト IP データグラムの受信をサポートするには, IP モジュールを拡張して, 各ネットワークインターフェースに関連付けられたホストグループメンバーシップのリストを維持する必要があります。これらのグループの1つを宛先とする着信データグラムは, ホストの個別アドレスの1つを宛先とするデータグラムとまったく同じ方法で処理されます。

ホストが属していないグループを宛先とする着信データグラムは, エラーレポートやログエントリを生成することなく破棄されます。複数のネットワークインターフェースを持つホストでは, データグラムが1つのインターフェースを介して到着し, ホストが別のインターフェースでのみ属しているグループを宛先とする場合, データグラムは静かに破棄されます。(これらのケースは, ローカルネットワークモジュールでの不十分なマルチキャストアドレスフィルタリングの結果としてのみ発生するはずです。)

IP time-to-live (生存時間) が 1 の着信データグラムは拒否されません (つまり, 転送されていない到着データグラムで生存時間を自動的にデクリメントすべきではありません)。送信元アドレスフィールドに IP ホストグループアドレスを持つ着信データグラムは静かに破棄されます。IP ホストグループを宛先とするデータグラムに応答して ICMP エラーメッセージ (Destination Unreachable, Time Exceeded, Parameter Problem, Source Quench, Redirect) が生成されることはありません。

ホストグループメンバーシップのリストは, 上位層プロトコルからの JoinHostGroup および LeaveHostGroup 要求に応じて更新されます。各メンバーシップには, 同じグループへの参加と離脱の複数の要求を処理するための関連する参照カウントまたは同様のメカニズムが必要です。指定されたインターフェース上のグループに参加する最初の要求と離脱する最後の要求で, そのインターフェースのローカルネットワークモジュールに通知され, マルチキャスト受信フィルターを更新できるようにします (セクション 7.3 を参照)。

IP モジュールは, Appendix I で規定されている IGMP プロトコルを実装するように拡張する必要もあります。IGMP は, 特定のローカルネットワークに存在するホストグループメンバーシップについて隣接するマルチキャストルーターに通知し続けるために使用されます。IGMP をサポートするために, すべての level 2 ホストは初期化時に各ネットワークインターフェース上で "all-hosts" グループ (アドレス 224.0.0.1) に参加し, ホストがアクティブである限りメンバーであり続ける必要があります。

(all-hosts グループ宛のデータグラムはマルチキャストルーターによって特殊なケースとして認識され, 生存時間に関係なく単一のネットワークを超えて転送されることはありません。したがって, all-hosts アドレスはインターネット全体の広播アドレスとして使用できません。IGMP の目的では, ホストが少なくとも1つの他のグループに属している間だけ, all-hosts グループのメンバーシップが本当に必要です。ただし, ホストが常に all-hosts グループのメンバーであり続けることが規定されています。理由は (1) より単純であること, (2) 不要な IGMP クエリを受信する頻度が十分に低いため, オーバーヘッドが無視できること, (3) all-hosts アドレスがゲートウェイの存在を宣伝したりローカルアドレスを解決したりするなど, 他のルーティング指向の目的に役立つ可能性があることです。)