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)
给出"不支持协议的错误".
由于AF_UNIX unix 套接字是本地事物,因此在这种情况下不会增加协议开销。您可以在SOCK_STREAM或SOCK_DGRAM模式下使用它,分别使其成为面向连接或无连接,但仅此而已:不添加协议标头,并且它不遍历网络堆栈中的任何网络或传输协议实现。