当前位置:首页 > 测试测量 > 测试测量
[导读]1、 引言 TCP/IP起源于60年代末美国政府资助的一个分组交换网络研究项目,到现今已发展成为计算机之间最常应用的组网形式。尽管标准的TCP/IP协议族在数据传输的可靠性与数据流量的控制上作的很好,但是8位微控制器性

1、 引言
TCP/IP起源于60年代末美国政府资助的一个分组交换网络研究项目,到现今已发展成为计算机之间最常应用的组网形式。尽管标准的TCP/IP协议族在数据传输的可靠性与数据流量的控制上作的很好,但是8位微控制器性能的限制下,标准的TCP/IP协议族的实现占用大量系统资源是实际应用所不允许的。因此要在不改变TCP/IP协议族标准的前提下对其进行裁剪,使其实时性提高同时保证可靠性以满足嵌入式系统的要求。
SF0020是NEC公司推出的兼容80C51的8位微控制器芯片。根据系统在网络监控系统控制终端应用的需要,外部接25MHz晶体,内部倍频至50MHz。该芯片内嵌有10M/100Mbps的MAC模块并提供MII界面,可与外部的Ethernet PHY芯片方便连接。芯片有256字节内部数据存储器,外部可扩充至512K字节。具备的DMA通道实现了在RAM中和在MAC与RAM之间进行快速数据传输的功能;支持校验和模块,在实现TCP/IP时可以节省控制器运算开销。指令周期为4个时钟周期(标准80C51为12时钟周期/指令周期)。其性能满足实现嵌入式TCP/IP协议族的基本要求。
2、 协议族总体框架设计与裁剪策略
为了实现在局域网环境中作为客户端控制前端监控设备(硬盘录像机、编码器、解码、视频服务器等)的应用要求,必须在有限的硬件资源的条件下保证数据传输的可靠性和实时性。因此数据链路层采用目前应用最为广泛的以太网协议;上层利用TCP/IP的实现采用在运输层直接采用可靠的TCP协议,然后对其进行适当裁剪的方法。这是因为考虑到通用性、兼容性和通信的可靠程度,而没有使用在应用层加入控制策略运输层使用简单UDP协议的方案。本地数据的流动要实现向应用程序提供可靠的数据,与底层以太网驱动程序交互数据报功能。
协议族系统结构框架如下图1所示,其中虚线部分是本文所要完成的,包括socket子层、运输层的TCP协议、网络层的IP和ICMP协议、ARP协议和以太网子层。

500)this.style.width=500;" border="0" />
 
图1 协议族系统框架
2.1 接口子层实现
以太网子层提供了与以太网驱动程序的接口,其实现驱动程序存储空间和协议空间之间数据搬移的功能;以及数据报流入的分路和流出的封装处理。
Socket(插口)子层向上层提供了创建一个socket描述符,将本地的IP地址与端口号绑定到一个socket上,TCP连接的建立、断开,数据的接收与发送的功能。
2.2 网络层实现
网络层实现包括IP协议(Internet Protocol网际协议)和基于IP协议的ICMP协议(Internet Control Messages Protocol控制报文协议)。图1中该层下部的ARP(Address Resolution Protocol 地址解析协议)为IP提供动态地址解析服务。
IP是TCP/IP协议族中最为核心的协议。所有的网络层和运输层数据都以IP数据报格式传输。为了减小TCP/IP协议族的负担,接收时首先要检查数据报的正确性,其次还要过滤目的地址不是本机的报文;此外如果收到被IP分片的数据报立即丢弃。最后判断协议交给TCP或ICMP协议处理。因为禁止IP层分片可以提高通信的效率和可靠性,根据以太网最大传输单元(MTU)的限制,socket子层控制了用户每次传输分组的最大字节数。同样服务端也对IP分片加以限制使IP无需把有限的系统资源消耗在IP报文重装上,这正是丢弃被分片的IP数据报的原因。
ICMP提供主机或路由器报告差错或提供查询信息的服务。ICMP报文可以分成两类:差错和查询。查询报文是用一对请求和回答定义的。ICMP差错报文通常包含了引起错误的IP数据报的第一个分片的IP首部(和选项),加上该分片数据部分的前8个字节。由于运输层仅仅使用TCP协议,ICMP也进行了裁剪。协议支持ping命令请求回显应答,用于检查协议族的运行状况;差错控制全部交给运输层TCP协议处理。
ARP协议为IP地址和硬件地址之间提供映射。ARP报文分为请求和应答两种报文,通过这两种报文实现ARP缓存的更新。ARP高速缓存在它的运行过程中非常关键。由于微控制器硬件资源限制ARP高速缓存只定义了8组,因此查找采用线性搜索的方法对最终性能并没有影响。缓存只包含以下4项既可以实现ARP协议又可以节省硬件资源:IP地址、MAC地址、写入时间、标志位。
2.3 运输层实现
运输层仅仅实现了TCP(Transfer Control Protocol传输控制协议)。该协议提供了全双工高可靠性的通信,因此应用层和网络层可以忽略相关细节。TCP是TCP/IP体系中面向连接的运输层协议,它所做的工作包括把应用程序交给它的数据分组交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。
每当本地发出连接建立请求后,创建一个对应的传输控制模块TCB(Transmission Control Block).它存储了该连接中的重要信息。和ARP高速缓存一样其数据保存在片内数据存储区来提高协议的运行效率。本文中TCB的实现只包含以下内容:IP地址、双方端口号、双方序列号、对方应答序号、当前连接状态、定时器、指向下一个有效数据区的指针、窗口大小。此外通过对TCP首部的选项字段的配置,即保证在局域网内部传输时IP层传输时不会分片使MMS(Maximum Segment Size 最大报文段长度)尽可能大,可以提高TCP传输效率。 同时考虑到作为客户端应用,在不影响正常工作的前提下TCP有限状态机实现中去掉了服务端的两个状态LISTEN(监听)、SYN_RCVED(接收SYN状0态)如下图2所示。

