原文:TCP系列29—窗口管理&流控—3、Nagle算法

一 Nagle算法概述 之前我们介绍过,有一些交互式应用会传递大量的小包 称呼为tinygrams ,这些小包的负载可能只有几个bytes,但是TCP和IP的基本头就有 bytes,如果大量传递这种小包,会严重降低网络利用率,还可能造成网络拥塞。福特公司就曾经遇到过这种问题,John Nagle提出了一种通过ACK报文控制TCP发包的方法解决了这种问题,这种方法也就以Nagle名字命名,称为Nag ...

2016-11-07 14:03 0 1824 推荐指数:

查看详情

TCP系列31—窗口管理&—5、TCP与滑窗

一、TCP 之前我们介绍过TCP是基于窗口的流量控制,在TCP的发送端会维持一个发送窗口,我们假设发送窗口的大小为N比特,网络环回时延为RTT,那么在网络状况良好没有发生拥塞的情况下,发送端每个RTT就可以发送N比特的数据,发送端的速率应该与N/RTT成正比,因此通过改变发送 ...

Mon Nov 07 22:05:00 CST 2016 0 2647
TCP系列32—窗口管理&—6、TCP zero windows和persist timer

一、简介 我们之前介绍过,TCP报文中的window size表示发出这个报文的一端准备多少bytes的数据,当TCP的一端一直接收数据,但是应用层没有及时读取的话,数据一直在TCP模块中缓存,最终受限于接收缓存的大小,window size会变为0,此时我们称呼这个接收窗口为零窗 ...

Mon Nov 07 22:05:00 CST 2016 3 7985
TCP系列28—窗口管理&—2、延迟ACK(Delayed Acknowledgments)

一、简介 之前的内容中我们多次提到延迟ACK(Delayed Ack),延迟ACK是在RFC1122协议中定义的,协议指出,一个TCP实现应该实现延迟ACK,但是ACK不能被过度延迟,协议给出延迟ACK的最大时间为0.5s。如果发送端连续发送最大的数据报文,那么没两个数据报文就需要回复一次ACK ...

Mon Nov 07 22:02:00 CST 2016 0 2213
TCPNagle算法&&延迟ACK

1. Nagle算法: 是为了减少广域网的小分组数目,从而减小网络拥塞的出现; 该算法要求一个tcp连接上最多只能有一个未被确认的未完成的小分组,在该分组ack到达之前不能发送其他的小分组,tcp需要收集这些少量的分组,并在ack到来时以一个分组的方式发送出去;其中小分组的定义是小于MSS ...

Thu Sep 27 07:33:00 CST 2018 0 3447
TCPNagle算法&&延迟ACK

1. Nagle算法: 是为了减少广域网的小分组数目,从而减小网络拥塞的出现; 该算法要求一个tcp连接上最多只能有一个未被确认的未完成的小分组,在该分组ack到达之前不能发送其他的小分组,tcp需要收集这些少量的分组,并在ack到来时以一个分组的方式发送出去;其中小分组的定义是小于MSS ...

Fri Apr 08 07:34:00 CST 2016 0 17720
TCP确认延时和Nagle算法

TCP确认延时和Nagle算法 nagle 算法是 发送端 收到前一个报文的确认然后再发送下一个tcp数据。这样可以避免大量的小数据。 TCP_NODELAY选项控制。 Delay ACK是 接收端 在等待超时(还有其他发送ack确认的时机) 然后才发送ACK给客户端。 CORK算法 ...

Tue Sep 13 22:57:00 CST 2016 0 2923
TCPNagle算法&&延迟ACK

糊涂窗口综合症和Nagle算法   TCP/IP详解系列,关于tcp拥塞控制和数据的地方讲的不细致,或许是涉及概念/算法太多,作者略去了一些对初学者来说比较陌生的细节吧。比如SWS未说明是什么就开始介绍其避免方法,还和nagle扯在了一起,直觉告诉我 ...

Mon Jul 30 22:11:00 CST 2018 0 850
糊涂窗口综合症和Nagle算法

  TCP/IP详解系列,关于tcp拥塞控制和数据的地方讲的不细致,或许是涉及概念/算法太多,作者略去了一些对初学者来说比较陌生的细节吧。比如SWS未说明是什么就开始介绍其避免方法,还和nagle扯在了一起,直觉告诉我二者一定有猫腻,边搜索一下,果然很有收获。今天贴在这里,分享 ...

Fri Sep 21 03:12:00 CST 2012 2 6755
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM