一种近场通信软件栈逻辑链路层的流量控制方法

文档序号:7867645阅读:270来源:国知局
专利名称:一种近场通信软件栈逻辑链路层的流量控制方法
技术领域
本发明涉及近距离无线通信技术领域,尤其涉及一种近场通信软件栈逻辑链路层的流量控制方法。
背景技术
NFC (Near Field Communication,近场通信)技术是由非接触式射频识别(RFID)技术及互联互通技术整合演变而来,为了推动NFC技术的发展和普及,业界创建了近距离无线通信论坛(NFC Forum), NFC Forum定义了 NFC协议体系,在该体系中,NFC软件栈是一种中间件,在上层为应用开发提供支撑;在底层操作NFC控制器。NFC软件栈中设置有数据链路层,其最基本的功能是向该层用户提供透明的和可靠的数据传送服务,此外,数据链路层还担负着成帧、纠错、保序及流量控制的任务。在传统的逻辑链路控制协议(NFC Forum Logical Link Protocl)中,并没有对接收窗口尺寸进行强制规定,只是建议接收窗口尺寸取值范围为(Γ15,因为近场通信协议的物理层是无线通信协议,容易出错,如果接收窗口尺寸过小,会导致带宽的浪费。逻辑链路控制协议是为P2P类业务服务的,这类服务的数据量一般较大,对应的数据帧也较大,因此如果接收窗口尺寸过大,则会要求较大的缓冲区,而NFC软件栈一般是在嵌入式环境下工作,内存资源相对有限,较大的缓冲区将会对系统性能带来影响。另外,当前多数NFC控制器芯片支持P2P应用时只能工作在passive模式下,该模式时一种半双工的工作模式,只能一发一收,如果发送窗口和接收窗口尺寸过大,则可能会导致通信中的一方长期处于发送、重送的状态,另一方的发送时间被占用,从而造成带宽利用率的不平衡与内存资源消耗之间的矛盾。因此,现有技术还有待于改进和发展。

发明内容
鉴于上述现有技术的不足,本发明的目的在于提供一种近场通信软件栈逻辑链路层的流量控制方法,旨在解决现有技术中近场通信时带宽利用率不平衡、内存资源消耗大的问题。本发明的技术方案如下
一种近场通信软件栈逻辑链路层的流量控制方法,其中,包括步骤
A、在逻辑链路层设置用于对传输的数据帧进行流量控制的发送窗口及接收窗口;
B、根据上层应用确定的传输速率、信道质量确定的通信延迟时间以及数据帧的大小动态调节所述发送窗口尺寸及接收窗口尺寸;
C、所述发送窗口根据所述发送窗口尺寸的大小对发送端进行流量控制,所述接收窗口根据所述接收窗口尺寸的大小对接收端进行流量控制。

所述的近场通信软件栈逻辑链路层的流量控制方法,其中,所述接收窗口尺寸满足ReceiveWindow= [FWT X DATARATE_MAX]/[ (2+Link Miu)X8],其中,ReceiveWindow 表示接收窗口尺寸,FWT表示通信延迟时间,DATARATE_MAX表示传输速率,Link Miu表示发送端与接收端建立连接时指定的参数。所述的近场通信软件栈逻辑链路层的流量控制方法,其中,所述传输速率为106kbps、212 kbps 或 424 kbps。所述的近场通信软件栈逻辑链路层的流量控制方法,其中,在所述接收端建立一缓冲区,用于缓冲接收到的数据帧。所述的近场通信软件栈逻辑链路层的流量控制方法,其中,接收端数据帧的过程包括步骤
Al、接收端接收发送端发送的数据帧;
A2、判断所述数据帧序号是否在接收窗口之内;
A3、当所述数据帧序号在接收窗口之内时,判断所述数据帧序号是否等于接收窗口下
界;
A4、当所述数据帧序号不等于接收窗口下界时,将该数据帧序号对应的数据帧放入到缓冲区;
A5、当所述数据帧序号等于接收窗口下界时,在所述缓冲区中查找是否含有与该数据帧序号组成连续序列的数据帧;
A6、当在所述缓冲区中没有找到能够与该数据帧序号组成连续序列的数据帧时,向接收端返回一确认帧,确认收到数据帧序号等于接收窗口下界的数据帧;
A7、当在所述缓冲区中找 到能够与该数据帧序号组成连续序列的数据帧时,将接收到的数据帧与所述能够组成连续序列的数据帧组成数据帧组,向接收端返回一确认帧,确认收到所述数据帧组中序号最大的数据帧第i个数据帧。所述的近场通信软件栈逻辑链路层的流量控制方法,其中,所述步骤A7中,返回确认巾贞后,接收窗口下界设置为FrameExpected =i+l,接收窗口上界设置为TooFar = (i+ Receiveffindow ) MOD (MaxSeq + I),其中,FrameExpected 表不接收窗口下界,TooFar表示接收窗口上界,MaxSeq表示接收端需发送的数据帧序号的最大值。所述的近场通信软件栈逻辑链路层的流量控制方法,其中,发送端发送新的数据中贞时,对发送窗口上界加I。所述的近场通信软件栈逻辑链路层的流量控制方法,其中,发送端接收到接收端返回的确认帧时,判断所述确认帧是否是发送窗口下界对应的确认帧,当是时,对发送窗口下界加1,否则将该确认帧的序号加I后作为新的发送窗口下界。有益效果本发明通过对逻辑链路层中设置用于对传输的数据帧进行流量控制的发送窗口及接收窗口,并且还根据上层应用、信道质量及数据帧大小动态的调节发送窗口尺寸与接收窗口尺寸,从而实现平衡了带宽利用率,又能很好的减少内存资源消耗的目的。


图1为本发明近场通信软件栈逻辑链路层的流量控制方法较佳实施例的流程图。图2为本发明中的发送窗口的结构示意图。图3为本发明中接收端数据帧过程的具体流程图。
具体实施例方式本发明提供一种近场通信软件栈逻辑链路层的流量控制方法,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。请参阅图1,图1为本发明近场通信软件栈逻辑链路层的流量控制方法较佳实施例的流程图,如图所示,其包括步骤
5101、在逻辑链路层设置用于对传输的数据帧进行流量控制的发送窗口及接收窗口;
5102、根据上层应用确定的传输速率、信道质量确定的通信延迟时间以及数据帧的大小动态调节所述发送窗口尺寸及接收窗口尺寸;
5103、所述发送窗口根据所述发送窗口尺寸的大小对发送端进行流量控制,所述接收窗口根据所述接收窗口尺寸的大小对接收端进行流量控制。本发明中,发送窗口尺寸为SendWindow=(NextFrameToSend- AckExpected) MOD(MaxSeq + I),其中,SendWindow表示发送窗口尺寸,NextFrameToSend表示发送窗口上界,AckExpected表示发送窗口下界,MaxSeq表示需传输的数据巾贞序号的最大值;它们的意义是所述发送窗口上界为发送端需要发送的下一个数据帧的序号,所述发送窗口下界为发送端已发送但尚未收到的数据帧中的最小序号,所述数据帧最大序号为需传输的数据帧中的最大序号;
接收窗口尺寸为TooFar= (FrameExpected+ReceiveWindow) MOD (MaxSeq+ I),其中,TooFar表示接收窗口上界,FrameExpected表示接收窗口下界,MaxSeq表示需传输的数据中贞序号的最大值,R eceiveWindow表示接收窗口尺寸;它们的意义是所述接收窗口上界为接收端允许接收的数据帧中的最大序号,所述接收窗口下界为接收端即将接收到的数据帧的序号。其中,MOD表示模除,一种常用的二元运算,例如当a=bq+r,q是整数,并使其达到最大,此时,aM0Db=r。另外,上述步骤只是为了方便说明,并不代表是对先后顺序的限定。通过上述步骤,对发送端的发送窗口及接受端的接收窗口进行了调节,从而使两种窗口能够更好的平衡带宽利用率以及减少内存资源消耗。下面对发送窗口及接收窗口进行更详细的说明。其中的发送窗口用来对发送端的流量进行控制,发送窗口的含义表示发送端已发送但还未收到确认帧的数据帧序号表,如图2所示,其是一个最大尺寸为2n的发送窗口,这样数据帧的序号为0 2n-l,2n-l为数据帧最大序号,其中的发送窗口上界与发送窗口下界之间的黑色部分表示发送窗口尺寸(已发送但尚未收到确认帧的帧序号表),当发送端发送新的数据帧时,该数据帧的序号取值为发送窗口上界值,同时对上界加1,当发送端接收到发送窗口下界的确认帧时,发送窗口下界加1,当发送端接收到非下界帧的确认帧(其序号小于发送窗口上界)时,则将确认巾贞对应的序号加I作为新的发送窗口下界,从而对发送窗口进行调节,持续保持对发送端的流量进行控制。其中的接收窗口可以用来控制接收端可以接收哪些数据帧,对于接收端而言,只有数据帧的序号落入到接收窗口内的数据帧才能被接收端接收,接收窗口上界表示接收端允许接收的序号最大的数据帧,接收窗口下界表示接收端希望接收的数据帧的序号,任何落在接收窗口外面的数据帧都会被丢弃。
为了平衡带宽利用率与内存资源消耗之间的矛盾,本发明不再采用传统的做法,即根据经验值静态地指定接收窗口尺寸以及发送窗口尺寸,而是在每次通信建立连接时,根据上层应用、信道质量、数据帧大小等实际情况动态地计算接收窗口的尺寸以及发送窗口尺寸。以接收端为例,其中上层应用确定了通信的传输速率,传输速率可能为106Kbps,212Kbps,424Kbps,用变量DATARATE_MAX来表示传输速率(一般来说,该传输速率取上层应用确定的最大传输速率),建立通信时可以在接收端的NFC控制器的generic gate (ETSITS 102 622标准术语)中读取到DATARATE_MAX参数。信道质量确定了两个NFC设备之间的通信延迟时间,通信延迟时间为302us至4949ms,用变量FWT来表示通信延迟时间,建立通信时可以在接收端的NFC控制器的generic gate中读取到FWT参数。面向的通信对象不同,在Logical Link Control Protocol中采用的数据巾贞大小可能不同,通信双方在建立连接时需要指定参数Link Maximum Information Unit (LinkMIU),根据Link MIU可以计算出通信时的数据帧大小。如此,即可获得所需的参数,然后,将接收窗口尺寸(ReceiveWindow)设置为 Receiveffindow = [FffT X DATARATE_MAX] / [ (2+Link Miu)X8]。同时,将发送窗口尺寸设置为与接收窗口尺寸相同,但发送窗口尺寸获取时,其参数FWT、DATARATE_MAX是通过发送端的NFC控制器中读取的。通过上面的步骤,可以很好解决带宽利用率以及内存资源消耗之间的矛盾问题,发送窗口尺寸与接收窗口尺寸处于一个动态调节的过程, 而不是静态地指定,从而实现即平衡了带宽利用率,又能很好的减少内存资源消耗的目的。对于接收端而言,在接受端中会建立一个缓冲区,用来缓冲接收到的数据帧,如果接收到在接收窗口之内且不是接收窗口下界的数据帧,则会将该数据帧先放入到缓冲区。具体来说,如图3所示,其包括步骤
5201、接收端接收发送端发送的数据帧;
5202、判断所述数据帧序号是否在接收窗口之内;
5203、当所述数据帧序号在接收窗口之内时,判断所述数据帧序号是否等于接收窗口下界;当该数据帧序号不在接收窗口之内时,则丢弃该数据帧,即进入步骤S208 ;
5204、当所述数据帧序号不等于接收窗口下界时,将该数据帧序号对应的数据帧放入到缓冲区;
5205、当所述数据帧序号等于接收窗口下界时,在所述缓冲区中查找是否含有与该数据帧序号组成连续序列的数据帧;
5206、当在所述缓冲区中没有找到能够与该数据帧序号组成连续序列的数据帧时,向接收端返回一确认帧,确认收到数据帧序号等于接收窗口下界的数据帧;
5207、当在所述缓冲区中找到能够与该数据帧序号组成连续序列的数据帧时,将接收到的数据帧与所述能够组成连续序列的数据帧组成数据帧组,向接收端返回一确认帧,确认收到所述数据帧组中序号最大的数据帧第i个数据帧;
5208、丢弃该数据帧。在上面的步骤S207中,返回确认帧后,还需对接收窗口进行如下调整接收窗口下界设置为FrameExpected =i+l,接收窗口上界设置为TooFar = (i + Receiveffindow )MOD (MaxSeq + I)。综上所述,本发明通过对逻辑链路层中设置用于对传输的数据帧进行流量控制的发送窗口及接收窗口,并且还根据上层应用、信道质量及数据帧大小动态的调节发送窗口尺寸与接收窗口尺寸,从而实现平衡了带宽利用率,又能很好的减少内存资源消耗的目的。应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。`
权利要求
1.一种近场通信软件栈逻辑链路层的流量控制方法,其特征在于,包括步骤 A、在逻辑链路层设置用于对传输的数据帧进行流量控制的发送窗口及接收窗口; B、根据上层应用确定的传输速率、信道质量确定的通信延迟时间以及数据帧的大小动态调节所述发送窗口尺寸及接收窗口尺寸; C、所述发送窗口根据所述发送窗口尺寸的大小对发送端进行流量控制,所述接收窗口根据所述接收窗口尺寸的大小对接收端进行流量控制。
2.根据权利要求1所述的近场通信软件栈逻辑链路层的流量控制方法,其特征在于,所述接收窗口尺寸满足ReceiveWindow=[FWTXDATARATE_MAX]/[(2+Link Miu) X8],其中,ReceiveWindow表示接收窗口尺寸,FffT表示通信延迟时间,DATARATE_MAX表示传输速率,Link Miu表示发送端与接收端建立连接时指定的参数。
3.根据权利要求2所述的近场通信软件栈逻辑链路层的流量控制方法,其特征在于,所述传输速率为106kbps、212 kbps或424 kbps。
4.根据权利要求2所述的近场通信软件栈逻辑链路层的流量控制方法,其特征在于,在所述接收端建立一缓冲区,用于缓冲接收到的数据帧。
5.根据权利要求4所述的近场通信软件栈逻辑链路层的流量控制方法,其特征在于,接收端数据帧的过程包括步骤 Al、接收端接收发送端发送的数据帧; A2、判断所述数据帧序号是否在接收窗口之内; A3、当所述数据帧序号在接收窗口之内时,判断所述数据帧序号是否等于接收窗口下界; A4、当所述数据帧序号不等于接收窗口下界时,将该数据帧序号对应的数据帧放入到缓冲区; A5、当所述数据帧序号等于接收窗口下界时,在所述缓冲区中查找是否含有与该数据帧序号组成连续序列的数据帧; A6、当在所述缓冲区中没有找到能够与该数据帧序号组成连续序列的数据帧时,向接收端返回一确认帧,确认收到数据帧序号等于接收窗口下界的数据帧; A7、当在所述缓冲区中找到能够与该数据帧序号组成连续序列的数据帧时,将接收到的数据帧与所述能够组成连续序列的数据帧组成数据帧组,向接收端返回一确认帧,确认收到所述数据帧组中序号最大的数据帧第i个数据帧。
6.根据权利要求5所述的近场通信软件栈逻辑链路层的流量控制方法,其特征在于,所述步骤A7中,返回确认巾贞后,接收窗口下界设置为FrameExpected =i+l,接收窗口上界设置为TooFar = (i + Receiveffindow ) MOD (MaxSeq + I),其中,FrameExpected 表不接收窗口下界,TooFar表示接收窗口上界,MaxSeq表示需传输的数据巾贞序号的最大值。
7.根据权利要求1所述的近场通信软件栈逻辑链路层的流量控制方法,其特征在于,发送端发送新的数据帧时,对发送窗口上界加I。
8.根据权利要求1所述的近场通信软件栈逻辑链路层的流量控制方法,其特征在于,发送端接收到接收端返回的确认帧时,判断所述确认帧是否是发送窗口下界对应的确认帧,当是时,对发送窗口下界加1,否则将该确认帧的序号加I后作为新的发送窗口下界。
全文摘要
本发明公开一种近场通信软件栈逻辑链路层的流量控制方法,其中,包括步骤在逻辑链路层设置用于对传输的数据帧进行流量控制的发送窗口及接收窗口;根据上层应用确定的传输速率、信道质量确定的通信延迟时间以及数据帧的大小动态调节所述发送窗口尺寸及接收窗口尺寸;所述发送窗口根据所述发送窗口尺寸的大小对发送端进行流量控制,所述接收窗口根据所述接收窗口尺寸的大小对接收端进行流量控制。本发明根据上层应用、信道质量及数据帧大小动态的调节发送窗口尺寸与接收窗口尺寸,从而实现平衡了带宽利用率,又能很好的减少内存资源消耗的目的。
文档编号H04L12/861GK103051558SQ20121051874
公开日2013年4月17日 申请日期2012年12月6日 优先权日2012年12月6日
发明者周宝忠, 肖堃, 申杰 申请人:惠州Tcl移动通信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1