Unix域套接字(AF_UNIX)中数据报队列长度的默认大小是多少?它是可配置的吗?

use*_*348 5 c unix sockets datagram linux-kernel

我知道可以使用"cat/proc/sys/net/unix/max_dgram_qlen"找到数据报队列长度的最大长度.

我想知道如何找到启动时设置的默认值(例如发送缓冲区大小的/ proc/sys/net/core/wmem_default).

是否可以增加max_dgram_qlen的值?同样的上限是多少?

我的内核版本是2.6.27.7.我是Unix Domain Socket编程(AF_UNIX)的新手.

在此先感谢任何意见/解决方案!

Luc*_*iva 5

之前的答案/评论未能理解OP正在讨论数据报(max_dram_qlen)中的最大队列长度而不是字节.操作系统提供两种设置的设置.

您可以max_dgram_qlen使用以下命令进行设置:

sysctl net.unix.max_dgram_qlen=128
Run Code Online (Sandbox Code Playgroud)

您可能需要运行,sudo您可能还需要max_dgram_qlen=128根据您的shell 放置双引号.

另外,请参阅通过域套接字传输的单个数据包大小的实际限制是什么?.


Max*_*kin 1

人unix(7):

SO_SNDBUF 套接字选项确实对 UNIX 域套接字有影响,但 SO_RCVBUF 选项则没有。对于数据报套接字,SO_SNDBUF 值对传出数据报的大小施加上限。此限制计算为双倍(请参阅套接字(7))选项值减去用于开销的 32 字节。