7

AF_UNIX SOCK_STREAM ソケットのデフォルトのプロトコルが何か知りたいです。パケットのオーバーヘッドがどうあるべきかを正確に追跡しようとしていますが、デフォルトでどのプロトコルが使用されているかわかりません。これは IPPROTO_TCPではないと思われます。

socketpair(AF_UNIX, SOCK_STREAM, 0, sfd) 

これは次の場合に機能します。

socketpair(AF_UNIX, SOCK_STREAM, IPPROTO_TCP, sfd) 

「プロトコルがサポートされていません」というエラーが表示されます。

4

3 に答える 3

4

AF_UNIX unix ソケットはローカルのものであるため、この場合、プロトコルのオーバーヘッドが追加されることはありません。SOCK_STREAMモードまたはSOCK_DGRAMモードで使用して、それぞれコネクション指向またはコネクションレスにすることができますが、それだけです。プロトコル ヘッダーは追加されず、ネットワーク スタック内のネットワークまたはトランスポート プロトコルの実装を通過しません。

于 2012-06-05T17:37:09.943 に答える
4

AFA address Familyを表し、PFProtocol Familyを表します。

AF_UNIXファミリには、そのアドレス ファミリでサポートされるプロトコル IPPROTO_TCP がありません。AF_UNIX は、UNIX® ドメイン内の同じシステム上のプロセス間のプロセス間通信用です。AF_UNIX および AF_UNIX_CCSID アドレス ファミリは、SOCK_STREAM と SOCK_DGRAM の両方でプロトコル 0 をサポートします。

詳細はこちら:ソケット

于 2012-06-05T17:56:42.497 に答える
2

AF_UNIXを使用する場合の唯一の有効な「プロトコル」はゼロです。

socket(2)unix(7)を見てください

于 2012-06-05T17:42:07.767 に答える