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

流表管理和维护的方法、设备以及存储介质与流程

2022-02-20 14:07:14 来源:中国专利 TAG:


1.本发明属于网络流量技术领域,尤其涉及一种流表管理和维护的方法、设备以及存储介质。


背景技术:

2.网络环境日益复杂,后端业务系统在进行网络流量分析时,需要对网络流量中的每一组会话进行组建与维护;在网络流量较大的情况下,业务分析系统对网络流量的分析压力也会对应增加。
3.为解决业务分析系统的分析压力增加的问题,采用堆积服务器的方式,将网络流量分流到各个服务器上,使得每台服务器的分析压力较小,或者在前端接入分流设备,针对后端不同分析服务器的主要功能,在前端分流设备将流量按功能分类,进行流量过滤。
4.但是,采用堆积服务器的方式,存在如下问题:
5.1)增加实验室建设成本、功耗消耗、以及实验室空间占用。
6.2)增加分析结果汇总、分析结果查重、分析结果分发等额外环境,使得网络部署故障点增加、网络处理时延大。
7.采用在前端接入分流设备再进行后端业务分析的方式,存在如下问题:
8.1)需要对前后端网络流量过滤功能进行维护,包括过滤规则的配置与下发、针对不同功能的过滤规则制定等。
9.2)当后端业务为综合型分析系统时,分析压力依旧很大。


技术实现要素:

10.本发明旨在至少在一定程度上解决相关技术中的存在的采用堆积服务器的方式,会增加实验室建设成本、功耗消耗、以及实验室空间占用;增加分析结果汇总、分析结果查重、分析结果分发等额外环境,使得网络部署故障点增加、网络处理时延大;采用在前端接入分流设备再进行后端业务分析的方式,需要对前后端网络流量过滤功能进行维护,包括过滤规则的配置与下发、针对不同功能的过滤规则制定等;当后端业务为综合型分析系统时,分析压力依旧很大的技术问题之一。为此,本发明的一个目的在于提出一种流表管理和维护的方法、设备以及存储介质。
11.为了解决上述技术问题,本发明的实施例提供如下技术方案:
12.一种流表管理和维护的方法,包括:
13.接收原始流量;
14.对所述原始流量进行处理,获取处理结果;
15.根据所述处理结果,获取汇总流表信息;
16.将所述汇总流表信息以及原始流量的前n个报文发送至处理器;其中,n小于所述原始流量包含的报文总数。
17.可选的,对所述原始流量进行处理,获取处理结果,包括:
18.通过对所述原始流量进行解析,获取解析结果;所述解析结果包括元组会话;
19.查找所述元组会话是否命中原始流表,获取查找结果。
20.可选的,根据所述处理结果,获取汇总流表信息,包括:
21.根据所述查找结果,对所述元组会话进行分类,获取分类结果;
22.根据所述分类结果,获取汇总流表信息。
23.可选的,根据所述分类结果,获取汇总流表信息,包括:
24.根据所述分类结果,将相同的所述元组会话的流表信息进行合并,获取合并流表,对不同的所述元组会话的流表信息建立流表,获取新流表;
25.对所述合并流表以及新流表进行汇总,获取汇总流表信息。
26.可选的,将所述汇总流表信息以及原始流量的前n个报文发送至处理器,包括:
27.基于相同的流量元组,获取所述汇总流表信息以及原始流量的前n个报文;
28.基于相同的计算方式,获取所述汇总流表信息以及原始流量的前n个报文。
29.可选的,所述前n个报文,包括如下任意一项:
30.仅包括tcp报文;
31.仅包括udp报文;
32.同时包括所述tcp报文以及udp报文。
33.可选的,所述将汇总流表信息以及原始流量的前n个报文发送至后,包括:
34.所述处理器判断所述报文的类型,获取判断结果;
35.根据所述判断结果对所述报文进行管理。
36.可选的,所述根据所述判断结果对所述报文进行管理,包括:
37.若所述报文类型为tcp报文,则所述fpga接收fin包后,触发流表老化;同时将所述汇总流表信息发送至所述处理器;
38.若所述报文类型为udp报文,则所述fpga对流表设置超时时间;当达到超时时间,所述fpga触发流表老化,同时将所述汇总流表信息发送至所述处理器。
39.本发明的实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的方法。
40.本发明的实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法。
41.本发明的实施例,具有如下技术效果:
42.本发明的上述技术方案,1)基于fpga专用网卡将原始流量的前n个报文以及流表汇总信息发送至处理器进行处理,大大减轻了网络流量异构处理中,处理器业务系统的收包压力和处理压力。
43.2)当需要通过后端业务系统进行业务分析时,仍然可以全面接收所有的原始流量。
44.本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
45.图1是本发明实施例提供的流表管理和维护的方法的流程示意图;
46.图2是本发明实施例提供的fpga处理原始流量并发送的框图;
47.图3是本发明实施例提供的cpu接收数据的框图。
具体实施方式
48.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
49.本发明提到的,fpga(field-programmable gate array),即现场可编程门阵列;tcp(transmission control protocol)传输控制协议;udp(user datagram protocol)用户数据报协议;pcie(peripheral component interconnect express)高速串行计算机扩展总线标准;cpu(central processing unit)中央处理器;fin包:终结包。
50.如图1所示,本发明的实施例提供一种流表管理和维护的方法,包括:
51.步骤s1:接收原始流量;
52.具体的,通过fpga或其他具有软件编程能力的芯片的专用网卡接收原始流量,本发明的实施例可以fpga为例,其中,fpga可以根据定制来对高效率的算法进行预设。
53.步骤s2:对所述原始流量进行处理,获取处理结果;
54.步骤s3根据所述处理结果,获取汇总流表信息;
55.步骤s4:将所述汇总流表信息以及原始流量的前n个报文发送至处理器;其中,n小于所述原始流量包含的报文总数。
56.本发明的该实施例,基于fpga专用网卡将原始流量的前n个报文以及流表汇总信息发送至处理器进行处理,当需要通过后端业务系统进行业务分析时,仍然可以全面接收所有的原始流量,大大减轻了网络流量异构处理中,处理器业务系统的收包压力和处理压力。
57.本发明一可选的实施例,步骤s2中,对所述原始流量进行处理,获取处理结果,包括:
58.步骤s21:通过fpga对所述原始流量进行解析,获取解析结果;所述解析结果包括元组会话;
59.具体的,当目前的网络流量较大的时候,对于网络流量的大小可以预设阈值,当网络流量超过预设阈值的时候,基于该实施例对网络流量进行处理,以减轻服务器的cpu的接收和处理报文的压力;
60.其中,当目前的网络流量超过阈值的时候,则fpga快速提取原始流量的五元组,获取多个五元组会话;在实际提取过程中,还可以根据实际需要对二元组进行提取;本发明的实施例以五元组进行提取为例;五元组会话包括源ip地址、目的ip地址、协议号、源端口、目的端口。
61.步骤s22:查找所述元组会话是否命中原始流表,获取查找结果。
62.具体的,通过双重哈希运算(也即两次哈希运算)对原始流量包含的多个五元组会话进行计算,过滤掉不重要的信息,获取哈希值,对多个五元组会话对应的流表进行查找。
63.本发明的该实施例,当传输到服务器的网络流量较大,超过阈值的时候,通过fpga对接收的原始流量进行处理,减少传输到服务器的网络流量,以降低处理器的压力,提高处理器的运行速率。
64.本发明一可选的实施例,步骤s3中,所述根据所述处理结果,获取汇总流表信息,包括:
65.步骤s31:根据所述查找结果,对所述元组会话进行分类,获取分类结果;
66.步骤s32:根据所述分类结果,获取汇总流表信息。
67.具体的,分类结果包括流表信息相同的元组会话,以及流表信息不相同的元组会话。
68.本发明的该实施例,基于分类结果,以便于获取汇总流表信息。
69.本发明一可选的实施例,步骤s32中,所述根据所述分类结果,获取汇总流表信息,包括:
70.步骤s321:根据所述分类结果,将相同的所述元组会话的流表信息进行合并,获取合并流表,对不同的所述元组会话的流表信息建立流表,获取新流表;
71.其中,对于相同的元组会话的流表信息进行合并,获取合并流表,对于不同的元组会话的流表信息建立流表,获取新的流表。
72.步骤s322:对所述合并流表以及新流表进行汇总,获取汇总流表信息。
73.本发明的该实施例,基于哈希值的查找结果,确定流表信息对应的流表,并获取汇总流表信息,减少了计算机的运算压力。
74.本发明一可选的实施例,步骤s4中,将所述汇总流表信息以及原始流量的前n个报文发送至处理器,包括:
75.步骤s41:基于相同的流量元组,获取所述汇总流表信息以及原始流量的前n个报文;
76.具体的,该实施例通过fpga对原始流量均进行五元组的提取,获取五元组会话。
77.步骤s42:基于相同的计算方式,获取所述汇总流表信息以及原始流量的前n个报文。
78.具体的,上述获取的五元组会话均通过双重哈希运算计算哈希值;
79.对于原始流量的前n个报文,则可基于fpga的汇总流表的数据进行报文计数,然后获取前n个报文;其中,n的值可以根据实际需要进行预设,不唯一,且n为正整数;
80.例如:n的值可以根据当前网络流量超过阈值的大小进行设定,或者根据cpu当前的运行速率进行预设,以保证cpu的工作效率。
81.本发明的该实施例,为了保证cpu的每个pcie队列可以接收到同源同宿的原始流量的前n个报文,通过基于相同的流量元组和相同的计算方式,获取汇总流表信息以及原始流量的前n个报文。
82.本发明一可选的实施例,步骤s4中,所述前n个报文,包括如下任意一项,包括:
83.步骤s43:仅包括tcp报文;
84.步骤s44:仅包括udp报文;
85.步骤s45:同时包括所述tcp报文以及udp报文。
86.具体的,汇总流表信息包括原始流量前n个报文对应的流表信息,因此,无论前n个
报文的报文的类型是tcp报文、udp报文还是同时包括tcp报文和udp报文,前n个报文的流表信息均可以在汇总流表信息中找到。
87.本发明一可选的实施例,步骤s43中,所述将汇总流表信息以及原始流量的前n个tcp报文发送至处理器后,包括:
88.步骤s431:所述处理器判断所述报文的类型,获取判断结果;
89.步骤s432:根据所述判断结果对所述报文进行管理。
90.本发明的该实施例,因为当将汇总流表信息以及原始流量的前n个报文发送至cpu后,表明cpu无法获取当前的全部原始流量,所以cpu可能无法精准地确定流表会话结束的时间,以及触发汇总每个流表会话的话单信息的时间等;cpu必须依赖fpga的汇总流表信息进行触发;因此,本发明的该实施例,在向处理器发送tcp或者udp报文的时候需要进行流表老化触发并告知cpu。本发明一可选的实施例,步骤s44中,所述根据所述判断结果对所述报文进行管理,包括:
91.步骤s441:若所述报文类型为tcp报文,则所述fpga接收fin包后,触发流表老化;同时将所述汇总流表信息发送至所述处理器;
92.具体的,对于tcp报文,fpga接收到fin包(终结包)之后,触发fpga流表老化,同时将此流表的汇总流表信息通过pcie发送至cpu;其中,流表老化的时间可以根据业务的实际需要进行预设。
93.步骤s442:若所述报文类型为udp报文,则所述fpga对流表设置超时时间;当达到超时时间,所述fpga触发流表老化,同时将所述汇总流表信息发送至所述处理器。
94.具体的,对于udp报文,fpga需对流表会话设置超时时间,流表超时时间达到后,触发fpga流表老化,同时将该流表会话的汇总流表信息发送至cpu。
95.本发明的该实施例,基于触发流表老化,cpu可实现精准控制fpga传输的udp或tcp报文的会话结束时间。
96.结合图2和图3,本发明的上述实施例,可以通过如下实现方式实现:
97.1)fpga通过专用网卡接收原始流量;
98.2)fpga对接收到的原始流量进行解析,快速提取流量五元组会话;
99.3)通过双向hash对五元组会话进行计算,获取哈希值;
100.4)根据哈希值查找五元组会话是可以在原始流表中找到对应的流表信息;若是,则判断是否达到流量统计超时时间,若已达到流量统计超时时间,则将这些流量统计信息(汇总流表信息)进行封装;若否,则建立新流表,然后对汇总流表信息进行封装;
101.5)判断是否是原始流量的前n个报文,若是原始流量的前n个报文,则对前n个报文进行报文封装,并将封装后的前n个报文以及汇总流表信息通过pcie队列发送至cpu进行处理;若不是原始流量的前n个报文,则继续对报文的数量进行统计,并对流表信息不断更新,直至报文的数量达到n个;
102.6)cpu通过pcie进行数据包接收,并通过l3(网络层)进行数据包的解析,获取解析结果;
103.7)cpu基于解析结果对获取的流量进行管理;
104.8)cpu判断前n个报文的类型,若是原始流量(全部报文,未经过fpga对报文处理,例如:fpga仅发送原始流量的前n个报文),则cpu基于原始流量进行业务分析;若是原始流
量的前n个报文,当报文为tcp报文,则进行信息统计,直至fpga接收fin包,并触发流表老化,同时将汇总流表信息发送至cpu,期间cpu继续进行信息统计,直至流表老化;
105.当报文为udp报文,则判断是否达到超时时间,若是,则触发流表老化,同时将汇总流表信息发送至cpu,期间cpu继续进行信息统计,直至流表老化。
106.本发明的实施例还提供一种流表管理和维护的装置,包括:
107.接收模块,用于接收原始流量;
108.处理模块,用于所述对所述原始流量进行处理,获取处理结果;
109.获取模块,用于所述根据所述处理结果,获取汇总流表信息;
110.发送模块,用于所述将所述汇总流表信息以及原始流量的前n个报文发送至处理器;其中,n小于所述原始流量包含的报文总数。
111.可选的,所述对所述原始流量进行处理,获取处理结果,包括:
112.通过fpga对所述原始流量进行解析,获取解析结果;所述解析结果包括元组会话;
113.查找所述元组会话是否命中原始流表,获取查找结果。
114.可选的,所述根据所述处理结果,获取汇总流表信息,包括:
115.根据所述查找结果,对所述元组会话进行分类,获取分类结果;
116.根据所述分类结果,获取汇总流表信息。
117.可选的,所述根据所述分类结果,获取汇总流表信息,包括:
118.根据所述分类结果,将相同的所述元组会话的流表信息进行合并,获取合并流表,对不同的所述元组会话的流表信息建立流表,获取新流表;
119.对所述合并流表以及新流表进行汇总,获取汇总流表信息。
120.可选的,将所述汇总流表信息以及原始流量的前n个报文发送至处理器,包括:
121.基于相同的流量元组,获取所述汇总流表信息以及原始流量的前n个报文;
122.基于相同的计算方式,获取所述汇总流表信息以及原始流量的前n个报文。
123.可选的,所述前n个报文,包括如下任意一项:
124.仅包括tcp报文;
125.仅包括udp报文;
126.同时包括所述tcp报文以及udp报文。
127.可选的,所述将汇总流表信息以及原始流量的前n个报文发送至处理器后,包括:
128.所述处理器判断所述报文的类型,获取判断结果;
129.根据所述判断结果对所述报文进行管理。
130.可选的,所述根据所述判断结果对所述报文进行管理,包括:
131.若所述报文类型为tcp报文,则所述fpga接收fin包后,触发流表老化;同时将所述汇总流表信息发送至所述处理器;
132.若所述报文类型为udp报文,则所述fpga对流表设置超时时间;当达到超时时间,所述fpga触发流表老化,同时将所述汇总流表信息发送至所述处理器。
133.本发明的实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的方法。
134.本发明的实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述
计算机程序被处理器执行时实现如上所述的方法。
135.另外,本发明实施例的设备的其他构成及作用对本领域的技术人员来说是已知的,为减少冗余,此处不做赘述。
136.需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
137.应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
138.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
139.在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
140.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
141.在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内
部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
142.在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
143.尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
再多了解一些

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

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

相关文献