IP协议的精简与实现.docx

上传人:安*** 文档编号:17789580 上传时间:2022-05-26 格式:DOCX 页数:10 大小:20.52KB
返回 下载 相关 举报
IP协议的精简与实现.docx_第1页
第1页 / 共10页
IP协议的精简与实现.docx_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《IP协议的精简与实现.docx》由会员分享,可在线阅读,更多相关《IP协议的精简与实现.docx(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、嵌入式系统中TCP/IP协议的精简与实现shixiang导语:嵌入式系统中TCP/IP协议的精简与实现通过对TCP/IP协议的分析,结合嵌入式系统的特点,挑选出一套精简、实用的TCP/IP协议子集,并详细介绍各协议层的实现经过。为嵌入式网络系统的开发提供一个较为简单且可行的思路。嵌入式网络系统就是在嵌入式设备上实现了网络互联功能的系统,一般要求嵌入式设备在软件上支持TCP/IP协议栈,实现有关的以太网通信协议。怎样实现TCP/IP协议是嵌入式网络系统的关键技术之一,在嵌入式系统中应用TCP/IP协议的关键是,怎样设计出精简、高效的TCP/IP协议子集,以此来减少对系统资源的占用。目前使用广泛的

2、TCP/IP协议栈有LWIPLightWeight、uIP、LinuxIP等,这些协议栈具有一定的通用性,包含的协议内容比拟全,同时也比拟复杂。详细在移植到应用系统的时候要考虑的问题较多,各个库文件和全局变量互相穿插引用,假设要针对特定系统进展精简,那么牵一发而动全身,尤其是存储器的管理及上层协议与底层网络驱动的接口是两个最大的移植难题。为了能对TCP/IP协议有较深的解析,又利于后期进展深化研究,我们在实现一详细的Internet网络报警系统时,进展自主的嵌入式TCP/IP协议开发。下文所介绍的TCP/IP协议系统由于精简而利于实现,且无需进展内存管理,合适传送数据量不大的嵌入式系统。在实现

3、时,只要根据相应的数据帧格式,在各层完成相应的功能即可。非常合适研究学习之用,为嵌入式网络系统的开发提供一个较为可行且简单的思路。2、协议的分析与选择众所周知,TCP/IP是一个协议族,是几百种网络协议的集合。通用计算机系统有足够的资源支持通信协议在内核实现,但是嵌入式系统那么不同,因为其CPU处理才能和系统存储才能都受到本钱限制,充分利用资源、进步系统性价比是开发嵌入式应用的根本特点。所以要对TCP/IP协议进展精简以适应嵌入式系统。下面我们以实际的Internet网络报警系统为例,设计一个较为精简的TCP/IP协议子系统。此系统采用32位ARM构造的三星S3C440BX处理器,加SMSC公

4、司的以太网控制芯片LAN91C113,和另外一些外围芯片组成。此系统要求经Internet传送一些现场收集的报警数据到远程站点,要务实时性好、传输速度快,但每次传输的数据量很少,只是简单的报警信息。根据这些要求,再经详细分析TCP/IP各协议层实现的功能,精简出的协议子集如图1:align=center图1精简的TCP/IP协议子集/align首先在链路层上,由于采用以太网的接入方式,系统必需要实现IEEE802.3所规定的CDMA/CD协议。CDMA/CD协议不需用户实现,此协议只要采用通用的以太网接口芯片就可支持。其次,为了保证系统在以太网中的通信,系统还需实现ARP应答协议,该协议用于将

5、IP地址映射成以太网MAC地址。ARP的执行依靠维持一张表来完成IP地址和MAC的地址的映射。在网络层,由于系统要求可以在Internet进展通信,因此系统要实现IP协议。IP层的代码有两个功能:验证到来的IP报文报头的正确性,并且对TCP和ICMP报文实行分流。因为不考虑IP的分片和重组,所以IP层的代码非常的精简。为了可以测试系统与网络的连接,系统需要实现ICMP协议中的Ping应答协议,Ping应答协议主要是检查网络是否连通在传输层,TCP为两台主机提供面向连接的、可靠的、无重复的双向数据流传输效劳,TCP协议设计了严格的3次建立连接握手经过、4次关闭连接握手经过,这些经过的实现对系统资

6、源的消耗非常大。而UDP的实现比拟简单,它在某些嵌入式Internet的应用场合可以很好地应用。考虑到系统的简化及速度的要求,采用了UDP协议,为了确保UDP数据的到达,在应用程序中采用了重复发送、回复确认的方式来保证数据的正确性。由于本嵌入式系统无HTTP、FTP等应用,所以应用层中的协议无需实现。3、协议的实现本系统由于协议比拟精简,只保存了必须使用的一些协议,所以实现经过相对简单。实现经过中的一个总目的是系统开销要少,每一层之间要互相独立,内存操作简单。为了实现每一层的独立,实现上下层之间的数据透明传输。每层之间应通过一系列的函数进展数据传递,同时为了减少由于数据拷贝引入的系统开销,系统

7、应通过指针操作,而不是数据拷贝方式,将缓冲区中的数据沿协议栈向上传递。由于TCP/IP的各层协议的各种数据格式,在各种资料中都有详细讲明,这里就不再一一介绍。只详细介绍总的构造、各层的功能及实现经过,为了便于调试,系统在实现时肯定是从底层开场,一层一层往上实现。1首先公共数据构造的定义:如MAC地址格式、IP地址格式、系统的地址配置、缓冲区格式及大小。其中MAC、IP地址格式都是固定的,系统的配置用于确定系统的IP地址及端口和MAC地址值。在本系统中由于传送的数据有限,只定义了4个用于传送和接收数据的缓冲区每个长度为150字节。2网络驱动接口:由于网络驱动也是我们自己编制的,所以与上层结合起来

8、很顺利,接收时采用中断机制,当收到网络中断就读取数据,根据包的种类分别传给ARP或者IP协议,由每一层自行处理数据。发送时采用查询方式,应用层准备好数据,一层层封装并向下传递,最后经由网络驱动程序发送。3链路层ARP协议的实现:首先定义ARP数据帧头构造及ARP高速缓冲表,数据帧必须根据标准定义,高速缓冲表至少要含有IP地址及相对应的MAC地址两项。由于嵌入式系统所连接的对象数目较少且都比拟固定,所以就去掉了缓冲表的定时刷新程序,这样可以大大减少系统的刷新开销。这一局部的主要工作是:a、根据上层数据包中的IP地址,在高速缓冲表中查出对应的MAC地址并填入包中相应位置。假设表中没有相应MAC地址

9、,那么按照格式组装一个ARP恳求包并发送,以得到对方MAC地址。b、假设收到ARP应答包,那么更新ARP缓存表。主要函数有:structpbufarp_packetstructarpdataq/把要发送的ARP数据打包成网络格式字节流;structmacarp_lookupstructipp/根据IP地址在ARP缓存表中查找MAC地址,假设找不到那么自动向网络播送ARP恳求;voidarp_inputstructpbufp/从驱动程序传入ARP帧数据,假如是ARP恳求那么发送一个ARP应答包,假如是ARP应答那么更新ARP缓存表;4网络层IP协议及Ping应答的实现:首先定义数据构造IP及IC

10、MP数据帧格式,这两者都要根据标准来定义。这一局部的主要工作有:a、对上一层传下来的数据包,加上IP首部和IP校验和,发往下一层。和对下一层传上来的数据包,进展校验和检查,假设正确去掉IP首部,送往上一层。b、为了便于测试要响应主机的PING程序,即如收到ICMP的回显恳求包,那么按照格式组装一个ICMP的回显应答包并发送。主要函数有:intip_inputstructpbufp;/输入下一层的数据包,去掉IP首部传给上一层;intip_send_datastructpbufp,intlen,inttype,structipdst_ip;/将上一层的数据加上IP首部,并向下一层发送;voidi

11、p_packetstructpbufp,structIP_dataq,intlen;/IP首部和数据打包;U16ip_chksumU8p,intlen;/IP检验和计算;voidicmp_inputstructpbufp假如ICMP的回显恳求,那么发一个应答包;5传输层UDP协议的实现:根据标准定义UDP数据帧格式。这一局部的主要工作有:对应用层传下来的数据包,加上UDP首部和UDP校验和,发往下一层。和对下一层传上来的数据包,进展校验和检查,假设正确去掉UDP首部,提出数据送给应用层。需注意的是,要产生一个伪首部用于UDP数据检验和计算。主要函数有:voidudp_inputstructpb

12、ufp;/从下一层输入UDP数据voidudp_outputU8str,structipdst_ip,U16dst_port;/向下一层发送UDP数据voidmakeup_pheaderstructipp,U16len,U8q;/产生伪首部用于UDP检验和计算U16udp_chksumU8p,intlen,U8p1,intlen1;/计算UDP检验和6执行经过:当本地系统有数据要发送时,首先在传输层将数据加上UDP首部,再到网络层加IP首部,然后到链路层从ARP表中查询相应的MAC地址,填入相应位置,并发给网络驱动程序传到以太网上。图2是用SPYNET软件截取的本系统启动后第一次发送一串字符的

13、整个网络协议应答经过,由于是第一次发送,ARP表为空。所以当发送UDP数据时找不到目的IP地址对应的MAC地址,系统先发ARP恳求,等对方回一个ARP应答,得到对方MAC地址,然后再发UDP数据包。align=center图2一个实际UDP数据包发送全经过/align4、完毕语由于嵌入式系统开展及互联网络的普及、远程控制和信息家电的兴起,嵌入式系统与互联网络的结合逐渐成为一种新的技术开展方向,嵌入式TCP/IP协议的选择与实现是这一技术必需要面对的。很多时候在涉及TCP/IP协议时,都容易被其复杂的体系构造所迷惑,而不敢轻易动手,本文提出的这种嵌入式TCP/IP协议的选择思路及给出的一套精简T

14、CP/IP协议子集的实现经过,对于这一方面的研究很具有参考价值。参考文献1、李润知,岳俭,李阳阳2003.基于Web的嵌入式网络管理系统.()计算机应用).236:95-97.2、许海燕,付炎主编2002.嵌入式系统技术与应用.北京:机械工业出版社。3、美W.RichardStevens著,范建华等译2000.TCP/IP详解卷1:协议.机械工业出版社。4、李明,康静秋,贾智平2002.嵌入式TCP/IP协议栈的研究与开发()计算机工程与应用).200216:118-121.5、洪锡军,汪德才2000.基于Internet的多功能远程监控报警系统.()上海交通大学学报).3410:1370-1371.0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