アウト・オブ・バンド・データ

アウト・オブ・バンド (OOB) データは、 コネクション型 (ストリーム) ソケットにのみ意味のあるユーザー固有のデータです。

ストリーム・データは、一般に送信された順序で受信されます。OOB データはストリーム内の位置に関係なく (および送信時の順序に関係なく) 受信されます。 これが可能なのは、データがプログラム A からプログラム B に送信される場合、 プログラム B にデータの到着を通知するようにマーク付けられているためです。

OOB データは、AF_INET (SOCK_STREAM) と AF_INET6 (SOCK_STREAM) でしかサポートされていません。

OOB データは、send()sendto()、および sendmsg() API で MSG_OOB フラグを指定することにより送信されます。

OOB データの伝送は通常のデータの伝送と同じです。 バッファーに入れたデータの後に送信されます。 つまり、OOB データがバッファーに入れられるデータよりも優先されることはなく、 データは送信順に伝送されます。

受信側の環境はやや複雑になっています。