一种移动通讯系统中数据丢失处理方法转让专利

申请号 : CN200610113075.6

文献号 : CN101141225B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 宋科

申请人 : 中兴通讯股份有限公司

摘要 :

本发明公开了一种移动通讯系统中数据丢失处理方法,包括:一,创建一个SN-PDP缓冲;二,每个SN-PDP缓冲挂接一个或有限多个N-PDU缓冲,N-PDU缓冲根据SN-PDU分片的包号接收SN-PDU分片,当N-PDU缓冲在其接收定时器超时且未收到所有SN-PDU分片时,释放已接收SN-PDU分片占用的缓冲;三,每个N-PDU缓冲挂接一个或有限多个SN-PDU分片缓冲;及四,每个SN-PDP缓冲挂接一个或有限多个丢失记忆缓冲,由SGSN将不能组成完整包的SN-PDU分片的包号记入丢弃记忆缓冲,并根据包号丢弃相同包号的非确认方式上行分片。本发明解决了SGSN中非确认方式SNDCP上行数据丢包问题。

权利要求 :

1.一种移动通讯系统中数据丢失处理方法,其特征在于,包括:

在GPRS业务支持节点上为每个用户业务创建一个依赖于子网的收敛协议分组数据协议SN-PDP缓冲;

每个所述SN-PDP缓冲挂接一个或有限多个网络分组数据单元N-PDU缓冲,所述N-PDU缓冲根据依赖于子网的收敛协议分组数据单元SN-PDU分片的包号接收SN-PDU分片,当所述N-PDU缓冲在其接收定时器超时且未收到所有SN-PDU分片时,释放已接收SN-PDU分片占用的缓冲;

每个所述N-PDU缓冲挂接一个或有限多个SN-PDU分片缓冲,同一所述N-PDU缓冲每接收一个SN-PDU分片时,复位所述接收定时器;及每个所述SN-PDP缓冲挂接一个或有限多个丢失记忆缓冲,由GPRS业务支持节点SGSN将不能组成完整包的SN-PDU分片的包号记入所述丢弃记忆缓冲,并根据所述包号丢弃相同包号的非确认方式上行数据分片,当所述丢弃记忆缓冲的丢弃记忆定时器超时,释放该丢弃记忆缓冲,该方法还包括如下过程:步骤一,由所述SN-PDP缓冲接收一非确认方式SN-PDU上行数据分片,并根据该非确认方式SN-PDU上行数据分片的段首标识和段尾标识判断该非确认方式SN-PDU上行数据分片是否独段成包;

步骤二,当该非确认方式SN-PDU上行数据分片不能独段成包时,还包括判断所述丢弃记忆缓冲中是否存在与该非确认方式SN-PDU上行数据分片具有相同包号的元素的步骤,若存在,则丢弃该非确认方式SN-PDU上行数据分片,若不存在,则进一步判断上行包缓冲是否已满;

步骤三,若上行包缓冲已满,则将所述包号加入所述丢弃记忆缓冲并丢弃报文;若上行包缓冲未满,则进一步判断所述SN-PDP缓冲中是否已存在相同包号的包缓冲,若不存在,则创建新的分片缓冲和包缓冲,若已存在,则进一步通过异常判定处理步骤判定该非确认方式SN-PDU上行数据分片是否为重复分片或所述N-PDU缓冲是否超过规定的分片最大值或该非确认方式SN-PDU上行数据分片是否为异常报文;

步骤四,若通过异常判定处理步骤判定为是,则丢弃该非确认方式SN-PDU上行数据分片,释放对应的缓冲区,关闭对应的丢失记忆定时器,加入该非确认方式SN-PDU上行数据分片至所述丢弃记忆缓冲;若通过异常判定处理步骤判定为否,则新建分片缓冲并判断是否满足成包条件;

步骤五,若满足成包条件,则将所述N-PDU缓冲的所有SN-PDU分片缓冲重组为完整的包,释放对应的缓冲区,关闭对应的接收定时器;若不满足成包条件,则将所述新建分片缓冲挂入所述N-PDU缓冲,复位所述接收定时器。

2.根据权利要求1所述的移动通讯系统中数据丢失处理方法,其特征在于,每个所述SN-PDP缓冲都设有一个指向一个包缓冲的指针,属于同一所述SN-PDP缓冲的所有包缓冲通过顺序链表的方式串接,每个所述包缓冲都设有一个指向一个分片缓冲的指针,属于同一所述包缓冲的所有分片缓冲通过顺序链表的方式串接。

3.根据权利要求1或2所述的移动通讯系统中数据丢失处理方法,其特征在于,所述SN-PDP缓冲、所述N-PDU缓冲、所述SN-PDU分片缓冲、所述丢失记忆缓冲、所述接收定时器或所述丢弃记忆定时器在申请一资源时,通过一空闲队列头指针从空闲队列头取走缓冲元素,在释放一资源时,通过一空闲队列尾指针将归还的缓冲元素放置到空闲队列尾。

4.根据权利要求3所述的移动通讯系统中数据丢失处理方法,其特征在于,当所述空闲队列头指针与所述空闲队列尾指针重合时,对应的缓冲区无空闲元素。

说明书 :

技术领域

本发明涉及一种在移动通信系统中减少数据丢失的方法,特别是涉及在通用分组无线业务系统中核心网业务支持节点设备上减少非确认传输模式中上行数据丢失的方法。

背景技术

