新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于Nagle算法的嵌入式TCP协议

基于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) 、用确认的到达来触发其余数据的传输。因此它没有引入额外的延时,而且能有效地减少网络上小数据包的流量。



评论


相关推荐

技术专区

关闭