Linux 我可以为单个应用程序禁用TCP窗口扩展吗?
在Linux中,应用程序能否启用或禁用应用程序创建的TCP/IP连接?与使用Linux 我可以为单个应用程序禁用TCP窗口扩展吗?,linux,sockets,tcp,network-programming,Linux,Sockets,Tcp,Network Programming,在Linux中,应用程序能否启用或禁用应用程序创建的TCP/IP连接?与使用net.ipv4.tcp\u window\u scaling参数通过sysctl进行系统范围的修改相反。不,您不能。套接字根本没有每进程API,只有每套接字API和全局内核配置 但不需要直接修改比例设置。您只需在连接之前设置所需的套接字接收缓冲区大小。然后在连接握手期间协商适当的窗口比例。如果你想缩放窗口!连接之前,请确保套接字接收缓冲区小于64k。对于已接受的套接字,这是在侦听套接字上设置的。对不起,这不是我需要的。
net.ipv4.tcp\u window\u scaling
参数通过sysctl
进行系统范围的修改相反。不,您不能。套接字根本没有每进程API,只有每套接字API和全局内核配置
但不需要直接修改比例设置。您只需在连接之前设置所需的套接字接收缓冲区大小。然后在连接握手期间协商适当的窗口比例。如果你想缩放窗口!连接之前,请确保套接字接收缓冲区小于64k。对于已接受的套接字,这是在侦听套接字上设置的。对不起,这不是我需要的。正如我的问题明确指出的那样,我需要直接修改比例设置。“正如我的问题明确指出的那样”-大多数人实际上问错了问题。提出你的问题。为什么?窗口缩放只是套接字接收缓冲区大小的函数。这里的目的是什么?我需要连接到一个TCP窗口扩展实现已损坏的设备。我想建议“用损坏的堆栈修复设备”会很烦人。@MartinJames:那太好了,不是吗?:)因此,您只需确保不会公布>64k的接收缓冲区。