近年来,各GSM(Global System for Mobile Communications,全球移动通信系统)运营商为了给用户提供更加丰富的数据承载业务,已着手将诸多GSM网络系统逐步扩展为支持GPRS(General Packet Radio Service,通用无线分组业务)的系统,使得数据业务速率大为提高。具体来讲,就是MS(Mobile Station,移动终端)中需要支持一套适用于终端设备的GPRS协议栈,BSC(Base StationController,基站控制系统)中需要加入PCU(Packet Control Unit,分组控制单元)设备,以实现与核心网GPRS设备通信的协议栈,CN(Core Network,核心网)中需要加入SGSN(Service GPRS Support Node,GPRS业务支持节点)和GGSN(Gateway GPRS Support Node,GPRS网关支持节点),以分别实现GPRS网络的移动性管理、会话管理、外网接入以及数据传输等功能。
在GPRS网络协议栈中,SNDCP(Sub-Network Dependent ConvergenceProtocol,依赖于子网的收敛协议)是用户面上MS与SGSN之间的端对端协议,专门用于承载分组数据报文N-PDU(Network Packet Data Unit,网络分组数据单元)。典型地,如IP(Internal Protocol,互联网协议)分组。从MS发送到SGSN(即图l所示的上行方向)的分组是经过LLC(Local Link Control,逻辑链路控制)协议层传输的,LLC层为了适应底层链路的实际承载能力,对LL-PDU(Local Link Control-Packet Data Unit,LLC分组数据单元)的最大长度进行了限制。这也使得发送端SNDCP层需要将N-PDU按照事先协商(即MS与SGSN的LLC层之间的协商)好的长度进行分段,一个N-PDU的每一个SN-PDU(SNDCP分组数据单元)分片都将通过Um接口(无线侧MS与BSC之间的接口)、Gb接口(BSC/PCU与SGSN之间的接口)发送到SGSN上来。
典型地,因为Gb接口可能是通过帧中继网承载,对于一个N-PDU的每一个SN-PDU分片,可能经过帧中继网的不同路径到达SGSN,那么它们到达SGSN的顺序就可能与MS发送时的顺序不一致。这就要求位于SGSN上的接收方SNDCP实体需要在重组SN-PDU分片时具有排序的能力,获得正确的N-PDU,以实现N-PDU的透明传输。
《3GPP TS 44.065》协议规定,SNDCP协议首部的组成结构以及属于同一个N-PDU的所有SN-PDU分片的接收处理和重组方法;非确认方式SN-PDU亦称为SN-UNIT DATA PDU(非确认方式分组数据单元)。
《3GPP TS 44.065》协议规定,每个包(N-PDU)的各个分片中,第一段只有一个,其段首标识F=1;末尾段也只有一个,其段尾标识M=0。不是第一段的分片的段首标识F一律为0;不是末尾段的分片的段尾标识M一律为1,表示还有后续段。每个分片都有一个分段号码Seg,用分段号码来维系一个包的各个分片的顺序。分段号码Seg的取值范围为0至15,就是说,SNDCP协议仅支持同一个包最多被分成16段。
如图2所示,一个N-PDU的第一个分片所形成的SN-PDU协议首部具有四个字节(一个字节是八个二进制位),与分段/重组相关的信息是一位段首标识F,一位段尾标识M,四位分段号码Seg,以及十二位包号N-PDU Number(通常,将一个N-PDU称为一个“包”,它的编号N-PDU Number称为“包号”)。
如图3所示,一个N-PDU的后续段(非第一段)所形成的SN-PDU协议首部具有三个字节,其布局结构以及字段功能与图2所示的首段协议首部类似,只是后续段不需要携带压缩标识(第一段中的DCOMP和PCOMP)。其中,DCOMP(Identifier of the user data compression algorithm used for theN-PDU)为指定N-PDU使用的用户数据压缩算法标识,PCOMP(Identifier ofthe protocol control information compression algorithm used for the N-PDU)为指定N-PDU使用的协议控制信息压缩算法标识。
《3GPP TS 44.065》协议指出,对于非确认方式SN-PDU分片,SNDCP层需要提供排序的功能,并在排序之后依照分片状态机处理机制,进行合法性判断对可以组成完整N-PDU的SN-PDUs分片进行重组,形成完整的N-PDU。SN-PDUs表示多个SN-PDU,s表示复数。
《3GPP TS 44.065》协议指出,接收SNDCP实体始终处于如下三种状态之一:接收第一段状态、接收后续段状态以及丢弃状态,分别表示期待接收第一段、期待接收后续段以及应将接收到的分段丢弃的状态。如果实际接收到的SN-PDU分片与接收状态所期待的不符,那将丢弃该分片并根据该分片改变当前接收状态。可以看出,协议既然规定了非确认方式报文也要进行状态机处理机制,就说明是基于这样一种假设——“不同N-PDU是按照MS发送时的顺序发送到SGSN-SNDCP协议层上来的”,很明显,这种假设对于复杂的帧中继网络是不适用的,因为连续发送的上行SN-PDUs有可能通过不同的路由发送到SGSN上来,所以它们到达的顺序是无法保证的。
典型地,如两个包号分别为1、2的N-PDUs都分成两段经过帧中继网发送到SGSN上来,SGSN-SNDCP协议栈依次接收到如下SN-PDU分片:包1段1、包2段2、包1段2、包2段1。那么,在接收到包2段2时,依据协议规定的状态机处理机制,就应该继续转而期待接收包2的分片,而后续包却是包1段2,导致这两个包都将被丢弃。换句话说,协议指出的按照接收状态机方式处理分片的方法是不合适的。
除了上述情况会导致上行数据丢失问题外,依据SGSN设备本身的实现,也有可能产生不必要的丢包。因为作为网络侧设备,分配给不同应用使用的资源配额都是限定的,如果配额达到最大值,那么后续的业务将不能得到处理。典型地,如SGSN-SNDCP接收上行SN-PDU的缓冲区资源已用尽,那么后续再接收到的SN-PDU将被丢弃,直到相应缓冲区资源得到释放而有空闲缓冲可用时为止。《3GPP TS 44.065》协议指出,如果在一段时间内没有接收到一个N-PDU的全部SN-PDU分片的话,这个N-PDU的所有分片将被丢弃。一般SGSN设备都是使用定时器超时机制实现的,这也意味着在接收到全部分片或在定时器超时之前SN-PDU缓冲区将被这些分片所占用。长时间地(尤其是不必要地)占用可能会导致达到配额最大值,因而引起一定程度的丢包现象。

发明内容

