TCP—Nagle算法
来源:互联网 发布:除湿机哪个牌子好 知乎 编辑:程序博客网 时间:2024/06/05 14:11
面试被问到这个,这里总结下:
在tcp建立连接发送数据时有可能产生小分组(称为微小分组),不如每次发送一个字节,会产生41字节的分组,20字节的IP首部,20字节的tcp首部和一个字节的数据.在局域网上出现这些小分组一般不会出现问题,因为局域网一般不会出现网络拥塞.但是在广域网上,这些小分组很可能会增加拥塞出现的可能.这时就需要Nagle算法,
该算法要求一个tcp连接上最多只能有一个未被确认的未完成的小分组,在该分组的确认到达之前不能发送其他的小分组.相反,tcp收集这些少量的分组,并在确认到来时以一个分组的方式发出去.
该算法的优越之处在于它是自适应的:确认到达得越快,数据也就发送得越快.伪代码如下所示:
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 else send data immediately end if end ifend if但是有的时候我们需要关闭Nagle算法,一个典型的例子就是X窗口系统服务器:小消息必须无时延地发送,以便为进行某种操作的交互用户提供实时反馈.
0 0
- TCP—Nagle算法
- TCP—Nagle算法
- TCP中的Nagle算法
- tcp的Nagle算法
- TCP Nagle算法详解
- TCP中的Nagle算法
- TCP Nagle算法详解
- TCP中的Nagle算法
- TCP中的Nagle算法
- TCP-IP详解:Nagle算法
- TCP的Nagle算法介绍
- TCP交换数据流——Nagle算法简单记录
- Nagle算法--TCP缓冲区管理算法
- TCP/IP延迟确认和Nagle算法
- TCP协议学习之 nagle算法
- Nagle算法(TCP 通信设置)
- TCP/IP详解--nagle算法和TCP_NODELAY
- TCP之Nagle算法&&延迟ACK
- JavaScript方法总结
- ABAP 向上取整和向下取整 CEIL & FLOOR
- 郑州轻工业学院第八届玲珑杯校赛题解
- C++位运算符及逻辑运算符
- android 关于Bitmap对象于内存管理
- TCP—Nagle算法
- 图片缓存 - SDWebImage
- Android 中利用WebViewJavascriptBridge 实现js和java的交互
- Web前端初步——札记0
- ”Android资源文件匹配“调研
- 画虚线
- zlib剖析(三)
- MySQL中LIKE子句与排序
- Android Training - 管理应用的内存