APP下载

适用于文字书写教学教室系统的嵌入式局域网协议

2014-06-06喻世东王求真

计算机工程 2014年9期
关键词:重传数据包嵌入式

喻世东,戴 永,王求真,李 璇,任 昆

(湘潭大学智能计算与信息处理教育部重点实验室,湖南湘潭411105)

适用于文字书写教学教室系统的嵌入式局域网协议

喻世东,戴 永,王求真,李 璇,任 昆

(湘潭大学智能计算与信息处理教育部重点实验室,湖南湘潭411105)

针对以文字书写教学装置为终端的教室系统的数据传输要求和特性,分析已有协议处于该环境下所面临的局限性,提出一种适合该类教室系统的嵌入式局域网协议CSELP。在以太网帧的基础上扩展8个字节实现确认、超时重传、流量控制等功能,提供面向连接的可靠传输服务,简化数据处理和状态机制;采用改进的带宽预估算法估计可用带宽大小,在拥塞避免阶段根据预测的窗口大小变化调整拥塞窗口;设计重传队列实现面向组的确认机制,从而提高系统的实时性和传输效率。实验结果表明,该协议能满足文字书写教学教室系统的应用需求,并且可推广到非文字书写教学的教室系统。

文字书写教学装置;教室系统;嵌入式;以太网;CSELP协议;数据传输

1 概述

随着文字书写教学系统单机技术的日臻成熟[1-3]与环境保护呼声的增大,无纸化文字书写教学、改革传统文字书写教学手段、普及信息技术的文字书写教学教室系统的研究势在必行。迄今为止,教室系统的研究较多地集中在虚拟教室[4]、多媒体[5]等上。文字书写教学教室系统的学生终端多为嵌入式平台,将已有的其他学习内容的教室系统方案直接套用于文字书写教学教室系统,在硬件需求和教学方式等诸多方面存在重要局限性,最突出的是局域网协议不适用问题。TCP/IP协议[6-7]在跨网段传输方面有优势,无线传感网络协议[8-9]在环境、医疗等无线应用领域中非常适用,工业总线协议[10]在串行传输方面传输速度快,但这些协议在嵌入式系统构成的局域网环境内,实时性、可靠性或适用性等方面存在一定局限性。文献[11]关于局域网内部嵌入式设备通信协议解决了报文封装的冗余并压缩了协议的处理层次,但是对于针对性提高局域网内部通信速率和改进拥塞控制方法没有提出有效的对策。本文针对局域网内部嵌入式设备实时通信链路状态相对较好、硬件资源受限等特征,提出一种适合以文字书写教学装置为终端的教室系统局域网协议,即 CSELP(Classroom System Embedded LANProtocol)。该协议在以太网帧上扩展了8比特字段的包头,使用本地和远程的端口号和MAC地址来标识一个连接,使用窗口和速率相结合的流控机制,提供面向连接的可靠传输服务,参考UIP的实现方法并优化了状态机制、重传队列机制、确认机制和拥塞控制算法。

2 体系结构

文字书写教室系统旨在实现集中进行文字书写教学,系统的体系结构如图1所示。

图1 教室系统体系结构

作为文字书写教学教室系统的工作过程具备3个基本特征:(1)教师可通过教师服务器既可同时向所有,也可选择性向学生终端传授教学内容、布置书写作业等;(2)学生终端只能单独通过教师服务器向教师提问、请教等,而不能互传作业内容等;(3)学生作业可随时提交,同时提交作业的人数不受限制。据此,教室系统由M台嵌入式文字书写练习机和一台教师端服务器按星型拓扑结构组网。本文系统文字书写教学终端为本实验室研制的文字书写教学装置,其核心功能是多文种、多格式兼容文字书写教学,与联网相关的功能包括接受老师统一布置作业、作业保存或提交,在线提问等;教师服务器具有作业布置、批改评阅、在线答疑等功能。教室系统协议为本文所研究的CSELP协议,文字书写教学终端与教师服务器相互协作,构成文字书写教学教室系统。

