一种数据封装链路丢包和乱序统计的方法及系统的制作方法

文档序号:7759213阅读:192来源:国知局
专利名称:一种数据封装链路丢包和乱序统计的方法及系统的制作方法
技术领域
本发明涉及无线通信系统中的封装技术,特别涉及一种数据封装包丢包和乱序的统计方法及其系统。
背景技术
数据链路上出现的丢包和乱序情况使本领域的技术人员不能准确的分析网络的可靠性以及网络拓扑合理性,严重影响网络系统的性能;例如,通用路由封装(Generic Routing Encapsulation, GRE)是网络中通过隧道将通信从一个专用网络传输到另一个专用网络常用到的一个协议。例如在CDMA20001xEV-D0系统中,分组数据服务节点(PDSN)与分组数据功能(PCF)间的AlO链路就采用GRE技术,以承载上层点到点协议(PPP)报文。由于DO系统AlO的GRE链路上常常出现丢包与乱序的现象,导致GRE报文分段在链路中丢失或者乱序到达,从而导致点到点协议(PPP)重组失败,对DO系统的性能产生很大的影响。现有技术中,在DO系统中的链路上利用发送端将通用路由封装填写到报文中的序号来识别报文的先后顺序,当收到一个报文时,将其序号与保存的前一个包的报文序号进行比较。如果当前接收到的包的序号等于前一个包的序号加1,则判断为顺序,顺序量加 1 ;如果当前接收到的包的序号小于前一个包的序号,则判断为乱序,乱序量加1 ;如果当前包的序号大于前一个包的序号加1,则判断为丢包,丢包量加1。按上面的方法统计出的量是不准确,例如,当链路上某一时刻丢失的一个或数包在后面的时刻又发送到了接收端,即仅存在乱序而没有丢包的情况下,统计的丢包量也不为0。但由于没有丢包现象的发生,丢包量应该为0,因此,现有技术中的方法对于链路状态的描述是不准确的。《在多协议标签交换网络中监测丢包率的方法》(申请号为CN200510058846.1)中公开了一种在多协议标签交换(MPLS)网络中监测丢包率的方法该方法在多协议标签交换连接的源节点定时发送给宿节点的连通性校验帧或快速故障检测帧中,携带该源节点已发送的报文数;在所述多协议标签交换连接的宿节点捕获并解析所述连通性校验帧或快速故障检验帧,记录源节点已发送的报文数和本节点当前时刻已接收的报文数,并根据连续两个时刻已发送的报文数和接收的报文数计算出丢包率。该方法局限于链路实现多协议标签交换协议,连通性校验帧或快速故障检测帧的传输会占用一定带宽,且必须在连通性校验或者故障校验时才能进行检测,从而计算出丢包率,不具有实时性;而且该方法也不能计算出传输过程的乱序率。《无连接报文交换网络中报文乱序及重复的检测方法》(申请号为 CN200510135299)提出了一种无连接报文交换网络中报文乱序及重复的检测方法。该方法的发送端在用于检测的无连接报文交换网络报文中设置报文的序列号信息;然后,接收端根据接收到的报文中的序列号信息来判断进行无连接报文交换网络中是否有报文乱序及重复现象的发生。该检测方法受限于窗口的宽度,且检测不出链路的丢包的情况。因此,需要一种实时检测链路丢包和乱序,并能精确统计出丢包量和乱序量的方法,为分析网络的可靠性、网络拓扑合理性,提供可靠的评估依据。

