基于Nagle算法的嵌入式TCP协议

时间:2012-04-05来源:网络

简化TCP 协议的性能分析

这种简化的TCP 协议的性能可以通过在NS-2

网络模拟器中进行模拟实现。

通常在嵌入式的环境中,应用层产生的数据包是很小的,经常是每个包只有几个、十几、几十个字节的数据,这样就产生了一个问题: TCP 协议的报头开销太大。假设数据仅有一个字节,而TCP 的包头有40 个字节,这样的数据报对底层网络的利用率仅仅只有1/ 41 ,考虑到分组之间的间隙和网络硬件组成帧还需要一些比特,实际的网络利用率更低。 嵌入式系统的这种常见的小的数据包造成了网络带宽的极大浪费。除了网络利用率不高之外,还有另外一个问题是产生TCP 数据包数量极多,网关和路由器会由于这些极大数量的小数据包而发生阻塞。

组块技术与其不足

通过以上分析,很自然的想到采用组块技术(clumping) 把一定数量的数据包组成一个帧,这样既能减小报头开销,又能减小TCP 数据包的数量,而且代码量增加很少。但是,这样组包会产生一个问题,TCP 在数据帧未达到一定大小之前不会传输数据,这样产生的延时会影响到数据的实时传输。因此,有必要对怎样避免这种延时进行研究。

Nagle 算法的由来

在因特网发展初期,由于bbs 和新闻组的流行,网络上充斥着大量的telnet 产生的小的数据包,数量极大的这些数据包使得路由器和网关发生了严重的阻塞现象,这和嵌入式系统中的情形类似。JoneNagle 提出了一种算法来对付这种棘手的小数据包问题,后来被称为Nagle 算法。

Nagle 算法与简单的组包( clumping) 技术不同,它和慢启动一样使用自计时( self clocking) 、用确认的到达来触发其余数据的传输。因此它没有引入额外的延时,而且能有效地减少网络上小数据包的流量。

1 2 3 4

关键词: 因特网 传输控制协议 Nagle算法

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版