一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种报文去重的方法和装置与流程

2022-03-08 22:34:48 来源:中国专利 TAG:

一种报文去重的方法和装置
【技术领域】
1.本发明涉及网络通信技术领域,特别是涉及一种报文去重的方法和装置。


背景技术:

2.通信设备网络中由于存在很多旁路设备,如分光设备、分流设备,以及设备接入点的不同导致出现大量的重复报文,该重复报文主要特征五元组信息相同、tcp或udp的payload相同,mac信息相同或不同、ip头中的ttl信息相同或不同;这些重复的报文如果不筛选过滤出来、一方面浪费了设备的处理性能、另一方面会对后续报文的解析、关联有干扰、特别对于有状态变化或压缩的信令报文有干扰,一般tcp报文去重的方法有以下几种:
3.方法一是用一块大的缓存拷贝数据、计算报文的部分或全部报文的hash,后续来的报文与前面存储计算的hash值比较,如果相同则任务是重复报文、如果不同认为是非重复报文;
4.方法二是维护一张tcp报文的hash流表,流表中记录了报文的序列号或hash值等信息,每来一个报文查找一次流表,如果查询不到就创建流表、查询到后比较报文序列号或者计算的hash值与hash流表中的内容比较;
5.这两种方法都存在一定的缺陷,方法一需要较大的缓存以及计算部分或全部报文的hash值比较耗设备性能且容易达到性能瓶颈;方法二需要维护流表、每个报文需要查表、频繁的读写表、需要维护表的老化功能、存在hash冲突等劣势、对报文的处理和关联性能影响较大。
6.鉴于此,克服该现有技术所存在的缺陷是本技术领域亟待解决的问题。


技术实现要素:

7.本发明要解决的技术问题是克服现有去重技术中存在的占用内存多、存在hash冲突严重影响了整个数据解析和关联系统的性能的缺陷。
8.本发明采用如下技术方案:
9.第一方面,本发明提供了一种报文去重的方法,包括:
10.解析出报文的报文信息,其中,报文信息包括seqno和报文进入设备的时间戳;
11.将解析出报文的报文信息与存储的报文信息进行匹对;
12.在匹对中,若在存储的报文信息中找到与解析出报文之间的时间戳差值在预设的时间间隔内,并且满足在存储的报文信息中存在与解析出报文的seqno相同,则认为被解析出的报文是重复报文。
13.优选的,存储的报文信息具体为:
14.在解析出报文的报文信息与存储的报文信息进行匹对,匹对结果是在预设的时间间隔内并未找到seqno相同的存储的报文信息,则将所述解析出报文的报文信息存储到本地作为存储的报文信息之一。
15.优选的,对于存储的报文信息,在其报文进入设备的时间戳相比较当前时间超过
所述时间间隔时,将相应的报文信息进行删除处理。
16.优选的,所述预设的时间间隔的生成,具体包括:
17.根据当前所布局的多个旁路设备的位置关系,生成与解析的报文主体所适配的时间间隔。
18.优选的,在解析出报文的报文信息之前,所述方法还包括:
19.判断报文是否为控制面报文,若是控制面报文则执行所述解析出报文的报文信息的操作;若是数据面报文则执行常规的数据面报文处理流程。
20.优选的,方法还包括:
21.统计历史在单一五元组下的控制面操作所涉及的报文数量的总个数,并以其中最大总个数值作为包含相同五元组的报文信息所能实现的报文信息存储数量的参考值;
22.存储的报文信息以五元组作为划分依据进行划区,并将划区中的报文按照报文信息中的seqno进行排序,所述将解析出报文的报文信息与存储的报文信息进行匹对,具体会根据其相邻的前一个或者前两个报文的seqno确认是否超出当前轮划区,若超出则新开辟一个划区来承载新一轮的报文;其中,所述一轮的报文是在数据面报文传输前完成的一次控制面报文所包含的所有报文。
23.优选的,对于每一个划区内的各个报文信息还配置有重复次数,其中,在确认划区内其中一个报文出现一次重复时,以该报文作为该划区内的重复次数总数定标对象,划区内其他报文的重复次数设定以所述定标对象出现的重复次数为基准;在确认同一划区内报文的重复接收数量达到相应基准值时,则可预先删除掉相应报文。
24.优选的,运用了可配置的一个checksum对应n个seqno,这个n个中有一个seqno相同认为是重复报文的判断方法、避免重复报文的误判;当直接表中存储的seqno的数量大于n个时根据时间戳大小采取循环覆盖的方式,最多存储n个seqno,采用这种方式代替传统的老化方式。
25.优选的,报文信息包括:源ip、目的ip、源端口、目的端口、协议号、隧道信息、tcp flag和checksum中的一项或者多项。
26.第二方面,本发明还提供了一种报文去重的装置,用于实现第一方面所述的报文去重的方法,所述装置包括:
27.至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行第一方面所述的报文去重的方法。
28.第三方面,本发明还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,用于完成第一方面所述的报文去重的方法。
29.本发明对利用了报文在发生重复接收时,存在短时关联性的技术特性,并且抓住了报文在发生重复接收时更具客观假设好的网络架构也存在相互关联性的特性,设计了一套围绕seqno和报文进入设备的时间戳的去重解决方案,无需现有的hash运算,并且占用内存少,去重效率高。
【附图说明】
30.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
31.图1是本发明实施例提供的一种报文去重的方法流程示意图;
32.图2是本发明实施例提供的一种报文去重的方法流程示意图;
33.图3是本发明实施例提供的一种报文去重的方法流程示意图;
34.图4是本发明实施例提供的一种报文去重的架构示意图;
35.图5是本发明实施例提供的一种报文去重的装置结构示意图。
【具体实施方式】
36.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
37.在本发明的描述中,术语“内”、“外”、“纵向”、“横向”、“上”、“下”、“顶”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明而不是要求本发明必须以特定的方位构造和操作,因此不应当理解为对本发明的限制。
38.此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
39.实施例1:
40.本发明实施例1提供了一种报文去重的方法,如图1所示,包括:
41.在步骤201中,解析出报文的报文信息,其中,报文信息包括seqno和报文进入设备的时间戳。
42.在具体场景中,报文信息可以不仅仅包括seqno和报文进入设备的时间戳,还可以包括:源ip、目的ip、源端口、目的端口、协议号、隧道信息(如gtpu、gre等),tcp flag和checksum中的一项或者多项。
43.在步骤202中,将解析出报文的报文信息与存储的报文信息进行匹对。
44.其中,存储的报文信息同样包括含有各自的seqno,以及各自的报文进入设备的时间戳。在本发明实施例中,之所以采用报文进入设备的时间戳是考虑到一道控制面报文从一端传输到另一端的时间是在可估范围内的,而其无论是在网络中哪个环节被设置旁路设备对报文进行采集,各个报文被传递到数据解析和关联设备时,他们会保持有相应的网络节点之间的传输延时特性(即上述可估范围),而此传输延时特性直接表现为所述的报文进入设备的时间戳之差。
45.在步骤203中,在匹对中,若在存储的报文信息中找到与解析出报文之间的时间戳差值在预设的时间间隔内,并且满足在存储的报文信息中存在与解析出报文的seqno相同,则认为被解析出的报文是重复报文。
46.对于解析出的报文是重复报文的结论,仅仅是本发明诸多实现场景的一个关键逻辑节点。而作为本发明实施例所实现最为简单的应用场景之一,即相应的报文在整个网络
架构所设置的旁路设备场景中,仅会出现一次重复报文接收的情况,则此时,在步骤203中若确认被解析出的报文是重复报文,则做直接丢弃操作即可。
47.本发明实施例对利用了报文在发生重复接收时,存在短时关联性的技术特性,并且抓住了报文在发生重复接收时更具客观假设好的网络架构也存在相互关联性的特性,设计了一套围绕seqno和报文进入设备的时间戳的去重解决方案,无需现有的hash运算,并且占用内存少,去重效率高。
48.作为完整实现方案,实际情况中在步骤203中,除了上述扩展描述给予的确认报文为重复报文时的进一步操作内容后,此处则给予确认并非重复报文的通常处理手段,这也是本地存储的报文信息的主要又来途径。如图2所示,相应的在步骤203之后还包括:
49.在步骤204中,若在解析出报文的报文信息与存储的报文信息进行匹对,匹对结果是在预设的时间间隔内并未找到seqno相同的存储的报文信息,则将所述解析出报文的报文信息存储到本地作为存储的报文信息之一。
50.对于解析出的报文,除了确认是重复报文会进行可能的删除操作之外(详见步骤203之后的分析情况),还有一种条件也会涉及报文的删除操作,但是此处删除与上面确认重复报文的删除不同,此处所涉及的删除是针对本地存储的报文的删除。具体的,对于存储的报文信息,在其报文进入设备的时间戳相比较当前时间超过所述时间间隔时,将相应的报文信息进行删除处理。此处需要补充说明的是,所述时间间隔就是操作人员根据系统网络架构所统计或者经验分析出的,重复报文之间理论上会存在的时间间隔最大值。
51.基于上面给予的系统架构中会设置旁路设备的理论基础,那么在实际实现场景中若能够明确知悉旁路设备的设置位置,则上述的时间间隔就可以通过较为严谨的方式计算得到,因此,结合本发明实施例还存在一种优选的扩展实现方案,所述预设的时间间隔的生成,具体包括:根据当前所布局的多个旁路设备的位置关系,生成与解析的报文主体所适配的时间间隔。
52.在实际实现过程中,通常会对控制面报文更为的关注,而本发明实施例所提出的解决方案在适用于控制面报文时,由于一轮控制面信息会产生的报文数量及其优先,这样可以极大的保证本发明利用seqno来进行报文重发分析的可行性。严格意义上讲,若将这种方式应用到普通的数据报文,会因为报文数量的几何数式的暴涨,造成本发明所提出技术方案在去seqno重复性角度不会比对比文件中所描述的hash方式好多少,甚至更糟糕,但是,一旦将本发明技术方案的解决场景限定在控制面报文,则相应的准确率和效率上的优势就会淋漓尽致的展现出来。因此,结合本发明实施例,优选的,在解析出报文的报文信息之前,所述方法还包括:
53.判断报文是否为控制面报文,若是控制面报文则执行所述解析出报文的报文信息的操作;若是数据面报文则执行常规的数据面报文处理流程。
54.在实际情况中,由于旁路设别所监测的对象可以是无主观目标性的(例如:作为基站作为监测点,那么所谓的无主观目标对象表现的就是各种可能的用户4gor5g网络流量),也可以是携带主观目标性的(例如:可以是针对企业的服务器等),因此,若本身监测的目的就是有指向性的,即相应的五元组信息是确认的,那么,结合本发明实施例,还存在一种优选的实现方式,方法还包括:
55.统计历史在单一五元组下的控制面操作所涉及的报文数量的总个数,并以其中最
大总个数值作为包含相同五元组的报文信息所能实现的报文信息存储数量的参考值;
56.存储的报文信息以五元组作为划分依据进行划区,并将划区中的报文按照报文信息中的seqno进行排序,所述将解析出报文的报文信息与存储的报文信息进行匹对,具体会根据其相邻的前一个或者前两个报文的seqno确认是否超出当前轮划区,若超出则新开辟一个划区来承载新一轮的报文;其中,所述一轮的报文是在数据面报文传输前完成的一次控制面报文所包含的所有报文。
57.对于每一个划区内的各个报文信息还配置有重复次数,其中,在确认划区内其中一个报文出现一次重复时,以该报文作为该划区内的重复次数总数定标对象,划区内其他报文的重复次数设定以所述定标对象出现的重复次数为基准;在确认同一划区内报文的重复接收数量达到相应基准值时,则可预先删除掉相应报文。
58.运用了可配置的一个checksum对应n个seqno,这个n个中有一个seqno相同认为是重复报文的判断方法、避免重复报文的误判;当直接表中存储的seqno的数量大于n个时根据时间戳大小采取循环覆盖的方式,最多存储n个seqno,采用这种方式代替传统的老化方式。
59.实施例2:
60.本发明提出了一种高效tcp报文去除重复的装置,用于实现类似实施例1所描述的方法内容,该方法能够快速、精确的去除tcp重复报文并且不需要额外拷贝、缓存报文信息、不需要额外维护hash表,提升报文解析和关联的性能以及准确率,避免不必要的误匹配和关联。
61.本发明的整体流程包括5个模块:报文的解析模块、报文信息存储和比对模块、时间戳的管理和更新模块、重复报文的判定和处理模块、数据关联和处理模块;
62.解析模块:解析出报文的内外层源ip、目的ip、源端口、目的端口、协议号等基本信息,还解析各种隧道信息,如gtpu、gre等,如果是tcp报文解析出tcp flag、checksum、seqno等信息;对应n11、n4信令会解析详细的消息、提前用户信息。
63.报文信息存储和比对模块:主要是以checksum为直接表的下标存储解析模块解析出的seqno、报文进入设备的时间戳等信息,将报文中的相关信息与存储的信息比对。
64.时间戳的管理和更新模块:主要在报文进入比对模块时记录时间戳并在比对过程中更新存储的时间戳信息。
65.重复报文的判定和处理模块:根据解析报文中的checksum获取存储的多个seqno和时间戳,与当前报文的seqno和时间戳比较,如果时间戳在配置的时间间隔内且和存储的多个seqno中有一个seqno相同则认为是重复报文。
66.数据关联和处理模块:该模块主要处理信令和信令的关联以及信令和数据的关联,并输出话单信息。
67.本发明的整体流程图如图3所示,报文进入网络处理器后先对报文进行报文解析、包括基本的五元组信息解析、udp、tcp头部的checksum和seqno信息以及隧道报文的隧道信息如teid等;根据解析模块的解析结果看是否是控制面如http2的n11信令报文,是否是gtpu的数据面报文;如果是tcp报文会根据解析报文中的checksum为下标查checksum表,并将报文进入的时间与表中存储的时间戳比较,判断是否在配置的重复报文检测间隔内t(可配置的重复报文检测时间间隔),如果在时间间隔内则继续将解析的seqno与表中存储的n
(可配置的存储seqno的数量)个seqno比较,如果有一个相同;则认为是重复报文,并更新对应seqno的时间戳,用当前报文的时间戳覆盖直接表中存储的时间戳;如果没有一个seqno相同则将当前的seqno存储到对应的表中,最多可以存n个,当一个entry中存储的seqno为n时,覆盖最早存入的seqno;如果比较的时间戳不在配置的检查时间间隔内也会更新对应seqno的时间戳;如果是重复报文可更加配置的信息输出到特定的端口或丢弃并计数统计;如果是非重复报文,则会进行报文的管理,包含信令与信令的管理以及数据与信令的管理。
68.实施例3:
69.本发明基于实施例1所描述的方法基础上,结合具体的应用场景,并借由相关场景下的技术表述来阐述本发明特性场景下的实现过程。
70.用户报文通过基站接入传输设备再接入路由器或交换机等接入到核心网中,并将核心网中的部分信令以及用户报文信息分光到数据解析和关联设备中进行数据的打标或话单输出到后端服务器处理;如图4中所示数据解析和关联设备中由于上联口的多种分光设备会有大量的重复信令报文,当这些报文进入数据解析与关联设备后对报文进行报文解析、包括基本的五元组信息解析、udp、tcp头部的checksum和seqno信息以及隧道报文的隧道信息如teid等;根据解析模块的解析结果看是否是控制面如http2的n11信令报文,是否是gtpu的数据面报文;如果是tcp报文会根据解析报文中的checksum为下标查checksum表,并将报文进入的时间与表中存储的时间戳比较,判断是否在配置的重复报文检测间隔内t(可配置的重复报文检测时间间隔),如果在时间间隔内则继续将解析的seqno与表中存储的n(可配置的存储seqno的数量)个seqno比较,如果有一个相同;则认为是重复报文,并更新对应seqno的时间戳,用当前报文的时间戳覆盖直接表中存储的时间戳;如果没有一个seqno相同则将当前的seqno存储到对应的表中,最多可以存n个,当一个entry中存储的seqno为n时,覆盖最早存入的seqno;如果比较的时间戳不在配置的检查时间间隔内也会更新对应seqno的时间戳;如果是重复报文可更加配置的信息输出到特定的端口或丢弃并计数统计;如果是非重复报文,则会进行报文的管理,包含信令与信令的管理以及数据与信令的管理。
71.实施例4:
72.如图5所示,是本发明实施例的报文去重的装置的架构示意图。本实施例的报文去重的装置包括一个或多个处理器21以及存储器22。其中,图5中以一个处理器21为例。
73.处理器21和存储器22可以通过总线或者其他方式连接,图5中以通过总线连接为例。
74.存储器22作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序和非易失性计算机可执行程序,如实施例1中的报文去重的方法。处理器21通过运行存储在存储器22中的非易失性软件程序和指令,从而执行报文去重的方法。
75.存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
76.所述程序指令/模块存储在所述存储器22中,当被所述一个或者多个处理器21执行时,执行上述实施例1中的报文去重的方法,例如,执行以上描述的图1和图2所示的各个
步骤。
77.值得说明的是,上述装置和系统内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
78.本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,read only memory)、随机存取存储器(ram,random access memory)、磁盘或光盘等。
79.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献