发明内容
本发明要解决的主要技术问题是,提供一种数据封装链路丢包和乱序的统计方法及系统,能实时、精确的统计出链路中的当前丢包量和当前乱序量,为网络的可靠性和网络拓扑合理性的评估提供可靠的依据。为解决上述技术问题,本发明提供了一种封装链路丢包和乱序统计的方法及装置,所述方法包括以下步骤动态设置第一参考序号;在数据封装链路的接收端,截取接收到的当前数据封装包的序号;将截取到的当前数据封装包的序号与第一参考序号进行比较,根据比较结果确定当前丢包量和当前乱序量。根据比较结果确定当前丢包量和当前乱序量按如下方式进行判断接收端截取到的当前数据封装包的序号是否为接收到的第一个数据封装包的序号,若是,则按规则1进行比较,若不是,则按规则2进行比较。在本发明的一种实施例中,判断截取到的当前数据封装包的序号是否为接收到的第一个数据封装包的序号按如下方式进行接收到当前数据封装包的序号后,判断所述第一参考序号是否为无效值,若是,则接收到的前数据封装包的序号为接收到的第一个数据封装包的序号。在本发明的一种实施例中,规则1为将第一参考序号设置为将要发送的数据封装包中最小的序号,将接收到的第一个数据封装包的序号与所述第一参考序号比较,若大于所述第一参考序号,则判断为伪丢包,当前丢包量增加的值为所述接收到的第一数据封装包的序号减所述第一参考序号,将第一参考序号更新为接收到的第一个数据封装包的序号,若等于所述第一参考序号的值,继续接收下面的数据封装包的序号。在本发明的一种实施例中规则2为如果当前数据封装包的序号等于第一参考序号加1,则判断为顺序,第一参考序号更新为当前数据封装包的序号;如果当前数据封装包的序号大于第一参考序号加1,则判断为伪丢包,当前丢包量增加的值为当前数据封装包的序号减第一参考序号再减1,第一参考序号更新为当前数据封装包的序号;如果当前数据封装包的序号小于第一参考序号,则判断为乱序,当前乱序量加1, 当前丢包量减1。在判断截取到的当前数据封装包的序号是否为接收到的第一个数据封装包的序号步骤的前一个步骤或后一个步骤为判链路上数据包的发送是否结束。在本发明的一种实施例中,判链路上数据封装包的发送是否结束按如下方式进行判断当前数据封装包的序号是否为将要发送的所有数据封装包中的最大序号,若是,则链路上数据包的发送结束,判断为回环,初始化第一参考序号,进入下一轮新的数据封装包的发送。在本发明的一种实施例中,还包括第二参考序号,设置第二参考序号,将所述截取到的当前数据封装包的序号与所述第一参考序号和第二参考序号进行比较,根据比较结果确定当前丢包量和当前乱序量。在本发明的一种实施例中,根据比较结果确定当前丢包量和当前乱序量按如下方式进行判断接收端截取到的当前数据封装包的序号是否为接收到的第一个数据封装包的序号,若是,则将第一序号和第二序号更新为当前数据封装包的序号;若不是,则按规则3 进行比较。在本发明的一种实施例中,判断接收端截取到的当前数据封装包的序号是否为接收到的第一个数据封装包的序号按如下方式进行如果所述第一参考序号和第二参考序号至少有一个为无效值,则所述当前数据封装包的序号为接收到的第一个数据封装包的序号。在本发明的一种实施例中,所述规则3具体如下如果当前数据封装包的序号小于第一参考序号,则将其丢弃;如果当前数据封装包的序号大于第一参考序号且等于第二参考序号加1,则判断为顺序,第二参考序号更新为当前数据封装包的序号;如果当前数据封装包的序号大于第一参考序号且大于第二参考序号加1,则判断为伪丢包,当前丢包量增加的个数为当前数据封装包的序号减第二参考序号再减1,第二参考序号更新为当前数据封装包的序号;如果当前数据封装包的序号大于第一参考序号且小于第二参考序号,则判断为乱序,当前乱序量加1,当前丢包量减1。根据当前丢包量和当前乱序量,得到当前丢包率和当前乱序率,当所述的当前丢包率或当前乱序率达到告警门限时,发出丢包告警或者乱序告警。本发明还提供了一种封装链路丢包和乱序统计的系统,包括探测装置,判决装置和统计装置,所述探测装置截取接收到的当前数据封装包的序号,并将其传送给所述判决装置,所述判决装置将接收到的所述当前数据封装包的序号与第一参考序号进行比较判决,并将判决的结果传送给所述统计装置,所述统计装置根据接收到的判决结果确定当前接收量、当前丢包量和当前乱序量。本发明的有益效果是本发明通过在接收端实时的对接收到的当前数据封装包的序号进行截取并将其与动态设置的第一参考序号进行比较,从而能够精确的得到当前丢包量以及当前乱序量,为网络的可靠性和网络拓扑合理性的评估提供可靠的依据。另外,由于本发明仅在接收端一侧进行乱序和丢包的统计,算法简洁高效,更易于在芯片中实现。


