tcp流控
主要配置:
net.ipv4.tcp_rmem = 8192 87380 16777216 :面向单个连接,依次为:min,defalut,max
net.ipv4.tcp_wmem = 8192 65536 16777216
net.ipv4.tcp_mem = 8388608 12582912 16777216:面向整体连接,依次为:min,defalut,max
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_moderate_rcvbuf = 1:根据连接数的多少,自动调节每个tcp连接的内存
net.ipv4.tcp_adv_win_scale = 2:接收窗口在接收缓存的占比
SO_SNDBUF/SO_RCVBUF:只对设置的连接起作用,而且要受制于以上的min/max
接收窗口的初始值
socket创建时的初始化:tcp_init_sock
tcp连接建立时的初始化:tcp_fixup_rcvbuf,tcp_select_initial_window
接收窗口的动态调整
数据拷贝到应用层:tcp_rcv_space_adjust
发送窗口动态调整
收到ACK后:tcp_new_space