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

一种会话流量的统计方法及装置与流程

2022-11-19 06:59:17 来源:中国专利 TAG:


1.本发明属于网络与信息安全技术领域,尤其是涉及一种网络会话流量的统计方法及应用该方法的统计装置。


背景技术:

2.随着通信和网络技术的快速发展,网络安全愈发重要。从网络运行和管理者角度说,希望对本地网络信息的访问、读写等操作受到保护和控制,避免出现“陷门”、病毒、非法存取、拒绝服务和网络资源非法占用和非法控制等威胁,制止和防御网络黑客的攻击。
3.为了发现网络中存在的问题,通常需要对网络数据进行分析,包括针对数据包、地址、会话、协议等进行分析以确定数据包的类型、大小等信息,从而确定这些数据包的来源,即是由什么软件产生的。其中,通过不同条件进行流量统计,能够实现实时的应用服务流量,在线ip的带宽使用情况, ip的流量趋势等,从而能进行进一步的针对性安全检测。因此,如何高效准确的实现会话连接的流量统计,对于网络与信息安全有重要意义。


技术实现要素:

4.基于上述背景,本发明旨在提供一种会话连接的流量统计方法及应用该方法的装置,以下对其采用的主要技术方案进行叙述。
5.第一方面,提供一种会话连接的流量统计方法,包括:循环读取并解析连接详细信息,进行第一次统计,将连接的实时流量数据与历史流量数据分别存入第一数据库与第二数据库;根据应用或ip,定期对所述第一数据库与第二数据库中的流量数据进行第二次统计,并输出统计结果;根据预设的查询条件获取所述统计结果。
6.第一次统计将流量数据存入第一数据库或第二数据库,具体包括:根据当前连接的数据包五元组hash遍历共享内存节点,判断连接是否为新建连接,若是则将连接的流量数据插入第一数据库并记录创建时间,否则进行下一步;判断连接是否超时,若未超时则更新所述第一数据库中的流量数据并且当连接关闭时进行下一步,若超时则直接进行下一步;将连接在共享内存中的数据清空,将所述第一数据库中的流量数据插入第二数据库并记录结束时间,删除连接在所述第一数据库中的流量数据。
7.第二次统计,包括:根据预设的周期,根据查找应用id或ip所述第一数据库或第二数据库,取出对应的流量数据加入流量排序链表,按流量大小进行排序;将第一数据库的排序结果写入实时数据文件,将第二数据库的排序结果写入第三数据库。
8.第二方面,提供一种会话流量统计装置,包括:抓包模块,通过kni抓包,获取会话连接的原始数据包并存入共享内存;第一统计模块,从共享内存读取数据并解析获取会话连接的具体信息,统计实时流量数据与历史流量数据,并分别存入第一数据库与第二数据库;第二统计模块,按照应用id或连接ip,从第一数据库与第二数据库分别取出实时
流量数据与历史流量数据进行排序处理后输出统计结果;结果存储模块,用于存储统计结果,以响应于界面的查询。
9.第三方面,还提供一种计算机设备,所述设备包括:至少一个处理器与存储器,所述存储器用于存储至少一条程序;当所述程序被所述处理器执行时,使得所述处理器实现以上所述的流量统计方法。
10.基于上述技术方案,本发明的会话流量统计方法及装置,具有以下有益效果:从kni中获取连接信息,采用共享内存通信方法,即数据先通过共享内存写入数据库,再利用统计程序定期查询数据库进行数据二次统计加工并存储为统计结果,使界面不仅能查询实时的流量,而且能利用筛选条件得到各种分析结果;同时数据统计分析和写文件、入库操作均是在不同线程分别完成,能充分利用多核优势以达到提高性能的目的。
附图说明
11.图1为本发明的会话流量统计方法实施例,流量统计分析整体流程示意图;图2为图1中,数据包解析和连接信息写入共享内存的流程示意图;图3为图1中,第一次统计流程示意图;图4为本发明的会话流量统计装置实施例,组成模块示意图。
具体实施方式
12.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
13.首先,对本发明实施例中涉及的术语进行简要解释:链式存储结构:数据元素随机存储,并通过指针表示数据之间逻辑关系的存储结构。
14.链表中每个数据的存储都由以下两部分组成:数据元素本身,其所在的区域称为数据域;指向直接后继元素的指针,所在的区域称为指针域;数据域 指针域的结构,在链表中称为节点。链表实际存储的是一个一个的节点,真正的数据元素包含在这些节点中。
15.如图1所示,一种会话连接的流量统计方法,具体包括:循环读取并解析连接详细信息,进行第一次统计,将连接的实时流量数据与历史流量数据分别存入实时数据库与历史数据库;根据应用id或ip,定期对所述实时数据库与历史数据库中的流量数据进行第二次统计,并输出统计结果;根据预设的查询条件获取所述统计结果。例如将应用名从而应用id,目的地址等作为查询条件获取对应的统计结果;又例如根据时间范围为今天、昨天、本周、本月以及自定义等作为查询条件获取对应的统计流量数据;以及各应用类型的流量占比、总流量、上行流量、下行流量信息,从而能进行进一步的针对性安全检测。
16.如图2所示,原始数据写入共享内存的过程,具体包括:
初始化共享内存;对于接收到的每一个数据包,获取五元组hash并根据hash计算偏移,判断是否为新连接;若是新连接,填充索引为hash共享内存节点,置位索引为hash的连接新建标志;若不是新连接,更新索引为hash共享;内存节点相关流量信息,当连接关闭时置位索引为hash的连接关闭标志。
17.所述的新建连接判断,通过连接第一个数据包判断,将结构体中的新建标志位置1。
18.所述的连接关闭判断,kni中此连接收到fin包时,对其标志结束位。
19.如图3所示,第一次统计将流量数据存入redis数据库或mysql数据库,具体包括:根据当前连接的数据包五元组hash遍历共享内存节点,判断连接是否为新建连接,若是则将连接的流量数据插入redis数据库并记录创建时间,否则进行下一步;判断连接是否超时,若未超时则更新所述redis数据库中的流量数据并且当连接关闭时进行下一步,若超时则直接进行下一步;将连接在共享内存中的数据清空,将所述redis数据库中的流量数据插入mysql数据库并记录结束时间,删除连接在所述redis数据库中的流量数据。
20.所述判断连接是否超时,包括:记录已存在连接节点每次写入数据库的时间,并将该时间作为此节点的更新时间;每次遍历共享内存时,若当前时间与所述节点的更新时间之差大于预设的超时时间,则判断连接超时。
21.所述实时流量数据,包括按秒统计的连接的流量数据;以及,该方法还包括定期删除所述mysql数据库存储的历史流量数据。
22.第二次统计,包括:根据预设的周期,根据查找应用id或ip所述redis数据库或mysql数据库,取出对应的流量数据加入流量排序链表,按流量大小进行排序;将第一数据库的排序结果写入实时数据文件,将mysql数据库的排序结果写入第三数据库。
23.所述将redis数据库的排序结果写入实时数据文件,包括按预设类型将实时数据分别写入不同的文件;所述将mysql数据库的排序结果写入第三数据库,包括将排序结果转换为sql批量语句放入缓存,并定时执行入库操作。
24.上述第一次统计与第二次统计中的连接包括icmp、tcp、udp连接;所述连接的详细信息包括:源ip、目的ip、源端口、目的端口、协议、应用id、接收数据、发送数据及创建时间。
25.以及,上述的流量数据统计、排序、写文件与入库由不同的线程实现;所述的数据查找采用红黑树算法。
26.如图4所示,一种会话流量统计装置实施例,包括:抓包模块,通过kni抓包,获取会话连接的原始数据包并存入共享内存;第一统计模块,从共享内存读取数据并解析获取会话连接的具体信息,统计实时流量数据与历史流量数据,并分别存入第一数据库与第二数据库;第二统计模块,按照应用id或连接ip,从第一数据库与第二数据库分别取出实时流量数据与历史流量数据进行排序处理后输出统计结果;结果存储模块,用于存储统计结果,以响应于界面的查询。
27.较佳的,上述第一统计模块,将流量数据存入redis数据库或mysql数据库,具体
为:根据当前连接的数据包五元组hash遍历共享内存节点,判断连接是否为新建连接,若是则将连接的流量数据插入redis数据库并记录创建时间,否则进行下一步;判断连接是否超时,若未超时则更新所述redis数据库中的流量数据并且当连接关闭时进行下一步,若超时则直接进行下一步;将连接在共享内存中的数据清空,将所述redis数据库中的流量数据插入mysql数据库并记录结束时间,删除连接在所述redis数据库中的流量数据。
28.较佳的,上述第二统计模块,根据预设的周期,根据查找应用id或ip所述redis数据库或mysql数据库,取出对应的流量数据加入流量排序链表,按流量大小进行排序;将第一数据库的排序结果写入实时数据文件,将mysql数据库的排序结果写入第三数据库。
29.另外,本发明还提供一种计算机设备实施例,包括:至少一个处理器与存储器,所述存储器用于存储至少一条程序;当所述程序被所述处理器执行时,使得所述处理器实现如上所述的流量统计方法。
30.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如:rom/ram、磁碟、光盘等。
31.如上所述的本发明的各实施例,从kni中获取连接信息,采用共享内存通信方法,即数据先通过共享内存写入数据库,再利用统计程序定期查询数据库进行数据二次统计加工并存储为统计结果,使界面不仅能查询实时的流量,而且能利用筛选条件得到各种分析结果;同时数据统计分析和写文件、入库操作均是在不同线程分别完成,能充分利用多核优势以达到提高性能的目的。
32.对上述公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和相一致的最宽的范围。
再多了解一些

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

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

相关文献