AF_UNIX套接字的默认协议

时间:2012-06-05 17:14:01

标签: linux sockets unix networking

我很好奇AF_UNIX SOCK_STREAM套接字的默认协议是什么。我正在尝试准确追踪数据包开销应该是什么,但我无法确定默认情况下使用的协议。我怀疑它是不是 IPPROTO_TCP因为这个:

socketpair(AF_UNIX, SOCK_STREAM, 0, sfd) 

同时工作:

socketpair(AF_UNIX, SOCK_STREAM, IPPROTO_TCP, sfd) 

提供“不支持协议错误”。

3 个答案:

答案 0 :(得分:4)

AF 代表 A 地址 F amily,而 PF 代表 P rotocol F amily。

AF_UNIX 系列没有该地址系列支持的协议IPPROTO_TCP。 AF_UNIX用于UNIX®域中同一系统上进程之间的进程间通信。 AF_UNIX和AF_UNIX_CCSID地址系列支持SOCK_STREAM和SOCK_DGRAM的协议0。

在此处阅读更多内容:Sockets

答案 1 :(得分:2)

由于 AF_UNIX unix套接字是本地的,因此在这种情况下不会增加协议开销。您可以在 SOCK_STREAM SOCK_DGRAM 模式下使用它,分别使其面向连接或无连接,但这就是全部:没有添加协议头,它不会遍历任何网络或网络堆栈中的传输协议实现。

答案 2 :(得分:2)

使用AF_UNIX时唯一有效的“协议”为零。

查看socket(2)unix(7)