一种报文乱序检测方法及装置制造方法

文档序号:7816178阅读:831来源:国知局
一种报文乱序检测方法及装置制造方法
【专利摘要】本发明公开了一种报文乱序检测方法及装置,方法为,当接收到新报文时,检测该新报文的序列号是否发生翻转,并根据对新报文的序列号的检测结果得出该新报文对应的第一翻转检测值;以及检测本地存储的新报文之前的原始报文序列号是否发生翻转,根据对原始报文序列号的检测结果生成该原始报文序列号对应的第二翻转检测值;根据第一翻转检测值和第二翻转检测值之间的关系,确定报文乱序类型。采用本发明技术方案,分别检测新报文的序列号,以及该新报文的原始报文序列号是否翻转,从而避免了在报文乱序检测过程中存在的检测结果不准确的问题,保证了检测结果的准确性。
【专利说明】一种报文乱序检测方法及装置

【技术领域】
[0001] 本发明涉及通信【技术领域】,尤其涉及一种报文乱序检测方法及装置。

【背景技术】
[0002] 在通信过程中,发送端通常需要通过中间设备(如虚拟网元、传输设备等)将报文 传输至接收端。当中间设备传输报文顺序混乱使得接收端接收到的报文出现乱序时,将耗 费更多的成本以及资源恢复报文的原有顺序,而针对语音或者视频等报文将无法恢复报文 的原有顺序,从而导致语音或者视频播放中断。因此,为了保证接收端的报文接收顺序与发 送端的报文发送顺序相同,通常情况下,要求中间设备按照从发送端接收报文的顺序向接 收端传输报文。
[0003] 中间设备的性能差异导致了不同中间设备的保序性能不同,为了确保接收端接收 到的报文为没有发生乱序的报文,对中间设备报文传输保序性能的检测受到了越来越多的 重视。
[0004] 目前,通常采用如下算法检测中间设备的报文传输保序性能:获取接收到的报文 序列号,以及设备生成的期望报文序列号,检测期望报文序列号和接收到的报文序列号是 否相同,若相同,则表明报文没有发生乱序,否则,表明报文发生乱序;其中,上述期望报文 序列号即为上一个接收到的报文序列号进行加一处理后得到的序列号。采用上述技术方 案检测报文传输过程中是否发生乱序从而检测中间设备的报文传输性能时,由于在接收报 文时,可能存在序列号翻转,序列号翻转即为发送端本地的计数器为报文分配序列号的过 程中,当计数器到达一个计数周期时,将会发生翻转,使得为报文分配的序列号随之发生翻 转,如计数器计数周期为 65536,当为任意一报文分配序列号为65535时,按照报文顺序为 该任意一报文后一个报文分配序列号即为0,此时的序列号即发生序列号翻转。上述技术方 案并没有考虑到报文的序列号翻转,从而可能导致报文乱序检测错误。
[0005] 由此可见,目前在检测中间设备传输的报文是否发生乱序的过程中,存在检测结 果不准确的问题。


【发明内容】

