Llc帧的处理方法及基站子系统的制作方法

文档序号:7762555阅读:600来源:国知局
专利名称:Llc帧的处理方法及基站子系统的制作方法
技术领域
本发明涉及通信领域,具体而言,涉及一种LLC帧的处理方法及基站子系统。
背景技术
随着全球移动通信系统(Global System for Mobilecommunication,简称为 GSM) 的互联网协议(Internet Protocol,简称为IP)化演进,在Gb接口引入IP传输后,由于 IP技术本身的无连接性,Gb 口逻辑链路控制(Logical Link Control,简称为LLC)帧的顺序传输也无法得到保证。而从通用分组无线业务(GeneralPacket Radio Service,简称为 GPRS)用户面的协议栈来说,基站子系统(Base Station Subsystem,简称为BSS)对于LLC 层的传输是透明的,这样,终端例如手机接收LLC帧的顺序将无法得到保证。图1是根据相关技术的用户面协议栈的示意图,如图1所示,协议第三代合作伙伴计划(3rd Generation Partnership Project,简称为 3GPP) TS23. 060 描述了 GPRS 用户面协议栈,下行用户数据在服务GPRS支持节点(Serving GPRS Supporting Node,简称为 SGSN)通过子网汇聚层(Subnetwork Dependent Convergence Protocol,简称为 SNDCP)拆分后生成LLC帧,手机在接收到LLC帧之后,通过SNDCP层组装接收到的LLC帧还原上层的 IP层数据。协议3GPP TS44. 064及3GPP TS44. 065中定义了两种LLC层的传输模式确认模式和非确认模式。在确认模式下,LLC实体会对发送的每个LLC帧进行确认,接收端在接收到乱序的LLC帧时(S卩,当前这个LLC帧的序号大于所期望接收的LLC帧的序号),会先缓存乱序的LLC帧,直到这个LLC帧之前的所有LLC帧都收到之后,才将该LLC帧发送给SNDCP 层,以保证SNDCP层可以顺利的组装数据。从GPRS网络结构来看,用户数据的传输会经过Um 口、Gb 口等接口,其中Gb接口等一般物理层采用有线连接,可靠性可以得到保证,对于Um 口 RLC/MAC层的确认模式也可以基本保证数据传输的正确性,而LLC确认模式由于需要确认LLC帧的接收必然带来额外的控制消息传输开销,影响到实际数据吞吐率。因此,一般实际应用中均采用LLC层非确认模式。对于非确认模式,LLC层实体接收时不对数据的顺序进行确认,只要在接收窗口之内的LLC帧都直接发送到SNDCP层。SNDCP层根据每个数据帧标识的F标识(表明当前帧是第一个帧)、M标识(表明还有更多的数据帧)以及每个帧的序号来完成上层数据的组装。对于非确认模式下的LLC帧组装,协议3GPP TS44. 065指出对于同一个网络协议数据单元(network protocol data unit,简称为N-PDU)下面的数据单元,SNDCP层必须进行排序以保证顺序的组装成上层的IP数据。而当乱序的范围超过了一个N-PDU的范围时, SNDCP层则无法组成上层数据。

