Nagle's algorithm

    

    Nagle算法是以他的发明人John Nagle的名字命名的,它用于自动链接许多的小缓冲器消息;这一过程(称为nagling)经过减小必须发送包的个数来增长网络软件系统的效率。Nagle算法于1984年定义为福特航空和通讯公司IP/TCP拥塞控制方法,这是福特经营的最先的专用TCP/IP 网络减小拥塞控制,从那之后这一方法获得了普遍应用。Nagle的文档里定义了处理他所谓的小包问题的方法,这种问题指的是应用程序一次产生一字节数据, 这样会致使网络因为太多的包而过载(一个常见的状况是发送端的"愚蠢窗口综合症")。从键盘输入的一个字符,占用一个字节,可能在传输上形成41字节的 包,其中包括1字节的有用信息和40字节的标题数据。这种状况转变成了4000%的消耗,这样的状况对于轻负载的网络来讲仍是能够接受的,可是重负载的福 特网络就受不了了,它没有必要在通过节点和网关的时候重发,致使包丢失和妨碍传输速度。吞吐量可能会妨碍甚至在必定程度上会致使链接失败。Nagle的算 法一般会在TCP程 序里添加两行代码,在未确认数据发送的时候让发送器把数据送到缓存里。任何数据随后继续直到获得明显的数据确认或者直到攒到了必定数量的数据了再发包。尽 管Nagle的算法解决的问题只是局限于福特网络,然而一样的问题也可能出如今ARPANet。这种方法在包括因特网在内的整个网络里获得了推广,成为了 默认的执行方式,尽管在高互动环境下有些时候是没必要要的,例如在客户/服务器情形下。在这种状况下,nagling能够经过使用TCP_NODELAY 插座选项关闭。 算法

相关文章
相关标签/搜索