3 CSELP设计与实现

3.1 协议分析

教室系统运行在一个相对较小的空间,它的数据流量都在本局域网内部产生的。鉴于CSELP应用的空间局限性,CSELP不采用网络层协议提供路由,直接在数据链路层实现,相比基于TCP/IP的协议栈极大的缩减了协议层次,减少了协议开销。CSELP协议使用本地和远程的端口号和MAC地址来标识一个连接。提供面向连接的可靠传输服务,使用窗口和速率相结合的流控机制实现数据的高效传输。相比传统的TCP/IP协议,可优化状态处理、重传队列机制、确认机制和拥塞控制算法。

3.2 CSELP协议帧格式

以太网是目前局域网最通用的通信协议标准,提供在局域网中设备间数据通信的功能,但是由于没有窗口、确认序列号、控制等字段,而无法提供确认、超时重传、流量控制等功能。鉴于教室系统网络通信实时性和可靠性的需要,CSELP结构如图2所示。与通用Ethernet协议相比,本文协议帧结构在数据字段的包头增加2 Byte的发送、确认序列号、1 Byte窗口、2 Byte的目的/源端口、1 Byte的控制字段和2 Byte的校验字段,压缩TCP/IP协议栈结构里的传输层和网络层形成一个扩展的协议栈,称为CSELP协议栈,每一帧的封装长度最大值为MAC+ ELP仅有22 Byte。

图2 CSELP帧结构

3.3 数据处理及状态转换

协议栈系统缓冲区采用静态分配的方式,参考UIP协议,定义一个发送缓冲区和一个接收缓冲区,协议层之间的数据传输采用零拷贝技术,数据在入栈以后只处理并封装一次,由以太网驱动发送,提高协议性能,同时也提高系统是实时性。数据包到达指定设备后通过逆向解析送达用户进程。

CSELP协议的数据传输分为3个阶段:连接建立,数据传输和连接断开。它的实现可以用状态机来描述,在新的格式定义下,CSELP协议服务端和客户端的状态转换如图3所示。

协议采用了和TCP/IP相似的3次握手和4次关闭的信息交互结构,不同之处是它省略了连接超时状态,连接的每次状态变换都基于当前状态和收到的数据包的标志位来决定,状态机循环在建立连接、传输数据、断开连接等状态间进行转化。

图3 CSELP服务端和客户端状态机

3.4 流量控制和确认机制

针对教室系统“瘦客户端”、局域网内部传输和数据主要为作业文件表现出连接数目很少变化、链路状态相对较好和数据量大等方面的特点,CSELP采用窗口和速率控制相结合的方法,改善链路流量稳定性、文件传输速率等性能,提高带宽利用率和减少拥塞。在收到确认信号之前最多可以发送的包的数目由接收方的窗口大小W确定,每发送一个包,窗口大小W减1,如果W为0,那么停止发送数据包,直到W重新变为非0。

在文献[12-13]的基础上,采用改进的带宽预估算法,根据收到ACK数据包速率也即数据包往返时(RTT)延估计可用带宽大小,调整拥塞窗口值的大小。假设时间区间[t,t+Δt]内,ACK回应的数据字节数为[SeqNum(t),SeqNum(t+Δt)],则可用网络带宽ABW(t)为:

若 Δt→0,ABW(t)可看作SeqNum(t)的导数,即:

其中,WinNum表示窗口数量也即发送端数量,对于小学课堂教学,学生数目即连接的终端数目在同一节课中一般不会变化,且Δt→0,所以WinNum为常数;WinSize(t)表示窗口大小,为了充分利用网络而又避免拥塞,使ABW(t)与SBW(t)取值相同,则:

式(4)可转化为:

为了预测窗口大小变化趋势,对式(5)两边求导,得:

离散化可得:

其中,ΔWinSize为窗口大小变化量;RTT(t+Δt)为当前时刻RTT采样值;RTT(t)为前一次采样值;SeqNum′(t+Δt)表示当前网络带宽。此拥塞控制算法中,RTT的采样值非常重要,取值不当会影响带宽估计的准确性,招致错误判断。在网络传输过程中,偶然因素会导致少数网络延迟或丢包,并不代表实际拥塞状况,采样RTT时应对此进行区别,采用3次采样取最小值的机制消除偶然因素的影响。发送端的拥塞窗口为cwnd,接收端窗口为rwnd,发送窗口大小为min(cwnd,rwnd),rwnd为接收端决定,网络环境对其没有影响,所以拥塞控制的方法就是调整cwnd的大小。拥塞控制算法的主要步骤如下:

(1)慢启动阶段:采用式(7)里的3次最小RTT采样值得到往返时延RTTmin;设置与RTTmin对应的超时时间,慢启动阀值ssthresh初始化为rwnd;cwnd初始化为1;并根据AIMD算法(和式增加,积式减少)调整cwnd大小:每经过一个RTT时间,cwnd(t+RTT)←2×cwnd(t),当cwnd=ssthresh,转步骤(2)。

(2)拥塞避免阶段:采用式(7)中的ΔWinSize调整cwnd大小;cwnd(t+Δt)←cwnd(t)+ΔWinSize。

(3)发送数据包cselps后,如果RTTmin时间内没有收到cselps的ack确认,表明发生网络拥塞导致丢包,重传丢失的数据包cselps,同时采用AIMD算法调整cwnd大小:cwnd←cwnd/2,然后跳转到步骤(1)。

针对局域网链路状态相对较好的情况,采用面向组的确认机制,接收方收到数据包后,以组为单位发送确认,每发送一个数据包,包头的序列号加1,发送方收到确认包后,在重传队列删除对应的数据包组,另外发送方也需要更新发送窗口。发起连接和结束连接的命令帧都占用一个序列号,通过检查校验码来确定数据包是否完整。使用反向确认,如果接收方检测到包丢失或者损坏,接收方将发回一个反向确认,请求对方重发。

3.5 错误检测与恢复

每个数据包的包头都有一个序列号,每发送一个数据包序列号加1,接收方按序列号对数据包进行排序,根据序列号来判断是否有乱序与重复发生,并根据CRC校验来检测错误,对丢失或者出错的包进行重传。

CSELP重传队列的设计:发送端利用链表记录每组已发出的CSELP数据包,而收到CSELP确认报文时从该链表中删除相应的CSELP数据包组。同时设定一个定时器,每隔一段时间响应一次,发送队列中已经超时的所有CSELP数据包。链表结构如图4所示,每个连接Con[i]单独维护一个ELP重传队列cselp_resend。该重传队列采用一个如图4所示的双层链表来存储,第一层为一个cselp_remxit结构体,存储可能需要重传的数据包的相关信息,字段m_timer是该包的定时器,字段renum记录该包重传的次数,字段cselpdata是一个结构体包含数据包的具体内容。m个cselp_remxit结构体组成一个数据包组,放在一个vector容器中作为重传链表的一个节点,这种设计结构能在发送数据包后直接将该包连接到此重传队列后面,便于接收到确认后删除数据包组也便于重传操作。

图4 CSELP的重传队列结构

3.6 CSELP主要算法

CSELP的实现涉及数据头定义、封装格式和拥塞控制、确认机制、超时重传等功能模块,确认机制和超时重传关乎系统能否实现可靠的数据传输服务以及作业文件传输的速率大小。

设组大小为m,连接con的接收队列为recvbuf,则con的ack确认方法如下:

算法1 面向组的确认实现

输入 m,con

输出 ack

每个连接con[i]都有一个如图4所示的重传队列cselp_ resend,则con[i]的重传数据包cselps由如下算法获得。

算法2 超时重传的实现

输入 con[i]

输出 cselps

3.7 CSELP的协议效率分析

协议效率即信道(链路)利用率用E表示,成功发送一帧平均所需时间为Ts,发送每帧数据平均所需时间为Tt,E=Ts/Tt。