500)this.style.width=500;" border="0" />
 
图2 TCP有限状态机
 
由于网络中数据传输必然会产生数据丢失,TCP错误重传和数据重组尤为重要。错误重传是在发送了需对端确认的报文段后设置重传定时器,如果在定时器时限内未收到ACK该报文段被重发。因此当数据发送之后要等到ACK确认报文才能丢弃。数据重组是基于面向字节的序列号,实现重复数据的丢弃、乱序报文的重组。
 
3、协议族实现关键技术
3.1 协议族定时器的实现
ARP实现需要两个定时器。重传需要一个定时器,如果ARP报文发送后1秒中内没有应答则再次发送,本文实现连续4次重传后ARP将放弃;ARP高速缓存数据存储时间需要一个定时器,缓存内容保存时间为20分钟,同时允许管理员创建永久节点作为代理节点。
TCP实现为当前连接建立了如下六个定时器:连接建立定时器,重传定时器,延迟ACK定时器,持续定时器, FIN_WAIT_2定时器,TIME_WAIT定时器;去掉了保活定时器,因为该定时器仅是TCP连接的可选配置,在监控中的需要有应用程序实现更加严格的连接保持定时。本文根据实际监控网络情况修改了标准协议族定义的超时时间,使实时性得以提高。
3.2 协议族的内存管理策略
传入的分组是保存在内存中并将其传递给适当的协议作进一步处理的。同时,应用程序产生的数据也必须以分组的形式存储在内存中,并最终将其交给网络硬件设备传送出去。因此协议的高效性取决于如何管理保存这些分组的存储空间。本文对内存管理用以下两种方法做到快速分配存储空间,并且避免分组在各层协议之间移动时的数据复制。
发送数据报时采用大缓冲区方案:即将缓冲区划分的足够大(1514字节),提前留出协议首部字节的大小,能够存储最长的分组。接收数据报时采用链表方案:为了避免内存碎片的产生该缓冲区采用固定大小。链表的特点是允许快速封装而无需数据的复制,也就是说当接收到递交上来的数据报后,就分配一个新缓冲区,填写其中的内容后将新缓冲区插入保存此信息的链接列表中,这样就可以很容易的在某个信息的前面插入附加字节,而无需移动已经存在的数据。采用此方法可以优化TCP数据报的重组。
采用以上两种方法可以最大限度实现TCP/IP协议族内数据公用,无需额外数据搬移。
3.3 协议族数据流程
    如下图3所示,用户待发送的数据首先通过socket接口程序进入TCP/IP协议族,分别进行TCP与IP的数据封装后查询ARP高速缓存,如果存在当前目的IP与硬件地址的映射则填充以太网帧头部信息后拷贝至以太网驱动程序空间立即发送,否则发出ARP查询报文,将当前用户数据拷贝至发送等待缓冲,进入接收状态等待ARP查询报文的应答。
 
                     由于输入操作发生在中断期间,此时设备驱动程序是不能调用任何过程来处理分组,也就是说中断服务程序并不直接调用IP,而是使用了消息传递的方式。当一个IP分组到达之后用消息通知主循环,由主循环调用协议族进行数据处理。如下图4所示,首先通过以太网子层分路到达帧,如果是ARP报文则检查更新ARP缓冲,收到ARP请求立即应答,若是应答报文则检查本地发送等待队列如有数据立即发送;如果是IP报文首先判定其协议类型,ICMP报文中的ping命令请求回显则立即应答,源站抑制报文交给TCP处理;若是TCP协议进入有限状态机进行解析最后将有效数据通过socket接口递交上层。
 500)this.style.width=500;" border="0" />
     
