CN113672397A - 一种全流量存储方法、系统和设备 - Google Patents
一种全流量存储方法、系统和设备 Download PDFInfo
- Publication number
- CN113672397A CN113672397A CN202111242861.7A CN202111242861A CN113672397A CN 113672397 A CN113672397 A CN 113672397A CN 202111242861 A CN202111242861 A CN 202111242861A CN 113672397 A CN113672397 A CN 113672397A
- Authority
- CN
- China
- Prior art keywords
- thread
- message
- storage
- network port
- flow
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/026—Capturing of monitoring data using flow identification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9015—Buffering arrangements for supporting a linked list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computational Linguistics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种全流量存储方法、系统和设备。所述方法包括若任一worker线程接收到同一会话的报文,将报文中的内网口上行流量和外网口下行流量存储于worker线程的不同存储链表中;若compare线程接收到同一会话的报文,将报文中的内网口下行流量和外网口上行流量存储于compare线程的不同存储链表中;当达到报文处理条件时,将compare线程的存储链表中存储的报文与同一会话的worker线程的存储链表中存储的报文进行比较,得到差别信息进行存储;当达到存储条件时,将增量存储信息发送至worker线程,使worker线程将增量存储信息与其在worker线程的存储链表中对应存储的报文发送至存储线程进行存储。以此方式,可以优化设计流量分析与存储,大幅提升整体性能。
Description
技术领域
本发明一般涉及网络监测领域,并且更具体地,涉及一种全流量存储方法、系统和设备。
背景技术
对于安全厂商而言,全流量存储回溯系统通常具有数据包采集、协议解码与分析、流量统计、故障诊断与性能管理等多种功能为一体的网络分析产品,能够提供高精度网络诊断分析,多层次展现网络通信全景,有效地帮助网络管理者梳理网络应用。
当环境为办公网、生产网、政务内外网和数据中心时,通常设计为将全流量存储回溯设备以对流量镜像或分光的方式旁路部署在需监测网络流量的出入口。
一般而言,全流量回溯系统部署在内网出口与防火墙之间,如图1所示,从而采集上行和下行的流量。但是在此种部署下,如果防火墙出现异常丢包,那么就会出现全流量回溯系统无法捕捉到防火墙到外网,以及外网到防火墙之间的丢弃的报文。而对于客户而言,如果需要在防火墙与外网口之间再部署一台全流量回溯系统,那么一共需要两台全流量回溯系统,对客户而言开销巨大。而通用的全流量存储系统如果监督内网口和外网口,由于同一流量分别通过内网口和外网口,也就是一个会话的报文均存在两份,如果仅是存储功能则仅仅是将存储功能做了2份,但是现在的流量存储系统都包含流量识别功能,而流量分析识别是基于会话的,这种场景就需要同一会话的两个方向的报文均为2份,这种特殊场景通用的流量存储回溯系统是不支持的,再或者就是将其分为两个会话分别识别(内网口的上下行流量1个会话,外网口的上下行1个会话),相当于同一流量分析两次。
发明内容
根据本发明的实施例,提供了一种全流量存储方案。本方案基于内网口和外网口同时进行全流量存储的场景,优化设计流量分析与存储,大幅提升整体性能。
在本发明的第一方面,提供了一种全流量存储方法。该方法包括:
主线程配置若干个worker线程、一个compare线程和一个存储线程;
若任一所述worker线程接收到同一会话的报文,将所述报文中的内网口上行流量和外网口下行流量存储于所述worker线程的不同存储链表中;
若所述compare线程接收到同一会话的报文,将所述报文中的内网口下行流量和外网口上行流量存储于所述compare线程的不同存储链表中;当达到报文处理条件时,将所述compare线程的存储链表中存储的报文与同一会话的worker线程的存储链表中存储的报文进行比较,得到差别信息作为增量存储信息进行存储;当达到存储条件时,将所述增量存储信息发送至worker线程;
所述worker线程响应于compare线程发送的增量存储信息,将所述增量存储信息与其在所述worker线程的存储链表中对应存储的报文发送至存储线程;
所述存储线程接收并存储增量存储信息以及其在所述worker线程的存储链表中对应存储的报文。
进一步地,当所述worker线程接收到同一会话的报文时,查询所述报文对应的会话表;
若查询成功,则基于所述会话表将所述报文区分为内网口上行流量和外网口下行流量;
若查询失败,则创建会话表,将所述报文区分为内网口上行流量和外网口下行流量。
进一步地,当所述compare线程接收到报文时,查询所述报文对应的会话表;
若查询成功,则基于所述会话表将所述报文区分为内网口下行流量和外网口上行流量,存储在不同存储链表,并记录待处理的报文数量;
若查询失败,则创建会话表,将所述报文区分为内网口下行流量和外网口上行流量,存储在不同存储链表,并记录待处理的报文数量。
进一步地,所述报文处理条件,包括:
所述compare线程中待处理的报文数量达到worker线程的配置数量;或
所述会话结束;或
所述会话超时。
进一步地,所述将compare线程接收到的报文与同一会话的worker线程的会话表中存储的报文进行比较,得到差别信息作为增量存储信息进行存储,包括:
获取达到所述报文处理条件时compare线程中的待处理报文,组成矢量数组;
根据所述会话的五元组识别出同一会话的worker线程;
查询所述worker线程中的会话表,从所述会话表中的存储链表中获取所述compare线程接收到的报文对应的内网口上行流量或外网口下行流量;
将所述compare线程接收到的报文与所述内网口上行流量或外网口下行流量进行比较,记录差别信息作为增量存储信息,存储到增量存储链表中。
进一步地,在将所述增量存储信息进行存储后,还包括:
将所述增量存储信息对应的报文从compare线程中的存储链表中删除。
进一步地,所述存储条件,包括:
所述会话结束;或
报文需要被存储。
在本发明的第二方面,提供了一种全流量存储系统。该系统包括:
工作模块,所述工作模块配置若干个worker线程;用于若任一所述worker线程接收到同一会话的报文,将所述报文中的内网口上行流量和外网口下行流量存储于所述worker线程的不同存储链表中;以及响应于compare线程发送的增量存储信息,将所述增量存储信息与其在所述worker线程的存储链表中对应存储的报文发送至存储线程;
比较模块,所述比较模块配置一个compare线程,用于若所述compare线程接收到同一会话的报文,将所述报文中的内网口下行流量和外网口上行流量存储于compare线程的不同存储链表中;当达到报文处理条件时,将compare线程的存储链表中存储的报文与同一会话的worker线程的存储链表中存储的报文进行比较,得到差别信息作为增量存储信息进行存储;当达到存储条件时,将所述增量存储信息发送至worker线程;
存储模块,所述存储模块配置一个存储线程,用于接收并存储增量存储信息以及其在所述worker线程的存储链表中对应存储的报文。
在本发明的第三方面,提供了一种电子设备。该电子设备至少一个处理器;以及与所述至少一个处理器通信连接的存储器;所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明第一方面的方法。
在本发明的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本发明第一方面的方法。
应当理解,发明内容部分中所描述的内容并非旨在限定本发明的实施例的关键或重要特征,亦非用于限制本发明的范围。本发明的其它特征将通过以下的描述变得容易理解。
附图说明
结合附图并参考以下详细说明,本发明各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1示出了全流量回溯系统的部署示意图;
图2示出了根据本发明的实施例的全流量存储方法的流程图;
图3示出了根据本发明的实施例的报文交互示意图;
图4示出了根据本发明的实施例的worker线程对内网口上行流量处理流程图;
图5示出了根据本发明的实施例的worker线程对外网口下行流量处理流程图;
图6示出了根据本发明的实施例的compare线程对内网口下行流量处理流程图;
图7示出了根据本发明的实施例的compare线程对外网口上行流量处理流程图;
图8示出了根据本发明的实施例的全流量存储系统的方框图;
图9示出了能够实施本发明的实施例的示例性电子设备的方框图;
其中,1为分流器、2为全流量回溯系统、3为防火墙、4为内网口、5为网口、6为客户端、7为服务器端、800为系统、810为工作模块、820为比较模块、830为存储模块、900为电子设备、901为CPU、902为ROM、903为RAM、904为总线、905为I/O接口、906为输入单元、907为输出单元、908为存储单元、909为通信单元。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本发明保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
图2示出了本发明实施例的全流量存储方法的流程图。
该方法由worker线程、compare线程以及存储线程实现。
主线程配置若干个worker线程,例如,主线程配置M个worker线程;worker线程负责流量分析逻辑。
S201、若任一所述worker线程接收到同一会话的报文,将所述报文中的内网口上行流量和外网口下行流量存储于所述worker线程的不同存储链表中。
作为本发明的一种实施例,使用rss key配置网卡,使网卡收到同一会话五元组对称的情况下,都被同一worker线程处理。故,每个worker线程接收同一会话的报文。
所述五元组ip地址为源IP地址,源端口,目的IP地址,目的端口,和传输层协议这五个量组成的一个集合。例如:192.168.1.1 10000 TCP 121.14.88.76 80 就构成了一个五元组。其意义是,一个IP地址为192.168.1.1的终端通过端口10000,利用TCP协议,和IP地址为121.14.88.76,端口为80的终端进行连接。
如图3所示,报文1的五元组ip地址为:客户端ip,客户端port,服务端的ip,服务端port,协议类型;报文3的五元组ip地址为:服务端的ip,服务端port,客户端ip,客户端port,协议类型。可见,报文1与报文3的五元组ip地址是对称的。
作为本发明的一种实施例,worker线程只分析处理先收到的报文。如图3所示,由于上行流量的流量方向是从内网口发往外网口,故在上行流量中,先收到的流量为内网口的上行流量,即报文1;由于下行流量的流量方向是从外网口发往内网口,故先收到的流量是外网口的下行流量,即报文3。
在本实施例中,并不是对同一流量进行两次分析,而是仅对先收到的流量进行分析处理,即仅通过worker线程分析处理内网口的上行流量和外网口的下行流量,也就是说同一会话的内网口下行流量与外网口上行流量都被1个worker线程处理,这使得基于流量的会话处理可以无锁处理,从而使得多核性能可以随着CPU个数增加而线性增长。
作为本发明的一种实施例,当所述worker线程接收到同一会话的报文时,查询所述报文对应的会话表;
若查询成功,则基于所述会话表将所述报文区分为内网口上行流量和外网口下行流量;
若查询失败,则创建会话表,将所述报文区分为内网口上行流量和外网口下行流量。
作为本发明的一种实施例,将所述报文的内网口上行流量和外网口下行流量存储于worker线程的不同存储链表中。所述不同存储链表例如在worker线程中设置left_save链表和right_save链表;所述left_save链表用于存储所述报文的内网口上行流量;所述right_save链表用于存储所述报文的外网口下行流量。worker线程中处理的所有流量分析的报文均为完整存储,即内网口上行流量与外网口下行流量存储完整报文数据。
作为本发明的一种实施例,在将报文存储在left_save链表和right_save链表中后,需要记录报文所在worker线程的序号。
作为本发明的一种实施例,worker线程处理内网口上行流量的流程,如图4所示,包括:
所述worker线程接收到内网口上行流量时,查询所述内网口上行流量对应的会话表;若查询成功,则基于所述会话表对内网口上行流量进行协议分析;若查询失败,则创建会话表,对内网口上行流量进行协议分析;将所述内网口上行流量存储到left_save链表中,并记录其在会话中的序号。
作为本发明的一种实施例,worker线程处理外网口下行流量的流程,如图5所示,包括:
所述worker线程接收到外网口下行流量时,查询所述外网口下行流量对应的会话表;若查询成功,则基于所述会话表对外网口下行流量进行协议分析;若查询失败,则创建会话表,对外网口下行流量进行协议分析;将所述外网口下行流量存储到right_save链表中,并记录其在会话中的序号。
在worker线程中,以同一会话的内网口上行流量与外网口下行流量构建会话表,并基于会话进行协议识别,应用类型分析,识别风险;无需两套全流量报文回溯系统即可处理内网口与外网口的所有流量,且仅处理内网口上行流量和外网口下行流量,即通过处理一半的流量,即可实现流量分析和威胁处理,大幅提升整体处理性能。
S202、若所述compare线程接收到同一会话的报文,将所述报文中的内网口下行流量和外网口上行流量存储于在compare线程的不同存储链表中。
作为本发明的一种实施例,使用rss key配置网卡,使网卡收到同一会话五元组对称的情况下,都被同一compare线程处理。故,compare线程接收同一会话的报文。
所述五元组ip地址为源IP地址,源端口,目的IP地址,目的端口,和传输层协议这五个量组成的一个集合。例如:192.168.1.1 10000 TCP 121.14.88.76 80 就构成了一个五元组。其意义是,一个IP地址为192.168.1.1的终端通过端口10000,利用TCP协议,和IP地址为121.14.88.76,端口为80的终端进行连接。
如图3所示,报文2的五元组ip地址为:客户端ip,客户端port,服务端的ip,服务端port,协议类型;报文4的五元组ip地址为:服务端的ip,服务端port,客户端ip,客户端port,协议类型。可见,报文2与报文4的五元组ip地址是对称的。
作为本发明的一种实施例,主线程只配置一个compare线程;且compare线程只处理后收到的报文。如图6所示,由于上行流量的流量方向是从内网口发往外网口,故在上行流量中,后收到的流量为内网口的下行流量,即报文2;由于下行流量的流量方向是从外网口发往内网口,故后收到的流量是外网口的上行流量,即报文4。
在本实施例中,并不是对同一流量进行两次分析,故worker线程只分析先收到的流量,而compare线程则只对后收到的流量,即内网口下行流量和外网口上行流量进行分析。
作为本发明的一种实施例,如图6和图7所示,当所述compare线程接收到报文时,查询所述报文对应的会话表;若查询成功,则基于所述会话表将所述报文区分为内网口下行流量和外网口上行流量,存储在不同存储链表,并记录待处理的报文数量;若查询失败,则创建会话表,将所述报文区分为内网口下行流量和外网口上行流量,存储在不同存储链表,并记录待处理的报文数量。
在compare线程中设置left_compare链表和right_compare链表,所述left_compare链表用于存储内网口下行流量;所述right_compare链表用于存储外网口上行流量。
作为本发明的一种实施例,left_compare链表和right_compare链表在存储报文时,同时记录报文在对应链表中的序号。
作为本发明的一种实施例,当达到报文处理条件时,将compare线程的存储链表中存储的报文与同一会话的worker线程的存储链表中存储的报文进行比较,得到差别信息作为增量存储信息进行存储。
所述将compare线程接收到的报文与同一会话的worker线程的会话表中存储的报文进行比较,得到差别信息作为增量存储信息进行存储,包括:
获取达到所述报文处理条件时compare线程中的待处理报文,组成矢量数组;
根据所述会话的五元组识别出同一会话的worker线程;
查询所述worker线程中的会话表,从所述会话表中的存储链表中获取所述compare线程接收到的报文对应的内网口上行流量或外网口下行流量;
将所述compare线程接收到的报文与所述内网口上行流量或外网口下行流量进行比较,记录差别信息作为增量存储信息,存储到增量存储链表中。
compare线程比较时为批量比较,使用矢量数组的方式处理,提升了性能。
所述报文处理条件,包括:
所述compare线程中待处理的报文数量达到worker线程的配置数量M;或
所述会话结束;或
所述会话超时。
在本实施例中,将compare线程待处理的1-M个报文组成矢量数组,根据会话的五元组计算出同一会话的worker线程的序号,例如workerX线程。
查询workerX线程中的会话表,获取其left_save链表和right_save链表,将workerX线程中的left_save链表中的报文与compare线程中的left_compare链表中的报文进行比较;将workerX线程中的right_save链表中的报文与compare线程中的right_compare链表中的报文进行比较,记录差别信息diff作为增量存储信息,存储到增量存储链表compare_diff中。
作为本发明的一种实施例,如图6所示,当compare线程对报文2进行分析时,将报文2与报文1进行对比,得出差别信息diff,即报文2与报文1的对比差别。当compare线程对报文4进行分析时,将报文4与报文3进行对比,得出差别信息diff,即报文4与报文3的对比差别。
通常情况,如果中间设备为二层,内网口与外网口流量基本相同,即diff基本为报文的接收时间;如果中间设备为三层,内网口与外网口的流量相比,diff通常为报文eth报文首部的mac地址、ip报文首部的ttl和ip校验和。如果中间设备具备代理功能,那么diff可能还会包含其他报文首部信息,比如带有ip隧道的中间设备,会在报文首部封装一层ip头。
作为本发明的一种实施例,在将所述增量存储信息进行存储后,还包括:
将所述增量存储信息diff对应的表项从compare线程中的left_compare链表以及right_compare链表中删除。从而使compare线程有空间继续存储接收到的报文。
compare线程只比较分析内网口下行流量和外网口上行流量,且只存储增量diff部分报文,使得基于待比较流量的会话处理可以无锁处理,从而使得多核性能可以随着CPU个数增加而线性增长。相对耗性能的流量分析使用M个worker线程,而compare线程只分配1个,相对于仅处理内网口流量或者仅处理外网口流量而言,仅多了一个compare线程,同样的机器配置,流量分析的性能确是单独处理内网口或者外网口的两倍流量,节省接近一半的存储空间,采用增量存储的方式,大幅提升整体性能。
作为本发明的一种实施例,当达到存储条件时,compare线程将所述增量存储信息diff发送至worker线程。
在本实施例中,所述存储条件,包括:
所述会话结束;或
报文需要被存储。
所述会话结束,例如tcp连接的规则是四次挥手即算连接终止,当收到四次挥手的报文后即可判断连接结束。
所述报文需要被存储,例如用户配置1GB即存储,达到配置1GB时,则触发存储策略。
S203、所述worker线程响应于compare线程发送的增量存储信息,将所述增量存储信息与其在所述worker线程的存储链表中对应存储的报文发送至存储线程。
worker线程接收并响应于compare线程发送的增量存储信息diff,将所述增量存储信息diff与其在worker线程中对应的left_save和right save中完整存储的报文发送至存储线程。可以看出,compare线程并非直接发送增量存储信息diff给存储线程,而是先经过worker线程联合带存储完整的报文的left_save或者right_save链表,再一起发送给存储线程。如果compare线程收到了报文,那么说明worker线程也收到了报文;diff信息也是由compare线程与worker线程处理的报文比较后得到的信息,故存在diff信息,则必然存在对应worker线程的存储完整的报文。
S204、所述存储线程接收并存储增量存储信息以及其在worker线程中对应完整存储的报文。
主线程配置一个存储线程;所述存储线程接收到存储增量信息diff以及worker线程对应的left_save或者right_save后,将worker线程处理的内网口上行流量和外网口下行流量的报文信息全部存储;将compare线程处理的内网口下行流量和外网口上行流量的报文信息进行增量存储。
根据本发明的实施例,采用增量存储的方式,即报文存储是compare线程的增量存储信息diff,发送到worker线程驱动save完整信息,一起发送到存储线程进行存储,使全流量回溯系统节省接近一半的存储空间。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本发明所必须的。
以上是关于方法实施例的介绍,以下通过装置实施例,对本发明所述方案进行进一步说明。
如图8所示,系统800包括:
工作模块810,所述工作模块810配置若干个worker线程;用于若任一所述worker线程接收到同一会话的报文,将所述报文中的内网口上行流量和外网口下行流量存储于所述worker线程的不同存储链表中;以及响应于compare线程发送的增量存储信息,将所述增量存储信息与其在worker线程的存储链表中对应存储的报文发送至存储线程;
比较模块820,所述比较模块820配置一个compare线程,用于若所述compare线程接收到同一会话的报文,将所述报文中的内网口下行流量和外网口上行流量存储于在compare线程的不同存储链表中;当达到报文处理条件时,将compare线程的存储链表中存储的报文与同一会话的worker线程的存储链表中存储的报文进行比较,得到差别信息作为增量存储信息进行存储;当达到存储条件时,将所述增量存储信息发送至worker线程;
存储模块830,所述存储模块830配置一个存储线程,用于接收并存储增量存储信息以及其在worker线程中对应完整存储的报文。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,所述描述的模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本发明的实施例,本发明还提供了一种电子设备和一种可读存储介质。
图9示出了可以用来实施本发明的实施例的电子设备900的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
设备900包括计算单元901,其可以根据存储在只读存储器(ROM)902中的计算机程序或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。计算单元901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如方法S201~S204。例如,在一些实施例中,方法S201~S204可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序加载到RAM 903并由计算单元901执行时,可以执行上文描述的方法S201~S204的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法S201~S204。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种全流量存储方法,其特征在于,包括:主线程配置若干个worker线程、一个compare线程和一个存储线程;
若任一所述worker线程接收到同一会话的报文,将所述报文中的内网口上行流量和外网口下行流量存储于所述worker线程的不同存储链表中;
若所述compare线程接收到同一会话的报文,将所述报文中的内网口下行流量和外网口上行流量存储于所述compare线程的不同存储链表中;当达到报文处理条件时,将所述compare线程的存储链表中存储的报文与同一会话的worker线程的存储链表中存储的报文进行比较,得到差别信息作为增量存储信息进行存储;当达到存储条件时,将所述增量存储信息发送至worker线程;
所述worker线程响应于compare线程发送的增量存储信息,将所述增量存储信息与其在所述worker线程的存储链表中对应存储的报文发送至存储线程;
所述存储线程接收并存储增量存储信息以及其在所述worker线程的存储链表中对应存储的报文。
2.根据权利要求1所述的方法,其特征在于,当所述worker线程接收到同一会话的报文时,查询所述报文对应的会话表;
若查询成功,则基于所述会话表将所述报文区分为内网口上行流量和外网口下行流量;
若查询失败,则创建会话表,将所述报文区分为内网口上行流量和外网口下行流量。
3.根据权利要求1所述的方法,其特征在于,当所述compare线程接收到报文时,查询所述报文对应的会话表;
若查询成功,则基于所述会话表将所述报文区分为内网口下行流量和外网口上行流量,存储在不同存储链表,并记录待处理的报文数量;
若查询失败,则创建会话表,将所述报文区分为内网口下行流量和外网口上行流量,存储在不同存储链表,并记录待处理的报文数量。
4.根据权利要求1所述的方法,其特征在于,所述报文处理条件,包括:
所述compare线程中待处理的报文数量达到worker线程的配置数量;或
所述会话结束;或
所述会话超时。
5.根据权利要求1所述的方法,其特征在于,所述将compare线程接收到的报文与同一会话的worker线程的会话表中存储的报文进行比较,得到差别信息作为增量存储信息进行存储,包括:
获取达到所述报文处理条件时compare线程中的待处理报文,组成矢量数组;
根据所述会话的五元组识别出同一会话的worker线程;
查询所述worker线程中的会话表,从所述会话表中的存储链表中获取所述compare线程接收到的报文对应的内网口上行流量或外网口下行流量;
将所述compare线程接收到的报文与所述内网口上行流量或外网口下行流量进行比较,记录差别信息作为增量存储信息,存储到增量存储链表中。
6.根据权利要求1所述的方法,其特征在于,在将所述增量存储信息进行存储后,还包括:
将所述增量存储信息对应的报文从compare线程中的存储链表中删除。
7.根据权利要求1所述的方法,其特征在于,所述存储条件,包括:
所述会话结束;或
报文需要被存储。
8.一种全流量存储系统,其特征在于,包括:
工作模块,所述工作模块配置若干个worker线程;用于若任一所述worker线程接收到同一会话的报文,将所述报文中的内网口上行流量和外网口下行流量存储于所述worker线程的不同存储链表中;以及响应于compare线程发送的增量存储信息,将所述增量存储信息与其在所述worker线程的存储链表中对应存储的报文发送至存储线程;
比较模块,所述比较模块配置一个compare线程,用于若所述compare线程接收到同一会话的报文,将所述报文中的内网口下行流量和外网口上行流量存储于compare线程的不同存储链表中;当达到报文处理条件时,将compare线程的存储链表中存储的报文与同一会话的worker线程的存储链表中存储的报文进行比较,得到差别信息作为增量存储信息进行存储;当达到存储条件时,将所述增量存储信息发送至worker线程;
存储模块,所述存储模块配置一个存储线程,用于接收并存储增量存储信息以及其在所述worker线程的存储链表中对应存储的报文。
9.一种电子设备,至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其特征在于,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行根据权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111242861.7A CN113672397B (zh) | 2021-10-25 | 2021-10-25 | 一种全流量存储方法、系统和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111242861.7A CN113672397B (zh) | 2021-10-25 | 2021-10-25 | 一种全流量存储方法、系统和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113672397A true CN113672397A (zh) | 2021-11-19 |
CN113672397B CN113672397B (zh) | 2022-02-18 |
Family
ID=78550987
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111242861.7A Active CN113672397B (zh) | 2021-10-25 | 2021-10-25 | 一种全流量存储方法、系统和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113672397B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115002179A (zh) * | 2022-05-06 | 2022-09-02 | 北京中睿天下信息技术有限公司 | 一种网络全流量会话流数据存储与还原的方法 |
CN115065599A (zh) * | 2022-04-09 | 2022-09-16 | 北京金睛云华科技有限公司 | 全流量存储回溯分析系统中nat规则优化配置方法 |
CN115150171A (zh) * | 2022-06-30 | 2022-10-04 | 北京天融信网络安全技术有限公司 | 一种流量统计方法、装置、电子设备及存储介质 |
CN117201202A (zh) * | 2023-11-07 | 2023-12-08 | 北京金睛云华科技有限公司 | 一种反射放大Flood攻击流量存储方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040194093A1 (en) * | 2003-03-24 | 2004-09-30 | Sun Microsystems, Inc. | Thread level application partitioning |
CN110781008A (zh) * | 2019-11-04 | 2020-02-11 | 重庆邮电大学 | 一种5g终端模拟系统中随机接入的实现方法 |
CN111984402A (zh) * | 2020-07-25 | 2020-11-24 | 苏州浪潮智能科技有限公司 | 一种线程池统一调度监控方法及系统 |
-
2021
- 2021-10-25 CN CN202111242861.7A patent/CN113672397B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040194093A1 (en) * | 2003-03-24 | 2004-09-30 | Sun Microsystems, Inc. | Thread level application partitioning |
CN110781008A (zh) * | 2019-11-04 | 2020-02-11 | 重庆邮电大学 | 一种5g终端模拟系统中随机接入的实现方法 |
CN111984402A (zh) * | 2020-07-25 | 2020-11-24 | 苏州浪潮智能科技有限公司 | 一种线程池统一调度监控方法及系统 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115065599A (zh) * | 2022-04-09 | 2022-09-16 | 北京金睛云华科技有限公司 | 全流量存储回溯分析系统中nat规则优化配置方法 |
CN115065599B (zh) * | 2022-04-09 | 2023-07-18 | 北京金睛云华科技有限公司 | 全流量存储回溯分析系统中nat规则优化配置方法 |
CN115002179A (zh) * | 2022-05-06 | 2022-09-02 | 北京中睿天下信息技术有限公司 | 一种网络全流量会话流数据存储与还原的方法 |
CN115150171A (zh) * | 2022-06-30 | 2022-10-04 | 北京天融信网络安全技术有限公司 | 一种流量统计方法、装置、电子设备及存储介质 |
CN115150171B (zh) * | 2022-06-30 | 2023-11-10 | 北京天融信网络安全技术有限公司 | 一种流量统计方法、装置、电子设备及存储介质 |
CN117201202A (zh) * | 2023-11-07 | 2023-12-08 | 北京金睛云华科技有限公司 | 一种反射放大Flood攻击流量存储方法 |
CN117201202B (zh) * | 2023-11-07 | 2024-01-02 | 北京金睛云华科技有限公司 | 一种反射放大Flood攻击流量存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113672397B (zh) | 2022-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113672397B (zh) | 一种全流量存储方法、系统和设备 | |
US11228991B2 (en) | Link auto-negotiation between a radio equipment controller (REC) and radio equipment (RE) in an ethernet-based fronthaul network | |
US9929930B2 (en) | Reducing an amount of captured network traffic data to analyze | |
US20200351190A1 (en) | Virtual Probes | |
US20220207383A1 (en) | Fault propagation condition extraction method and apparatus and storage medium | |
CN112540898A (zh) | 数据处理方法及平台、系统、电子设备、可读介质 | |
CN112787913A (zh) | 智能网卡组件、物理机、云服务系统以及报文发送方法 | |
US8886913B2 (en) | Apparatus and method for identifier management | |
US11165682B2 (en) | Session aware adaptive packet filtering | |
KR102397346B1 (ko) | 데이터 트래픽을 모니터링하기 위한 방법, 장치 및 시스템 | |
CN113839964B (zh) | 用于网关设备的通信方法和网关设备 | |
CN106301832B (zh) | 一种处理系统日志报文的方法和装置 | |
CN114205414A (zh) | 基于服务网格的数据处理方法、装置、电子设备和介质 | |
US10897401B2 (en) | Determining the importance of network devices based on discovered topology, managed endpoints, and activity | |
US10187269B2 (en) | Minimized display of monitored events with live severity level and count indications | |
CN114189426B (zh) | 代理服务自适应带配置回复方法、系统、装置及存储介质 | |
CN114726901B (zh) | 容器访问方法、装置、设备和存储介质 | |
US9559919B2 (en) | Display of port transmit and receive parameters sorted by higher of transmit or receive value | |
US20230413330A1 (en) | Data transmission method and apparatus, base station, user terminal, and electronic device | |
CN116318992A (zh) | 云原生kubernetes网络的黑名单控制方法和装置 | |
US10644983B2 (en) | Control plane analytics and policing | |
CN117527726A (zh) | 一种双向路径通信控制系统、方法、电子设备及存储介质 | |
CN115767786A (zh) | 多集群通信方法、装置、电子设备及存储介质 | |
CN116647497A (zh) | 一种网络路径生成方法、装置、电子设备及存储介质 | |
CN114760251A (zh) | 数据分流方法、装置、电子设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |