具体实施方式
本发明实施例提供一种数据业务切换的方法及***。为使本发明的技术方案更加清楚明白,以下参照附图并列举实施例,对本发明进一步详细说明。
请参照图1,为本发明数据业务切换的方法的第一实施例的流程图。本实施例中,BS发送的数据采用通用路由封装协议(GRE,Generic RoutingEncapsulation)进行封装,且用户终端从源BS切换到目标BS时,采用非ARQ连接。
本实施例中,用户终端为移动台(MS,Mobile Station)。
数据业务切换的方法的具体过程包括:
步骤101:移动台接入源BS时,源BS发送数据报文给MS时,使用SDUSN扩展子头告知MS当前发送给移动台的SDU报文的相关序号信息;
本实施例中,SDU报文的相关序号信息为SDU报文的SDU序号。接入服务网络网关(ASN GW,Access Service Network Gateway)发送给BS的数据采用GRE进行封装,因此,可以采用GRE包序号的低8位作为SDU报文的SDUSN,也可以采取其他算法通过GRE包序号计算SDU报文的SDU SN,如取低7位等。现有的协议中定义SDU报文的SDU SN一般为8位,取值为0到255。因此,本实施例中,SDU SN的相关信息为SDU报文的GRE包序号的低8位。
所述SDU序号可以由BS根据GRE包的序号生成,也可以由发送报文给ASN GW根据其他方法生成,并且在R4,R6接口的报文中携带序号信息。
源BS在发送媒体接入控制(MAC,Media Access Control)协议数据单元(PDU,Protocol Data Unit)的时候可以通过SDU SN扩展子头(SDU SN extendedsub-header)告知MS当前发送的SDU的序号,虽然源BS不是对每个SDU都会发送这样的扩展子头,但MS会对后续的SDU的序号进行累加,所以MS能知道每个SDU的序号。
步骤102:当MS从源BS切换至目标BS后,MS通过SN上报头(SN reportheader)向目标BS上报SDU报文的SDU SN;
步骤103:目标BS根据上报的SDU报文的SDU SN,从目标BS接收的SDU报文中定位对应的SDU报文,并从所述SDU报文开始继续发送数据给MS。
所述定位对应的SDU报文具体过程包括:
步骤A:目标BS根据上报的SDU报文的SDU SN,计算出MS需要接收的SDU报文的GRE序号;
首先,假设目标BS与GW之间的R6通道建立后,目标BS收到的SDU的GRE序号为G1,那么取G1的低8位作为该SDU报文的SDU SN(假设为S1);
其次,判断上报的SDU报文的SDU SN(假设为S);与目标BS当前收到的SDU报文的SDU SN S1之间的大小:
如果S>S1,且S-S1<128,则MS需要接收的SDU报文的GRE序号计算公式为:G=(G1高24位)左移8位+S;
如果S<S1,且S1-S>128,则MS需要接收的SDU报文的GRE序号计算公式为:G=(G1高24位+1)左移8位+S;
其他情况,则说明切换过程中可能有异常发生,导致数据有丢失,目标BS从GRE序号G1的SDU开始发送数据给MS。
步骤B:目标BS根据计算所得的GRE序号,定位到对应的SDU报文。
所述目标BS接收的SDU报文中包括在切换时,源BS未发送给MS的SDU报文。所述未发送给MS的SDU报文可以通过GW从源BS回传给目标BS,源BS在回传报文时需携带报文的GRE序号信息,GW转发所述报文给目标BS时,采用所述源BS在回传报文时携带的报文的序号;也可以在数据业务切换前由GW缓存,切换后重新发送到目标BS;还可以是在数据业务切换时,由GW对源BS和目标BS进行数据双播,同时发送给源BS和目标BS。
本实施例中,BS发送和接收的数据采用GRE进行封装,因此采用GRE包序号转换获得SDU报文的SDU SN。BS发送和接收的数据还可以采用其他封装方式进行封装。所述其他封装方式具有如下特点:一个R6接口报文对应一个SDU,每个封装报文都有一个包序号,每发送一个报文,序号累加1;或者SDU在R6接口传送的时候需要分段,可以先封装,再分段;也可以先分段,再封装,但这种情况下要求所有分段具有相同的序号,通过其他信息标识分段信息,保证连续的SDU的SN也是连续的,那么则可以采用其他封装方式所对应的包序号转换获得SDU报文的SDU SN。
请参照图2,为本发明数据业务切换的方法的第二实施例的流程图。本实施例中,MS从源BS切换到目标BS时,采用ARQ连接。
所述数据业务切换的方法的具体过程包括:
步骤201:MS接入源BS时,源BS记录SDU报文的SDU SN和块序号(BSN,Block Sequence Number)的对应关系;
如果ARQ连接使用分段功能,则SDU将按照***设定的自动重传请求数据块大小(ARQ_Block_Size)进行分段,源BS记录SDU报文的SDU SN同第一个ARQ数据块的BSN的对应关系;
如果ARQ连接禁止分段,则一个SDU只对应一个ARQ数据块,源BS记录SDU报文的SDU SN同所述ARQ数据块的BSN的对应关系。
步骤202:当MS从源BS切换至目标BS时,源BS告知目标BS最早未发送或者未被应答的SDU及其之前的一个SDU报文所对应的第一个块的BSN;
本实施例中,源BS告知目标BS最早未发送或者未被应答的SDU及其之前的一个或者多个SDU的SDU SN与第一个块的BSN的对应关系。
请参看下表1,为目标BS所接收到的SDU报文的SDU SN与BSN的对应关系表。
表1 SDU SN与BSN对应关系表
SDU SN |
S1 |
S2 |
对应的BSN |
B1 |
B2 |
上述表1中,S2为最早未发送或者未被应答的SDU报文的SDU SN,B2为与所述S2对应的第一个块的BSN;S1为未发送或者未被应答的SDU报文之前的一个SDU报文的SDU SN(所述S1对应的SDU报文已经由源BS发送出去),B1为与所述S1对应的第一个块的BSN。
本实施例中,SDU SN为8位,可以采用GRE包序号的低8位作为SDU SN,也可以采用其他封装形式的序号作为SDN SN,而BSN为11位。
SDU SN的比较规则为:假设0<S2-S1<128,或者S2-S1<-128,则S2大于S1,反之为S2小于S1;BSN的比较规则为:假设0<B2-B1<1024,或者B2-B1<-1024,则B2大于B1,反之为B2小于B1。
步骤203:MS通过SN上报头向目标BS上报SDU报文的相关序号信息;
本实施例中,SDU报文的相关序号信息为BSN。
MS获知SDU报文的BSN的方式为:源BS在发送数据报文给MS时携带所述报文的BSN。
步骤204:目标BS根据MS上报的SDU报文的BSN,以及源BS告知的SDU报文的第一个块的BSN,定位对应的SDU报文,并从所述SDU报文开始发送数据给MS;
如果ARQ连接禁止分段,那么一个SDU只对应一个ARQ数据块,因此可以根据MS上报的SDU报文的BSN直接定位到对应的SDU报文;
如果ARQ连接使用分段功能,目标BS根据MS上报的SDU报文的BSN(假设为Bx),以及源BS告知的SDU报文的第一个块的BSN,定位到对应的SDU报文,其具体方式为:目标BS通过判断Bx与B1、B2之间的大小,定位到对应的SDU报文。
假设MS上报给目标BS的BSN为Bx,且表1中的S2>S1。
如果Bx大于B1,并且小于B2,则MS已经收到S1对应的SDU报文的一部分,因此目标BS从S1对应的SDU报文的第(Bx-B1)×ARQ_Block_Size个字节(第0个字节为起始字节)的位置开始发送数据给MS;
如果Bx小于B1,则说明数据有丢失(Bx对应的SDU及该SDU与B1对应的SDU之间的SDU没有发送到目标BS),因此从S1对应的SDU报文开始发送数据给MS;
如果Bx大于B2,则说明源BS没有将最新的SDU SN与BSN的对应关系发送给目标BS,进行异常处理。
本实施例中,所述目标BS接收的SDU报文中包括在切换时源BS未发送给MS的SDU报文。该报文可以由源BS通过GW回传到目标BS;还可以是在切换时,由GW对源BS和目标BS进行数据双播,同时发送给源BS和目标BS。
请参照图3,为本发明数据业务切换的***一个实施例的结构图。所述数据业务切换***包括移动台31、目标基站32以及源基站33。所述移动台31,用于提供SDU报文的相关序号信息给目标基站32以及接收数据;所述目标基站32,用于接收移动台31提供的SDU报文的相关序号信息,并根据所述SDU报文的相关序号信息,定位对应的SDU报文,并从所述SDU报文开始继续发送数据给移动台31;所述源基站33,用于向所述移动台31发送SDU报文的相关序号信息。
所述目标基站32进一步包括第一接收单元321、定位单元322、发送单元323。所述第一接收单元321,用于接收移动台31提供的SDU报文的相关序号信息;所述定位单元322,用于根据所述接收单元321接收到的SDU报文的相关序号信息,定位到对应的SDU报文;所述发送单元323,用于从所述定位单元322所获取的SDU报文开始发送数据给移动台31。
所述定位单元322可以进一步包括:
计算单元,用于根据接收单元接收的SDU报文的相关序号信息,计算出移动台需要接收的SDU报文的通用路由封装协议包序号;
查找单元,用于根据所述计算单元计算出的SDU报文的通用路由封装协议包序号,找到对应的SDU报文。
所述目标基站32还可以包括:
第二接收单元,用于接收源基站最早未发送或者未被应答的SDU报文及其之前的一个SDU报文所对应的第一个块的块序号。
因此,所述定位单元322可以进一步包括:
判断单元,用于判断移动台上报的SDU报文的块序号与源基站告知的最早未发送或者未被应答的SDU报文及其之前的一个SDU报文各自对应的第一个块的块序号之间的大小;
查找单元,用于根据所述判断单元的判断结果,找到对应的SDU报文。
通过本发明实施例提供的数据业务切换的方法及***、基站,基站能够根据反馈的SDU序号的相关信息,定位对应的SDU报文并发送给移动台,从而保证了用户终端从源基站切换到目标基站后,发送给用户终端的数据的连续性。
以上对本发明所提供的一种数据业务切换的方法及***、基站进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明所揭示的技术方案;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。