当前位置:主页 > 管理论文 > 移动网络论文 >

轻量级TCP/IP协议栈机制分析与优化

发布时间:2021-01-31 00:27
  轻量级TCP/IP协议栈(Lw IP)主要应用于资源受限的嵌入式设备。为满足嵌入式设备对实时性的要求,分析Lw IP的内部机制,对其进行性能瓶颈分析,并根据分析结果设计、实施Lw IP的实时性和优先级管理优化方案。Lw IP的主要性能瓶颈是内存拷贝和校验过程,据此给出优化后的内存拷贝算法和校验算法。为满足紧急数据对更高优先级的要求,给出Lw IP协议栈优先级管理机制,能够确保高优先级标记的紧急数据包优先传输于普通数据包。实验结果表明,该优化方法可以显著提高Lw IP的实时性能。 

【文章来源】:计算机工程. 2015,41(02)北大核心

【文章页数】:5 页

【部分图文】:

轻量级TCP/IP协议栈机制分析与优化


TCP协议数据发送流程

占用时间,结果分析,函数


第41卷第2期袁中书,陆阳:轻量级TCP/IP协议栈机制分析与优化图2各函数占用时间3.4结果分析在发送数据过程中,进行了2次内存拷贝:函数tcp_enqueue()调用MEMCPY()(默认采用C库memcpy()函数实现)将应用程序数据拷贝到LwIP协议栈缓冲区;函数low_level_output()调用memcpy()将pbuf中的数据拷贝到发送缓冲区。2次内存拷贝耗时百分比分别为20%和16%,占总时间的36%。可见,内存拷贝是制约LwIP协议栈实时性性能的瓶颈之一。函数ethernet_send()调用驱动程序将发送缓冲区中的数据写入Tx队列,进而完成物理层的数据发送,其性能取决于驱动程序的效率以及网络控制器的硬件性能。API_EVENT通过信号量机制唤醒LwIP协议栈进程,占总时间的20%,其性能取决于操作系统对信号量机制的实现方式。函数inet_chksum_pseudo()负责TCP包头字段的校验;inet_chksum()负责IP报文头字段的校验。2次校验过程占总时间的11%,其效率与其本身算法实现方式以及CPU运算速度相关。函数netconn_connect()负责与服务端建立连接,占总时间的5%,邮箱操作占总时间的4%,其余代码的执行占总时间的12%。4优化方法4.1内存拷贝算法优化根据特定的体系架构,使用相应的汇编指令可以有效优化内存拷贝算法。本文的LwIP协议栈运行于ARM体系架构下的嵌入式Linux平台。ARM指令集中LDM(批量加载)和STM(批量存储)指令可以实现在一组寄存器和一块连续的内存单元之间传送数据[19]。使用LDM/STM指令传送内存数据对访问的目标内存地址以及数据长度有限制,目标内存地址必须按字对齐,数据长度必须是一次传送字节数的整数倍。缓冲区内存地址通常都是按字对齐的,而数据长度则因应用而异。当数据长度不是LDM/STM一次传送字节数的整数倍时,可以先使用LDM/STM指

流程图,汇编指令,流程,数据长度


栈运行于ARM体系架构下的嵌入式Linux平台。ARM指令集中LDM(批量加载)和STM(批量存储)指令可以实现在一组寄存器和一块连续的内存单元之间传送数据[19]。使用LDM/STM指令传送内存数据对访问的目标内存地址以及数据长度有限制,目标内存地址必须按字对齐,数据长度必须是一次传送字节数的整数倍。缓冲区内存地址通常都是按字对齐的,而数据长度则因应用而异。当数据长度不是LDM/STM一次传送字节数的整数倍时,可以先使用LDM/STM指令进行块数据传送,多余的字节使用LDRB/STRB指令传送。程序流程如图3所示。图3ARM汇编指令内存拷贝流程算法主要代码如下:算法ARM汇编指令内存拷贝算法_start:LDRR0,=src;R0=源地址LDRR1,=dst;R1=目的地址MOVR2,#len;R2=数据长度ADDR3,R1,R2;R3=结束传送地址MOVSR4,R2,LSR#4;R4=块传送次数BEQbyte_cpySTMFDSP!,{R5-R8};保存寄存器R5-R8block_cpy:LDMIAR0!,{R5-R8}STMIAR1!,{R5-R8}SUBSR4,R4,#1BNEblock_cpyLDMFDSP!,{R5-R8};恢复寄存器R5-R8byte_cpy:LDRBR4,[R0],#1STRBR4,[R1],#1CMPR1,R3BNEbyte_cpy4.2校验算法优化在LwIP中,校验函数inet_chksum_pseudo()与inet_chksum()都是通过循环调用LwIP协议栈内置校验函数LwIP_standard_chksum()实现的。LwIP_standard_chksum()有3种不同的实现方式,可以通过对宏LwIP_CHKSUM_ALGORITHM定义不同的值来选择合适的校验算法。3种校验算法复杂度依次降低,校验强度也依次减弱。LwIP默认选择第1种校验算法。该算法计算每个字节的校验和,校验强度高,但比较耗时。基于协319

【参考文献】:
期刊论文
[1]基于ARM11的嵌入式视频采集系统设计[J]. 许刚.  测控技术. 2013(12)
[2]网络化预测控制系统的设计、分析与实时实现(英文)[J]. 刘国平,孙键,赵云波.  自动化学报. 2013(11)
[3]嵌入式软件性能分析方法研究与工具设计[J]. 张惠臻,王超,陈雁.  计算机应用与软件. 2013(10)
[4]一种ZigBee-TCP/IP无缝网关模型[J]. 王建平,周辰飞,朱程辉,徐晓冰.  合肥工业大学学报(自然科学版). 2013(09)
[5]移动机器人网络的嵌入式Web系统设计[J]. 孙鹤旭,邵岩,邢关生,刘宁,田双娜.  计算机工程. 2013(09)
[6]基于μC/OS-Ⅲ的LwIP协议栈的移植与实现[J]. 韩德强,杨淇善,王宗侠,高雪园.  电子技术应用. 2013(05)
[7]嵌入式TCP/IP协议LwIP的内存管理机制研究[J]. 蔡雄飞,王新华,郭淑琴.  杭州电子科技大学学报. 2012(04)
[8]Lwip协议栈在嵌入式Linux下的移植与实现[J]. 张洁,傅明.  微计算机信息. 2011(04)
[9]基于Gprof的函数调用顺序研究[J]. 孙晓颖,曾文艺.  微计算机信息. 2010(36)
[10]轻量级协议栈LWIP的分析与改进[J]. 张齐,劳炽元.  计算机工程与设计. 2010(10)

硕士论文
[1]数字机顶盒以太网接入的设计与实现[D]. 汤维维.武汉理工大学 2008
[2]基于μC/OS-Ⅱ网络模块的扩展及任务调度算法的研究[D]. 陈华兵.武汉理工大学 2007
[3]嵌入式TCP/IP协议栈的设计与实现[D]. 周海瑞.西北工业大学 2007



本文编号:3009865

资料下载
论文发表

本文链接:https://www.wllwen.com/guanlilunwen/ydhl/3009865.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户db76a***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com