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

4.1. IP モジュールインターフェースへの拡張

4.1. IP モジュールインターフェースへの拡張

IP モジュールと上位層プロトコルのインターフェースが拡張され、プロトコルが特定のチャネルに送信されたすべてのデータグラムの受信を要求できるようになりました。

Subscribe ( socket, source-address, group-address, interface )

Unsubscribe ( socket, source-address, group-address, interface )

ここで:

socket は第 2 節で定義された通りです。

[IGMPv3] の説明を引用すると、

interface は、(source-address, group-address) ペアで識別されるチャネルの受信を有効または無効にするネットワークインターフェースを識別するローカル識別子です。「デフォルト」インターフェースを指定するために特別な値を使用できます。同じチャネルを複数のインターフェースで受信したい場合は、各インターフェースに対して個別に Subscribe を呼び出す必要があります。

これは厳密に抽象的な機能インターフェースです。この機能は実装固有の方法で提供できます。例えば、[MSFAPI] のマルチキャストソースフィルタリング API をサポートするホストでは、Subscribe と Unsubscribe インターフェースをその API を通じてサポートできます。ホストが SSM アドレス範囲を知るように設定されている場合(設定メカニズムが手動かプロトコルかに関わらず)、ホストの OS は SSM 宛先アドレスに送信されたマルチキャストを受信するための非ソース固有のリクエストを発行するアプリケーションにエラーを返すべきです (SHOULD)。

これらの IP モジュールインターフェース(例えば ASM のみをサポートするホスト)とその基礎となるプロトコルをサポートしないホストは、SSM チャネルで送信されたトラフィックを確実に受信することを期待できません。第 5.2 節で説明するように、ルーターは ASM 参加要求に応答して SSM 転送状態を設定したりデータグラムを転送したりしません。

IP パケット受信インターフェースの広範な実装(例えば BSD Unix の recvfrom() システムコール)では、受信者がデータグラムの宛先アドレスを判断できません。このような実装を持つホストでは、データグラムを受信したソケットが複数のチャネルをサブスクライブしている場合、データグラムの宛先アドレスを推測できません。ホスト OS はホストがデータグラムの送信元アドレスと宛先アドレスを判断できる方法を提供すべきです (SHOULD)。(例えば、Linux OS は recvmsg() システムコールの応答の一部としてパケットの宛先を提供します。)この機能が利用可能になるまで、アプリケーションはデータグラムが送信されたチャネルを識別するために上位層のメカニズムを使用せざるを得ない場合があります。