论文部分内容阅读
嵌入式通讯协议是嵌入式设备与外界交流的“语言”,随着嵌入式应用的不断深入,嵌入式设备在我们生活的各个角落发挥着越来越重要的作用,嵌入式通讯协议的内容也越来越丰富,其中最富代表性的就是嵌入式TCP/IP协议栈。 本文针对嵌入式系统资源匮乏、处理能力差的特点,对TCP/IP协议栈进行了简化和改造,利用构件化的思想,对底层驱动和操作系统相关函数进行了专门的构件化,有效提高了协议栈的可移植性;对应用层协议的构件化,提高了协议的可配置性,并大大减少了协议栈每个应用的体积。 在TCP/IP协议栈的开发过程中,本文充分考虑了嵌入式系统的特点,在不违背协议标准的基础上,尽量对协议栈进行了简化,并对非核心协议进行构件化处理,减少了每个应用的体积。另外协议栈增加了PPPOE协议,可以方便家庭用户的互联网接入。 在应用层协议的开发中,本文根据实际需要,开发了基于UDP协议的TX_TFTP协议以及基于TCP的简单的HTTP客户端。利用“UDP打洞技术”,成功实现了嵌入式设备的点对点连接。 嵌入式系统的TCP应用具有数据包小但数量多、实时性要求高的特点,因此很容易导致网络拥塞。针对这个特点,本文实现了用于TCP拥塞控制的Nagle算法并对其进行改进,有效的避免了大量小数据包的不必要传送,提高了TCP的拥塞控制能力。本文提出的Nagle改进算法避免了Nagle算法和TCP的延迟确认策略间的交互引起的暂时性“死锁”现象,使Nagle算法适用范围得以扩展。 本文最后搭建了专门的测试平台,首先测试了TCP接收端拥塞控制效果,通过下载速度以及Sniffer监控得到帧的总数的对比,比较直观的反映了滑动窗口大小对TCP协议性能的影响;在同一个平台上,通过对无Nagle算法、传统Nagle算法以及改进Nagle算法的对比测试,有力地证明了Nagle算法在嵌入式应用中有必不可少的作用,并直观地反映出传统Nagle算法地缺点以及改进Nagle算法在这个方面的改进;最后,测试了构件化对协议栈性能的影响,得出不能一味追求构件化的结论,对协议栈的构件化改造有指导意义。