基于嵌入式TCP/IP软件体系结构的优化设计与实现(06-100)

网络与存储   作者:北京邮电大学 电信工程学院 廖日坤 纪越峰 时间:2008-04-03来源:电子产品世界

  另外,TCP/IP一般采用C语言或者混合汇编,而使用可重入函数和一般指针(generic pointer)使得程序代码增大,运行速度变慢。所以使用函数指针时,应手动重建调用树(Call tree),或将函数指针调用的函数设置为可重入函数,同时使用“指定存储类型”的指针(memory-specific pointer),防止数据包的不必要的拷贝以及优化计算校验和和内存拷贝函数。另外,Reentrant类型的函数比一般函数速度要慢很多,但是某些时候为了程序结构的需要必须使用Reentrant,这就需要在速度和结构之间作一个选择。

  嵌入式TCP/IP的实现

  TCP/IP的嵌入式实现一般通过以软件方式嵌入到ROM中,然后通过轻网络通讯技术与专用嵌入式网关连接,在嵌入式处理器中运行TCP/IP协议,提供TCP/IP到用户的轻型网络的连接和路由功能。

  内存管理方法和无多余数据包拷贝的实现

  嵌入式TCP/IP的内存管理可以用链表方法,即根据数据包大小分配相应大小的内存块。如图4所示,链表将内存块链接起来,used字段表示该内存块是否正在使用,pSstart和pEend则表示数据部分有效数据的开始地址和结束地址。

  分配时,搜索内存链表找到一个没有分配的比所需空间大的内存块,截取所需的大小。该内存块被截取以后可能还有较多剩余,这时将剩余部分从原内存块中分离出来,成为一个新的内存块,并插入链表。释放时,将used值置为假,如果pNext或者pPre指向的链表单元也是空闲的,则将其和自己合并,以防止内存分片。在协议层之间传送数据包只需传送内存块的起始地址。这种内存管理方法空间浪费小但是运算量相对较大。

1 2 3 4 5 6 7

关键词: 网络 TCP/IP Internet

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版