本发明所要解决的技术问题在于提供一种移动通讯系统中减少数据丢失的方法,用于解决GPRS移动通讯系统核心网设备SGSN中非确认方式SNDCP上行数据丢包问题。
为了实现上述目的,本发明提供了一种移动通讯系统中数据丢失处理方法,其特征在于,包括:
在GPRS业务支持节点上为每个用户业务创建一个SN-PDP缓冲;
每个所述SN-PDP缓冲挂接一个或有限多个N-PDU缓冲,所述N-PDU缓冲根据SN-PDU分片的包号接收SN-PDU分片,当所述N-PDU缓冲在其接收定时器超时且未收到所有SN-PDU分片时,释放已接收SN-PDU分片占用的缓冲;
每个所述N-PDU缓冲挂接一个或有限多个SN-PDU分片缓冲,同一所述N-PDU缓冲每接收一个SN-PDU分片时,复位所述接收定时器;及
每个所述SN-PDP缓冲挂接一个或有限多个丢失记忆缓冲,由SGSN将不能组成完整包的SN-PDU分片的包号记入所述丢弃记忆缓冲,并根据所述包号丢弃相同包号的非确认方式上行数据分片,当所述丢弃记忆缓冲的丢弃记忆定时器超时,释放该丢弃记忆缓冲,该方法还包括如下过程:
步骤一,由所述SN-PDP缓冲接收一非确认方式SN-PDU上行数据分片,并根据该非确认方式SN-PDU上行数据分片的段首标识和段尾标识判断该非确认方式SN-PDU上行数据分片是否独段成包;
步骤二,当该非确认方式SN-PDU上行数据分片不能独段成包时,还包括判断所述丢弃记忆缓冲中是否存在与该非确认方式SN-PDU上行数据分片具有相同包号的元素的步骤,若存在,则丢弃该非确认方式SN-PDU上行数据分片,若不存在,则进一步判断上行包缓冲是否已满;
步骤三,若上行包缓冲已满,则将所述包号加入所述丢弃记忆缓冲并丢弃报文;若上行包缓冲未满,则进一步判断所述SN-PDP缓冲中是否已存在相同包号的包缓冲,若不存在,则创建新的分片缓冲和包缓冲,若已存在,则进一步通过异常判定处理步骤判定该非确认方式SN-PDU上行数据分片是否为重复分片或所述N-PDU缓冲是否超过规定的分片最大值或该非确认方式SN-PDU上行数据分片是否为异常报文;
步骤四,若通过异常判定处理步骤判定为是,则丢弃该非确认方式SN-PDU上行数据分片,释放对应的缓冲区,关闭对应的丢失记忆定时器,加入该非确认方式SN-PDU上行数据分片至所述丢弃记忆缓冲;若通过异常判定处理步骤判定为否,则新建分片缓冲并判断是否满足成包条件;
步骤五,若满足成包条件,则将所述N-PDU缓冲的所有SN-PDU分片缓冲重组为完整的包,释放对应的缓冲区,关闭对应的接收定时器;若不满足成包条件,则将所述新建分片缓冲挂入所述N-PDU缓冲,复位所述接收定时器。
所述的移动通讯系统中数据丢失处理方法,其中,每个所述SN-PDP缓冲都设有一个指向一个包缓冲的指针,属于同一所述SN-PDP缓冲的所有包缓冲通过顺序链表的方式串接,每个所述包缓冲都设有一个指向一个分片缓冲的指针,属于同一所述包缓冲的所有分片缓冲通过顺序链表的方式串接。
所述的移动通讯系统中数据丢失处理方法,其中,所述SN-PDP缓冲、所述N-PDU缓冲、所述SN-PDU分片缓冲、所述丢失记忆缓冲、所述接收定时器或所述丢弃记忆定时器在申请一资源时,通过一空闲队列头指针从空闲队列头取走缓冲元素,在释放一资源时,通过一空闲队列尾指针将归还的缓冲元素放置到空闲队列尾。
所述的移动通讯系统中数据丢失处理方法,其中,当所述空闲队列头指针与所述空闲队列尾指针重合时,对应的缓冲区无空闲元素。
采用本方法,较好地解决了GPRS移动通讯系统核心网设备SGSN中非确认方式下SNDCP上行数据经过帧中继网络时因为报文到达顺序与发送顺序不一致而引起的SGSN侧多种丢包问题。
本发明明确SNDCP非确认方式数据传输不依赖于接收状态机方式,避免了可能产生的丢包情况。
本发明规定使用SN-PDP(SNDCP Packet Data Protocol,SNDCP分组数据协议)缓冲、N-PDU缓冲、SN-PDU分片缓冲二级链表管理方式,允许同一用户业务的有限多个不同N-PDU的分片交错到达,即大幅度减少SN-PDU的接收与包号的耦合性,以允许各种复杂的乱序情况发生,从而减少了因之产生的丢包情况。
本发明为每个SN-PDP缓冲引入丢弃记忆缓冲,使得可以直接丢弃已经确认不可能重组成完整包的分片,而不是需要等到接收定时器超时才将它们丢弃,这样可以节省定时器资源和接收缓冲区资源。而各种资源达到配额最大值时将不能再继续进行接收报文处理,而造成丢包,所以本发明减少了因之产生的丢包情况。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。