以L表示数据帧的比特长度,ACK或NAK信息帧的长度为ta比特;一个数据帧的传输时间为ta(称一帧时),ACK帧或NAK帧的传输时间为ta;帧经过链路的传播时延为TF=tp+tf,即物理链路距离d除以传播速率v,而传播速率和光速是同一数量级的,因此传播时延对于数据帧和ACK(NAK)帧在两个方向上是相同的,但是传输一帧的时间与帧的长度有关,对于数据帧和ACK帧是不相同的。

(1)理想线路上的信道利用率

定义λ=tp/tf,按帧传输时间归一化,则:

考虑到滑动窗口的存在,令窗口大小为W,根据式(10),可以得到链路的利用率为:

(2)有差错线路的信道利用率

在有错误的情况下,一个组可能要经过多次传输才能成功,式(10)的分母乘以传输的次数就得到有差错线路上的效率Ee,有:

其中,Nr表示一个组重传的次数,假设P为任何一帧出错的概率,且不同帧的差错是相互独立的,则一个组m帧数据不出错误的概率为(1-P)m,出错的概率为(1-(1-P)m),则当某一组传输成功时,需要j次传输的概率为(j-1)次不成功的概率乘以最后一次成功的概率,为(1-(1-P)m)j-1(1-P)m。由此表明传输次数存在一种几何概率分布,为简化计算,假设应答信号不会出错,有:

式(13)变为:

同理,考虑到滑动窗口的存在,协议的最大效率为:

4 CSELP的实时性能分析

教室系统用于课堂教学,课堂时间有限,教学内容的传输必须满足实时性要求,即教师布置作业以及、学生的作业提交等的数据传输速度越快越好。

4.1 数据一次传输最大时延

如果数据一次传输成功,则一个数据从封装到传输至主机的时间,由数据成帧时间TF、路由转发时间Tt与线路传输时延Td之和组成。

数据帧中封装的数据量决定成帧时间。根据教育部有关规定[14],小学班级人数在45人~55人之间,本系统选择60个客户节点,数据帧传输时选取最大帧长1 518 Byte,其中携带的有效数据长度1 492 Byte,成帧时间为ns级,可以忽略。

系统的数据通道建立以后,传输至主机的数据率为 12.5 MB/s,即数据在节点的发送时间为121.44 μs;由于拥塞控制采用队列策略,因此最大累记转发时间Tt=1 518×60/12.5=7.286 4 ms。

根据文献[15],小学教室最大前后间距一般为10 m,左右间距为6 m,则教室内服务端和终端最大距离为10+6/2=13 m,则Td=s×ts=13×2× 0.006=0.156 μs(s为距离,ts为电信号在双绞线中的单位传输时延0.006 μs/m),以上三部分构成数据一次传输的最大时延T0=TF+Tt+Td= 7.286 5 ms。

4.2 数据一次重传最大时延T1

数据帧在传送过程中任1位出现误码将导致整帧重传,本系统使用的命令帧长为22 Byte。重传命令从主机到出错节点所需时间包括命令帧送出时间Ts及线路传输时延。按100 Mb/s计算,命令帧送出时间Ts=22×60/12.5=0.105 6 ms,而最大传输时延仍为Td=0.12 μs,因此,总计一个命令帧从主机到节点的最大时延是Ts+Td=7.286 5 ms。误码重传一次情况下,最终的最大时延为:T1=T0+Ts+Td+Tt+Td=14.678 8 ms。

4.3 每帧误码率q和平均重传次数Rk

客户节点每个节点(由物理层硬件保证)的误码率为2×10-12,假设每个节点数据帧中每一位误码率相同,由于每个数据帧有1 518比特,数据帧的正确率为p=(1-2×10-12)1518≈1-1 518×2×10-12≈0.999 999 996 9,从而该数据帧整体误码率q=1-p=3.1×10-9。

假设某帧重传了ξ次才传送正确,则:

此时平均重传次数:

如发现错误需要重传,平均重传1.000 000 003次可保证正确。

5 实验测试

