碧波液压网 欢迎你,游客。 登录 注册

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

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  随着嵌入式系统的发展,在嵌入式系统中实现网络连接已成为研究热点,广泛使用的廉价8/ 16 位嵌入式处理器的性能不足与网络协议的复杂构成了尖锐的矛盾。 嵌入式Internet 技术的核心是在嵌入式系统中实现TCP/ IP 协议簇, TCP 协议的机制比较复杂,对8/ 16 位嵌入式处理器的存储能力和运算能力要求较高,必须进行简化。

  本文提出了一种适用于8/ 16 位低速处理器的简化TCP 协议。对其性能进行分析发现,在嵌入式网络大量使用小数据包,造成网络带宽利用率低下并且容易造成网络阻塞。 因此在简化的TCP 协议中引入Nagle 算法,大幅度减少了嵌入式网络中发送的小数据包个数,提高了吞吐率,并减少了所需的带宽。

  简化TCP 协议的提出

  TCP 协议的数据传输分为3 个阶段: 建立连接、传输数据和断开连接,可以用状态机 来实现。8/ 16 位嵌入式微控制器要完整实现这样复杂的状态机是十分困难的。在嵌入式系统中简化TCP 的实现已有相关的研究,本文进一步引入了Nagle 算法并且进行了网络模拟,给出了实验结果。

  连接建立和断开机制

  TCP 建立连接有两种方式:主动打开和被动打开。如果实现服务器端应用,可以将TCP 状态机的主动打开连接部分简化掉。同理客户端应用,可以将状态机的被动打开连接部分简化掉。断开连接也有两种方式:主动断开和被动断开。其中被动断开连接的处理较为简单。但为了保证安全性,希望主动断开连接。主动断开连接简化实现的方法是:发送一个Fin 数据报,在接收到对Fin 数据报的确认后,再发送一个Reset 数据报,就可完成主动断开连接。

  以服务器端的TCP 连接为例,简化后的TCP状态机如图1。

  单TCP 连接

  在8/ 16 位微控制器上实现简化TCP 协议,无需实现多个TCP 连接,只需实现单个TCP 连接即可。

  简单确认机制

  嵌入式系统发送数据包不大,可以将TCP 协议的滑动窗口机制去掉,成为简单确认机制,只对单个数据报而不是批量数据发送确认。实现方法是设置TCP 头部windows 字段的大小为1 ,即可保证TCP协议双方都使用简单确认。

  仅计算发送TCP 报文的校验和

  由于TCP 协议校验和的计算对系统存储和计算资源的占用都比较多,可以省去对接收数据报校验和的计算,保留发送数据报TCP 校验和的计算。

  简化TCP 方案小结

  在上述4 个方面的基础上,在嵌入式处理器中实现了简化的TCP 协议,程序流程如图2。其中“不同状态的相应处理”指根据接收到的TCP 报文准备待发送数据报并将其发送到以太网上。

  简化TCP 协议的性能分析

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论