关注公众号

关注公众号

手机扫码查看

手机查看

喜欢作者

打赏方式

微信支付微信支付
支付宝支付支付宝支付
×

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

2020.10.26

3

  嵌入式TCP 协议的性能指标有吞吐量(throughp ut) ,即单位时间内TCP 源节点发送的字节数;延时,即源节点的应用层发出数据到目的节点应用层接收到数据的时间量。

  基于Nagle 的简化TCP 协议的吞吐率

  作为一个简单确认的TCP 协议,因为窗口始终是1 ,所以吞吐率( t hroughp ut ) 是恒定的,由于采用Nagle 算法,不再有大量小数据包产生,提高了吞吐率,提高的倍数约等于Internet 数据包最大值除以应用层产生数据包大小。比如应用层产生的数据包是10 byte ,那么吞吐率就提高了1000/ 10 = 100 倍。

  如图4 所示,接收到的数据是随着时间线性增长的,也就是说吞吐率是恒定的。最高的曲线是采用Nagle 算法的简化TCP 协议的吞吐率;最低的曲线是未采用Nagle 算法的简化TCP 协议在同样环境下的吞吐率;中间曲线为未经过简化的标准TCP 协议,因此可以从图中看出,采用Nagle 算法明显优于其他两种情况,并且大大改善了简化TCP 的吞吐率。

  基于Nagle 的简化TCP 协议的响应时间

  再看看延时的问题,Nagle 算法会立即传送最初的数据,然后再以大吞吐量发送余下的数据。这就导致,第一,吞吐率大大增加,使得传送数据更快;第二,产生的数据包数量减少,使得发生拥塞重传的机会也减少。图5 和6 中分别是标准TCP 协议的延时抖动(jit ter) 和采用Nagle 算法的TCP 协议的延时抖动。

  图6 曲线在开始的尖峰说明了在数据连接的开始Nagle 算法会立即发送接收到的小数据包,而接下来是将接收的大量的数据打成大包发送。图6曲线的平滑情况说明了延时抖动很小,适合嵌入式系统中实时数据的传输。在同样的模拟参数下,标准TCP 协议发送了大量的数据包(120 个) ,而采用Nagle 算法的简化的TCP 协议发送了不到20 个数据包。显而易见,采用Nagle 算法的简化TCP 协议在吞吐率高的同时还节省了网络的带宽。

4

5

  对该协议实用性的分析

  网络协议的实用性体现为,在恶劣的网络环境(如数据丢失) 下,可以保持连接而且能够恢复数据的传输。

  前面已经分析到,由于大大降低了网络上小数据包的数量,降低了网络带宽的需求,使得基于Nagle 算法的TCP 协议比普通TCP 协议出现阻塞的可能性大大降低。

  如果一旦网络出现阻塞,会出现数据包的丢失。TCP 的数据发送方会接收到3 个重复的确认(ACK) 信号,基于Nagle 算法的简化TCP ,同样执行标准的重发数据的工作,重新发送丢失的数据包。由于发送窗口始终是1 ,则不存在“快速恢复”问题。

  对该协议模拟的结果如图7 所示:图中横坐标是模拟时间,纵坐标是数据包的序列号。上面两条曲线是Tahoe TCP 的数据和确认,而下面两条曲线是基于Nagle 的TCP 的数据和确认。 图中Tahoe TCP在慢启动后的某个时刻,接收方收到了3 个相同的ACK确认包,表示网络出现了阻塞,而且传送相同的数据Tahoe TCP 的带宽占用比基于Nagle 的简化TCP 大多了。而基于Nagle 的简化TCP 却并未阻塞。

  由以上分析可见, 基于Nagle 算法的简化的TCP 在数据传输方面是可靠的。可以广泛的在嵌入式TCP 中使用,并且与其他TCP 算法能够完全兼容,而且能够大幅度提高网络性能,减少网络阻塞,特别是在应用层数据量比较小但数据包数量却很多的情况下能够大大改善数据的吞吐率和网络占用率,是一种非常实用的算法。WindowsTM也在其Telnet 程序中使用了Nagle 算法。

6

  基于Nagle 算法的TCP 协议由于算法简单,性能优秀,能够胜任广大的嵌入式Internet 的应用领域包括:工业控制、智能家居、智能监控、自动抄表,等等。该协议能够应用于实时性要求比较高的场合,但是如果实时性要求特别高而网络带宽富裕时则建议不采用Nagle 算法。

  结 语

  本文提出的基于Nagle 算法的简化TCP 协议,大大减轻了微处理器的运算负担和系统的存储空间,使得TCP 协议得以在普通8/ 16 位处理器上实采用了Nagle 算法,在不增加多少代码的情况下,提高了协议的吞吐率、降低了协议的带宽占用,在嵌入式应用中其吞吐率甚至高于未简化的标准TCP 协议。它的延时抖动基本是恒定的,非常适合嵌入式系统中的实时数据的传输。它发送少量的大数据包而不是大量的小数据包,从而节省了网络带宽。基于本文算法的自动抄表方案已经在浙大校园网、杭州网通、宁波网通、上海有线通等宽带网络下进行了现场测试,测试结果符合设计要求。

  该方案已经被国内多家电表生产企业所采纳,并应用于新型网络电能表的生产上,这种网络电能表可以方便地实现网络化自动集抄系统,这些系统已经应用在上海、杭州、宁波等地的电力部门中。同时,基于本文方案的新型电能表以及其技术文件已经向全国电工仪器仪表标准化技术委员会进行了推荐和报批。


推荐
热点排行
一周推荐
关闭