Unixドメインソケット

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

UnixドメインソケットまたはIPCソケットプロセス間通信ソケット)は同じホストオペレーティングシステムで実行されているプロセス間でデータを交換するためのデータ通信エンドポイントです。また、アドレスファミリによっても参照されますAF_UNIXUNIXドメインで有効なソケットタイプは次のとおりです。[1]

  • SOCK_STREAM( TCPと比較してください)–ストリーム指向のソケットの場合
  • SOCK_DGRAM( UDPと比較してください)–メッセージ境界を保持するデータグラム指向のソケットの場合(ほとんどのUNIX実装と同様に、UNIXドメインのデータグラムソケットは常に信頼性が高く、データグラムを並べ替えません)
  • SOCK_SEQPACKET( SCTPと比較してください)–コネクション型で、メッセージ境界を保持し、送信された順序でメッセージを配信するシーケンスパケットソケットの場合

Unixドメインソケット機能は、POSIX オペレーティングシステムの標準コンポーネントです。

UnixドメインソケットのAPIは、インターネットソケットのAPIと似ていますが、基盤となるネットワークプロトコルを使用するのではなく、すべての通信が完全にオペレーティングシステムカーネル内で行われます。Unixドメインソケットは、アドレス名前空間としてファイルシステムを使用する場合があります。(Linuxなどの一部のオペレーティングシステムは、追加の名前空間を提供します。)プロセスはUnixドメインソケットをファイルシステムのiノードとして参照するため、2つのプロセスが同じソケットを開くことで通信できます。

データの送信に加えて、プロセスは、およびシステムコールを使用してUnixドメインソケット接続を介してファイル記述子を送信する場合があります。これにより、送信プロセスは、受信プロセスが他の方法ではアクセスできないファイル記述子へのアクセスを受信プロセスに許可できます。[2] [3]これは、基本的な形式の機能ベースのセキュリティを実装するために使用できます[4]たとえば、これにより、Clam AntiVirusスキャナーをLinuxおよびBSDで非特権デーモンとして実行しながら、デーモンのUnixドメインソケットに送信されたファイルを読み取ることができます。 sendmsg()recvmsg()

も参照してください

参照

  1. ^ 「Linuxプログラマーズマニュアル(unix-ローカルプロセス間通信用のソケット)」2018年4月30日2019年2月22日取得
  2. ^ 「「PostfixDiscussions」メーリングリストのアーカイブ」2000年9月30日。2013年5月18日のオリジナルからアーカイブ2014年9月29日取得
  3. ^ 「Linuxのマニュアルページ-cmsg(3):補助データにアクセスする」2018年10月9日取得
  4. ^ "「LinuxおよびUnixの安全なプログラミングHOWTO」、セクション3.4「ソケットとネットワーク接続」" 。dwheeler.com。DavidA.Wheeler2004年8月22日。 2014年9月29日取得

外部リンク