图1为本发明一种实施例的系统框图;图2为本发明一种实施例的判决装置的工作流程图;图3为本发明一种实施例的统计装置的工作流程图;图4为本发明另一种实施例的系统框图;图5为本发明另一种实施例的判决装置的工作流程图;图6为本发明另一种实施例的统计装置的工作流程图。
具体实施例方式下面通过具体实施方式
结合附图对本发明作进一步详细说明。具体实施例1 本发明所述方法的一种实施例包括以下步骤动态设置第一参考序号;在数据封装链路的接收端,截取接收到的当前数据封装包的序号;将截取到的当前通用路由封装包的序号与第一参考序号进行比较,根据比较结果确定当前丢包量和当前乱序量。其中,第一参考序号初始设置时可设置为无效值,即除了数据封装包的序号之外的任意值,也可以是最大的数据封装包的序号,用于判断接受到的当前数据封装包是否为接收到的第一个数据封装包。当前通用路由封装包的序号与第一参考序号进行比较具体可如下判断接收端截取到的当前数据封装包的序号是否为接收到的第一个数据封装包的序号接收到当前数据封装包的序号后,判断所述第一参考序号是否为无效值,若是,则接收到的前数据封装包的序号为接收到的第一个数据封装包的,按规则1进行比较,否则, 按规则2进行比较。本实施例中,规则1为将第一参考序号设置为将要发送的数据封装包中最小的序号,将接收到的第一个数据封装包的序号与所述第一参考序号比较,若大于所述第一参考序号,则判断为伪丢包,当前丢包量增加的值为所述接收到的第一数据封装包的序号减所述第一参考序号,将第一参考序号更新为接收到的第一个数据封装包的序号;若等于所述第一参考序号的值,继续接收下面的数据封装包的序号。本实施例中规则2为如果当前数据封装包的序号等于第一参考序号加1,则判断为顺序,第一参考序号更新为当前数据封装包的序号;如果当前数据封装包的序号大于第一参考序号加1,则判断为伪丢包,当前丢包量增加的值为当前数据封装包的序号减第一参考序号再减1,第一参考序号更新为当前数据封装包的序号;如果当前数据封装包的序号小于第一参考序号,则判断为乱序,当前乱序量加1, 当前丢包量减1。本实施例中,在判断截取到的当前数据封装包的序号是否为接收到的第一个数据封装包的序号步骤的前一个步骤或后一个步骤为判断数据链路上数据包的发送是否结束,其判断方式可如下判断当前数据封装包的序号是否为所有数据封装包中的最大序号,若是,则链路上数据包的发送结束,判断为回环,初始化第一参考序号,进入下一轮新的封装数据包的发送。本实施例中将丢包和乱序量化的原理如下在传输结束时,将接收端在数据封装链路上先后收到各数据封装包的序号看作一个数学上的序列。在理想链路上,上述序列是严格的递增序列。但在实际的链路上,接收到的序列常常是参差不齐的数列。本实施例中称接收端接收到的这一个参差不齐的序列为原始序列,将上述原始序列进行拆分,提出三个子序列即顺序序列、乱序序列、和丢包序列,具体定义分别如下原始序列接收端收到的各个数据封装包的序号组成的序列;顺序序列原始序列中各个数据封装包的序号组成的递增子序列;乱序序列原始序列中上述递增子序列的补集;丢包序列按严格递增顺序将原始序列重新排序后,缺失的序号组成的序列。根据以上序列的概念,本实施例中提出以下各个量的量化值接收量原始序列中数据封装包的序号的个数;乱序量乱序序列中数据封装包的序号的个数;丢包量;丢失序列中数据封装包的序号的个数。进一步的,由上述定义可知,本实施例中发送端发送的数据封装包的个数等于接收量与丢包量之和,由此可得出丢包率及乱序率的量化公式如下丢包率=^^乱序率=^^
接收量+丢包量接收量+丢包量但在实际的系统中,链路丢包与乱序的统计并不是在传输结束时,才把接收端的接收到的各个数据封装包的序号组成上述各个序列保存下来,再应用上面的量化原理分别得到其量化值,而是需要在接收端一侧进行实时的统计,因此实时统计必然面临一个问题, 当接收端按递增顺序接收数据封装包时,可能会缺失一个或数个数据封装包,但上述缺失的一个或数个数据封装包可能会随后到达,也可能是在链路中丢弃了,不会再到达;则上述缺失的数据封装包要参考后续时间的信息才能精确统计,而在当前时刻是无法精确统计的。本实发明的施例中采用假设验证的方法,即先假设上述缺失的数据封装包为丢包,并将其统计到上述丢包序列,并更新相应的丢包量;在后续的时间里,如果缺失的封装包没有到达,则假设正确;如果缺失的封装包随后到达了,则假设错误,并纠正前面的统计。下面结合本实施例做进一步具体的说明。本实施例设定第一参考序号和当前数据封装包的序号分别用v,Vnow表示,其中 ν在判断接收的Vnow是否为接收到的第一个数据封转包的序号的步骤中,ν可设定为无效值,即其初始值可为无效值;本实例中取无效值可为数据封装包的序号之外的任何一个特殊字符或者取最大的数据封装包的序号,而发送端在确定了将要发送的所有数据封装包的序号后,将其中最大的序号和最小序号发送给接收端,接收端根据接收到的最大序号和最小序号进行相应的设置。在其他步骤中ν可随着接收到的Vnow更新,且更新为接收到的最大的Vnow,将接收到的Vnow与ν进行比较即可得到当前丢包量、当前乱序量,具体如下设定ν ;在数据封装链路的接收端,截取接收到的Vnow ;判断接收到的Vnow是否为接收到的第一个Vnow,即判断ν是否为无效值,若是,则接收到的Vnow为接收到的第一个Vnow,按规则1,将ν设置为数据封装包中最小的序号值, 即第一封装包的序号值,且最小值根据实际境况可做相适应的调整,在将Vnow与ν进行比较,如果Vnow > ν,则判断为伪丢包,当前丢包量增加Vnow-v,当前接收量增加1,将ν更新为Vnow,若Vnow = v,则判断为顺序,当前接收量增加1,继续进行下一个数据封装包的判断;若接收到的Vnow判断为不是接收到的第一个Vnow,则将Vnow与ν按规则2进行如下比较判断如果Vnow = ν+l,则判断为顺序,当前接收量增加1,继续接收下面数据封装包的序号,ν更新为Vnow;如果Vnow > ν+l,则判断为伪丢包,当前接收量增加1,当前丢包量增加的值为 Vnow-v-1, ν 更新为 Vnow ;如果Vnow < V,则判断为乱序,当前接收量增加1,当前乱序量加1,当前丢包量减 1。进一步的,根据得到的当前丢包量和当前乱序量可以计算出当前丢包率和当前乱序率。其计算公式如下
权利要求
1.一种数据封装链路丢包和乱序统计的方法,其特征在于,包括动态设置第一参考序号;在数据封装链路的接收端,截取接收到的当前数据封装包的序号;将所述截取到的当前数据封装包的序号与所述第一参考序号进行比较,根据比较结果确定当前丢包量,当前乱序量。
2.如权利要求1所述的方法,其特征在于,所述根据比较结果确定当前丢包量和当前乱序量按如下方式进行判断接收端截取到的当前数据封装包的序号是否为接收到的第一个数据封装包的序号,若是,则按规则1进行比较,若不是,则按规则2进行比较。
3.如权利要求2所述的方法,其特征在于,判断截取到的当前数据封装包的序号是否为接收到的第一个数据封装包的序号按如下方式进行接收到当前数据封装包的序号后, 判断所述第一参考序号是否为无效值,若是,则接收到的当前数据封装包的序号为接收到的第一个数据封装包的序号。
4.如权利要求3所述的方法,其特征在于,所述规则1为将第一参考序号设置为将要发送的数据封装包中最小的序号,将接收到的第一个数据封装包的序号与所述第一参考序号比较,若大于所述第一参考序号,则判断为伪丢包,当前丢包量增加的值为所述接收到的第一数据封装包的序号减所述第一参考序号,将第一参考序号更新为接收到的第一个数据封装包的序号;若等于所述第一参考序号的值,继续接收下面的数据封装包的序号。
5.如权利要求4所述的方法,其特征在于,所述规则2为如果当前数据封装包的序号等于第一参考序号加1,则判断为顺序,第一参考序号更新为当前数据封装包的序号;如果当前数据封装包的序号大于第一参考序号加1,则判断为伪丢包,当前丢包量增加的值为当前数据封装包的序号减第一参考序号再减1,第一参考序号更新为当前数据封装包的序号;如果当前数据封装包的序号小于第一参考序号,则判断为乱序,当前乱序量加1,当前丢包量减1。
6.如权利要求5所述的方法,其特征在于,在判断截取到的当前数据封装包的序号是否为接收到的第一个数据封装包的序号步骤的前一个步骤或后一个步骤为判断数据链路上数据包的发送是否结束。
7.如权利要求6所述的方法,其特征在于,判断链路上数据封装包的发送是否结束按如下方式进行判断当前数据封装包的序号是否为将要发送的数据封装包中的最大序号, 若是,则链路上数据包的发送结束,判断为回环,初始化第一参考序号,进入下一轮新的数据封装包的发送。
8.如权利要求1所述的方法,其特征在于,还包括第二参考序号,设置第二参考序号, 将所述截取到的当前数据封装包的序号与所述第一参考序号和第二参考序号进行比较,根据比较结果确定当前丢包量和当前乱序量。
9.如权利要求8所述的方法,其特征在于,所述根据比较结果确定当前丢包量和当前乱序量按如下方式进行判断接收端截取到的当前数据封装包的序号是否为接收到的第一个数据封装包的序号,若是,则将第一序号和第二序号更新为当前数据封装包的序号;若不是,则按规则3进行比较。
10.如权利要求9所述的方法,其特征在于,判断接收端截取到的当前数据封装包的序号是否为接收到的第一个数据封装包的序号按如下方式进行如果所述第一参考序号和第二参考序号至少有一个为无效值,则所述当前数据封装包的序号为接收到的第一个数据封装包的序号。
11.如权利要求10所述的方法,其特征在于,所述规则3具体如下如果当前数据封装包的序号小于第一参考序号,则将其丢弃;如果当前数据封装包的序号大于第一参考序号且等于第二参考序号加1,则判断为顺序,第二参考序号更新为当前数据封装包的序号;如果当前数据封装包的序号大于第一参考序号且大于第二参考序号加1,则判断为伪丢包,当前丢包量增加的个数为当前数据封装包的序号减第二参考序号再减1,第二参考序号更新为当前数据封装包的序号;如果当前数据封装包的序号大于第一参考序号且小于第二参考序号,则判断为乱序, 当前乱序量加1,当前丢包量减1。
12.如权利要求1至11任一项所述的方法,其特征在于,根据所述的当前丢包量和当前乱序量,得到当前丢包率和当前乱序率,当所述的当前丢包率或当前乱序率达到告警门限时,发出丢包告警或者乱序告警。
13.如权利要求1至11任一项所述的方法,其特征在于,所述数据封装链路为通用路由封转链路。
14.一种数据封装链路丢包和乱序统计的系统,其特征在于,包括探测装置,判决装置和统计装置,所述探测装置截取接收到的当前数据封装包的序号,并将其传送给所述判决装置,所述判决装置将接收到的所述当前数据封装包的序号与第一参考序号进行比较判决,并将判决的结果传送给所述统计装置,所述统计装置根据接收到的判决结果确定当前丢包量和当前乱序量。
全文摘要
本发明公开了一种数据封装链路丢包和乱序统计的方法及装置,该方法包括以下步骤动态设置第一参考序号;在数据封装链路的接收端,截取接收到的当前数据封装包的序号;将所述截取到的当前数据封装包的序号与所述第一参考序号进行比较,根据比较结果确定当前丢包量,当前乱序量;本发明通过在接收端实时的对接收到的当前数据封装包的序号进行截取并将其与第一参考序号进行比较,从而得到精确的当前丢包量以及当前乱序量,为网络的可靠性和网络拓扑合理性的评估提供可靠的依据。
文档编号H04L1/00GK102404069SQ20101027461
公开日2012年4月4日 申请日期2010年9月7日 优先权日2010年9月7日
发明者佟志新, 唐灵灵, 喻磊, 王志敏, 王跃, 魏铮 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1