附图说明

图1为GPRS协议栈示意图;
图2为非确认方式SN-PDU协议首部(第一段)示意图;
图3为非确认方式SN-PDU协议首部(后续段)示意图;
图4为本发明数据缓冲结构示意图;
图5为本发明独段成包情况的分片示意图;
图6为本发明两段成包情况的分片示意图;
图7为本发明多段成包情况的分片示意图;
图8为本发明移动通讯系统中减少数据丢失的方法流程图;
图9为本发明移动通讯系统中减少数据丢失的一具体方法流程图。

具体实施方式

请参阅图4所示,为本发明数据缓冲结构示意图。该数据缓冲结构为本发明SGSN-SNDCP非确认方式上行数据缓冲结构。本发明采用了二层缓冲管理机制。每个SN-PDP缓冲都保存一个指向一个包缓冲的指针,属于同一个SN-PDP缓冲的所有包缓冲都用顺序链表的方式串连起来,每个包缓冲都保存一个指向一个分片缓冲的指针,属于同一个包缓冲的所有分片缓冲都用顺序链表的方式串连起来。每个SN-PDP缓冲挂接的包(N-PDU)缓冲的个数有限,例如,可以规定最多4个。每个包缓冲挂接的分片(SN-PDU)缓冲的个数是有限的,最大不能超过SNDCP协议支持的一个包最大分片个数,即16个。
本发明为每个包缓冲配备一个接收定时器,如果接收定时器超时,还没有接收到一个包的所有分片的话,则丢弃这个包的所有分片缓冲,并丢弃这个包缓冲。每收到一个分片,就要复位一次该包缓冲的接收定时器,除非该分片是这个包的最后一个分片。
SGSN通过对接收分片处理,发现不能组成完整包时,须将已存在的相关缓冲资源释放;SGSN通过对接收分片处理,发现该分片的包号已经存在于该SN-PDP缓冲的丢弃记忆表中,则直接丢弃该分片。每个使用中的丢弃记忆缓冲都启动一个丢弃记忆定时器,在该丢失记忆定时器超时之后,要将该丢弃记忆缓冲从相应SN-PDP缓冲的丢弃记忆表中释放。
本发明所使用的资源包括:SN-PDP缓冲、N-PDU缓冲、SN-PDU分片缓冲”、丢弃记忆缓冲、接收定时器、丢弃记忆定时器;这些资源的总数均有限。典型地,其使用方式均可采用空闲队列管理机制,即提供空闲队列头指针、空闲队列尾指针。申请一个资源的时候,就从空闲队列头取走一个缓冲元素,释放一个资源的时候,就将归还的缓冲元素放到空闲队列尾。如果空闲队列头指针与空闲队列尾指针重合,就说明缓冲区已经没有空闲元素可用了。
N-PDU缓冲、丢弃记忆缓冲的个数之所以为有限多个,原因在于电信网络侧设备要求长时间稳定运行,所以一般不采取动态申请、释放内存的方法,而是在设备启动时分配好固定大小的缓冲区;而设备物理内存的容量是有限的;故,N-PDU缓冲、丢弃记忆缓冲的个数是有限的。
请参阅图5所示,为本发明独段成包情况的分片示意图。对于F=1且M=0的独段成包分片,即发送端没有将N-PDU分段,SN-PDU中包含了完整的N-PDU。这种情况不经过本发明二层缓冲机制处理,直接进行后续处理。
请参阅图6所示,为本发明两段成包情况的分片示意图。如果一个包被分成两段,那么用这两个SN-PDU分片的段首标识F和段尾标识M就可以完成对组包条件的判断。不管哪一段先到,都是创建一个分片缓冲,并创建一个包缓冲,将分片缓冲关联到包缓冲上,启动接收定时器,等待后续分片达到。如果一个包缓冲中的两个SN-PDU分片缓冲的分段标识分别是“F=1且M=1且Seg=0”和“F=0且M=0且Seg=1”,即达到成包条件,按照分段号码Seg重新排序这两个分片,继而重组成原始包(N-PDU),并进行后续处理。
请参阅图7所示,为本发明多段成包情况的分片示意图。该多段成包情况的分片是以三段为例。如果一个包被分成三段,每个分片的组合情况如下:
第一段:F=1且M=1且Seg=0;
第二段:F=0且M=1且Seg=1;
第三段:F=0且M=0且Seg=2。
如果一个包被分成四段(或者四段以上),中间两段的F/M组合是完全相同的,每个分片的组合情况如下:
第一段:F=1且M=1且Seg=0;
第二段:F=0且M=1且Seg=1;//与第三段完全相同
第三段:F=0且M=1且Seg=2;//与第二段完全相同
第四段:F=0且M=0且Seg=3。
通过分段号码Seg的自然序排列,就可以判断出去掉首尾两段之外的所有中间段的发送时顺序,从而排序、重组成完整原始包(N-PDU),并进行后续处理。
在正常情况下,达到一个包的所有分片重组条件时,才会释放相关的包缓冲以及这个包的分片缓冲。但是在异常情况下,即使没有达到成包(一个包的所有分片组成完整的包)条件,也应释放各种缓冲资源。以下描述各种缓存释放情况及其发生的前因和后果。
情况一,发生条件:达到一个包的成包条件。产生动作:将该包的所有分片缓冲重组成完整包,并进行后续处理。释放该包缓冲以及这些分片缓冲。杀死接收定时器。
情况二,发生条件:超时。接收定时器到,表示此时仍未收到能组成完整包的所有分片。产生动作:释放该包的所有分片缓冲以及包缓冲本身。创建一个丢弃记忆缓冲并挂入该SN-PDP缓冲的丢弃记忆表中。
情况三,发生条件:没有空闲分片缓冲而无法接收新的分片。产生动作:释放该包的所有分片缓冲以及包缓冲本身。创建一个丢弃记忆缓冲并挂入该SN-PDP缓冲的丢弃记忆表中。
情况四,发生条件:达到一个SN-PDP缓冲所能挂接的最大包数而无法接收新的分片。产生动作:释放该包的所有分片缓冲以及包缓冲本身。创建一个丢弃记忆缓冲并挂入该SN-PDP缓冲的丢弃记忆表中。
情况五,发生条件:没有空闲包缓冲而无法接收新的分片。产生动作:释放该包的所有分片缓冲以及包缓冲本身。创建一个丢弃记忆缓冲并挂入该SN-PDP缓冲的丢弃记忆表中。
情况六,发生条件:达到一个包缓冲所能挂的最大分片数(如:十六个)而无法接收新的分片。产生动作:释放该包的所有分片缓冲以及包缓冲本身。创建一个丢弃记忆缓冲并挂入该SN-PDP缓冲的丢弃记忆表中。
情况七,发生条件:当前收到的分片协议首部信息异常。产生动作:释放该包的所有分片缓冲以及包缓冲本身。创建一个丢弃记忆缓冲并挂入该SN-PDP缓冲的丢弃记忆表中。
情况八,发生条件:启动包缓冲的接收定时器失败。产生动作:释放该包的所有分片缓冲以及包缓冲本身。创建一个丢弃记忆缓冲并挂入该SN-PDP缓冲的丢弃记忆表中。
请参阅图8所示,为本发明移动通讯系统中减少数据丢失的方法流程图。该流程具体包括如下步骤:
步骤801,在SGSN上为每个用户业务创建一个SNDCP协议层的缓冲(简记为SN-PDP缓冲);
步骤802,每个SN-PDP缓冲挂接一个或有限多个N-PDU缓冲。SGSN上N-PDU缓冲的总数是有限的。每个N-PDU缓冲都拥有一个接收定时器,若该接收定时器超时时仍未收到该N-PDU的所有分片,则将所有已收到的分片占用的缓冲释放;
步骤803,每个N-PDU缓冲挂接一个或有限多个SN-PDU分片缓冲。SGSN上SN-PDU分片缓冲的总数是有限的。新发送上来的分片属于哪个包缓冲,可以通过分片中的包号(N-PDU Number)确定。对于同一个N-PDU缓冲,每接收到一个SN-PDU分片,就要复位(停止并立即重新启动)该N-PDU缓冲的接收定时器;
步骤804,每个SN-PDP缓冲挂接一个丢弃记忆表,即一个或多个丢弃记忆缓冲。SGSN将不可能组成完整包的分片的包号记入丢弃记忆缓冲。SGSN根据丢弃记忆缓冲中的包号,直接丢弃相同包号的非确认方式上行数据分片。每个丢弃记忆缓冲都拥有一个丢弃记忆定时器,当该定时器超时,则释放该丢弃记忆缓冲。
其中,接收定时器和丢弃记忆定时器也是SGSN设备中的数量有限的资源。
请参阅图9所示,为本发明移动通讯系统中减少数据丢失的一具体方法流程图。该流程具体包括如下步骤:
步骤901,一SN-PDP缓冲上接收到一非确认方式SN-PDU上行数据。根据其段首标识F和段尾标识M判断其是否独段成包。如果是,则执行步骤907;否则,进入步骤902。
步骤902,对于非独段成包的情况,判断该SN-PDP缓冲上的丢弃记忆表中是否存在与该非确认方式SN-PDU上行数据具有相同N-PDU Number的元素。如果存在,直接丢弃,否则,进入步骤903。
步骤903,判断上行包缓冲是否已满。如果已满,则将该N-PDU Number加入该SN-PDP缓冲的丢弃记忆表并将该非确认方式SN-PDU上行数据丢弃,否则,进入步骤904。
步骤904,判断该SN-PDP缓冲是否已经存在相同N-PDU Number的包缓冲。如果不存在,则创建新的分片缓冲和包缓冲,并启动该包缓冲的接收定时器。这其中可能存在新建分片缓冲、启动接收定时器失败的情况,只要是失败的情况,就需要将该N-PDU Number加入丢弃记忆表。如果存在,则进入步骤905。
步骤905,通过异常判定处理流程,判定该该非确认方式SN-PDU上行数据是否是重复分片或者是否该N-PDU已经超过了协议规定或隐含规定的分片最大个数(如:SNDCP协议隐含规定一个包最多16个分片),或者该非确认方式SN-PDU上行数据是一个包的首段但是其分段号码Seg不等于0等与协议不符的异常报文。如果是,则丢弃该非确认方式SN-PDU上行数据,并丢弃释放所有相关缓冲区,杀死相关定时器,并加入丢弃记忆表;否则,转入步骤906。
步骤906,新建分片缓冲并判断是否满足成包条件。如果满足,则将该N-PDU缓冲的所有SN-PDU分片缓冲重组为完整的N-PDU,释放相关缓冲区,杀死包缓冲的接收定时器,执行步骤907;否则,将该分片缓冲挂入该包缓冲中,复位包缓冲的接收定时器。
步骤907,进行后续的正常处理。
采用本发明方法,较好地解决了GPRS移动通讯系统核心网设备SGSN中非确认方式下SNDCP上行数据经过帧中继网络时因为报文到达顺序与发送顺序不一致而引起的SGSN侧多种丢包问题。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。