随着网络带宽的增加,更多数据可以容纳到管道中,并且随着管道变得越来越长,确认收到数据需要更长的时间。这种关系称为带宽时延乘积(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​