nagle算法和延迟ACK
nagle算法主要是避免发送小的数据包,要求TCP连接最多只能有一个未被确认的小分组,在该分组的确认到达之前不能发送其他的小分组,由于发送小分组时,包头会占很大的比重,所以会使TCP得传输效率降低。
延迟ACK:对于对等方数据的ACK确认,将由本端下次传输数据时随着数据一起携带过去,也是称捎带。但有一个超时时间,当超时时间过了以后,还有本端还是没有数据传输过去,则将ACK单独发送过去。其主要目的也是为了提高TCP传输效率。
但是nagle算法遇上延迟ACK时,这就变的有趣了。发送端利用nagle算法发送一个数据包,在某些情况下接受端要回复消息给发送端,这时由于接收端没有回复ACK消息,所以发送端也不会继续发送消息。当接收的延迟ACK超时之后才会回复发送端ACK,这时候发送端才会开始继续发送数据,这会传输速率降低,因为每次都延迟ACK的超时时间。故这时发送端应该禁掉nagle算法。
发送端的应用程序每次调用send函数拷贝一个小包到发送缓冲区,这需要用到系统调用,会进行上下文切换,这本身也会耗费资源,发送端应用程序如果可行,应该先将数据在应用程序进行累积,然后更少调用send函数,减少资源的耗费。
参考资料:高级TCP/IP编程
nagle算法和延迟ACK相关推荐
- 计算机网络之Nagle算法与延迟确认
文章目录 计算机网络之Nagle算法与延迟确认 1.Nagle算法 2.延迟确认 计算机网络之Nagle算法与延迟确认 1.Nagle算法 如果发送方疯狂地向接收方发送很小的数据包,比如一次就发送 1 ...
- Nagle算法和延迟确认
TCP/IP协议中,无论发送多少数据,总是要在数据前面加上协议头,同时,对方接收到数据,也需要发送ACK表示确认.为了尽可能的利用网络带宽,TCP总是希望尽可能的发送足够大的数据.(一个连接会设置MS ...
- Nagle算法延时确认
数据流分类 成块数据 交互数据 Rlogin需要远程系统(服务器)回显我们(客户)键入的字符 数据字节和数据字节的回显都需要对方确认 rlogin 每次只发送一个字节到服务器,而Telnet 可以 ...
- 再次谈谈TCP的Nagle算法与TCP_CORK选项
事件回放 使用OpenVPN传输虚拟桌面流量,终端上有明显逐帧刷屏现象,网络环境为百兆局域网. 分析 1.首先将OpenVPN改为TCP模式,因为局域网环境下TCP和UDP差别不大,不会引起重传叠加问 ...
- TCP Nagle算法简述
TCP/IP协议中,无论发送多少数据,总是要在数据前面加上协议头,同时,对方接收到数据,也需要发送ACK表示确认.为了尽可能的利用网络带宽,TCP总是希望尽可能的发送足够大的数据.(一个连接会设置MS ...
- 糊涂窗口综合症和Nagle算法
本篇文章转载自:http://www.cnblogs.com/zhaoyl/archive/2012/09/20/2695799.html,用于记录自己对于TCP网络中糊涂窗口综合症和Nagle算法的 ...
- TCP之Nagle算法延迟ACK
1. Nagle算法: 是为了减少广域网的小分组数目,从而减小网络拥塞的出现: 该算法要求一个tcp连接上最多只能有一个未被确认的未完成的小分组,在该分组ack到达之前不能发送其他的小分组,tcp需要 ...
- TCP-IP详解:Nagle算法
参考书籍:TCP/IP详解,卷1:协议 Small Packet Problem 在使用一些协议通讯的时候,比如Telnet,会有一个字节字节的发送的情景,每次发送一个字节的有用数据,就会产生41个字 ...
- 网络编程中Nagle算法和Delayed ACK的测试(转)
Nagle算法的立意是良好的,避免网络中充塞小封包,提高网络的利用率.但是当Nagle算法遇到delayed ACK悲剧就发生了.Delayed ACK的本意也是为了提高TCP性能,跟应答数据捎带上A ...
最新文章
- 在HTML网页中巧用URL
- 学习笔记Hadoop(四)—— Hadoop集群的安装与部署(1)—— 虚拟机安装、java安装
- 经典C语言程序100例之二三
- react中规范类型接口的使用
- Redis和Memcache区别
- Spring: 读取 .properties 文件地址,json转java对象,el使用java类方法相关 (十三)
- MyBatis(3):SQL映射
- outlook常见错误分析指南
- CF-1099 D. Sum in the tree
- LED —— 发光二极管
- 32核心板怎么样使用stlink_终极调试工具 EventRecorder 使用方法,各种 Link 通吃
- php对接海康视频教程_手把手教你php对接海康api
- seo关键词布局,网页头部优化(TDK),网站优化(古志强网络营销师)
- python中element什么意思_什么是Python中等效的’nth_element’函数?
- 计算机数据网络延迟,影响网络速度的两个重要因素:网络带宽和网络延迟!
- Shiro的简单入门(一)
- Android 之网络
- 安卓机适合用的手机浏览器,可下载视频可锁屏
- wifi 小程序 透传_微信小程序之一键连接wifi
- java 地图控件_控件交互-与地图交互-开发指南-Android 地图SDK | 高德地图API