Nagle算法
发布时间
阅读量:
阅读量
Nagle算法原理与应用
为避免网络拥塞现象的发生,1984年Nagle算法应运而生。该算法被设计用于TCP协议层,具有结构简洁的特点。是否启用该算法将导致如图所示的不同结果。

Nagle算法:“唯有接收到前一数据的ACK确认信号后,Nagle算法才会触发后续数据的发送”
TCP套接字在默认配置下启用Nagle算法进行数据交互,该机制通过最大程度地累积数据至缓冲区,直至接收到ACK确认信号。如图左侧所示,即为这一过程的体现。当需要发送字符串"Nagle"时,该字符串会被传输至输出缓冲区。此时,由于首字符"N"之前并无其他待发送的数据(亦无待接收的ACK信号),因此会立即执行发送操作。随后进入等待状态,等待字符"N"对应的ACK确认信息。在此等待期间,“agle”部分将被依次填充至输出缓冲区中。当接收到字符"N"的ACK信号后,“agle”这部分内容将被打包并发送出去。由此可知,传输一个字符串总共需要4个数据包。
接下来分析未启用Nagle算法时发送字符串"Nagle"的情形。假设字符从"N"到"e"依次被写入输出缓冲区,在这种情况下,无论是否接收到ACK确认信息,
全部评论 (0)
还没有任何评论哟~