发明内容
4
本发明的主要目的在于提供一种LLC帧的处理方案,以至少解决上述的相关技术中非确认模式乱序超出一定范围时,SNDCP层则无法组成上层数据的问题。为了实现上述目的,根据本发明的一个方面,提供了一种LLC帧的处理方法,该方法包括基站子系统在接收到LLC帧之后,从LLC帧中获取LLC帧序号和服务接入点标识 SAPI ;基站子系统使用序号和SAPI对接收到的LLC帧进行排序,将排序后的LLC帧按顺序下发给终端。为了实现上述目的,根据本发明的另一个方面,提供了一种基站子系统,该基站子系统包括获取模块,用于在接收到LLC帧之后,从LLC帧中获取LLC帧序号和服务接入点标识SAPI ;排序模块,用于使用序号和SAPI对接收到的LLC帧进行排序;发送模块,用于将排序后的LLC帧按顺序下发给终端。通过本发明,采用使用基站子系统对非确认模式乱序的LLC帧进行排序,并将排序后的LLC帧发送给终端的方式,解决了相关技术中非确认模式乱序超出一定范围时, SNDCP层则无法组成上层数据的问题,进而达到了保证LLC帧传输顺序,编码接收端正确组包的效果。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是根据相关技术的用户面协议栈的示意图;图2是根据本发明实施例的LLC帧的处理方法的流程图;图3是根据本发明实施例的基站子系统(Base StationSubsystem,简称为BSS)对 LLC帧处理的示意图;图4是根据本发明实施例的LLC帧插入的示意图;图5是根据本发明实施例三的LLC帧的处理方法的示意图;图6是根据本发明实施例的BSS的结构框图;图7是根据本发明实施例的排序模块64的结构框图;图8是根据本发明实施例的BSS的优选的结构框图。
具体实施例方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。实施例一本发明实施例提供了一种LLC帧的处理方法,图2是根据本发明实施例的LLC帧的处理方法的流程图,如图2所示,该方法包括步骤S202,BSS在接收到一个移动站(Mobile Station,简称为MQ下的LLC帧之后,从LLC帧中获取LLC帧序号和服务接入点标识(Service Access Point Identifier,简称为SAPI);步骤S204,BSS使用该序号和SAPI对接收到的LLC帧进行排序,将排序后的LLC 帧按顺序下发给终端。
在该实施例中,由BSS对非确认模式乱序的LLC帧进行排序,并将排序后的LLC帧发送给终端。也就是说,将GPRS协议栈中的LLC功能实体部分下移至BSS,使得原本对于 BSS透明的LLC功能实体变得可见。从而解决了相关技术中非确认模式乱序超出一定范围时,SNDCP层则无法组成上层数据的的问题,达到了保证LLC帧传输顺序,编码接收端正确组包的效果。其中,BSS使用序号和SAPI对接收到的LLC帧进行排序可以采用以下方式实现 当该LLC帧为非确认模式下的UI帧时,BSS将具有相同SAPI的LLC帧按序号的大小排列在一起,将具有不同SAPI的LLC帧按到达该BSS的先后顺序进行排序;否则,直接插入到队列尾。优选地,对于非确认模式的UI帧,可以采用以下方式进行排序BSS判断LLC帧缓存队列的队尾的LLC帧的SAPI是否与当前要插入的LLC帧的SAPI相同,在判断为是的情况下,则在当前的LLC帧的序号大于队尾的LLC帧的序号的情况下,将当前的LLC帧插入所述所述LLC帧缓存队列的队尾,在判断为否的情况下,在LLC帧缓存队列中从队列尾部开始向队列头部查找,将找到的第一个与当前的LLC帧的SAPI不同的LLC帧作为第一 LLC帧;然后,在LLC帧缓存队列中从第一 LLC帧开始向队列头部查找,将找到的第一个与当前的LLC 帧的SAPI相同的LLC帧作为第二 LLC帧;此时,BSS判断当前的LLC帧的序号是否大于与第二 LLC帧的序号,如果是,则将当前的LLC帧紧邻第一 LLC帧插入第一 LLC帧之后;如果不是,则继续从第二 LLC帧开始向队列头部查找,将找到的第一个序号小于当前的LLC帧的序号的LLC帧作为第三LLC帧,然后,将当前的LLC帧紧邻第三LLC帧插入第三LLC帧后。其中,判断当前的LLC帧的序号是否大于与第二 LLC帧的序号可以使用以下方式判断判断(Ni+NU_RANGE-Nq)mod NU_RANGE彡NU—RANGE/^是否成立,如果是,则当前的LLC 帧的序号小于第二 LLC帧的序号,否则,当前的LLC帧的序号大于第二 LLC帧的序号,其中, 当前的LLC帧的序号为Ni,第二 LLC帧的序号为Nq,NU_RANGE为非确认模式下LLC帧序号空间,取值为512。需要注意的是,上述判断方式不但可以用于第二 LLC帧与当前LLC帧的比较,还可以用于其他LLC帧(例如,第三LLC帧)与当前帧的比较,区别仅在于将第二 LLC 帧的序号换成其他LLC帧的序号。优选地,在对LLC帧进行排序之前,BSS可以现根据序号的编号,检测出Gb 口传输乱序。实施例二图3是根据本发明实施例的BSS对LLC帧处理的示意图,如图3所示,在BSS上解码LLC层数据,然后,获得其SAPI及相应的LLC帧序号,并根据序号的变化检测出Gb 口传输乱序,再根据序号重新对收到的LLC帧进排序后通过空中接口按顺序下发至终端(手机)。 这样,改变了原有的顺序存储LLC帧的做法,从而维护了一个有序的LLC帧缓存发送队列。本实施例在实现过程中对原有的系统改动不大,主要是在BSS上实现部分LLC帧功能,实现对LLC帧的解码排序。图4是根据本发明实施例的LLC帧插入的示意图,下面参照图4对LLC帧的解码排序过程进行说明。1.根据协议3GPP TS44. 064中对LLC帧结构的描述,对收到的一个MS下的每个 LLC帧进行解码,记录其SAPI以及LLC帧号。
2.将解码后的LLC帧插入到LLC帧缓存发送队列中。如果该LLC帧不是非确认模式下的未确认信息(Unconfirmed information,简称为UI)帧,则直接将其插入到队列尾。3.如果该LLC帧是非确认模式下的UI帧,则根据其SAPI及NU从队列尾开始遍历寻找插入位置。首先,比较队列中的LLC帧的SAPI与要插入的LLC帧的SAPI是否相同,如果不相同,则记录当前LLC帧的位置A,并继续向前遍历直到遇到与要插入的LLC帧的SAPI 相同的LLC,将其记做B。4.根据非确认帧号进行比较。假设当前需要插入的LLC帧的序号为Ni,当前队列中遍历到的需要比较的LLC帧的序号为Nq,如果(Ni+NU_RANGE_Nq)mod NU_RANGE < NU_ RANGE/2 (NU_RANGE为非确认模式下LLC帧序号空间,取值为512),则认为当前要插入的LLC 帧序号比队列中当前比较的LLC帧序号大,需要插入到其之后,否则需要继续向前遍历并重复步骤3的过程。5.当确认待插入的LLC帧的序号比图中所示B点的LLC帧的序号大时,为了保证不同SAPI下LLC帧的时间顺序,则将当前需要插入的LLC帧插入到A点。实施例三本实施例对LLC帧的排序过程进行说明,需要说明的是,下面仅对UI帧的排序进行说明,而对于非UI帧,则跳过。图5是根据本发明实施例三的LLC帧的处理方法的示意图,如图5所示,该方法包括步骤S501,BSS获取待发送队列尾部的LLC帧作为当前LLC帧。步骤S502,判断当前LLC帧的SAPI和待插入的LLC帧的SAPI是否相同,如果是, 则进入步骤S503,否则,进行步骤S508。步骤S503,判断待插入的LLC帧的序号是否比当前队列中的LLC帧大,如果是,则进行步骤S504,否则,进行步骤S507。步骤S504,判断第一 LLC帧是否有效,其中,第一 LLC帧是LLC帧缓存队列中从队列尾部开始向队列头部找到的第一个与待插入的LLC帧的SAPI不同的LLC帧。如果是,则进行步骤S505,否则,进行步骤S506。步骤S505,将待插入的LLC帧插入第一 LLC帧之后。步骤S506,将待插入的LLC帧插入当前LLC帧之后。步骤S507,清除记录的第一 LLC帧,然后,进行步骤S510。步骤S508,判断第一 LLC帧是否有效,如果是,则进行步骤S510,否则,进行步骤 S509。步骤S509,记录第一 LLC帧。步骤S510,判断是否已经到达队列头部,如果是,则进入步骤S512,否则,进入步骤 S511。步骤S511,从队列尾部到队列头部的方向获取当前LLC帧的下一个LLC帧作为当前LLC帧,并返回步骤S502。步骤S512,判断第一 LLC帧是否有效,如果是,则进行步骤S513,否则,进行步骤 S514。步骤S513,将待插入的LLC帧插入第一 LLC帧之后。步骤S514,将待插入的LLC帧插入队列头部。
本发明实施例还提供了一种基站子系统,该基站子系统用于实现上述方法。图6是根据本发明实施例的基站子系统的结构框图,如图6所示,该基站子系统包括获取模块62,用于在接收到LLC帧之后,从LLC帧中获取LLC帧序号和服务接入点标识 SAPI ;排序模块64,耦合至获取模块62,用于使用序号和SAPI对接收到的LLC帧进行排序; 发送模块66,耦合至排序模块64,用于将排序后的LLC帧按顺序下发给终端。优选地,排序模块64用于在LLC帧为不是非确认模式下的未确认信息UI帧时,将 LLC帧插入待发送的LLC帧缓存队列的尾部;排序模块64还用于在LLC帧为非确认模式下的UI帧时,将具有相同SAPI的LLC帧按序号的大小排列在一起,将具有不同SAPI的LLC 帧按到达该BSS的先后顺序进行排序。图7是根据本发明实施例的排序模块64的结构框图,如图7所示,排序模块64包括第一判断子模块702,用于判断LLC帧缓存队列的队尾的LLC帧的SAPI是否与当前的LLC帧的SAPI相同;第一插入子模块704,耦合至第一判断子模块702,用于在第一判断子模块702的判断为是的情况下,则在当前的LLC帧的序号大于队尾的LLC帧的序号的情况下,将当前的LLC帧插入队尾的LLC帧的后面;第一查找子模块706,耦合至第一判断子模块702,用于在第一判断子模块702的判断为否的情况下,将在LLC帧缓存队列中从队列尾部开始向队列头部找到的第一个与当前的LLC帧的SAPI不同的LLC帧作为第一 LLC 帧;第二查找子模块708,耦合至第一查找子模块706,用于将在LLC帧缓存队列中从第一 LLC帧开始向队列头部找到的第一个与当前的LLC帧的SAPI相同的LLC帧作为第二LLC帧; 第二判断子模块710,耦合至第二查找子模块708,用于判断当前的LLC帧的序号是否大于与第二LLC帧的序号;第二插入子模块712,耦合至第二判断子模块710,用于在第二判断子模块710的判断结果为是的情况下,将当前的LLC帧紧邻第一 LLC帧插入第一 LLC帧后;第三查找子模块714,耦合至第二判断子模块710,用于在第二判断子模块710的判断结果为否的情况下,从第二LLC帧开始向队列头部查找第一个序号小于当前的LLC帧的序号的LLC 帧作为第三LLC帧;第三插入子模块716,耦合至第三查找子模块712,用于将当前的LLC帧紧邻第三LLC帧插入第三LLC帧后。优选地,第二判断子模块710用于判断(Ni+NU_RANGE_Nq)modNU_RANGE彡NU_ RANGE/2是否成立,如果是,则当前的LLC帧的序号小于第二 LLC帧的序号,否则,当前的 LLC帧的序号大于第二 LLC帧的序号,其中,当前的LLC帧的序号为Ni,第二 LLC帧的序号为Nq,NU_RANGE为非确认模式下LLC帧序号空间,取值为512。图8是根据本发明实施例的BSS的优选的结构框图,优选地,该基站子系统还包括检测模块82,用于根据序号的变化,检测出( 口传输乱序。本发明实施例实现了以下技术效果通过BSS的LLC功能保证了下行LLC帧的传输顺序,避免了接收端由于乱序而无法组成IP包的情况,进而避免了上层IP数据的重传,从而可以更有效的利用空口无线资源,提高GPRS吞吐率。LLC帧的乱序也可能发生在小区重选的过程中。协议3GPP TS48. 018中规定为了避免小区重选过程中的乱序发生,在FLUSH过程中SGSN在发送了 FLUSH逻辑链路(FLUSH logical link,简称为FLUSH-LL)给BSS请求LLC帧转移后,必须等到收到FLUSH-LL-ACK后或者一个内部的保护定时器超时后,才能向新的BSSGP虚连接标识(BSSGP Virtual Connection Identif ier,简称为BVCI)发送随后的LLC帧。本发明实施例通过在BSS对LLC 帧进行排序兼顾了确认LLC模式顺序的特点,以及非确认LLC模式吞吐量大的优势。因此, 在小区重选的过程中,BSS可以尽早的向SGSN发送FLUSH-LL-ACK以加快SGSN在新BVCI下数据的下发,从而减小小区重选对下行吞吐量带来的影响。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
9
权利要求
1.一种逻辑链路控制LLC帧的处理方法,其特征在于,包括基站子系统在接收到LLC帧之后,从所述LLC帧中获取LLC帧序号和服务接入点标识 SAPI ;所述基站子系统使用所述序号和所述SAPI对接收到的所述LLC帧进行排序,将排序后的所述LLC帧按顺序下发给终端。
2.根据权利要求1所述的方法,其特征在于,所述基站子系统使用所述序号和所述 SAPI对接收到的所述LLC帧进行排序包括如果所述LLC帧为不是非确认模式下的未确认信息UI帧,则所述基站子系统将所述 LLC帧插入待发送的LLC帧缓存队列的尾部;如果所述LLC帧为非确认模式下的UI帧,则所述基站子系统将具有相同SAPI的LLC 帧按所述序号的大小排列在一起,将具有不同SAPI的LLC帧按到达所述基站子系统的先后顺序进行排序。
3.根据权利要求2所述的方法,其特征在于,所述基站子系统将具有相同SAPI的LLC 帧按所述序号的大小排列在一起,将具有不同SAPI的LLC帧按到达所述基站子系统的先后顺序进行排序包括所述基站子系统判断所述LLC帧缓存队列的队尾的LLC帧的SAPI是否与当前的所述 LLC帧的SAPI相同,在判断为是的情况下,则在当前的所述LLC帧的序号大于所述队尾的 LLC帧的序号的情况下,将当前的所述LLC帧插入所述队尾的LLC帧的后面,在判断为否的情况下,将在所述LLC帧缓存队列中从队列尾部开始向队列头部找到的第一个与当前的所述LLC帧的SAPI不同的LLC帧作为第一 LLC帧;将在所述LLC帧缓存队列中从所述第一 LLC帧开始向队列头部找到的第一个与当前的所述LLC帧的SAPI相同的LLC帧作为第二 LLC帧;判断当前的所述LLC帧的序号是否大于与所述第二 LLC帧的序号,如果是,则将当前的所述LLC帧紧邻所述第一 LLC帧插入所述第一 LLC帧后;如果不是,则从所述第二 LLC帧开始向队列头部查找第一个序号小于当前的所述LLC 帧的序号的LLC帧作为第三LLC帧,将当前的所述LLC帧紧邻所述第三LLC帧插入所述第三LLC帧后。
4.根据权利要求3所述的方法,其特征在于,判断当前的所述LLC帧的序号是否大于与所述第二 LLC帧的序号包括判断(Ni+NU_RANGE-Nq)mod NU_RANGE彡NU_RANGE/2是否成立,如果是,则当前的所述LLC帧的序号小于所述第二 LLC帧的序号,否则,当前的所述LLC帧的序号大于所述第二 LLC帧的序号,其中,当前的所述LLC帧的序号为Ni,所述第二 LLC帧的序号为Nq,NU_RANGE 为非确认模式下LLC帧序号空间,取值为512。
5.根据权利要求1所述的方法,其特征在于,在使用所述序号和所述SAPI对接收到的所述LLC帧进行排序之前,所述方法还包括根据所述序号的变化,所述基站子系统检测出Gb 口传输乱序。
6.一种基站子系统,其特征在于,包括获取模块,用于在接收到LLC帧之后,从所述LLC帧中获取LLC帧序号和服务接入点标识 SAPI ;排序模块,用于使用所述序号和所述SAPI对接收到的所述LLC帧进行排序; 发送模块,用于将排序后的所述LLC帧按顺序下发给终端。
7.根据权利要求6所述的基站子系统,其特征在于,所述排序模块用于在所述LLC帧为不是非确认模式下的未确认信息UI帧时,将所述 LLC帧插入待发送的LLC帧缓存队列的尾部;所述排序模块还用于在所述LLC帧为非确认模式下的UI帧时,将具有相同SAPI的LLC 帧按所述序号的大小排列在一起,将具有不同SAPI的LLC帧按到达所述基站子系统先后顺序进行排序。
8.根据权利要求7所述的基站子系统,其特征在于,所述排序模块包括第一判断子模块,用于判断所述LLC帧缓存队列的队尾的LLC帧的SAPI是否与当前的所述LLC帧的SAPI相同;第一插入子模块,用于在所述第一判断子模块的判断为是的情况下,则在当前的所述 LLC帧的序号大于所述队尾的LLC帧的序号的情况下,将当前的所述LLC帧插入所述队尾的 LLC帧的后面;第一查找子模块,用于在所述第一判断子模块的判断为否的情况下,将在所述LLC帧缓存队列中从队列尾部开始向队列头部找到的第一个与当前的所述LLC帧的SAPI不同的 LLC帧作为第一 LLC帧;第二查找子模块,用于将在所述LLC帧缓存队列中从所述第一 LLC帧开始向队列头部找到的第一个与当前的所述LLC帧的SAPI相同的LLC帧作为第二 LLC帧;第二判断子模块,用于判断当前的所述LLC帧的序号是否大于与所述第二 LLC帧的序号;第二插入子模块,用于在所述第二判断子模块的判断结果为是的情况下,将当前的所述LLC帧紧邻所述第一 LLC帧插入所述第一 LLC帧后;第三查找子模块,用于在所述第二判断子模块的判断结果为否的情况下,从所述第二 LLC帧开始向队列头部查找第一个序号小于当前的所述LLC帧的序号的LLC帧作为第三 LLC 帧;第三插入子模块,用于将当前的所述LLC帧紧邻所述第三LLC帧插入所述第三LLC帧后。
9.根据权利要求8所述的基站子系统,其特征在于,所述第二判断子模块用于判断 (Ni+NU_RANGE-Nq)mod NU_RANGE彡NU_RANGE/2是否成立,如果是,则当前的所述LLC帧的序号小于所述第二 LLC帧的序号,否则,当前的所述LLC帧的序号大于所述第二 LLC帧的序号,其中,当前的所述LLC帧的序号为Ni,所述第二 LLC帧的序号为Nq,NU_RANGE为非确认模式下LLC帧序号空间,取值为512。
10.根据权利要求6所述的基站子系统,其特征在于,所述基站子系统还包括 检测模块,用于根据所述序号的变化,检测出( 口传输乱序。
全文摘要
本发明公开了一种LLC帧的处理方法及基站子系统,该方法包括基站子系统在接收到LLC帧之后,从LLC帧中获取LLC帧序号和服务接入点标识SAPI;基站子系统使用序号和SAPI对接收到的LLC帧进行排序,将排序后的LLC帧按顺序下发给终端。本发明达到了保证LLC帧传输顺序,编码接收端正确组包的效果。
文档编号H04W80/02GK102447507SQ201010512039
公开日2012年5月9日 申请日期2010年10月12日 优先权日2010年10月12日
发明者吕洪涛, 李姝 , 谈虎 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1