图3 协议族数据发送处理框图             图4 协议族数据接收处理框图
 
4、 结论
经过裁剪的嵌入式TCP/IP协议族,结构精简,实时性强,可以在SF0020芯片上稳定运行,基于该协议族的网络监控系统控制终端通过了专项测试达到期望的要求。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

提到台积电,相信大家都不陌生,作为全球顶尖的晶圆代工机构。仅台积电、三星两家晶圆代工厂的市场份额,就占据了全球半导体市场的70%左右。

关键字: 3nm 芯片 三星

英国广播公司《科学焦点杂志》网站5月22日刊登了题为《什么是摩尔定律?如今是否仍然适用?》的文章,摘要如下:

关键字: 摩尔定律 半导体 芯片

据业内消息,近日高通公司的CEO Cristiano·Amon在风投会议上表示,大家在关注经济增长时也开始关心芯片,在这个数字化转型和数字经济成为重要部分的时代,芯片对于提高效率是必须的,芯片的重要性正在被普遍接受,未来...

关键字: 高通公司 芯片

作为全球豪华汽车巨头,宝马在未来的电动汽车上也开始加大投资,这一次他们是多方下注,英国牛津的工厂还是战略核心,日前又透露说在中国投资上百亿生产电动车,今晚宝马公司又宣布在美国投资17亿美元,约合人民币123亿元。

关键字: 宝马 芯片 供应商

周四美股交易时段,受到“台积电预期明年半导体行业可能衰退”的消息影响,包括英伟达、英特尔、阿斯麦等头部公司均以大跌开盘,但在随后两个小时内纷纷暴力拉涨,多家千亿美元市值的巨头较开盘低点向上涨幅竟能达到10%。

关键字: 台积电 半导体 芯片

在需求不振和出口受限等多重因素的影响下,全球半导体厂商正在经历行业低迷期。主要芯片厂商和设备供应商今年以来股价集体腰斩。

关键字: 芯片 厂商 半导体

在半导体制造中,《国际器件和系统路线图》将5nm工艺定义为继7nm节点之后的MOSFET 技术节点。截至2019年,三星电子和台积电已开始5nm节点的有限风险生产,并计划在2020年开始批量生产。

关键字: 芯片 华为 半导体

成都2022年10月19日 /美通社/ -- 近期,平安养老险积极筹备个人养老金的产品设计和系统开发工作,发展多样化的养老金融产品,推动商业养老保险、个人养老金、专属商业养老保险等产品供给。 搭养老政策东风 ...

关键字: 温度 BSP 东风 大众

广东佛山2022年10月19日 /美通社/ -- 空间是人居生活的基础单元,承载着生存与活动的最基本功能。而对于理想空间的解构意义却在物理性容器之外,体现出人们对于空间和生活深层关系的思考,同时也塑造着人与空间的新型连接...

关键字: 温度 BSP 智能化 进程

上海2022年10月19日 /美通社/ -- 10月17日晚间,安集科技披露业绩预告。今年前三季度,公司预计实现营业收入7.54亿元至8.33亿元,同比增长60.24%至77.03%;归母净利润预计为1.73亿...

关键字: 电子 安集科技 BSP EPS

测试测量

28724 篇文章

关注

发布文章

编辑精选

技术子站

关闭