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()
参照
- ネットワークソケット – ネットワーク通信のソフトウェアベースのエンドポイント
- Berkeleyソケット – プロセス間通信API
- パイプライン(Unix) – メッセージパッシングを使用したプロセス間通信のメカニズム
- Netlink – プロセス間のプロセス間通信のためのLinuxカーネルインターフェース
参考文献
- ^ a b「Linuxプログラマーズ・マニュアル(unix - ローカルプロセス間通信用ソケット)」。2018年4月30日。 2019年2月22日閲覧。
- ^ 「「Postfix Discussions」メーリングリストのアーカイブ」 。2000年9月30日。2013年5月18日時点のオリジナルよりアーカイブ。2014年9月29日閲覧。
- ^ 「Linux manページ - cmsg(3): 補助データへのアクセス」2018年10月9日閲覧。
- ^ "「Linux および Unix 向けセキュアプログラミング HOWTO」、セクション 3.4「ソケットとネットワーク接続」「 .dwheeler.com . David A. Wheeler. 2004年8月22日. 2014年9月29日閲覧.
外部リンク
- – システムインタフェースリファレンス、The Single UNIX 仕様、バージョン5、The Open Group
- – システムインタフェースリファレンス、The Single UNIX 仕様、バージョン5、The Open Group
- – システムインタフェースリファレンス、The Single UNIX 仕様、バージョン5、The Open Group
- – システムインタフェースリファレンス、The Single UNIX 仕様、バージョン5、The Open Group
- – Linuxプログラマーズマニュアル– Manned.org のライブラリ関数
- ucspi-unix、UNIXドメインソケットクライアントサーバーコマンドラインツール
- Unixソケットとインターネットソケット
- Unix ソケット - Beej の Unix IPC ガイド