TCP/IP基础——纳格算法

上一篇 / 下一篇  2017-03-07 10:01:33 / 个人分类:TCP/IP

格算法是以减少封包传送量来增进TCP/IP网络的效能。 它是由约翰.纳格任职于Ford Aerospace时命名。

纳格的文件,Congestion Control in IP/TCP Internetworks (RFC896) 描述了他所谓的“小封包问题”-某个应用程式不断地送出小单位的资料,且某些常只占1字节大小。 因为TCP封包具有40字节的标头资讯(TCP与IPv4各占20字节),这导致了41字节大小的封包只有1字节的可用资讯,造成庞大的浪费。 这种状况常常发生于Telnet工作阶段-大部分的键盘操作会产生1字节的资料并马上送出。 更糟的是,在慢速的网络连线下,这类的封包会大量地在同一时点传输,造成壅塞碰撞(Congestion Collapse)。

纳格算法的工作方式是合并(coalescing)一定数量的输出资料后一次送出。特别的是,只要有已送出的封包尚未确认,传送者会持续缓冲封包,直到累积一定数量的资料才送出。

 

Nagle算法非常简单,但它能解决问题。这个算法是为发送端的TCP用的:

 

1. 发送端的TCP将它从发送应用程序收到的第一块数据发送出去,哪怕只有一个字节。

 

2. 在发送第一个报文段(即报文段1)以后,发送端的TCP就在输出缓存中积累数据,并等待:或者接收端的TCP发送出一个确认,或者数据已积累到可以装成一个最大的报文段。在这个时候,发送端的TCP就可以发送这个报文段。

 

3. 对剩下的传输,重复步骤2。这就是:如果收到了对报文段x的确认,或者数据已积累到可以装成一个最大的报文段,那么就发送下一个报文段(x + 1)。

 

Nagle算法的优点就是简单,并且它考虑到应用程序产生数据的速率,以及网络运输数据的速率。若应用程序比网络更快,则报文段就更大(最大报文段)。若应用程序比网络慢,则报文段就较小(小于最大报文段)。

TAG: 格算法

gb123的个人空间 引用 删除 gb123   /   2017-03-08 08:36:24
5
 

评分:0

我来说两句

我的栏目

日历

« 2024-04-26  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 139272
  • 日志数: 63
  • 建立时间: 2016-03-09
  • 更新时间: 2017-06-06

RSS订阅

Open Toolbar