一种嵌入式TCPIP协议的设计与实现_第1页
一种嵌入式TCPIP协议的设计与实现_第2页
一种嵌入式TCPIP协议的设计与实现_第3页
一种嵌入式TCPIP协议的设计与实现_第4页
一种嵌入式TCPIP协议的设计与实现_第5页
全文预览已结束

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一种嵌入式TCP/IP协议的设计与实现发布日期:2007-05-30作者:娄 莉 刘天时 来源:微计算机信息摘 要:本文提出了基于ARM的嵌入式TCP/IP协议在低速处理器中的一种设计方案。并对TCP/IP协议族实现过程中的关键技术进行了分析,通过一个分布式网络监控系统的实际运行,证明该协议族已达到预期的性能。 关键词:TCP/IP协议族,嵌入式, 裁剪, ARM 1 引言目前,嵌入式系统已经渗透到日常生活的各个方面,在工业、服务业、消费电子等领域的应用范围不断扩大。因此,嵌入式设备的联网势在必行。但是,由于嵌入式系统资源有限,传统的Internet技术和设备无法

2、直接应用。这种趋势促使嵌入式设备必须实现Internet网络化1。然而,将嵌入式系统与Internet结合起来的主要困难在于,Internet的各种通信协议对于计算机存储器、运算速度等的要求比较高,而嵌入式系统中大量存在的是8位和16位MCU,支持标准TCP/IP协议族的实现将占用大量系统资源2,因此,为了使其实时性提高同时保证可靠性又节省系统资源,需要对协议进行有针对性的模块化裁剪,在单片机上嵌入TCP/IP协议族的一个子集。2  TCP/IP协议族总体框架的裁剪策略为了实现在分布式网络监控系统中作为前端监控设备(编码器、解码器、视频服务器等)的应用要求,必须在有限的硬件资源中保证

3、数据传输的可靠性和实时性。考虑到实时监控系统中数据传输量并不大,而可靠性要求较高,因此该工业控制系统的传输层采用TCP协议,考虑到通用性、兼容性和通信的可靠程度,没有使用在应用层加入控制策略,运输层使用简单UDP协议的方案。TCP是面向连接的、端对端的可靠通信协议3,它采用许多机制来保证可靠传输,而该系统中本地数据的流动要实现向应用程序提供可靠的数据,与底层以太网驱动程序交互数据报的功能,因此,协议族系统结构设计框架如图1所示,其中socket子层、运输层的TCP协议、网络层的IP和ICMP协议、ARP协议是本系统需要设计并实现的部分。图1 协议族系统框架2.1 socket子层的实现网络的S

4、ocket(插口)数据传输是一种特殊的I/O,Socket也是一种文件描述符4。它具有一个类似于打开文件的函数调用;Socket()函数能够返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。该系统中Socket子层向上层提供了创建一个socket描述符,将本地的IP地址与端口号绑定到一个socket上,实现TCP连接的建立、断开,数据的接收与发送的功能。2.2 TCP协议的实现TCP协议数据传输可分为三个阶段:连接建立、数据传输和连接断开 5。它的实现过程可以用状态机来描述。建立连接有两种方法,即主动打开和被动打开。服务器端是一种被动打开,它一直在侦

5、听连接请求;而客户端是一种主动打开,它发送连接请求以建立连接。研究发现,如果TCP层的上层实现服务器端的应用,可以将标准TCP状态机建立连接过程中的客户端建立连接的状态机部分简化掉。同理,如果应用是基于客户端的,可以将服务器端建立连接的状态机部分简化掉。断开连接有两种方式:一是主动断开连接;另一是被动断开连接。被动断开连接的处理较为简单,而标准TCP协议的主动断开连接的状态机部分过于复杂。经过实验发现,在需要主动断开的时候,发送一个FIN数据报,接收到对FIN数据报的确认后,再发送一个Reset数据报,即可完成一次主动断开连接。标准的TCP协议使用慢启动和滑动窗口机制。滑动窗口是一种在流量控制

6、和网络传输效率之间进行折中的方案,它允许发送方在等待一个确认之前发送多个窗口,其确认是一种批量的确认。但是由于系统中网络传感器传输数据量很小,因此没有必要消耗大量的存储空间实现滑动窗口机制换取对流量和拥塞的控制。因此通过研究滑动窗口协议发现,如果采用停等协议,即滑动窗口只使用单个窗口的极限情况,发送方每发送一个分组,都等待确认;收到确认后再发送下一个分组,那么就变成了一种简单确认的处理方法,使用该方法后,所有的处理只是对单个数据报的发送和确认,节约了系统资源,也使维护更方便,这样做既能够保证传输的可靠,在数据量不大的情况下,传输的实时性也不会有明显的折扣。更重要的是,化解了流量和拥塞问题。当然

7、,如果只使用一个窗口,还要求对方也使用简单的确认机制。因为如果对方使用较大的窗口,就可能造成处理器被淹没。这可以通过设置TCP头部Windows字段来通知对方自己的接收缓冲区大小,避免对方连续发送大量数据造成接收缓冲区溢出来实现。在上述基础上简化实现TCP协议的流程图如图2所示。图2  简化的TCP协议流程图  2.3 IP协议的实现IP协议是网络层协议,是TCP/IP协议的基础,它可以为不同网络的主机之间发送数据报的操作序列提供无连接的服务。通过在数据报前添加IP协议头,使每个数据报具有寻址能力。标准IP协议的流程是,系统在接收IP数据包后,检验IP头

