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