知識ベース

帯域外データ

コンピューターネットワーキングでは、 帯域外データは、メインの帯域内データストリームから独立したストリームを介して転送されるデータです。帯域外データメカニズムは、概念的に独立したチャネルを提供します。これにより、そのメカニズムを介して送信されるデータを帯域内データとは別に保つことができます。帯域外データメカニズムは、個別のチャネルとエンドポイントを確立する必要はなく、データチャネルと伝送プロトコルの固有の特性として提供する必要があります。 「帯域外データ」という用語は、電気通信業界で使用される帯域外シグナリングに由来するものと思われます。

事例

リモートデータソースからリモート宛先にデータをトンネリングするネットワークアプリケーションを検討します。トンネルされるデータは、任意のビットパターンで構成されます。トンネルの送信側には、受信側に通知する必要がある条件がある場合があります。ただし、受信側がデータソースから送信されたデータとメッセージを区別できないため、受信側にメッセージを単純に挿入することはできません。ただし、帯域外メカニズムを使用して、送信側はメッセージを帯域外で受信側に送信できます。受信側は帯域外データの到着を何らかの方法で通知され、帯域外データを読み取り、これが送信側からのデータに関係なく送信側からのメッセージであることを知ることができます情報元。

実装

物理的に別個のチャネルを使用して帯域外データ伝送を実装することは可能ですが、最も一般的な帯域外データは、通常のデータと同じチャネルを使用する伝送プロトコルによって提供される機能です。典型的なプロトコルは、送信されるデータをブロックに分割します。各ブロックには、送信されるデータのタイプを識別するヘッダーワードと、ブロックで送信されるデータバイトまたはワードのカウントが含まれます。ヘッダーは、他の識別およびルーティング情報とともに、データを帯域内または帯域外として識別します。受信側では、プロトコルはヘッダーを調べ、帯域内の場合は通常の受信エンドポイントにデータをルーティングし、帯域外の場合は別のメカニズムにデータをルーティングします。実装に応じて、帯域外データが到着したときに受信アプリケーションに通知または割り込みを行うためのメカニズムが存在する場合があります。

帯域外データメカニズムを含む最も一般的に使用されるプロトコルは、インターネットの伝送制御プロトコルです。 「緊急ポインタ」を使用して帯域外データを実装します。これは、送信データストリーム内の特定のデータを帯域外としてマークします。残念ながら、RFC 793とRFC 1122の長年の矛盾により、TCPのこの機能の使いやすさが制限されています。それにもかかわらず、特定の標準アプリケーションプロトコル、特にTelnetプロトコルで頻繁に使用されます。

Unixライクコンピューターでは、帯域外データはrecv()システムコールで読み取ることができます。プロセスまたはプロセスグループは、fcntl()システムコールのF_SETOWNコマンドを使用して、帯域外データがソケットで読み取れる場合にSIGURGシグナルを受信するように構成できます。これは非同期I / Oの形式です。

ディスクドライブをコンピューターに接続するために一般的に使用されるSerial Advanced Technology Attachment(SATA)プロトコルは、帯域外データプロトコルを実装しています。

Space Data SystemsのSpace Data Link Protocolの諮問委員会は、「コマンド」フラグを使用して帯域外メカニズムを実装しています。設定すると、受信データは、宛先に渡されるテレメトリ/テレコマンド情報ではなく、データリンクレシーバーによって解釈および処理されます。

課題

一部のソースは、「帯域外データ」を、キュー内の帯域内データよりも帯域外データを優先する特性を含むものとして定義しています。これは、帯域外データメカニズムを「緊急データ」と呼ぶTCP(RFC 793)によって強化されています。ただし、優先順位付けは帯域外データの不可欠な特性でも必ずしも望ましい特性でもありません。さらに、TCP実装は、帯域外データの緊急性の処理方法によって大きく異なります。