Unixドメイン ソケット( UDS )、ローカル ソケット、またはプロセス間通信( IPC )ソケットは、同じUnixまたはUnix ライクなオペレーティング システム で実行されているプロセス間でデータを交換するための通信エンドポイントです。
Unixドメインソケットという名称は、ソケットシステムリソースを作成する関数に渡されるdomain引数値を指します。同じ通信ドメインは、によっても選択されます。[1]AF_UNIXAF_LOCAL
typeUDSの有効な引数値は次のとおりです: [1]
SOCK_STREAM( TCPと比較) – ストリーム指向ソケットの場合SOCK_DGRAM( UDPと比較) - メッセージ境界を保持するデータグラム指向ソケット(ほとんどのUNIX実装と同様に、UNIXドメインデータグラムソケットは常に信頼性が高く、データグラムの順序を変更しません)SOCK_SEQPACKET( SCTPと比較) - 接続指向で、メッセージの境界を維持し、メッセージが送信された順序で配信されるシーケンスパケットソケット用UDS 機能は、POSIX オペレーティング システムの標準コンポーネントです。
UDSのAPIはインターネットソケットのAPIに似ていますが、基盤となるネットワークプロトコルを使用するのではなく、すべての通信はオペレーティングシステムカーネル内で行われます。UDSはファイルシステムをアドレス名前空間として使用する場合があります。Linuxなどの一部のオペレーティングシステムでは、追加の名前空間が提供されています。プロセスはUDSをファイルシステムのinodeとして参照するため、2つのプロセスが同じソケットを開くことで通信できます。
プロセスは、データの送信に加えて、UDS接続を介してシステムコールとシステムコールを使用してファイル記述子を送信できます。これにより、送信プロセスは受信プロセスに対し、受信プロセスが通常はアクセスできないファイル記述子へのアクセスを許可することができます。[2] [3]これは、基本的な機能ベースセキュリティを実装するために使用できます。[4]sendmsg()recvmsg()