文字书写教学装置为前文所述嵌入式多功能、多文种兼容、多书写格式练习的文字书写教学系统,嵌入式终端主要硬件模块为 S3C2440,32 bit ARM920T内核,7英寸触摸屏,标准配置64 MB_ NAND_FLASH,标准配置64MB SDRAM以及DM9000A 100Mbps以太网控制器。实验教室按摆放60台学生终端设计,离教师终端服务器最远的终端距离为13 m,最近的终端距离为2 m,平均终端距离为6 m。教师终端服务器为一台4核CPU、4 GB内存、1 Gb/s网卡的联想PC机。服务器端软件环境为Windows,学生端软件环境为WINCE。实验使用文字书写教学终端为3个,分别布置在具有代表意义的节点及距离位置,13 m一个终端,2 m一个终端,6 m一个终端。通过多次文件传输测试,窗口大小W取200,数据包组大小m取40时能明显的减少文件传输所花时间,同时又不占用太多内存。教师终端布置作业测试和学生终端提交作业实验部分实验截图如图5所示,图5(a)所示是上位机选取向学生终端布置的内容,经过点击布置按钮操作后,图5(b)为学生终端接收后的界面截图,图5(c)为学生终端提交作业时的界面截图,图5(d)为教师端服务器接收作业文件时的工作界面,显示了作业文件名称、文件大小、存放路径和接收进度,图5(e)为教师端发送作业文件时的工作界面,显示了连接服务端的学生端信息、作业文件信息和发送进度。

图5 实验效果

通过CSELP协议让1台、2台、3台练习机同时提交一个1.09 MB的作业文件,然后服务端同时下发作业文件,分别统计所花时间,测试结果如表1所示。

表1 学生端发送和接收作业时间 ms

对比实验:分别编写PC端和WINCE端的MFC测试程序,功能主要包括可配置协议类型收发文件、计时。关闭上位机和嵌入式终端的其他应用程序,在实验教室中用一台距离上位机13 m的嵌入式终端通过测试程序用CSELP和TCP/IP向上位机发送不同大小的文件,分别统计发送这些文件所需时间,测试结果如图6所示。现有以太网由于不具备连接标识功能以及数据传输可靠性保证,和CSELP在文件传输方面无法直接比较。

图6 CSELP和TCP/IP协议性能对比

从表1中嵌入式终端发送作业和接收作业的平均时间来看,客户终端的增加对文件传输所需时间影响很小,由此可以推断60台嵌入式终端同时传输文件服务器也能很快的接收完毕,服务端通过CSELP协议可以很好的完成教室系统的数据通信任务。

从图6可以看出,由于从封装长度、流量控制和确认机制都经过针对性的设计,CSELP协议在文件传输速率方面具有优势,文件越大优势越明显。而且由于采用面向组的确认机制,减少了上位机接收文件时确认数据包的发送数目,缩小了上位机的网络利用率,减少了多学生端同时发送文件时上位机出现拥塞的概率。

6 结束语

随着信息技术的普及与数字化校园的建设,需要对可以节约大量书写用纸与提高教学效率的文字书写教学教室系统进行研究。本文就单间标准学生数目教室实现文字书写教学终端局域联网开展探讨,设计了与以文字书写教学装置为终端相适用的CSELP,主要有以下特点:(1)提出改进的带宽预估方法解决拥塞控制的问题;(2)利用重传队列实现了面向数据包组的确认以及超时重传,提高了通信效率。

[1] 戴 永,刘任任,王求真,等.可联网交互的多功能规定格式习字系统及方法:中国,ZL201010149767.2 [P].2010-09-01.

[2] 吕 军.电化教学多功能写作装置与系统:中国, ZL201010197425.8[P].2010-10-06.

[3] Karov Z Y.System for Teaching Writing Based on a Users Past Writing:USA,ZL2011086331A1[P].2011-04-14.

[4] Glava C C,Glava A E.Case Study of Initial Primary Teachers Training at Babes-bolyai University of Clujnapoca[J].ProcediaComputerScience,2011,3: 672-676.

