摘 要 本文针对嵌入式研究一种可裁减的轻量级TCP/IP协议并加以实现,从而支持不同的设备,满足不同应用场合的通信和组网需求,具有较强的理论意义和重要的实用价值。
针对上述情况,本文作者实现了该轻量级TCP/IP协议,本文描述了实现过程中的关键技术:缓冲区与内存管理技术。
2 轻量级TCP/IP协议简介绍
2.1 轻量级TCP/IP协议
所谓轻量级TCP/IP协议,就是关注于用尽可能小的内存消耗和尽可能小的代码量将TCP/
IP在诸如嵌入式系统等资源极其受限的系统上加以实现,以支持资源受限的计算设备与传统计算机网络的互联互通。它具有紧凑、轻便、模块化、高效、可裁减和可移植等特性。
2.2 轻量级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) 方便的在数据的头部增加空间与删除数据,用于处理包头;
2) 可以通过指针来避免真实的拷贝来拷贝包;
3) 可以不拷贝而将多个包形成一个包或将一个包分割成多个包。
针对嵌入式应用的特点,对该数据结构的内存管理采用静态内存管理研究和实现,将从根本上满足这些现实的需求,因此将会有很好的应用前景。
参考文献:
[1] Gary R.Wright W.Richard Stevents TCP/IP详解,卷1:协议,范建华等译.机械工业出版社,2000
[2] Gary R.Wright W.Richard Stevents TCP/IP详解, 卷2:实现,陆雪莹,蒋慧等译.机械工业出版社,2000
[3] Douglas E.Comer,David L.Stevens 用TCP/IP进行网际互连 第一卷:原理,协议和体系结构.林瑶等译.
电子工业出版社,1998
[4] Douglas E.Comer,David L.Stevens 用TCP/IP进行网际互连 第一卷:设计,实现和内部组成.王海等译.电子工业出版社,1998
[5] RFC文档
[8] 王新建, 姚丹霖 ,江国庆. 微操作系统中轻量级TCP/IP协议的研究与实现 ,《网络新技术与应用年会论文集》.电子工业出版社,2005
转贴于 范文论文吧 http://www.fwlw8.com