如何在MAC OS X中获得最大的TCP接收/发送窗口?

8
如何在MAC OS X中获取最大TCP接收/发送窗口?
Linux中有两个ctl。 /proc/sys/net/core/rmem_max-最大TCP接收窗口(NET_CORE_RMEM_MAX) /proc/sys/net/core/wmem_max-最大TCP发送窗口(NET_CORE_WMEM_MAX)
但我找不到如何在MAC OS中获取这些参数。
有人知道吗?
我在MAC OS X中找到了以下ctls: net.inet.tcp.recvspace,net.inet.tcp.sendspace,kern.ipc.maxsockbuf
看起来recvspace+sendspace不能大于maxsockbuf。 我在这里阅读过它: http://www.macgeekery.com/tips/configuration/mac_os_x_network_tuning_guide_revisited
2个回答

2

我不确定以下是否是正确的,但可以尝试使用 sysctl -n net.inet.tcp.recvspacesysctl -n net.inet.tcp.sendspace 命令进行查询。你可以使用 sysctl -w 命令进行设置(参见 man sysctl)。请注意保留 HTML 标签。


1
这些控制器(net.inet.tcp.recvspace,net.inet.tcp.sendspace)为我提供了当前的TCP发送和接收缓冲区大小。我需要知道recvspace和sendspace的最大值。唯一的想法是:kern.ipc.maxsockbuf。 - Vlad
IPC 是 InterProcessCommunication 的缩写,所以我怀疑这不是它。 - DarkDust
实际上,套接字 API 是 IPC 工具之一。我不确定 kern.ipc.maxsockbuf。我在上面提到的文章中读到了它。我应该运行一些测试。 - Vlad

1

正如OP所提到的:recvspace+sendspace < maxsockbuf

maxsockbufkern.ipc.nmbclusters 的限制,nmbclusters*2KB/16=maxsockbuf

sysctl -a | egrep nmbcl\|maxsockb
kern.ipc.maxsockbuf: 8388608
kern.ipc.nmbclusters: 65536

为了增加 maxsockbuf,需要通过 ncl boot arg 告诉系统使用超过默认值的 mbufclusters(在编辑 boot-args 之前需要禁用 SIP)。
nvram boot-args="ncl=131072"
shutdown -r now

引用来自这里


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接