一种会话流量的统计方法及装置制造方法及图纸

技术编号:35634386 阅读:20 留言:0更新日期:2022-11-19 16:22
本发明专利技术公开一种会话连接的流量统计方法及应用该方法的装置,从KNI中获取连接信息,采用共享内存通信方法,即数据先通过共享内存写入数据库,再利用统计程序定期查询数据库进行数据二次统计加工并存储为统计结果,使界面不仅能查询实时的流量,而且能利用筛选条件得到各种分析结果;同时数据统计分析和写文件、入库操作均是在不同线程分别完成,能充分利用多核优势以达到提高性能的目的。核优势以达到提高性能的目的。

【技术实现步骤摘要】
一种会话流量的统计方法及装置


[0001]本专利技术属于网络与信息安全
,尤其是涉及一种网络会话流量的统计方法及应用该方法的统计装置。

技术介绍

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

技术实现思路

[0004]基于上述背景,本专利技术旨在提供一种会话连接的流量统计方法及应用该方法的装置,以下对其采用的主要技术方案进行叙述。
[0005]第一方面,提供一种会话连接的流量统计方法,包括:循环读取并解析连接详细信息,进行第一次统计,将连接的实时流量数据与历史流量数据分别存入第一数据库与第二数据库;根据应用或IP,定期对所述第一数据库与第二数据库中的流量数据进行第二次统计,并输出统计结果;根据预设的查询条件获取所述统计结果。
[0006]第一次统计将流量数据存入第一数据库或第二数据库,具体包括:根据当前连接的数据包五元组hash遍历共享内存节点,判断连接是否为新建连接,若是则将连接的流量数据插入第一数据库并记录创建时间,否则进行下一步;判断连接是否超时,若未超时则更新所述第一数据库中的流量数据并且当连接关闭时进行下一步,若超时则直接进行下一步;将连接在共享内存中的数据清空,将所述第一数据库中的流量数据插入第二数据库并记录结束时间,删除连接在所述第一数据库中的流量数据。
[0007]第二次统计,包括:根据预设的周期,根据查找应用ID或IP所述第一数据库或第二数据库,取出对应的流量数据加入流量排序链表,按流量大小进行排序;将第一数据库的排序结果写入实时数据文件,将第二数据库的排序结果写入第三数据库。
[0008]第二方面,提供一种会话流量统计装置,包括:抓包模块,通过KNI抓包,获取会话连接的原始数据包并存入共享内存;第一统计模块,从共享内存读取数据并解析获取会话连接的具体信息,统计实时流量数据与历史流量数据,并分别存入第一数据库与第二数据库;第二统计模块,按照应用ID或连接IP,从第一数据库与第二数据库分别取出实时
流量数据与历史流量数据进行排序处理后输出统计结果;结果存储模块,用于存储统计结果,以响应于界面的查询。
[0009]第三方面,还提供一种计算机设备,所述设备包括:至少一个处理器与存储器,所述存储器用于存储至少一条程序;当所述程序被所述处理器执行时,使得所述处理器实现以上所述的流量统计方法。
[0010]基于上述技术方案,本专利技术的会话流量统计方法及装置,具有以下有益效果:从KNI中获取连接信息,采用共享内存通信方法,即数据先通过共享内存写入数据库,再利用统计程序定期查询数据库进行数据二次统计加工并存储为统计结果,使界面不仅能查询实时的流量,而且能利用筛选条件得到各种分析结果;同时数据统计分析和写文件、入库操作均是在不同线程分别完成,能充分利用多核优势以达到提高性能的目的。
附图说明
[0011]图1为本专利技术的会话流量统计方法实施例,流量统计分析整体流程示意图;图2为图1中,数据包解析和连接信息写入共享内存的流程示意图;图3为图1中,第一次统计流程示意图;图4为本专利技术的会话流量统计装置实施例,组成模块示意图。
具体实施方式
[0012]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述。
[0013]首先,对本专利技术实施例中涉及的术语进行简要解释:链式存储结构:数据元素随机存储,并通过指针表示数据之间逻辑关系的存储结构。
[0014]链表中每个数据的存储都由以下两部分组成:数据元素本身,其所在的区域称为数据域;指向直接后继元素的指针,所在的区域称为指针域;数据域+指针域的结构,在链表中称为节点。链表实际存储的是一个一个的节点,真正的数据元素包含在这些节点中。
[0015]如图1所示,一种会话连接的流量统计方法,具体包括:循环读取并解析连接详细信息,进行第一次统计,将连接的实时流量数据与历史流量数据分别存入实时数据库与历史数据库;根据应用ID或IP,定期对所述实时数据库与历史数据库中的流量数据进行第二次统计,并输出统计结果;根据预设的查询条件获取所述统计结果。例如将应用名从而应用ID,目的地址等作为查询条件获取对应的统计结果;又例如根据时间范围为今天、昨天、本周、本月以及自定义等作为查询条件获取对应的统计流量数据;以及各应用类型的流量占比、总流量、上行流量、下行流量信息,从而能进行进一步的针对性安全检测。
[0016]如图2所示,原始数据写入共享内存的过程,具体包括:
初始化共享内存;对于接收到的每一个数据包,获取五元组hash并根据hash计算偏移,判断是否为新连接;若是新连接,填充索引为hash共享内存节点,置位索引为hash的连接新建标志;若不是新连接,更新索引为hash共享;内存节点相关流量信息,当连接关闭时置位索引为hash的连接关闭标志。
[0017]所述的新建连接判断,通过连接第一个数据包判断,将结构体中的新建标志位置1。
[0018]所述的连接关闭判断,KNI中此连接收到FIN包时,对其标志结束位。
[0019]如图3所示,第一次统计将流量数据存入redis数据库或mysql数据库,具体包括:根据当前连接的数据包五元组hash遍历共享内存节点,判断连接是否为新建连接,若是则将连接的流量数据插入redis数据库并记录创建时间,否则进行下一步;判断连接是否超时,若未超时则更新所述redis数据库中的流量数据并且当连接关闭时进行下一步,若超时则直接进行下一步;将连接在共享内存中的数据清空,将所述redis数据库中的流量数据插入mysql数据库并记录结束时间,删除连接在所述redis数据库中的流量数据。
[0020]所述判断连接是否超时,包括:记录已存在连接节点每次写入数据库的时间,并将该时间作为此节点的更新时间;每次遍历共享内存时,若当前时间与所述节点的更新时间之差大于预设的超时时间,则判断连接超时。
[0021]所述实时流量数据,包括按秒统计的连接的流量数据;以及,该方法还包括定期删除所述mysql数据库存储的历史流量数据。
[0022]第二次统计,包括:根据预设的周期,根据查找应用ID或IP所述redis数据库或mysql数据库,取出对应的流量数据加入流量排序链表,按流量大小本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种会话连接的流量统计方法,其特征在于,包括:循环读取并解析连接详细信息,进行第一次统计,将连接的实时流量数据与历史流量数据分别存入第一数据库与第二数据库;根据应用或IP,定期对所述第一数据库与第二数据库中的流量数据进行第二次统计,并输出统计结果;根据预设的查询条件获取所述统计结果。2.根据权利要求1所述的流量统计方法,其特征在于,所述第一次统计将流量数据存入第一数据库或第二数据库,具体包括:根据当前连接的数据包五元组hash遍历共享内存节点,判断连接是否为新建连接,若是则将连接的流量数据插入第一数据库并记录创建时间,否则进行下一步;判断连接是否超时,若未超时则更新所述第一数据库中的流量数据并且当连接关闭时进行下一步,若超时则直接进行下一步;将连接在共享内存中的数据清空,将所述第一数据库中的流量数据插入第二数据库并记录结束时间,删除连接在所述第一数据库中的流量数据。3.根据权利要求2所述的流量统计方法,其特征在于,所述判断连接是否超时,包括:记录已存在连接节点每次写入数据库的时间,并将该时间作为此节点的更新时间;每次遍历共享内存时,若当前时间与所述节点的更新时间之差大于预设的超时时间,则判断连接超时。4.根据权利要求2所述的流量统计方法,其特征在于,所述实时流量数据,包括按秒统计的连接的流量数据;以及,该方法还包括定期删除所述第二数据库存储的历史流量数据。5.根据权利要求1所述的流量统计方法,其特征在于,所述连接包括icmp、tcp、udp连接;所述连接的详细信息包括:源IP、目的IP、源端口、目的端口、协议、应用ID、接收数据、发送数...

【专利技术属性】
技术研发人员:刘亚轩何建锋
申请(专利权)人:西安交大捷普网络科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1