AF_UNIX套接字的默认协议

gct*_*gct 7 unix sockets linux networking

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

socketpair(AF_UNIX, SOCK_STREAM, 0, sfd) 
Run Code Online (Sandbox Code Playgroud)

有效的,这个:

socketpair(AF_UNIX, SOCK_STREAM, IPPROTO_TCP, sfd) 
Run Code Online (Sandbox Code Playgroud)

给出"不支持协议的错误".

ldx*_*ldx 5

由于AF_UNIX unix 套接字是本地事物,因此在这种情况下不会增加协议开销。您可以在SOCK_STREAMSOCK_DGRAM模式下使用它,分别使其成为面向连接或无连接,但仅此而已:不添加协议标头,并且它不遍历网络堆栈中的任何网络或传输协议实现。