[0006] 本发明实施例提供一种报文乱序检测方法及装置,用以解决目前在检测中间设备 传输的报文是否发生乱序的过程中,存在检测结果不准确的问题。
[0007] 本发明实施例提供的具体技术方案如下:
[0008] 第一方面,提供一种报文乱序检测方法,包括:当接收到新报文时,获取所述新报 文的序列号;并获取本地保存的原始报文序列号;其中,所述原始报文序列号为最新保存 的报文的序列号;检测所述新报文的序列号是否发生序列号翻转,根据对新报文的序列号 的检测结果得到所述新报文的序列号对应的第一翻转检测值,并检测所述原始报文序列号 是否发生序列号翻转,根据对原始报文的序列号的检测结果得到所述原始报文对应的第二 翻转检测值;根据所述第一翻转检测值与所述第二翻转检测值的关系,确定报文发生的乱 序类型。
[0009] 结合第一方面,在第一种可能的实现方式中,若确定所述新报文的序列号小于第 一预设门限值,且所述原始报文序列号大于第二预设门限值,则获取所述新报文的序列号 与预设值的和值,将所述和值作为第一翻转检测值;否则,将所述新报文的序列号作为第一 翻转检测值;其中,所述第一预设门限值小于所述第二预设门限值。
[0010] 结合第一方面,在第二种可能的实现方式中,若确定所述新报文的序列号大于第 二预设门限值,且所述原始报文序列号小于第一预设门限值,则获取所述原始报文序列号 与预设值的和值,将所述和值作为第二翻转检测值;否则,将所述原始报文序列号作为第二 翻转检测值;其中,所述第一预设门限值小于所述第二预设门限值。
[0011] 结合第一方面第一种可能的实现方式,或者第一方面第二种可能的实现方式,在 第三种可能的实现方式中,当所述第一翻转检测值与所述第二翻转检测值相同时,确定发 生报文复制;当所述第一翻转检测值与所述第二翻转检测值之差大于一,确定发生报文丢 失;当所述第一翻转检测值小于所述第二翻转检测值,确定发生报文延迟。
[0012] 结合第一方面第三种可能的实现方式,在第四种可能的实现方式中,当根据所述 第一翻转检测值与所述第二翻转检测值的关系,确定报文未发生乱序时,存储所述新报文 的序列号,并输出原始报文序列号。
[0013] 第二方面,提供一种报文乱序检测装置,包括:获取单元,用于当接收到新报文时, 获取所述新报文的序列号,以及获取本地保存的原始报文序列号;其中,所述原始报文序 列号为最新保存的报文的序列号;检测单元,用于检测所述新报文的序列号是否发生序列 号翻转,根据对新报文的序列号的检测结果得到所述新报文的序列号对应的第一翻转检测 值,并检测所述原始报文序列号是否发生序列号翻转,根据对原始报文的序列号的检测结 果得到所述原始报文对应的第二翻转检测值;确定单元,用于根据所述第一翻转检测值与 所述第二翻转检测值的关系,确定报文发生的乱序类型。
[0014] 结合第二方面,在第一种可能的实现方式中,所述检测单元,具体用于:若确定所 述新报文的序列号小于第一预设门限值,且所述原始报文序列号大于第二预设门限值,则 获取所述新报文的序列号与预设值的和值,将所述和值作为第一翻转检测值;否则,将所述 新报文的序列号作为第一翻转检测值;其中,所述第一预设门限值小于所述第二预设门限 值。
[0015] 结合第二方面,在第二种可能的实现方式中,所述检测单元,具体用于:若确定所 述新报文的序列号大于第二预设门限值,且所述原始报文序列号小于第一预设门限值,则 获取所述原始报文序列号与预设值的和值,将所述和值作为第二翻转检测值;否则,将所述 原始报文序列号作为第二翻转检测值;其中,所述第一预设门限值小于所述第二预设门限 值。
[0016] 结合第二方面第一种可能的实现方式,或者第二方面第二种可能的实现方式,在 第三种可能的实现方式中,所述确定单元,具体用于:当所述第一翻转检测值与所述第二翻 转检测值相同时,确定发生报文复制;当所述第一翻转检测值与所述第二翻转检测值之差 大于一,确定发生报文丢失;当所述第一翻转检测值小于所述第二翻转检测值,确定发生报 文延迟。
[0017] 结合第二方面第三种可能的实现方式,在第四种可能的实现方式中,还包括输出 单元,用于:当根据所述第一翻转检测值与所述第二翻转检测值的关系,确定报文未发生乱 序时,存储所述新报文的序列号,并输出原始报文序列号。
[0018] 本发明实施例中,当接收到新报文时,检测该新报文的序列号是否发生翻转,并根 据对新报文的序列号的检测结果得出该新报文对应的第一翻转检测值;以及检测本地存储 的新报文之前的原始报文序列号是否发生翻转,根据对原始报文序列号的检测结果生成该 原始报文序列号对应的第二翻转检测值;根据第一翻转检测值和第二翻转检测值之间的关 系,确定报文乱序类型。采用本发明技术方案,分别检测新报文的序列号,以及该新报文的 原始报文序列号是否翻转,从而避免了在报文乱序检测过程中存在的检测结果不准确的问 题,保证了检测结果的准确性。

