26
在Linux中,可以指定系统的默认接收缓冲区大小网络数据包,说UDP,使用以下命令:指定UDP在运行时的接收缓冲区大小在Linux中
sysctl -w net.core.rmem_max=<value>
sysctl -w net.core.rmem_default=<value>
但我不知道,是否有可能对于应用程序(例如,在c
),通过在运行时指定每个UDP套接字的接收缓冲区大小来覆盖系统的默认值?
正是我想要的:) 我也想知道,如果我指定缓冲区大小为一个小值,它会是静态的吗?或者系统会动态调整缓冲区的大小来处理流量压力(如果有的话)? – 2010-01-19 04:12:16
我已经扩大了我的回答,提到Linux TCP自动调整;在Linux上,如果启用自动调整,则可能不应使用'setsockopt'调整缓冲区大小;但在其他系统上,您可能仍然想要。 – 2010-01-19 15:52:50
autotuning仅适用于TCP,还是适用于TCP和UDP? – kumar 2010-06-29 14:27:44