论文部分内容阅读
嵌入式系统对实时性要求比较高,并且它的网络应用逐渐增多,因此,提高嵌入式系统实时通信的能力就显得非常重要。Linux是开源的操作系统,它的内核可以根据用户的需求自由定制,这就为嵌入式系统的移植和改造提供了良好的平台,所以本文的系统平台选择Linux操作系统。 对于实时性要求比较高的嵌入式应用领域,传统TCP/IP协议栈的实时性能并不能令人满意,它把大量的精力花在保证数据传送的可靠性以及数据流量控制等细节上,使得代码量大、实时性低,并不适合在嵌入式系统中使用。本文在全面分析现有TCP/IP协议栈的基础上,结合嵌入式系统资源有限、实时性要求较高、规模可定制的特点,在不违反现有协议标准的原则下,对协议栈的基本数据结构进行了修改,提出一个适用于嵌入式领域的轻型TCP/IP协议栈。重点讨论了IP、ICMP、UDP和TCP模块的设计和实现,并探讨了协议栈的设计模式;减少数据拷贝次数;优化缓冲区、内存管理;以及增加操作系统与协议栈的接口层等几个在设计阶段需要着重考虑的问题。 为了在通信量较大时仍能保证嵌入式系统具有良好的实时通信能力,必须解决嵌入式系统通信中的拥塞控制问题,但是传统的拥塞控制算法并不能完全满足嵌入式通信系统的实时性需求。因此本文从动态调节缓冲区大小和基于二维表的数据包调度两方面给出了嵌入式系统TCP拥塞控制改进算法。动态缓冲区调节是指根据处于连接状态的TCP连接中小连接的数量为各缓冲区重新分配内存;基于二维表的数据包调度是在综合考虑数据包大小和紧迫度的基础上,以数据包的大小和紧迫度建立二维坐标系,根据数据包在坐标系中的位置确定其优先级,使体积小、紧迫度高的数据包优先被调度。 然后搭建了一个实验测试平台,并通过两个实验方案测试改进后的嵌入式系统实时通信性能,对协议栈移植前后得出的两组测试数据进行了分析,并得出结论:通过对协议栈的改造以及嵌入式TCP拥塞控制算法的改进,嵌入式系统的实时通信能力得到有效提高。 最后,在总结全文的基础上,本文提出了若干今后有待进一步深入研究和探讨的问题,并对今后的研究工作提出了一些建议。