Unix®ドメインソケットとは
Unix®ドメインソケットは、Unix®オペレーティングシステム(OS)内の特殊なソケットタイプで、アプリケーション間でデータを転送します。 通常他のシステムに接続する他のソケットとは異なり、Unix®ドメインソケットはプロセス間通信(IPC)ソケットです。つまり、ユーザーのコンピューター上の他のプログラムにのみ接続します。 構造的には、ドメインソケットは、ソケットではなく名前付きパイプに似ていますが、パイプには含まれていない機能がいくつかあります。 ドメインソケットの使用は安全です。これは、他のネットワークがデータストリームをスパイできず、ソケットが機能するためにネットワークさえ必要としないためです。
各OSのソケットは、双方向のフローで1つのプログラムから別のプログラムにバイトをストリーミングするために使用されます。つまり、データが送信されている間、他のデータが受信されます。 Unix®ドメインソケットの場合ではありません。 これらの特別なソケットは、Unix®ファイルシステムから外部ネットワークではなく別のプログラムにデータをプッシュするために使用されます。
Unix®ドメインソケットは多くのソケット関連のタスクと機能を共有しますが、名前付きパイプに似ています。 名前付きパイプは、コンピューターが1つのセクションから別のセクションにデータをストリーミングする方法です。 Unix®ドメインソケットに名前があるように、パイプに名前が付けられているため、名前付きパイプと呼ばれます。Unix®ファイルシステム自体が名前として機能します。 これら2つの主な違いは、パイプはバイトストリームシーケンスのみを提供し、データは送信時に読み取られるのに対して、ドメインソケットはバイトストリームとデータグラムを提供し、情報はパケットとして読み取られることです。 バイトストリームはセキュリティの点で優れていますが、データグラムは連続メッセージを送信するシステムに適しています。
Unix®ドメインソケットは、外部ネットワークと統合するためのものではありませんが、1人または複数の人がコンピューターを使用しているかどうかにかかわらず、ローカルネットワークに多くの便利な機能を提供します。 他のタイプのソケットの代わりにUnix®ドメインソケットを使用することにより、ユーザーが手動で入力しなくても、プログラムは認証または許可を取得できます。 ドメインソケットはUnix®システムのルールも引き継ぎます。これは、異なるユーザーに異なるアクセスレベルが与えられている場合に役立ちます。これらのルールはシステムに書き込むことができ、注意されるためです。
Unix®ドメインソケットは、他のソケットやパイプよりも安全です。 ドメインソケットは、信頼されていないネットワークがデータストリームをリッスンすることを許可せず、リモートコンピューターはアクセスなしでストリームに接続できません。 すべての認証およびログイン情報はUnix®ドメインにあるため、ユーザーはサーバーにログインするためにパスワードやユーザー名を入力する必要はありません。 つまり、キーストロークをリッスンするプログラムはこの情報を取得しません。