文档介绍:轻量级TCP/IP协议中缓冲区与内存管理技术的研究与实现
(作者:___________单位: ___________邮编: ___________)
摘要本文针对嵌入式应用的特点,提出了一种基于微操作系统内核之上的网络通信协议的实现方案,描述了该轻量级TCP/IP协议的总体架构,并重点介绍了其中的缓冲区与内存管理技术。
关键词轻量级TCP/IP;缓冲区;内存管理;
1 引言
微操作系统的通信软件是移动计算、智能传感器等嵌入式系统应用中的关键系统软件,
为了与传统的计算机网络统一组网,微操作系统中必须支持TCP/IP通信协议。然而,在微操作系统中采用传统的TCP/IP协议无疑将导致系统整体性能的下降,同时,各种移动计算设备和嵌入式系统设备在CPU、存储器、通信部件等硬件配置方面存在着很大的差异。因此,通过研究一种可裁减的轻量级TCP/IP协议并加以实现,从而支持不同的设备,满足不同应用场合的通信和组网需求,具有较强的理论意义和重要的实用价值。
针对上述情况,本文作者实现了该轻量级TCP/IP协议,本文描述了实现过程中的关键技术:缓冲区与内存管理技术。
2 轻量级TCP/IP协议简介绍
轻量级TCP/IP协议
所谓轻量级TCP/IP协议,就是关注于用尽可能小的内存消耗和尽可能小的代码量将TCP/
IP在诸如嵌入式系统等资源极其受限的系统上加以实现,以支持资源受限的计算设备与传统计算机网络的互联互通。它具有紧凑、轻便、模块化、高效、可裁减和可移植等特性。
轻量级TCP/IP协议的组成及设计方案
为了有效利用资源并提高效率,本文基于传统的TCP/IP结构,提出了一种轻量级的TCP/IP实现方案,体系结构如图1
轻量级TCP/IP协议和标准的TCP/IP协议相比,在协议组成、协议实现算法上做了较大的简化,但它具有最基本的功能。
图1 轻量级TCP/IP协议栈的体系结构图
轻量级TCP/IP协议的实现包括如下模块:
ARP协议:实现了ARP请求和ARP应答协议。
IP协议:实现了IP最基本的功能,包括,发送、接收、转发。不支持IP选项功能。由于嵌入式系统生成的数据较小,能够直接通过网络传输,因此不需要将输出数据报进行分片;但有可能接收到分片的数据报,因此要对输入数据报片重组,以保证与传统计算机网络的通信。
ICMP协议:主要用来传递差错报文以及其他需要注意的信息。只实现了ICMP中类型号为0,代码号为0的Ping应答协议。
TCP协议:实现了RFC793中相应的功能,包括三次握手建立连接,连接的撤消,各种状态之间的转换,超时重传,RTT估算,快速恢复和快速转发。
UDP协议:用来提供不面向连接的、尽最大努力传输的数据流传输服务。
通用接口层:该层把所有与硬件、OS、编译器相关的部分独立出来。重点是对OS进行了封装,形成了对上层软件的统一接口。当TCP/IP需要系统调用时,并不直接调用OS提供的函数,而是使用该层的接口。因此,实现的轻量级TCP/IP协议可以方便的移植。
缓冲区和内存管理:实现了一种能适应数据动态增删,但在逻辑上又呈连续性的数据结构,能够满足在各协议之间传递数据而又不需要内存拷贝。这种链状数据结构,主要用来存放数据包。有如下特色:
1) 方便的在数据的头部增加空间与