【专利附图】

【附图说明】
[0019] 图1为本发明实施例中报文传输系统架构图;
[0020] 图2为本发明实施例中报文乱序检测流程图;
[0021] 图3为本发明实施例中报文序列号以及第一门限值、第二门限值示意图;
[0022] 图4为本发明实施例中报文处理队列示意图;
[0023] 图5为本发明实施例中报文乱序检测装置结构示意图;
[0024] 图6为本发明实施例中报文乱序检测设备结构示意图。

【具体实施方式】
[0025] 为了解决目前在检测中间设备传输的报文是否发生乱序的过程中,存在检测结果 不准确的问题。本发明实施例中,本发明实施例中,当接收到新报文时,检测该新报文的序 列号是否发生翻转,并根据对新报文的序列号的检测结果得出该新报文对应的第一翻转检 测值;以及检测本地存储的新报文之前的原始报文序列号是否发生翻转,根据对原始报文 序列号的检测结果生成该原始报文序列号对应的第二翻转检测值;根据第一翻转检测值和 第二翻转检测值之间的关系,确定报文乱序类型。采用本发明技术方案,分别检测新报文的 序列号,以及该新报文的原始报文序列号是否翻转,从而避免了在报文乱序检测过程中存 在的检测结果不准确的问题,保证了检测结果的准确性。
[0026] 参阅图1所示,为本发明实施例中报文传输系统架构示意图,该报文传输系统包 括发送端,中间设备,以及接收端;其中,发送端用于生成报文,并将生成的报文发送出去; 中间设备用于接收发送端发送的报文,并按照报文的接收顺序,将报文传输至接收端,该中 间设备可以通过如虚拟网元、传输设备等设备实现;接收端用于接收中间设备传输的报文, 并对接收到的报文进行处理。在上述报文传输系统中,报文乱序检测可以通过接收端实现, 也可以通过位于接收端和中间传输设备之间的报文乱序检测装置实现,以下以由接收端实 现报文乱序检测为例进行详细介绍。
[0027] 下面结合说明书附图,对本发明实施例作进一步详细描述。
[0028] 参阅图2所示,本发明实施例中,报文乱序检测的过程为:
[0029] 步骤200 :当接收到新报文时,获取该新报文的序列号。
[0030] 本发明实施例中,当接收端接收到中间设备传输的新报文时,即获取该接收到的 新报文中携带的序列号,并根据该序列号判定是否发生报文乱序。其中,上述报文的序列号 由发送端根据报文发送顺序配置,可选的,在发送端配置一个计数器,通过该计数器依次为 每一个报文配置序列号,因此,在计数器的一个计数周期内每一个报文的序列号均不相同。 例如,针对报文a,报文b和报文c,发送端确定该三个报文的发送顺序依次为报文b、报文 a、报文c,则发送端为该三个报文配置的序列号分别为:报文b的序列号为1,报文a的序列 号为2,报文c的序列号为3。
[0031] 步骤210 :获取本地保存的原始报文序列号。
[0032] 本发明实施例中,接收端获取随机存取存储器(Random Access Memory,简称 RAM)中最新保存的原始报文序列号。其中,接收端可以通过本地的存储控制器(Memory Controller)实现从RAM中获取原始报文序列号;上述原始报文序列号即为接收端在接收 到新报文之前,最新保存到RAM中的原始报文。
[0033] 可选的,上述最新保存到RAM中的原始报文可以为未发生乱序的报文,也可以为 已经确定发生乱序的报文。
[0034] 步骤220 :检测新报文的序列号是否发生序列号翻转,根据对新报文的序列号的 检测结果得到新报文的序列号对应的第一翻转检测值,并检测原始报文序列号是否发生序 列号翻转,根据对原始报文的序列号的检测结果得到原始报文对应的第二翻转检测值。 [0035] 本发明实施例中,由于在发送端本地的计数器的一个计数周期内,每一个报文的 序列号均不同,但当该计数器的计数周期到达后,计数器将发生翻转,发送端将发生翻转后 的序列号配置给报文;例如,报文a的序列号为OxFFFF,报文b为发送端在报文a之后发送 的报文,该报文b的序列号为0。因此,针对报文的序列号发生序列号翻转的情况,接收端分 别检测新报文的序列号以及原始报文序列号是否发生序列号翻转,具体包括:
[0036] 接收端检测新报文的序列号是否发生序列号翻转,得到第一翻转检测值,具体包 括:若接收端确定上述新报文的序列号小于第一预设门限值,且原始报文序列号大于第 二预设门限值,则确定新报文的序列号发生序列号翻转,此时,获取新报文的序列号与预 设值的和值,将该和值作为第一翻转检测值;否则,接收端确定新报文没有发生序列号翻 转,将上述新报文的序列号作为第一翻转检测值。例如,参阅图3所示,原始报文序列号 为0xFFFF(十六进制描述,转换为十进制为65535),新报文的序列号为3,第一预设门限 值为15000,第二预设门限值为45000,则原始报文序列号大于第二预设门限值(65535 > 45000),新报文的序列号小于第一预设门限值(3 < 15000),说明新报文的序列号发生序列 号翻转,此时,计算新报文的序列号和预设值的和值(3+ 65536 = 65539),将该和值作为第 一翻转检测值(35539)。
[0037] 进一步的,接收端检测上述原始报文序列号是否发生序列号翻转,生成第二翻转 检测值,具体包括:若接收端新报文的序列号大于第二预设门限值,且原始报文序列号小 于第一预设门限值,则确定原始报文序列号发生序列号翻转,此时获取原始报文序列号与 预设值的和值,将上述和值作为第二翻转检测值;否则,确定原始报文没有发生序列号翻 转,将上述原始报文序列号作为第二翻转检测值。例如,参阅图 3所示,新报文的序列号为 0xFFFF(十六进制描述,转换为十进制为65535),原始报文序列号为3,第一预设门限值为 15000,第二预设门限值为45000,则新报文序列号大于第二预设门限值(65535 > 45000), 原始报文序列号小于第一预设门限值(3 < 15000),说明原始报文序列号发生序列号翻转, 此时,计算原始报文序列号和预设值的和值(3+65Μ6 = 65539),将该和值作为第二翻转检 测值(35539)。
[0038]参阅图3所示,在上述过程中,第一预设门限值、第二预设门限值、预设值均为与 可以根据内存操作位宽以及具体应用场景预先设置的值,其中,第一预设门限值小于第二 预设门限值,而第二预设门限值小于预设值,且该预设值表示2 η+1,η为内存操作位宽。例 如,当内存操作位宽为16bit,则第一预设门限值可以设置为15〇〇〇,第二预设门限值为 45000,预设值为65536。
[0039]采用上述技术方案,通过分别检测原始报文以及新报文是否发生序列号翻转,有 效避免了当原始报文或者新报文的序列号发生序列号翻转时,直接采用序列号翻转后的序 列号进行比较时,出现的判定结果不准确的问题,保证了报文乱序检测结果的准确性。
[0040]步骤23〇 :根据第一翻转检测值与第二翻转检测值的关系,确定报文发生的乱序 类型。
[0041]本发明实施例中,将第一翻转检测值与第二翻转检测值进行比较,根据比较结果 的不同,确定报文发生报文复制,报文丢失,或者报文延迟。其中:
[0042]当第一翻转检测值与第二翻转检测值相同时,确定发生报文复制;例如,当第一翻 转检测值为3,第二翻转检测值仍为3时,由于在一个计数周期内,发送端为每一个报文配 置的序列号均不相同,因此,当第一翻转检测值和第二翻转检测值相同时,说明接收端接收 到的新报文与原始报文为同一个报文,此时表示发生报文复制;
[0043]当第一翻转检测值与第二翻转检测值之差大于一,确定发生报文丢失;例如,当第 一翻转检测值为4,第二翻转检测值为2,则说明接收端在报文接收过程中,丢失了序列号 为3的报文,即表示发生报文丢失;
[0044]当第一翻转检测值小于第二翻转检测值,确定发生报文延迟;例如,第一翻转检测 值为3,第二翻转检测值为4,则说明接收端在接收到序列号为4的报文后,序列号为3的报 文刚刚达到,即表示序列号为3的报文发生了报文延迟。
[0045]进一步的,当根据第一翻转检测结果和第二翻转检测结果的关系,确定未发生报 文乱序时,将新报文的序列号写入RAM中,并输出原始报文序列号。其中,输出原始报文序 列号的作用是供工作人员进行参考。
[0046] 可选的,上述过程可以通过以下代码实现:
[0047] If (Μ龍 1) { Ii(S<TH2) οοηφαΓ? ec = fS-b%)s Ms } else ! compare c;c - | } elsif(M<TH2)
[0048] IfP>THl) {wmpare cc = S^M+A); } else {compare cc = S, M,} } else {comg3fe cc = S, M; |
[0049] 其中,cc表示预设条件;TH1为第一预设门限值;TH2为第二预设门限值;S为新报 文的序列号;Μ为原始报文序列号;A为预设值,以图3所示情况为例,该A值为65536(十六 进制形式为0x10000)。
[0050] 在上述过程中,采用将新报文的序列号与原始报文序列号进行是否发生序列号翻 转判断后,将第一翻转检测值与第二翻转检测值进行比较的方式,获取检测结果,进一步 的,接收端还可以在接收到新报文之后,通过对原始报文序列号进行运算,获取期望序列 号,将原始报文序列号和期望序列号进行比较,获取检测结果,具体包括:对原始报文序列 号进行加操作,即接收端根据原始报文序列号,确定期望序列号,该期望序列号等于原始报 文序列号加一,将该期望序列号保存至RAM中;接收端分别检测期望序列号和新报文的序 列号是否发生序列号翻转,得到新报文的序列号对应的第一翻转检测值,和期望序列号对 应的第三翻转检测值;接收端比较第一翻转检测值和第三翻转检测值,当第一翻转检测值 和第三翻转检测值相同时,确定未发生报文乱序;当第一翻转检测值和第三翻转检测值之 差为一时,说明发生报文复制 ;当第一翻转检测值和第三翻转检测值之差大于二,说明发生 报文丢失;当第一翻转检测值小于第三翻转检测值,说明发生报文延迟。
[0051] 可选的,在上述过程中,获取期望序列号的过程为:接收端通过存储控制器从RAM 中获取原始报文序列号,将原始报文序列号与一相加,获取相加后的值,存储至RAM中,该 相加后的值即为期望序列号。
[0052] 采用上述技术方案,分别检测新报文的序列号以及原始报文序列号是否发生序 列号翻转,并将进行翻转检测后的两个序列号进行比较,能够准确确定报文发生乱序的类 型,从而便于工作人员或者设备后期判断如何对报文进行处理(如由发送端对报文进行重 传),有效提尚了系统性能。
[0053] 接收端依次接收到中间设备发送的多个报文,因此,为了保证上述多个报文按照 报文接收顺序依次处理上述报文,参阅图4所示,可选的,接收端在本地的存储控制器中预 设报文处理队列,且该报文处理队列为先进先出队列;接收端根据接收到报文的顺序依次 将报文存储至该报文处理队列中;接收端从报文处理队列中获取位于队首的报文,并检测 该报文序列号是否发生翻转以及乱序检测处理;当位于队首的报文处理完毕后,原来位于 报文处理队列中第二位的报文位置更新至报文处理队列的队首,接收端再对该处于队首的 报文进行处理。采用上述技术方案,接收端通过在存储控制器中设置报文处理队列,根据各 个报文在报文处理队列中的顺序,依次对接收到的报文进行处理,从而避免了接收端在接 收到报文顺序无误时由于报文处理过程混乱造成的报文乱序问题,达到了报文保序目的。
[0054] 可选的,当接收端为多核处理器时,接收端可以针对多核处理器的每一个处理单 元均设置一个报文处理队列,每一个报文处理队列对应不同的内存地址空间;例如,报文处 理队列0对应内存地址空间地址段为〇?10,报文处理队列1对应的内存地址空间地址段 为11?20 ;其中,该不同报文处理队列对应的内存地址空间由处理器根据具体报文处理情 况动态分配。接收端中的任意一处理单元对相应的报文处理队列进行处理时,访问该报文 处理队列对应的内存地址空间,从而对上述报文处理队列队首的报文进行乱序检测处理。 采用上述技术方案,针对不同的报文处理队列分配不同的内存地址空间,从而避免了所有 报文处理队列访问同一个内存地址空间时资源互锁引起的报文处理效率低,系统性能下降 的问题,保证了多核处理器中的多个处理单元并发处理报文,有效提高了系统性能,提高了 报文处理速度。
[0055] 基于上述技术方案,参阅图5所不,本发明实施例还提供一种报文乱序检测装直, 包括获取单元50,检测单元51,以及确定单元52,其中:
[0056] 获取单元50,用于当接收到新报文时,获取所述新报文的序列号,以及获取本地保 存的原始报文序列号;其中,所述原始报文序列号为最新保存的报文的序列号;
[0057] 检测单元51,用于检测所述获取单元50获取的新报文的序列号是否发生序列号 翻转,根据对新报文的序列号的检测结果得到所述新报文的序列号对应的第一翻转检测 值,并检测所述获取单元50获取的原始报文序列号是否发生序列号翻转,根据对原始报文 的序列号的检测结果得到所述原始报文对应的第二翻转检测值;
[0058] 确定单元52,用于根据所述检测单元51得到的第一翻转检测值与所述第二翻转 检测值的关系,确定报文发生的乱序类型。
[0059] 可选的,所述检测单元51,具体用于:若确定所述新报文的序列号小于第一预设 门限值,且所述原始报文序列号大于第二预设门限值,则获取所述新报文的序列号与预设 值的和值,将所述和值作为第一翻转检测值;否则,将所述新报文的序列号作为第一翻转检 测值;其中,所述第一预设门限值小于所述第二预设门限值。
[0060] 可选的,所述检测单元51,具体用于:若确定所述新报文的序列号大于第二预设 门限值,且所述原始报文序列号小于第一预设门限值,则获取所述原始报文序列号与预设 值的和值,将所述和值作为第二翻转检测值;否则,将所述原始报文序列号作为第二翻转检 测值;其中,所述第一预设门限值小于所述第二预设门限值。
[0061] 可选的,所述确定单元52,具体用于:当所述第一翻转检测值与所述第二翻转检 测值相同时,确定发生报文复制;当所述第一翻转检测值与所述第二翻转检测值之差大于 一,确定发生报文丢失;当所述第一翻转检测值小于所述第二翻转检测值,确定发生报文延 迟。
[0062] 进一步的,上述装置还包括输出单元53,用于:当根据所述第一翻转检测值与所 述第二翻转检测值的关系,确定报文未发生乱序时,存储所述新报文的序列号,并输出原始 报文序列号。
[0063] 基于上述技术方案,参阅图6所示,本发明实施例还提供一种报文乱序检测设备, 包括收发器60,存储器61,以及处理器62,其中:
[0064] 收发器6〇,用于接收新报文;
[0065] 存储器61,用于存储应用程序以及报文序列号;
[0066] 处理器62,用于接收到收发器60发送的新报文时,运行存储器61中存储的应用程 序,执行如下操作:
[0067] 获取所述新报文的序列号,以及获取存储器61中保存的原始报文序列号;其中, 所述原始报文序列号为最新保存的报文的序列号;检测所述获取单元获取的新报文的序列 号是否发生序列号翻转,根据对新报文的序列号的检测结果得到所述新报文的序列号对应 的第一翻转检测值,并检测所述获取单元获取的原始报文序列号是否发生序列号翻转,根 据对原始报文的序列号的检测结果得到所述原始报文对应的第二翻转检测值;
[0068] 处理器62,还用于根据所述检测单元得到的第一翻转检测值与所述第二翻转检测 值的关系,确定报文发生的乱序类型。
[0069] 其中,上述处理器62,还用于:若确定所述新报文的序列号小于第一预设门限值, 且所述原始报文序列号大于第二预设门限值,则获取所述新报文的序列号与预设值的和 值,将所述和值作为第一翻转检测值;否则,将所述新报文的序列号作为第一翻转检测值; 其中,所述第一预设门限值小于所述第二预设门限值。
[0070] 上述处理器62,还用于:若确定所述新报文的序列号大于第二预设门限值,且所 述原始报文序列号小于第一预设门限值,则获取所述原始报文序列号与预设值的和值,将 所述和值作为第二翻转检测值;否则,将所述原始报文序列号作为第二翻转检测值;其中, 所述第一预设门限值小于所述第二预设门限值。
[0071] 上述处理器62,还用于:当所述第一翻转检测值与所述第二翻转检测值相同时, 确定发生报文复制;当所述第一翻转检测值与所述第二翻转检测值之差大于一,确定发生 报文丢失;当所述第一翻转检测值小于所述第二翻转检测值,确定发生报文延迟。
[0072] 处理器62,还用于当根据所述第一翻转检测值与所述第二翻转检测值的关系,确 定报文未发生乱序时,将所述新报文的序列号存储至存储器61中,并输出原始报文序列 号。
[0073] 综上所述,当接收到新报文时,获取该新报文的序列号;获取本地保存的原始报文 序列号;检测新报文的序列号是否发生序列号翻转,根据对新报文的序列号的检测结果得 到新报文的序列号对应的第一翻转检测值,并检测原始报文序列号是否发生序列号翻转, 根据对原始报文的序列号的检测结果得到原始报文对应的第二翻转检测值;根据第一翻转 检测值与第二翻转检测值的关系,确定报文发生的乱序类型。采用本发明技术方案,分别检 测新报文的序列号,以及该新报文的原始报文序列号是否翻转,从而避免了在报文乱序检 测过程中存在的检测结果不准确的问题,保证了检测结果的准确性。
[0074] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序 产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实 施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机 可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产 品的形式。
[0075] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程 图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一 流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算 机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理 器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生 用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能 的装置。
[0076]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特 定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指 令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或 多个方框中指定的功能。
[0077]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计 算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或 其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图 一个方框或多个方框中指定的功能的步骤。
[0078] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造 性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优 选实施例以及落入本发明范围的所有变更和修改。
[0079] 显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发 明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求 及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1. 一种报文乱序检测方法,其特征在于,包括: 当接收到新报文时,获取所述新报文的序列号;并 获取本地保存的原始报文序列号;其中,所述原始报文序列号为最新保存的报文的序 列号; 检测所述新报文的序列号是否发生序列号翻转,根据对新报文的序列号的检测结果得 到所述新报文的序列号对应的第一翻转检测值,并 检测所述原始报文序列号是否发生序列号翻转,根据对原始报文的序列号的检测结果 得到所述原始报文对应的第二翻转检测值; 根据所述第一翻转检测值与所述第二翻转检测值的关系,确定报文发生的乱序类型。
2. 如权利要求1所述的方法,其特征在于,检测所述新报文的序列号是否发生序列号 翻转,根据对新报文的序列号的检测结果得到所述新报文的序列号对应的第一翻转检测 值,具体包括: 若确定所述新报文的序列号小于第一预设门限值,且所述原始报文序列号大于第二预 设门限值,则获取所述新报文的序列号与预设值的和值,将所述和值作为第一翻转检测值; 否则,将所述新报文的序列号作为第一翻转检测值;其中,所述第一预设门限值小于所述第 二预设门限值。
3. 如权利要求1所述的方法,其特征在于,检测所述原始报文序列号是否发生序列号 翻转,根据对原始报文序列号的检测结果得到所述原始报文对应的第二翻转检测值,具体 包括: 若确定所述新报文的序列号大于第二预设门限值,且所述原始报文序列号小于第一预 设门限值,则获取所述原始报文序列号与预设值的和值,将所述和值作为第二翻转检测值; 否则,将所述原始报文序列号作为第二翻转检测值;其中,所述第一预设门限值小于所述第 二预设门限值。
4. 如权利要求1-3任一项所述的方法,其特征在于,根据所述第一翻转检测值与所述 第二翻转检测值的关系,确定报文发生的乱序类型,具体包括: 当所述第一翻转检测值与所述第二翻转检测值相同时,确定发生报文复制; 当所述第一翻转检测值与所述第二翻转检测值之差大于一,确定发生报文丢失; 当所述第一翻转检测值小于所述第二翻转检测值,确定发生报文延迟。
5. 如权利要求4所述的方法,其特征在于,进一步包括: 当根据所述第一翻转检测值与所述第二翻转检测值的关系,确定报文未发生乱序时, 存储所述新报文的序列号,并输出原始报文序列号。
6. -种报文乱序检测装置,其特征在于,包括: 获取单元,用于当接收到新报文时,获取所述新报文的序列号,以及获取本地保存的原 始报文序列号;其中,所述原始报文序列号为最新保存的报文的序列号; 检测单元,用于检测所述获取单元获取的新报文的序列号是否发生序列号翻转,根据 对新报文的序列号的检测结果得到所述新报文的序列号对应的第一翻转检测值,并检测所 述获取单元获取的原始报文序列号是否发生序列号翻转,根据对原始报文的序列号的检测 结果得到所述原始报文对应的第二翻转检测值; 确定单元,用于根据所述检测单元得到的第一翻转检测值与所述第二翻转检测值的关 系,确定报文发生的乱序类型。
7. 如权利要求6所述的装置,其特征在于,所述检测单元,具体用于: 若确定所述新报文的序列号小于第一预设门限值,且所述原始报文序列号大于第二预 设门限值,则获取所述新报文的序列号与预设值的和值,将所述和值作为第一翻转检测值; 否则,将所述新报文的序列号作为第一翻转检测值;其中,所述第一预设门限值小于所述第 二预设门限值。
8. 如权利要求6所述的装置,其特征在于,所述检测单元,具体用于: 若确定所述新报文的序列号大于第二预设门限值,且所述原始报文序列号小于第一预 设门限值,则获取所述原始报文序列号与预设值的和值,将所述和值作为第二翻转检测值; 否则,将所述原始报文序列号作为第二翻转检测值;其中,所述第一预设门限值小于所述第 二预设门限值。
9. 如权利要求6-8任一项所述的装置,其特征在于,所述确定单元,具体用于: 当所述第一翻转检测值与所述第二翻转检测值相同时,确定发生报文复制;当所述第 一翻转检测值与所述第二翻转检测值之差大于一,确定发生报文丢失;当所述第一翻转检 测值小于所述第二翻转检测值,确定发生报文延迟。
10. 如权利要求9所述的装置,其特征在于,还包括输出单元,用于: 当根据所述第一翻转检测值与所述第二翻转检测值的关系,确定报文未发生乱序时, 存储所述新报文的序列号,并输出原始报文序列号。
【文档编号】H04L12/26GK104270287SQ201410521675
【公开日】2015年1月7日 申请日期:2014年9月30日 优先权日:2014年9月30日
【发明者】王中震, 韩冰 申请人:北京华为数字技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1