网络--- Nagle算法理解

TCP的组包大小控制,默认使用Nagle算法,即协议栈发送队列积压数据超过阀值MSS或收到一个ack确认后,才会发送下一包数据。

伪代码逻辑:
if there is new data to send
  if the window size >= MSS and available data is >= MSS
    send complete MSS segment now
  else
    if there is unconfirmed data still in the pipe
      enqueue data in the buffer until an acknowledge is received(timeout 40ms)
    else
      send data immediately
    end if
  end if
end if
小包数据发送场景(telnet登录),则需要开启TCP_NODELAY模式,不论数据多小,立即发送tcp包;

TCP协议栈默认开启nagles算法,减少延时发送小包;

大量数据发送场景(如文件传输),则需要开启TCP_CORK模式,尽量以最大包MTU发送数据,0.6~0.8s没有组成一个MTU大包,则直接发送数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值