一种嵌入式系统一种嵌入式系统UDPIP协议栈的优化设计协议栈的优化设计
提出了一种简化高效的UDPIP协议栈的优化设计方法。从嵌入式系统所要求的高速传输效率出发,优化设计了
协议栈的BUFFER管理系统、BSD接口、路由模块以及数据重组机制。从协议栈的可移植性出发,实现了
UDPIP协议栈与标准ETH驱动的挂接,以及同基于其他物理介质的虚拟ETH驱动的挂接。与VXWORKS协议栈
的性能对比结果表明,本协议栈具有高效率和低资源占有率,具有很大的实用价值。
随着网络技术的发展,集成网络外设的嵌入式系统越来越多,对于目前大多数中低端的MCU来说,若运行较大型复杂网络
1 设计原理及整体架构设计原理及整体架构
UDPIP协议栈对数据的处理过程,即对数据的发送和接收流程,主要完成对承载数据添加、剥离协议头的操作。在兼顾
UDPIP协议栈功能的基础上,为了达到高效的目的,对协议栈的数据收发流程以及所涉及的重要数据结构进行优化。
在数据发送流程,用户数据传入协议栈以及协议栈将数据递交给ETH控制器两个步骤耗时最多,尤其是大于MTU的数据。
通过优化协议栈BUFFER结构以及协议栈与ETH驱动的挂接方式,改进了这两部分的效率;对于大于MTU数据的接收,需要进
行重组,所涉及的定时机制以及重组数据的整合,是影响效率的关键所在,需对其进行重新设计。
根据优化协议栈时流程简化、功能不简化的原则,设计开发了协议栈的控制模块,以支持属性设置,参数配置以及ETH设
备的控制等功能。协议栈的整体架构如图1所示。
2 关键技术关键技术
2.1 BUFFER管理管理
在数据收发过程中,内存分配、释放、拷贝是耗时最多的部分,尽可能减少内存操作,特别是减少数据在收发流程中的内
存拷贝次数能大幅提高协议栈效率,合理的BUFFER池结构是实现高效协议栈的关键。为了配合设计流程的实现,便于协议栈
数据BUFFER、系统BUFFER管理,提高协议栈数据传输效率,协议栈实现类LINUX系统中SLAB CACHE模式管理协议栈数
据BUFFER和系统控制BUFFER。在系统初始化中分配大块内存,按照不同BUFFER SIZE建立CACHE,其拓扑结构如图2所
示。
在数据发送流程中,应用程序通过BSD接口将数据传入UDPIP协议栈后,协议栈直接将其拷贝到协议栈BUFFER,若数据
长度大于一个MTU,则分片后依次拷贝到多个协议栈BUFFER,相比于复杂协议栈,该协议栈在处理发送流程时,没有按照先
加UDP头后分片的顺序,而是先将数据分片,之后在第一分片头添加UDP头,由此省去了一次内存拷贝。用户数据传入协议
栈的示意图如图3所示。
评论0
最新资源