[5] 朱志豪,汤勇明,王保平.一种基于IPTV技术的网络教室系统设计[J].电子器件,2009,32(1):161-164.

[6] Dunkels A.Minimal TCP/IP Implementation with Proxy Support[R].Swedish,Stockholm:Swedish Institute of Computer Science,Technical Report:SICI T-2001: 20CS,2001.

[7] Dunkels A.Full TCP/IP for 8-bit Architectures[C]// Proceedings of the 1st InternationalConference on Mobile Applications.San Francisco,USA:[s.n.], 2003:125-133.

[8] Stankovic J A.Wireless Sensor Networks[J].IEEE Computer,2008,41(10):92-95.

[9] 马 涛,单 洪,陈 娟.异构无线传感器网络的基础层MAC协议设计[J].计算机工程,2013,39(7):137-141.

[10] 张玉萍,佟为明,李 辰.LonWorks总线实时通信协议的研究[J].仪器仪表学报,2009,30(8):1783-1788.

[11] 宋 波,贾智平,李 新.基于LLC的嵌入式局域网协议栈设计[J].计算机工程与设计,2010,31(23): 4939-4943.

[12] Ma Xiaodong,Su Xiao.A New TCP Congestion Control Algorithm for Media Streaming[C]//Proceedings of ICME'09.[S.1.]:IEEE Press,2009:746-749.

[13] Li Gui,Yu Chu,Fidge C.A Conditional Retransmission Enabled Transport Protocol for Real-time Networked Control Systems[C]//Proceedings of the 36th IEEE LCN'11.[S.1.]:IEEE Press,2011:231-234.

[14] 中华人民共和国教育部.教育部关于贯彻《国务院办公厅转发中央编办、教育部、财政部关于制定中小学教职工编制标准意见的通知》的实施意见[Z].2002.

[15] 中国标准委员会.GB-50099-2011中小学建筑设计规范[S].2011.

编辑 索书志

Embedded LAN Protocol for Text Writing Teaching Classroom System

YU Shi-dong,DAI Yong,WANG Qiu-zhen,LI Xuan,REN Kun
(Key Laboratory of Intelligent Computing and Information Processing,Ministry of Education, Xiangtan University,Xiangtan 411105,China)

According to the requirements and features of data transmission in a classroom system with writing teaching equipment for terminal,across analyzing the limitations of other protocols under this situation,an embedded LAN protocol is proposed based on Ethernet,which is suitable for the classroom system CSELP.Both the real-time performance and transmission efficiency are improved.Data frame expansion of 8 Byte achieves recognition,retransmission,flow control and other functions to provide connection-oriented reliable transmission service,and the data processing and sates method are simplified.The size of available bandwidth with improved bandwidth estimate algorithm is estimated and the congestion window by the prediction window size change in congestion avoidance is adjusted.The new design retransmission queue is used to implement the package-based ACK mechanism.Example application result shows that the protocol can satisfy the application requirements of the writing teaching classroom system,and can spread to other nonwriting teaching classroom system.

text writing teaching device;classroom system;embedded;Ethernet;CSELP protocol;data transmission

1000-3428(2014)09-0284-07

A

TP393

10.3969/j.issn.1000-3428.2014.09.057

湖南省教育厅基金资助项目(13C914);湖南省“十二五”重点学科建设基金资助项目。

喻世东(1989-),男,硕士研究生,主研方向:知识处理,智能系统;戴 永,教授;王求真,讲师;李 璇、任 昆,硕士研究生。

2013-09-10

2013-10-31E-mail:yushidong@foxmail.com

猜你喜欢

重传数据包嵌入式
SmartSniff
面向异构网络的多路径数据重传研究∗
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
数据链路层的选择重传协议的优化改进
Altera加入嵌入式视觉联盟
倍福 CX8091嵌入式控制器
视觉注意的数据包优先级排序策略研究
MPTCP中一种减缓缓存阻塞的重传策略
移动IPV6在改进数据包发送路径模型下性能分析