在TCP/IP协议中,无论发送多少数据,总是要在数据前面加上协议头,同时,对方接收到数据,也需要发送ACK表示确认。为了尽可能的利用网络带宽,TCP总是希望尽可能的发送足够大的数据。这里就涉及到一个名为Nagle的算法,该算法的目的就是为了尽可能发送大块数据,避免网络中充斥着许多小数据块。 TCP_ ...
分类:
其他好文 时间:
2016-09-09 00:34:28
阅读次数:
305
用于自动连接许多的小缓冲器消息;这一过程(称为nagling)通过减少必须发送包的个数来增加网络软件系统的效率优 点
减少拥塞控制用 于
自动连接许多的小缓冲器消息简介Nagle算法是以他的发明人John Nagle的名字命名的,它用于自动连接许多的小缓冲器消息;这一过程(称为nagling)通过减少必须发送包的个数来增加网络软件系统的效率。Nagle算法于1984年定义为福特航空和...
分类:
编程语言 时间:
2016-06-29 01:12:44
阅读次数:
248
1. 为什么要调整输出块大小 首先在RTMP_Connect0函数中LibRTMP是关闭了Nagle算法这个TCP选项的,为了实时性这样做是好的,但是要注意到LibRTMP的结构体RTMP的成员是有m_outChunkSize,并且在RTMP_Init函数中被初始化了默认值128,然后整个LibRT ...
分类:
其他好文 时间:
2016-05-13 12:46:16
阅读次数:
184
1. Nagle算法: 是为了减少广域网的小分组数目,从而减小网络拥塞的出现; 该算法要求一个tcp连接上最多只能有一个未被确认的未完成的小分组,在该分组ack到达之前不能发送其他的小分组,tcp需要收集这些少量的分组,并在ack到来时以一个分组的方式发送出去;其中小分组的定义是小于MSS的任何分组 ...
分类:
编程语言 时间:
2016-04-08 00:53:14
阅读次数:
183
1、Delayed Acknowledgements:TCP通常不会在收到数据之后立即返回一个ACK,而是会有一个延时,希望能ACK报文段中带上一些数据,通常这个延时为200ms2、Nagle Algorithm:在TCP连接中,只能有一个小的报文段未被确认。即TCP在发送了一个小的报文段之后,会将...
分类:
其他好文 时间:
2015-10-25 22:02:21
阅读次数:
213
【TCP_NODELAY】 TCP_NODELAY和TCP_CORK基本上控制了包的“Nagle化”,这里我们主要讲TCP_NODELAY.Nagle化在这里的含义是采用Nagle算法把较小的包组装为更大的帧。JohnNagle是Nagle算法的发明人,后者就是用他的名字来命名的,他在1984年.....
分类:
其他好文 时间:
2015-10-11 06:45:35
阅读次数:
121
当网站服务器并发连接达到一定程度时,你可能需要考虑服务器系统中tcp协议设置对http服务器的影响。 tcp相关延时主要包括: 1、tcp连接时建立握手; 2、tcp慢启动拥塞控制; 3、数据聚集的Nagle算法; 4、用于捎带确认的tcp延迟确认算法; 5、TI...
分类:
Web程序 时间:
2015-09-28 13:08:16
阅读次数:
379
一、TCP粘包 1. 什么时候考虑粘包 ? 如果利用tcp每次发送数据,就与对方建立连接,然后双方发送完一段数据后,就关闭连接,这样就不会出现粘包问题(因为只有一种包结构,类似于http协议,UDP不会出现粘包现象)。...
分类:
编程语言 时间:
2015-09-15 00:22:56
阅读次数:
206
说说tcp_nodelay的原理: TCP_NODELAY和TCP_CORK基本上控制了包的“Nagle化”,这里我们主要讲TCP_NODELAY.Nagle化在这里的含义是采用Nagle算法把较小的包组装为更大的帧。JohnNagle是Nagle算法的发明人,后者就是用他的名字来命名的,他在198...
分类:
其他好文 时间:
2015-07-23 23:08:55
阅读次数:
192
一句话总结:tcp_nodelay:禁止nagle算法,有需要发送的就立即发送,比较常见tcp_cork:它是一种加强的nagle算法,过程和nagle算法类似,都是累计数据然后发送。但它没有 nagle中1的限制,所以,在设置cork后,即使所有ack都已经收到,但我还是不想发送数据,我还想继续等...
分类:
其他好文 时间:
2015-07-23 15:31:38
阅读次数:
97