8、部的版本、目的地址、校验和是否正确,解析出协议类型字段,由此交给相应的高层协议处理;发送IP数据报时,将缓冲区的源地址与目的地址互换,设置校验和,然后交给下层协议处理。IP包的最大容量为65KB,可以分段传输,而在嵌入式系统里由于无法容纳如此大的数据包,因此一般不支持分段传输5。嵌入式系统只把IP作为传输工具,必须对其简化以完成主要操作。本系统中,接收时首先要检查数据报的正确性,其次过滤目的地址不是本机的报文;如果收到被IP分段的数据报立即丢弃。最后判断协议交给TCP或ICMP协议处理。因为禁止IP层分段可以提高通信的效率和可靠性,根据以太网最大传输单元(MTU)的限制,socket子层控制了

9、用户每次传输分组的最大字节数。同样,服务器端也对IP分段加以限制,使IP无需把有限的系统资源消耗在IP报文重装上,从而减少了程序的复杂度。2.4 其它协议的实现     ARP协议为32位IP地址到对应48位以太网地址之间提供动态映射。嵌入式系统中仅响应ARP请求,发送ARP应答包。请求者广播出包含ARP请求的以太帧和目的以太网地址为全1的广播地址。本机收到后,由目的IP地址发现自己是目的主机,发送一个ARP回答。ARP报文分为请求和应答两种报文,通过这两种报文实现ARP缓存的更新。ARP高速缓存在它的运行过程中非常关键。由于微控制器硬件资源限制ARP高

10、速缓存只定义了8组,因此查找采用线性搜索的方法对最终性能并没有影响。缓存只包含IP地址、MAC地址、标志位、写入时间4项,这样既可以实现ARP协议又可以节省硬件资源。     ICMP提供主机或路由器报告差错或提供查询信息的服务,它通过IP协议传输其报文,IP协议是无连接的,它无法将报文和错误信息传到最初的主机,而由ICMP将状态信息和错误信息发送到发报文的主机。ICMP报文可以分成两类:查询和差错。查询报文是用一对请求和回答定义的。差错报文通常包含了引起错误的IP数据报的第一个分片的IP首部,以及该分片数据部分的前8个字节。由于运输层仅仅使用TCP协议,ICMP

11、也进行了裁剪。协议支持ping命令请求回显应答,用于检查协议族的运行状况;差错控制全部交给运输层TCP协议处理。3  协议族定时器的实现在TCP/IP协议中多处用到超时和重发机制。这种机制对于确保两个或多个彼此独立的通信节点从故障状态自动恢复到正常状态是非常有效的,但也增加了软件的复杂性6。因为对超时的处理通常独立于正常程序流程,也就是与正常程序流程异步。这使得协议族定时器的设计难度增加。本系统中,TCP/IP协议软件为实现当前连接建立了如下五个定时器:连接建立定时器,重传定时器,延迟ACK定时器,FIN_WAIT定时器和TIME_WAIT定时器。 根据它们在ARP高速缓存维护、AR

12、P请求返回响应时间的判定、IP组装收到分片时间的管理以及TCP等待接收方对数据段确认时间的判定中的要求,需要定时器具备以下特点:第一,不把超时处理放在时钟中断处理程序中进行,稍滞后一些来处理定时器超时;第二,对同一类超时处理可以由同一处理程序完成,只是将传入到相应的处理程序中的参数设置不同而已。例如一个ARP高速缓存中的表项超时时,需要将其置为无效,可以统一用一个处理程序,而在参数中放入相应的表项地址即可。因此本系统定义的定时器的数据结构如图3所示。图定时器的数据结构图4结论本论文的创新点是:将标准TCP协议中的滑动窗口机制裁减为停等协议,既能够保证传输的可靠性,又能保证传输的实时性;IP协议

13、在检查数据报的正确性后,只过滤目的地址不是本机的报文,服务器端也对IP分段加以限制,从而减少了程序的复杂度;ARP对报文实现缓存更新时,查找采用线性搜索法,缓存只包含IP地址、MAC地址、标志位、写入时间4项,可以节省硬件资源;此外,对于超时定时器的设计也与以往不同,考虑到系统对定时的精度要求不高,基本是秒级精度,不把超时处理放在时钟中断处理程序中进行,稍滞后一些来处理定时器超时,并且,对同一类超时处理可以由同一处理程序完成,只是将传入到相应的处理程序中的参数设置不同而已。经过裁剪的嵌入式TCP/IP协议族,应用在前端嵌入式设备处理器是Samsung公司的S3c4510B(ARM核)系统中,结

14、构精简,性能稳定,实时性强,通过专项测试证明,基于该协议族的网络监控系统控制终端的指标达到了预期的要求。本文提出的这种基于ARM的嵌入式TCP/IP协议在低速处理器中的设计方案,对该领域中相关技术的研究具有重要的参考意义。参考文献1 J.Benthem著,陈向群译, TCP/IP Lean:嵌入式系统WEB服务器, 机械工业出版社,2003.5,第一版2 Gary R. Wright W.Richard Stevens,TCP/IP Illustrated volume 1: The protocol,1994.113 Gary R. Wright W.Richard Stevens,TCP/

15、IP Illustrated volume 2: The Implementation,1994.114 周明天 汪文勇,TCP/IP网络原理与技术,清华大学出版社,1993.125 田泽,嵌入式系统开发与应用,北京:北京航空航天大学出版社,2005.16 王峰,张宏伟等,嵌入式Internet技术及其实现方案J。微计算机信息,2003,12(19)作者简介: 娄莉 : 女, 1970年出生,辽宁沈阳人,副教授。现工作于西安石油大学计算机学院,研究方向为通信工程,嵌入式系统。刘天时: 男,1960年出生,陕西渭南人,现工作于西安石油大学计算机学院,教授,博士,感兴趣领域为计算机网络及应用软件,嵌入式系统。Author Vita:Li Lou(1970-), female, the Han nationality, Liaoning Province, associate professor, maste

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论