Linux下TCP窗口调优
原创
©著作权归作者所有:来自51CTO博客作者FJCA的原创作品,请联系作者获取转载授权,否则将追究法律责任
随着网络带宽的增加,更多数据可以容纳到管道中,并且随着管道变得越来越长,确认收到数据需要更长的时间。这种关系称为带宽时延乘积(BDP)。
计算公式:
BDP(位)=带宽(位/秒)*RTT(秒)
计算得出的BDP用作TCP窗口大小优化的建议。
linux修改内核参数更改TCP窗口大小
linux中TCP窗口大小受到以下参数影响:
net.core.rmem_max
#为所有类型的连接设置最大OS接收缓冲区大小
net.core.wmem_max
#为所有类型的连接设置最大OS发数缓冲区大小
net.ipv4.tcp_rmem
#三个值:
#可以为TCP套接字分配的最小接收缓冲区大小
#默认接收缓冲区大小
#可以为TCP套接字分配的最大接收缓冲区大小
net.ipv4.tcp_wmem
#三个值:
#单个TCP套接字分配的最小发送缓冲区大小
#单个TCP套接字默认发送缓冲区大小
#可以为TCP套接字分配的最大发送缓冲区大小
前两个参数会影响直接控制TCP窗口大小的应用的最大TCP窗口大小,方法是将应用的请求限制为不超过这些值。
后两个参数会影响linux自动调整运行的应用的TCP窗口大小。
另外一个就是TCP Window Scaling 窗口缩放因子
net.ipv4.tcp.window_scaling
#设置为1表示启用,需要建立tcp连接的双方都开启才有效。
https://www.dandelioncloud.cn/article/details/1465347335952883713