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

一种用户网络流量统计方法、获取方法及统计系统与流程

2023-01-15 05:54:21 来源:中国专利 TAG:


1.本技术涉及网络安全技术领域,具体而言,涉及一种用户网络流量统计方法、获取方法及统计系统。


背景技术:

2.如果在网络中存在大量的恶意流量,将会消耗大量的网络带宽资源,严重影响正常网络业务的传输。如何更好的进行网络行为监控,实现有效的网络资源管理,是网关设备的重要功能。对网络流量进行高效的统计能够帮助管理员更全面的掌控网络流量情况,根据可能的异常状况快速做出响应,从而提高网络资源利用率。
3.当网关设备的网络报文通过fpga实现转发处理时,由于其流量信息不能通过网关运行的操作系统直接获取,因此,不能实现网络流量的统计。


技术实现要素:

4.本技术实施例的目的在于提供一种用户网络流量统计方法、获取方法及统计系统,基于session表对网络报文进行流量统计并与对应的用户信息进行关联,实现用户访问流量的精细化统计,解决了现有方法无法实现网络流量统计的问题。
5.本技术实施例提供了一种用户网络流量统计方法,应用于fpga模块,所述方法包括:
6.接收用户端发送的网络访问请求报文;
7.解析所述网络访问请求报文,并将解析结果与已有session表进行匹配;
8.若不匹配,则将所述网络访问请求报文发送至运算处理器,以利用所述运算处理器建立所述网络访问请求报文的session表;
9.接收所述运算处理器发送的session表和对应的网络访问请求报文,并对所述网络访问请求报文进行流量统计。
10.在上述实现过程中,在利用fpga实现的网关设备中,基于session表对网络访问请求报文进行快速匹配和流量统计,实现用户访问流量的精细化统计。
11.进一步地,所述方法还包括:
12.若解析结果与已有session表相匹配,则对所述网络访问请求报文进行流量统计并更新对应数据流的流量信息。
13.在上述实现过程中,利用session表对网络访问请求报文进行快速匹配,将数据流session表项与用户在线数据表相关联,实现fpga统计的针对数据流统计的流量,可以基于用户进行快速汇总。
14.进一步地,所述解析所述网络访问请求报文,并将解析结果与已有session表进行匹配,包括:
15.获取所述网络访问请求报文的解析结果,所述解析结果包括源ip、源端口、目的ip、目的端口以及通信协议;
16.基于所述解析结果对所述session表进行查找,以确定所述解析结果是否存在与所述session表中。
17.在上述实现过程中,建立基于源ip、源端口、目的ip、目的端口以及通信协议的session表,用于实现数据流的快速匹配。
18.本技术实施例还提供一种用户网络流量信息获取方法,应用于运算处理器,所述方法包括:
19.接收fpga模块发送的网络访问请求报文;
20.基于所述网络访问请求报文建立session表;
21.将所述session表同步至所述fpga模块,以使所述fpga模块基于所述session表统计流量信息;
22.定时获取所述流量信息,并基于所述流量信息对在线用户列表进行更新。
23.在上述实现过程中,将网络访问请求报文与用户信息相关联,实现用户访问流量的精细化统计。
24.进一步地,所述基于所述网络访问请求报文建立session表,包括:
25.获取所述网络访问请求报文的源ip、源端口、目的ip、目的端口以及通信协议;
26.基于所述源ip、源端口、目的ip、目的端口以及通信协议建立session表。
27.在上述实现过程中,创建基于源ip、源端口、目的ip、目的端口以及网络报文通信协议的数据流session表项,用于实现数据流的快速匹配。
28.进一步地,所述方法还包括:
29.基于所述源ip获取所述源ip对应的在线用户的内存地址;
30.将所述内存地址保存至所述session表中。
31.在上述实现过程中,可以通过session表对应存储空间记录的用户在线列表内存地址信息,快速访问用户在线列表对应的存储空间。
32.本技术实施例还提供一种用户网络流量统计系统,所述系统包括:
33.fpga模块,用于接收用户发送的网络访问请求报文,并基于所述网络访问请求报文对应的session表对所述网络访问请求报文进行流量统计,若所述网络访问请求报文没有session表,则将所述网络访问请求报文发送至运算处理器;
34.所述运算处理器,用于接收所述网络访问请求报文,基于所述网络访问请求报文建立session表,并将所述session表同步至所述fpga模块。
35.在上述实现过程中,在利用fpga实现的网关设备中,基于session表对网络访问请求报文进行快速匹配和流量统计,实现用户访问流量的精细化统计。
36.所述运算处理器还用于:
37.定时获取所述流量信息,并基于所述流量信息对在线用户列表进行更新。
38.在上述实现过程中,获取fpga统计的网络流量,并将流量信息汇总至对应的在线用户信息中。
39.本技术实施例还提供一种电子设备,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行计算机程序以使所述电子设备执行上述中任一项所述的用户网络流量统计方法。
40.本技术实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序
指令,所述计算机程序指令被一处理器读取并运行时,执行上述中任一项所述的用户网络流量统计方法。
附图说明
41.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
42.图1为本技术实施例提供的一种用户网络流量统计方法的流程图;
43.图2为本技术实施例提供的用户网络流量统计方法的整体流程图;
44.图3为本技术实施例提供的基于session表的查找过程流程图;
45.图4为本技术实施例提供的用户网络流量信息获取方法的流程图;
46.图5为本技术实施例提供的session表的建立流程图;
47.图6为本技术实施例提供的内存地址的存储流程图;
48.图7为本技术实施例提供的一种用户网络流量统计系统。
具体实施方式
49.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
50.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
51.实施例1
52.请参看图1,图1为本技术实施例提供的一种用户网络流量统计方法的流程图。基于fpga模块100实现网络报文转发处理的网关设备的用户网络流量统计,使网关设备具备更全面的网络状态展示。该方法应用于fpga模块100,具体可以包括以下步骤:
53.步骤s100:接收用户端发送的网络访问请求报文;
54.如图2所示,为用户网络流量统计方法的整体流程图,整个实施过程的具体步骤为:
55.首先,用户通过用户终端进行登录,cpu运算处理系统(运算处理器200)记录用户登录ip以及用户名等信息,建立用户会话,并将用户信息记录至用户在线列表中,用户终端发起网络访问请求,从而fpga模块100接收到网络访问请求报文;
56.步骤s200:解析所述网络访问请求报文,并将解析结果与已有session表进行匹配;
57.如图3所示,为基于session表的查找过程流程图,步骤s200具体可以包括:
58.步骤s201:获取所述网络访问请求报文的解析结果,所述解析结果包括源ip、源端口、目的ip、目的端口以及通信协议;
59.步骤s202:基于所述解析结果对所述session表进行查找,以确定所述解析结果是否存在与所述session表中。
60.用户终端发起网络访问,fpga模块100接收对应的网络访问请求报文,根据源ip、
源端口、目的ip、目的端口以及网络报文通信协议,在session表中对该网络访问请求报文进行查找,如果没有该网络访问请求报文对应的session表,说明没有连接,即用户发起的网络访问为首包,则将该网络访问请求报文发送至cpu运算处理系统,以在cpu运算处理系统建立数据session连接。
61.在fpga模块100中,创建基于源ip、源端口、目的ip、目的端口以及网络报文通信协议的数据流session表项,用于实现网络访问请求报文的快速匹配,以便对该网络访问请求报文进行流量的精确统计。
62.其中,session是指会话控制,是保存在服务器上的一种机制,当客户端访问服务器的时候,服务器会把信息以某种形式记录在服务器上,恰恰和cookie相反。
63.步骤s300:若不匹配,则将所述网络访问请求报文发送至运算处理器200,以利用所述运算处理器200建立所述网络访问请求报文的session表;
64.步骤s400:接收所述运算处理器200发送的session表和对应的网络访问请求报文,并对所述网络访问请求报文进行流量统计。
65.该方法还包括:
66.若解析结果与已有session表相匹配,则对所述网络访问请求报文进行流量统计并更新对应数据流的流量信息。
67.如果用户发起的网络访问非首包,网络访问请求报文在被fpga模块100接收之后,根据源ip、源端口、目的ip、目的端口以及网络报文通信协议,在网络连接session表中对该连接进行查找,如果匹配到该连接对应的session表,fpga模块100对网络访问请求报文进行流量统计后,更新该条数据流的流量信息,并直接将该网络访问请求报文进行转发,不需要上送至cpu运算处理系统。
68.本技术实施例还提供一种用户网络流量信息获取方法,应用于运算处理器200,如图4所示,为用户网络流量信息获取方法的流程图,所述方法包括以下步骤:
69.步骤s500:接收fpga模块100发送的网络访问请求报文;
70.步骤s600:基于所述网络访问请求报文建立session表;
71.如图5所示,为session表的建立流程图,步骤s600具体可以包括:
72.步骤s601:获取所述网络访问请求报文的源ip、源端口、目的ip、目的端口以及通信协议;
73.步骤s602:基于所述源ip、源端口、目的ip、目的端口以及通信协议建立session表。
74.cpu运算处理系统在接收到网络访问请求报文后,根据报文的源ip、源端口、目的ip、目的端口以及网络报文通信协议建立session表,session表用于实现数据流的快速匹配,并且建立session表与用户的关联关系。
75.步骤s700:将所述session表同步至所述fpga模块100,以使所述fpga模块100基于所述session表统计流量信息;
76.cpu运算处理系统将网络访问请求报文下发至fpga模块100,fpga模块100对网络访问请求报文进行流量统计后,更新该条数据流的流量信息。其中,流量统计主要是统计报文的长度,流量信息即一定时间段内的流量大小,以便监测是否为恶意流量。
77.步骤s800:定时获取所述流量信息,并基于所述流量信息对在线用户列表进行更
新。
78.cpu运算处理系统定时获取fpga模块100统计的数据流信息,根据数据流中记录的在线用户内存地址,快速更新在线用户列表中该用户对应的流量信息。
79.将数据流session表项与在线用户列表相关联,实现fpga模块100统计的针对数据流统计的流量,可以基于用户进行快速汇总。
80.将网络访问请求报文与用户信息相关联,实现用户访问流量的精细化统计。
81.如图6所示,为内存地址的存储流程图,该方法还包括:
82.步骤s901:基于所述源ip获取所述源ip对应的在线用户的内存地址;
83.步骤s902:将所述内存地址保存至所述session表中。
84.可以通过session表对应存储空间记录的用户在线列表内存地址信息,快速访问用户在线列表对应的存储空间。
85.在步骤s600之后,cpu运算处理系统在建立的session表中,根据源ip,查询获取该源ip对应的在线用户的内存地址,并将该内存地址记录至session表中。
86.在利用fpga模块100实现的网关设备中,将利用fpga模块100处理的网络报文进行流量统计并与用户信息相关联,实现用户访问流量的精细化统计;并且在对用户的数据流量进行记录时,用户流量统计以及查询的算法复杂度为o(1),因此可快速实现用户的流量统计。
87.在利用fpga模块100实现的网关设备中,利用fpga模块100处理网络访问请求报文并进行流量统计,再与用户信息相关联,实现用户访问流量的精细化统计。
88.用户发起的网络访问请求报文首先被fpga模块100接收,并根据源ip、源端口、目的ip、目的端口以及网络报文通信协议,在网络连接session表中对该连接进行查找,如果没有该连接对应的session表,则将网络报文发送至运算处理器200;运算处理器200接收到报文时,根据报文的源ip、源端口、目的ip、目的端口以及网络报文通信协议建立session表;在建立的session表中,根据源ip,查询获取该源ip对应的在线用户的内存地址,并将该内存地址记录至session表;并将建立的session表同步至fpga模块,以使fpga模块100对该网络访问请求报文进行流量统计。
89.若用户发起的网络访问非首包,则在fpga模块100直接进行流量统计并更新对应的流量信息后,转发出去,无需发送至运算处理器200。
90.实施例2
91.本技术实施例提供一种用户网络流量统计系统,如图7所示,为用户网络流量统计系统的结构框图,所述系统包括:
92.fpga模块100,用于接收用户发送的网络访问请求报文,并基于所述网络访问请求报文对应的session表对所述网络访问请求报文进行流量统计,若所述网络访问请求报文没有session表,则将所述网络访问请求报文发送至运算处理器200;
93.所述运算处理器200,用于接收所述网络访问请求报文,基于所述网络访问请求报文建立session表,并将所述session表同步至所述fpga模块100。
94.运算处理器200还用于:
95.定时获取所述流量信息,并基于所述流量信息对在线用户列表进行更新。
96.获取fpga统计的网络流量,并将流量信息汇总至对应的在线用户信息中。
97.fpga模块100用于:实现网络访问请求报文的接收,将接收到的网络访问请求报文传输至运算处理器200如cpu运算处理系统;接收cpu运算处理系统发送的网络访问请求报文;查询网络连接的快速转发列表,实现网络访问请求报文的快速转发;统计每条数据流的网络流量。
98.cpu运算处理系统,由硬件和软件两部分组成,其中,硬件主要包括cpu、内存和硬盘等,软件包括操作系统和各种应用程序。cpu运算处理系统用于:维护用户在线列表,实现在线用户的增、删、改、查;实现对session表以及对应存储空间的维护,实现数据连接session表的增、删、改、查;实现数据连接session对应存储空间和用户在线列表对应存储空间的关联,可以通过数据连接session对应存储空间记录的用户在线列表内存地址信息,快速访问用户在线列表对应的存储空间;获取fpga模块100统计的网络流量,并将对应的流量信息汇总至对应的在线用户信息中,此处的流量信息包括流量大小,可用于对恶意流量进行监测。
99.其中,cpu运算处理系统通过pci-e总线与fpga模块100中的多队列dma控制器连接,实现cpu运算处理系统与fpga模块100之间的报文数据和session表管理同步的功能。
100.fpga模块100具有报文协议解析、数据hash运算、报文转发等功能,并通过网络数据收发模块实现以太网链路的接入。
101.具体地,当一条网络访问请求报文被fpga模块100接收后,fpga模块100的网络数据处理引擎对网络访问请求报文进行协议解析,查找该网络访问请求报文是否存在对应的session表,若该报文为首次被接收,session表项里没有该报文信息,网络数据处理引擎将把报文上送给cpu运算处理系统。
102.cpu运算处理系统接收该报文,对该报文建立session表,并将该连接报文的session表同步至fpga模块100,以在fpga模块100实现流量统计。
103.当该网络访问请求报文再次被fpga模块100接收,这时fpga模块100已记录该条网络访问请求报文的session表,fpga模块100通过匹配该session表进行流量统计,将匹配成功的网络访问请求报文,直接从对应以太网接口转发出去,不需要再经过cpu运算处理系统处理,提高了网络访问请求报文的响应效率,提高了运行速度。
104.在fpga模块100中,创建基于源ip、源端口、目的ip、目的端口以及网络报文通信协议的数据流session表项,用于实现数据流的快速匹配;将数据流session表项与用户在线数据表相关联,实现fpga统计的针对数据流统计的流量,可以基于用户进行快速汇总;在利用fpga实现的网关设备中,将利用fpga处理的网络报文进行流量统计并与用户信息相关联,实现用户访问流量的精细化统计。
105.本技术实施例还提供一种电子设备,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行计算机程序以使所述电子设备执行实施例1所述的用户网络流量统计方法。
106.本技术实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行实施例1所述的用户网络流量统计方法。
107.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图
显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
108.另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
109.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
110.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
111.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。
112.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献