TCP交互过程(小包的响应性)

(保留版权,欢迎转载。请保留出处,注明原始链接!谢谢。)

TCP小包传输——在保证响应和避免拥塞之间的权衡。


1。经受时延的ACK:

原理:端点收到数据包,并不立刻回ACK,直到有数据包发送或定时器超时再捎带上ACK。

应用:TCP小包传输的一般方法。【总是独立于Nagle和其他算法存在,LInux实现是200ms。】


2。Nagle算法:

原理:在TCP连接上,仅允许有一个未被确认和未完成的数据包;在端点上,搜集将要发送的多个数据包,直到ACK到达时或拼接的数据包足够大时一起发出。【例外情况:当对端发出多个包时(如1个ACK和1个数据包),端点可针对性的发出两个包。】

应用:在慢速广域网上,避免大量小包引起拥塞,降低网络开销。

禁止:当要传输的多个连续小包有组合意义时,如X Windows的功能键,Nagle算法会造成明显的响应延迟。【具体原因:接收方对收到的单个小包无法解析并生成响应,只好继续等待后续数据包,而发送方却仍等待已发数据包的ACK,结果方相互停等,直至任何经受时延的ACK触发,才破解死锁状态。】(TCP_NODELAY套接口选项)


3。CORK算法:

与Nagle相似,都会拼包;不同之处:Nagle算法见ACK来就发新数据包,而Cork则可持续缓存拼接未来的新数据包。(当然经受时延的ACK仍然起作用。当计时器超时,拼

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值