CN104270287B - 一种报文乱序检测方法及装置 - Google Patents

一种报文乱序检测方法及装置 Download PDF

Info

Publication number
CN104270287B
CN104270287B CN201410521675.0A CN201410521675A CN104270287B CN 104270287 B CN104270287 B CN 104270287B CN 201410521675 A CN201410521675 A CN 201410521675A CN 104270287 B CN104270287 B CN 104270287B
Authority
CN
China
Prior art keywords
message
sequence number
value
detected value
upset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410521675.0A
Other languages
English (en)
Other versions
CN104270287A (zh
Inventor
王中震
韩冰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Huawei Digital Technologies Co Ltd
Original Assignee
Beijing Huawei Digital Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Huawei Digital Technologies Co Ltd filed Critical Beijing Huawei Digital Technologies Co Ltd
Priority to CN201410521675.0A priority Critical patent/CN104270287B/zh
Publication of CN104270287A publication Critical patent/CN104270287A/zh
Application granted granted Critical
Publication of CN104270287B publication Critical patent/CN104270287B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

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

Description

一种报文乱序检测方法及装置
技术领域
本发明涉及通信技术领域,尤其涉及一种报文乱序检测方法及装置。
背景技术
在通信过程中,发送端通常需要通过中间设备(如虚拟网元、传输设备等)将报文传输至接收端。当中间设备传输报文顺序混乱使得接收端接收到的报文出现乱序时,将耗费更多的成本以及资源恢复报文的原有顺序,而针对语音或者视频等报文将无法恢复报文的原有顺序,从而导致语音或者视频播放中断。因此,为了保证接收端的报文接收顺序与发送端的报文发送顺序相同,通常情况下,要求中间设备按照从发送端接收报文的顺序向接收端传输报文。
中间设备的性能差异导致了不同中间设备的保序性能不同,为了确保接收端接收到的报文为没有发生乱序的报文,对中间设备报文传输保序性能的检测受到了越来越多的重视。
目前,通常采用如下算法检测中间设备的报文传输保序性能:获取接收到的报文序列号,以及设备生成的期望报文序列号,检测期望报文序列号和接收到的报文序列号是否相同,若相同,则表明报文没有发生乱序,否则,表明报文发生乱序;其中,上述期望报文序列号即为上一个接收到的报文序列号进行加一处理后得到的序列号。采用上述技术方案检测报文传输过程中是否发生乱序从而检测中间设备的报文传输性能时,由于在接收报文时,可能存在序列号翻转,序列号翻转即为发送端本地的计数器为报文分配序列号的过程中,当计数器到达一个计数周期时,将会发生翻转,使得为报文分配的序列号随之发生翻转,如计数器计数周期为65536,当为任意一报文分配序列号为65535时,按照报文顺序为该任意一报文后一个报文分配序列号即为0,此时的序列号即发生序列号翻转。上述技术方案并没有考虑到报文的序列号翻转,从而可能导致报文乱序检测错误。
由此可见,目前在检测中间设备传输的报文是否发生乱序的过程中,存在检测结果不准确的问题。
发明内容
本发明实施例提供一种报文乱序检测方法及装置,用以解决目前在检测中间设备传输的报文是否发生乱序的过程中,存在检测结果不准确的问题。
本发明实施例提供的具体技术方案如下:
第一方面,提供一种报文乱序检测方法,包括:当接收到新报文时,获取所述新报文的序列号;并获取本地保存的原始报文序列号;其中,所述原始报文序列号为最新保存的报文的序列号;检测所述新报文的序列号是否发生序列号翻转,根据对新报文的序列号的检测结果得到所述新报文的序列号对应的第一翻转检测值,并检测所述原始报文序列号是否发生序列号翻转,根据对原始报文的序列号的检测结果得到所述原始报文对应的第二翻转检测值;根据所述第一翻转检测值与所述第二翻转检测值的关系,确定报文发生的乱序类型。
结合第一方面,在第一种可能的实现方式中,若确定所述新报文的序列号小于第一预设门限值,且所述原始报文序列号大于第二预设门限值,则获取所述新报文的序列号与预设值的和值,将所述和值作为第一翻转检测值;否则,将所述新报文的序列号作为第一翻转检测值;其中,所述第一预设门限值小于所述第二预设门限值。
结合第一方面,在第二种可能的实现方式中,若确定所述新报文的序列号大于第二预设门限值,且所述原始报文序列号小于第一预设门限值,则获取所述原始报文序列号与预设值的和值,将所述和值作为第二翻转检测值;否则,将所述原始报文序列号作为第二翻转检测值;其中,所述第一预设门限值小于所述第二预设门限值。
结合第一方面第一种可能的实现方式,或者第一方面第二种可能的实现方式,在第三种可能的实现方式中,当所述第一翻转检测值与所述第二翻转检测值相同时,确定发生报文复制;当所述第一翻转检测值与所述第二翻转检测值之差大于一,确定发生报文丢失;当所述第一翻转检测值小于所述第二翻转检测值,确定发生报文延迟。
结合第一方面第三种可能的实现方式,在第四种可能的实现方式中,当根据所述第一翻转检测值与所述第二翻转检测值的关系,确定报文未发生乱序时,存储所述新报文的序列号,并输出原始报文序列号。
第二方面,提供一种报文乱序检测装置,包括:获取单元,用于当接收到新报文时,获取所述新报文的序列号,以及获取本地保存的原始报文序列号;其中,所述原始报文序列号为最新保存的报文的序列号;检测单元,用于检测所述新报文的序列号是否发生序列号翻转,根据对新报文的序列号的检测结果得到所述新报文的序列号对应的第一翻转检测值,并检测所述原始报文序列号是否发生序列号翻转,根据对原始报文的序列号的检测结果得到所述原始报文对应的第二翻转检测值;确定单元,用于根据所述第一翻转检测值与所述第二翻转检测值的关系,确定报文发生的乱序类型。
结合第二方面,在第一种可能的实现方式中,所述检测单元,具体用于:若确定所述新报文的序列号小于第一预设门限值,且所述原始报文序列号大于第二预设门限值,则获取所述新报文的序列号与预设值的和值,将所述和值作为第一翻转检测值;否则,将所述新报文的序列号作为第一翻转检测值;其中,所述第一预设门限值小于所述第二预设门限值。
结合第二方面,在第二种可能的实现方式中,所述检测单元,具体用于:若确定所述新报文的序列号大于第二预设门限值,且所述原始报文序列号小于第一预设门限值,则获取所述原始报文序列号与预设值的和值,将所述和值作为第二翻转检测值;否则,将所述原始报文序列号作为第二翻转检测值;其中,所述第一预设门限值小于所述第二预设门限值。
结合第二方面第一种可能的实现方式,或者第二方面第二种可能的实现方式,在第三种可能的实现方式中,所述确定单元,具体用于:当所述第一翻转检测值与所述第二翻转检测值相同时,确定发生报文复制;当所述第一翻转检测值与所述第二翻转检测值之差大于一,确定发生报文丢失;当所述第一翻转检测值小于所述第二翻转检测值,确定发生报文延迟。
结合第二方面第三种可能的实现方式,在第四种可能的实现方式中,还包括输出单元,用于:当根据所述第一翻转检测值与所述第二翻转检测值的关系,确定报文未发生乱序时,存储所述新报文的序列号,并输出原始报文序列号。
本发明实施例中,当接收到新报文时,检测该新报文的序列号是否发生翻转,并根据对新报文的序列号的检测结果得出该新报文对应的第一翻转检测值;以及检测本地存储的新报文之前的原始报文序列号是否发生翻转,根据对原始报文序列号的检测结果生成该原始报文序列号对应的第二翻转检测值;根据第一翻转检测值和第二翻转检测值之间的关系,确定报文乱序类型。采用本发明技术方案,分别检测新报文的序列号,以及该新报文的原始报文序列号是否翻转,从而避免了在报文乱序检测过程中存在的检测结果不准确的问题,保证了检测结果的准确性。
附图说明
图1为本发明实施例中报文传输系统架构图;
图2为本发明实施例中报文乱序检测流程图;
图3为本发明实施例中报文序列号以及第一门限值、第二门限值示意图;
图4为本发明实施例中报文处理队列示意图;
图5为本发明实施例中报文乱序检测装置结构示意图;
图6为本发明实施例中报文乱序检测设备结构示意图。
具体实施方式
为了解决目前在检测中间设备传输的报文是否发生乱序的过程中,存在检测结果不准确的问题。本发明实施例中,本发明实施例中,当接收到新报文时,检测该新报文的序列号是否发生翻转,并根据对新报文的序列号的检测结果得出该新报文对应的第一翻转检测值;以及检测本地存储的新报文之前的原始报文序列号是否发生翻转,根据对原始报文序列号的检测结果生成该原始报文序列号对应的第二翻转检测值;根据第一翻转检测值和第二翻转检测值之间的关系,确定报文乱序类型。采用本发明技术方案,分别检测新报文的序列号,以及该新报文的原始报文序列号是否翻转,从而避免了在报文乱序检测过程中存在的检测结果不准确的问题,保证了检测结果的准确性。
参阅图1所示,为本发明实施例中报文传输系统架构示意图,该报文传输系统包括发送端,中间设备,以及接收端;其中,发送端用于生成报文,并将生成的报文发送出去;中间设备用于接收发送端发送的报文,并按照报文的接收顺序,将报文传输至接收端,该中间设备可以通过如虚拟网元、传输设备等设备实现;接收端用于接收中间设备传输的报文,并对接收到的报文进行处理。在上述报文传输系统中,报文乱序检测可以通过接收端实现,也可以通过位于接收端和中间传输设备之间的报文乱序检测装置实现,以下以由接收端实现报文乱序检测为例进行详细介绍。
下面结合说明书附图,对本发明实施例作进一步详细描述。
参阅图2所示,本发明实施例中,报文乱序检测的过程为:
步骤200:当接收到新报文时,获取该新报文的序列号。
本发明实施例中,当接收端接收到中间设备传输的新报文时,即获取该接收到的新报文中携带的序列号,并根据该序列号判定是否发生报文乱序。其中,上述报文的序列号由发送端根据报文发送顺序配置,可选的,在发送端配置一个计数器,通过该计数器依次为每一个报文配置序列号,因此,在计数器的一个计数周期内每一个报文的序列号均不相同。例如,针对报文a,报文b和报文c,发送端确定该三个报文的发送顺序依次为报文b、报文a、报文c,则发送端为该三个报文配置的序列号分别为:报文b的序列号为1,报文a的序列号为2,报文c的序列号为3。
步骤210:获取本地保存的原始报文序列号。
本发明实施例中,接收端获取随机存取存储器(Random Access Memory,简称RAM)中最新保存的原始报文序列号。其中,接收端可以通过本地的存储控制器(MemoryController)实现从RAM中获取原始报文序列号;上述原始报文序列号即为接收端在接收到新报文之前,最新保存到RAM中的原始报文。
可选的,上述最新保存到RAM中的原始报文可以为未发生乱序的报文,也可以为已经确定发生乱序的报文。
步骤220:检测新报文的序列号是否发生序列号翻转,根据对新报文的序列号的检测结果得到新报文的序列号对应的第一翻转检测值,并检测原始报文序列号是否发生序列号翻转,根据对原始报文的序列号的检测结果得到原始报文对应的第二翻转检测值。
本发明实施例中,由于在发送端本地的计数器的一个计数周期内,每一个报文的序列号均不同,但当该计数器的计数周期到达后,计数器将发生翻转,发送端将发生翻转后的序列号配置给报文;例如,报文a的序列号为0xFFFF,报文b为发送端在报文a之后发送的报文,该报文b的序列号为0。因此,针对报文的序列号发生序列号翻转的情况,接收端分别检测新报文的序列号以及原始报文序列号是否发生序列号翻转,具体包括:
接收端检测新报文的序列号是否发生序列号翻转,得到第一翻转检测值,具体包括:若接收端确定上述新报文的序列号小于第一预设门限值,且原始报文序列号大于第二预设门限值,则确定新报文的序列号发生序列号翻转,此时,获取新报文的序列号与预设值的和值,将该和值作为第一翻转检测值;否则,接收端确定新报文没有发生序列号翻转,将上述新报文的序列号作为第一翻转检测值。例如,参阅图3所示,原始报文序列号为0xFFFF(十六进制描述,转换为十进制为65535),新报文的序列号为3,第一预设门限值为15000,第二预设门限值为45000,则原始报文序列号大于第二预设门限值(65535>45000),新报文的序列号小于第一预设门限值(3<15000),说明新报文的序列号发生序列号翻转,此时,计算新报文的序列号和预设值的和值(3+65536=65539),将该和值作为第一翻转检测值(35539)。
进一步的,接收端检测上述原始报文序列号是否发生序列号翻转,生成第二翻转检测值,具体包括:若接收端新报文的序列号大于第二预设门限值,且原始报文序列号小于第一预设门限值,则确定原始报文序列号发生序列号翻转,此时获取原始报文序列号与预设值的和值,将上述和值作为第二翻转检测值;否则,确定原始报文没有发生序列号翻转,将上述原始报文序列号作为第二翻转检测值。例如,参阅图3所示,新报文的序列号为0xFFFF(十六进制描述,转换为十进制为65535),原始报文序列号为3,第一预设门限值为15000,第二预设门限值为45000,则新报文序列号大于第二预设门限值(65535>45000),原始报文序列号小于第一预设门限值(3<15000),说明原始报文序列号发生序列号翻转,此时,计算原始报文序列号和预设值的和值(3+65536=65539),将该和值作为第二翻转检测值(35539)。
参阅图3所示,在上述过程中,第一预设门限值、第二预设门限值、预设值均为与可以根据内存操作位宽以及具体应用场景预先设置的值,其中,第一预设门限值小于第二预设门限值,而第二预设门限值小于预设值,且该预设值表示2n+1,n为内存操作位宽。例如,当内存操作位宽为16bit,则第一预设门限值可以设置为15000,第二预设门限值为45000,预设值为65536。
采用上述技术方案,通过分别检测原始报文以及新报文是否发生序列号翻转,有效避免了当原始报文或者新报文的序列号发生序列号翻转时,直接采用序列号翻转后的序列号进行比较时,出现的判定结果不准确的问题,保证了报文乱序检测结果的准确性。
步骤230:根据第一翻转检测值与第二翻转检测值的关系,确定报文发生的乱序类型。
本发明实施例中,将第一翻转检测值与第二翻转检测值进行比较,根据比较结果的不同,确定报文发生报文复制,报文丢失,或者报文延迟。其中:
当第一翻转检测值与第二翻转检测值相同时,确定发生报文复制;例如,当第一翻转检测值为3,第二翻转检测值仍为3时,由于在一个计数周期内,发送端为每一个报文配置的序列号均不相同,因此,当第一翻转检测值和第二翻转检测值相同时,说明接收端接收到的新报文与原始报文为同一个报文,此时表示发生报文复制;
当第一翻转检测值与第二翻转检测值之差大于一,确定发生报文丢失;例如,当第一翻转检测值为4,第二翻转检测值为2,则说明接收端在报文接收过程中,丢失了序列号为3的报文,即表示发生报文丢失;
当第一翻转检测值小于第二翻转检测值,确定发生报文延迟;例如,第一翻转检测值为3,第二翻转检测值为4,则说明接收端在接收到序列号为4的报文后,序列号为3的报文刚刚达到,即表示序列号为3的报文发生了报文延迟。
进一步的,当根据第一翻转检测结果和第二翻转检测结果的关系,确定未发生报文乱序时,将新报文的序列号写入RAM中,并输出原始报文序列号。其中,输出原始报文序列号的作用是供工作人员进行参考。
可选的,上述过程可以通过以下代码实现:
其中,cc表示预设条件;TH1为第一预设门限值;TH2为第二预设门限值;S为新报文的序列号;M为原始报文序列号;A为预设值,以图3所示情况为例,该A值为65536(十六进制形式为0x10000)。
在上述过程中,采用将新报文的序列号与原始报文序列号进行是否发生序列号翻转判断后,将第一翻转检测值与第二翻转检测值进行比较的方式,获取检测结果,进一步的,接收端还可以在接收到新报文之后,通过对原始报文序列号进行运算,获取期望序列号,将原始报文序列号和期望序列号进行比较,获取检测结果,具体包括:对原始报文序列号进行加操作,即接收端根据原始报文序列号,确定期望序列号,该期望序列号等于原始报文序列号加一,将该期望序列号保存至RAM中;接收端分别检测期望序列号和新报文的序列号是否发生序列号翻转,得到新报文的序列号对应的第一翻转检测值,和期望序列号对应的第三翻转检测值;接收端比较第一翻转检测值和第三翻转检测值,当第一翻转检测值和第三翻转检测值相同时,确定未发生报文乱序;当第一翻转检测值和第三翻转检测值之差为一时,说明发生报文复制;当第一翻转检测值和第三翻转检测值之差大于二,说明发生报文丢失;当第一翻转检测值小于第三翻转检测值,说明发生报文延迟。
可选的,在上述过程中,获取期望序列号的过程为:接收端通过存储控制器从RAM中获取原始报文序列号,将原始报文序列号与一相加,获取相加后的值,存储至RAM中,该相加后的值即为期望序列号。
采用上述技术方案,分别检测新报文的序列号以及原始报文序列号是否发生序列号翻转,并将进行翻转检测后的两个序列号进行比较,能够准确确定报文发生乱序的类型,从而便于工作人员或者设备后期判断如何对报文进行处理(如由发送端对报文进行重传),有效提高了系统性能。
接收端依次接收到中间设备发送的多个报文,因此,为了保证上述多个报文按照报文接收顺序依次处理上述报文,参阅图4所示,可选的,接收端在本地的存储控制器中预设报文处理队列,且该报文处理队列为先进先出队列;接收端根据接收到报文的顺序依次将报文存储至该报文处理队列中;接收端从报文处理队列中获取位于队首的报文,并检测该报文序列号是否发生翻转以及乱序检测处理;当位于队首的报文处理完毕后,原来位于报文处理队列中第二位的报文位置更新至报文处理队列的队首,接收端再对该处于队首的报文进行处理。采用上述技术方案,接收端通过在存储控制器中设置报文处理队列,根据各个报文在报文处理队列中的顺序,依次对接收到的报文进行处理,从而避免了接收端在接收到报文顺序无误时由于报文处理过程混乱造成的报文乱序问题,达到了报文保序目的。
可选的,当接收端为多核处理器时,接收端可以针对多核处理器的每一个处理单元均设置一个报文处理队列,每一个报文处理队列对应不同的内存地址空间;例如,报文处理队列0对应内存地址空间地址段为0~10,报文处理队列1对应的内存地址空间地址段为11~20;其中,该不同报文处理队列对应的内存地址空间由处理器根据具体报文处理情况动态分配。接收端中的任意一处理单元对相应的报文处理队列进行处理时,访问该报文处理队列对应的内存地址空间,从而对上述报文处理队列队首的报文进行乱序检测处理。采用上述技术方案,针对不同的报文处理队列分配不同的内存地址空间,从而避免了所有报文处理队列访问同一个内存地址空间时资源互锁引起的报文处理效率低,系统性能下降的问题,保证了多核处理器中的多个处理单元并发处理报文,有效提高了系统性能,提高了报文处理速度。
基于上述技术方案,参阅图5所示,本发明实施例还提供一种报文乱序检测装置,包括获取单元50,检测单元51,以及确定单元52,其中:
获取单元50,用于当接收到新报文时,获取所述新报文的序列号,以及获取本地保存的原始报文序列号;其中,所述原始报文序列号为最新保存的报文的序列号;
检测单元51,用于检测所述获取单元50获取的新报文的序列号是否发生序列号翻转,根据对新报文的序列号的检测结果得到所述新报文的序列号对应的第一翻转检测值,并检测所述获取单元50获取的原始报文序列号是否发生序列号翻转,根据对原始报文的序列号的检测结果得到所述原始报文对应的第二翻转检测值;
确定单元52,用于根据所述检测单元51得到的第一翻转检测值与所述第二翻转检测值的关系,确定报文发生的乱序类型。
可选的,所述检测单元51,具体用于:若确定所述新报文的序列号小于第一预设门限值,且所述原始报文序列号大于第二预设门限值,则获取所述新报文的序列号与预设值的和值,将所述和值作为第一翻转检测值;否则,将所述新报文的序列号作为第一翻转检测值;其中,所述第一预设门限值小于所述第二预设门限值。
可选的,所述检测单元51,具体用于:若确定所述新报文的序列号大于第二预设门限值,且所述原始报文序列号小于第一预设门限值,则获取所述原始报文序列号与预设值的和值,将所述和值作为第二翻转检测值;否则,将所述原始报文序列号作为第二翻转检测值;其中,所述第一预设门限值小于所述第二预设门限值。
可选的,所述确定单元52,具体用于:当所述第一翻转检测值与所述第二翻转检测值相同时,确定发生报文复制;当所述第一翻转检测值与所述第二翻转检测值之差大于一,确定发生报文丢失;当所述第一翻转检测值小于所述第二翻转检测值,确定发生报文延迟。
进一步的,上述装置还包括输出单元53,用于:当根据所述第一翻转检测值与所述第二翻转检测值的关系,确定报文未发生乱序时,存储所述新报文的序列号,并输出原始报文序列号。
基于上述技术方案,参阅图6所示,本发明实施例还提供一种报文乱序检测设备,包括收发器60,存储器61,以及处理器62,其中:
收发器60,用于接收新报文;
存储器61,用于存储应用程序以及报文序列号;
处理器62,用于接收到收发器60发送的新报文时,运行存储器61中存储的应用程序,执行如下操作:
获取所述新报文的序列号,以及获取存储器61中保存的原始报文序列号;其中,所述原始报文序列号为最新保存的报文的序列号;检测所述获取单元获取的新报文的序列号是否发生序列号翻转,根据对新报文的序列号的检测结果得到所述新报文的序列号对应的第一翻转检测值,并检测所述获取单元获取的原始报文序列号是否发生序列号翻转,根据对原始报文的序列号的检测结果得到所述原始报文对应的第二翻转检测值;
处理器62,还用于根据所述检测单元得到的第一翻转检测值与所述第二翻转检测值的关系,确定报文发生的乱序类型。
其中,上述处理器62,还用于:若确定所述新报文的序列号小于第一预设门限值,且所述原始报文序列号大于第二预设门限值,则获取所述新报文的序列号与预设值的和值,将所述和值作为第一翻转检测值;否则,将所述新报文的序列号作为第一翻转检测值;其中,所述第一预设门限值小于所述第二预设门限值。
上述处理器62,还用于:若确定所述新报文的序列号大于第二预设门限值,且所述原始报文序列号小于第一预设门限值,则获取所述原始报文序列号与预设值的和值,将所述和值作为第二翻转检测值;否则,将所述原始报文序列号作为第二翻转检测值;其中,所述第一预设门限值小于所述第二预设门限值。
上述处理器62,还用于:当所述第一翻转检测值与所述第二翻转检测值相同时,确定发生报文复制;当所述第一翻转检测值与所述第二翻转检测值之差大于一,确定发生报文丢失;当所述第一翻转检测值小于所述第二翻转检测值,确定发生报文延迟。
处理器62,还用于当根据所述第一翻转检测值与所述第二翻转检测值的关系,确定报文未发生乱序时,将所述新报文的序列号存储至存储器61中,并输出原始报文序列号。
综上所述,当接收到新报文时,获取该新报文的序列号;获取本地保存的原始报文序列号;检测新报文的序列号是否发生序列号翻转,根据对新报文的序列号的检测结果得到新报文的序列号对应的第一翻转检测值,并检测原始报文序列号是否发生序列号翻转,根据对原始报文的序列号的检测结果得到原始报文对应的第二翻转检测值;根据第一翻转检测值与第二翻转检测值的关系,确定报文发生的乱序类型。采用本发明技术方案,分别检测新报文的序列号,以及该新报文的原始报文序列号是否翻转,从而避免了在报文乱序检测过程中存在的检测结果不准确的问题,保证了检测结果的准确性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (6)

1.一种报文乱序检测方法,其特征在于,包括:
当接收到新报文时,获取所述新报文的序列号;并
获取本地保存的原始报文序列号;其中,所述原始报文序列号为最新保存的报文的序列号;
若确定所述新报文的序列号小于第一预设门限值,且所述原始报文序列号大于第二预设门限值,则获取所述新报文的序列号与预设值的和值,将所述和值作为第一翻转检测值;否则,将所述新报文的序列号作为第一翻转检测值;其中,所述第一预设门限值小于所述第二预设门限值;并
若确定所述新报文的序列号大于第二预设门限值,且所述原始报文序列号小于第一预设门限值,则获取所述原始报文序列号与预设值的和值,将所述和值作为第二翻转检测值;否则,将所述原始报文序列号作为第二翻转检测值;
根据所述第一翻转检测值与所述第二翻转检测值的关系,确定报文发生的乱序类型。
2.如权利要求1所述的方法,其特征在于,根据所述第一翻转检测值与所述第二翻转检测值的关系,确定报文发生的乱序类型,具体包括:
当所述第一翻转检测值与所述第二翻转检测值相同时,确定发生报文复制;
当所述第一翻转检测值与所述第二翻转检测值之差大于一,确定发生报文丢失;
当所述第一翻转检测值小于所述第二翻转检测值,确定发生报文延迟。
3.如权利要求2所述的方法,其特征在于,进一步包括:
当根据所述第一翻转检测值与所述第二翻转检测值的关系,确定报文未发生乱序时,存储所述新报文的序列号,并输出原始报文序列号。
4.一种报文乱序检测装置,其特征在于,包括:
获取单元,用于当接收到新报文时,获取所述新报文的序列号,以及获取本地保存的原始报文序列号;其中,所述原始报文序列号为最新保存的报文的序列号;
检测单元,用于若确定所述新报文的序列号小于第一预设门限值,且所述原始报文序列号大于第二预设门限值,则获取所述新报文的序列号与预设值的和值,将所述和值作为第一翻转检测值;否则,将所述新报文的序列号作为第一翻转检测值;其中,所述第一预设门限值小于所述第二预设门限值;以及,若确定所述新报文的序列号大于第二预设门限值,且所述原始报文序列号小于第一预设门限值,则获取所述原始报文序列号与预设值的和值,将所述和值作为第二翻转检测值;否则,将所述原始报文序列号作为第二翻转检测值;
确定单元,用于根据所述检测单元得到的第一翻转检测值与所述第二翻转检测值的关系,确定报文发生的乱序类型。
5.如权利要求4所述的装置,其特征在于,所述确定单元,具体用于:
当所述第一翻转检测值与所述第二翻转检测值相同时,确定发生报文复制;当所述第一翻转检测值与所述第二翻转检测值之差大于一,确定发生报文丢失;当所述第一翻转检测值小于所述第二翻转检测值,确定发生报文延迟。
6.如权利要求5所述的装置,其特征在于,还包括输出单元,用于:
当根据所述第一翻转检测值与所述第二翻转检测值的关系,确定报文未发生乱序时,存储所述新报文的序列号,并输出原始报文序列号。
CN201410521675.0A 2014-09-30 2014-09-30 一种报文乱序检测方法及装置 Active CN104270287B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410521675.0A CN104270287B (zh) 2014-09-30 2014-09-30 一种报文乱序检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410521675.0A CN104270287B (zh) 2014-09-30 2014-09-30 一种报文乱序检测方法及装置

Publications (2)

Publication Number Publication Date
CN104270287A CN104270287A (zh) 2015-01-07
CN104270287B true CN104270287B (zh) 2018-04-27

Family

ID=52161781

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410521675.0A Active CN104270287B (zh) 2014-09-30 2014-09-30 一种报文乱序检测方法及装置

Country Status (1)

Country Link
CN (1) CN104270287B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106375242B (zh) * 2015-07-20 2020-09-08 中兴通讯股份有限公司 通告消息处理方法及系统
CN106506124B (zh) * 2015-09-07 2019-09-13 中国移动通信集团公司 重传报文确定方法及装置
WO2019000169A1 (en) 2017-06-26 2019-01-03 Qualcomm Incorporated E PLANNING POLICIES FOR NON-ORDER AUTHORIZATIONS
CN109286539B (zh) * 2018-10-31 2020-06-12 迈普通信技术股份有限公司 检测发送异常的方法、装置、通信设备及可读存储介质
CN113300818B (zh) * 2021-02-08 2023-04-28 阿里巴巴集团控股有限公司 数据传输系统及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0779722A1 (en) * 1995-12-11 1997-06-18 Hewlett-Packard Company Failure detection method in a communication channel with several routes
CN1400787A (zh) * 2001-08-06 2003-03-05 华为技术有限公司 数据报文传输序列号合法性的检查方法
CN1812400A (zh) * 2005-01-27 2006-08-02 华为技术有限公司 一种多协议标记交换技术中数据报文的传输方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0779722A1 (en) * 1995-12-11 1997-06-18 Hewlett-Packard Company Failure detection method in a communication channel with several routes
CN1400787A (zh) * 2001-08-06 2003-03-05 华为技术有限公司 数据报文传输序列号合法性的检查方法
CN1812400A (zh) * 2005-01-27 2006-08-02 华为技术有限公司 一种多协议标记交换技术中数据报文的传输方法

Also Published As

Publication number Publication date
CN104270287A (zh) 2015-01-07

Similar Documents

Publication Publication Date Title
CN104270287B (zh) 一种报文乱序检测方法及装置
US20190108111A1 (en) Bit error rate prediction
US7971110B2 (en) System and method for testing a serial attached small computer system interface
CN105379164B (zh) 用于发送和接收数据的方法和设备以及用于执行所述方法的记录介质
WO2017112260A1 (en) Technologies for sideband performance tracing of network traffic
CN106254461B (zh) 一种智能车辆感知能力测试平台的数据同步方法
CN106878164A (zh) 一种报文传输方法和装置
CN115002047B (zh) 一种远程直接数据存取方法、装置、设备以及存储介质
US20140369195A1 (en) Congestion avoidance and control for udp-based protocols
CN109688063A (zh) 一种大型接收卸载功能的设置方法和装置
US9667722B2 (en) Method and system for non-tagged based latency calculation
CN110019386A (zh) 一种流数据处理方法及设备
CN111865674B (zh) 一种日志处理方法、装置及介质
CN107491374A (zh) 一种设备停机状态的判断方法及计算设备
US8948020B2 (en) Detecting and isolating dropped or out-of-order packets in communication networks
CN106372026A (zh) 一种链路检测方法和接收设备
US10873532B2 (en) Flow control visibility
CN104618335B (zh) 一种消息交互的方法和接口处理平台
CN103532931B (zh) 数据流传输性能的测试方法、服务器及测试系统
CN107193839A (zh) 数据聚合方法及装置
CN104113467A (zh) 虚拟桌面系统及其消息数据的发送方法
CN104348711B (zh) 消息接收装置及方法
US9477736B2 (en) Apparatus and method for active and passive data gathering using stochastic model in control network
CN105389205B (zh) 一种信息处理方法及电子设备
CN113556403A (zh) 一种用于分布式训练的通信方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant