CN112565821B - 数据处理方法、装置、安全网关及存储设备 - Google Patents
数据处理方法、装置、安全网关及存储设备 Download PDFInfo
- Publication number
- CN112565821B CN112565821B CN202110188534.1A CN202110188534A CN112565821B CN 112565821 B CN112565821 B CN 112565821B CN 202110188534 A CN202110188534 A CN 202110188534A CN 112565821 B CN112565821 B CN 112565821B
- Authority
- CN
- China
- Prior art keywords
- data
- data packet
- forwarded
- data processing
- core
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 13
- 238000003860 storage Methods 0.000 title claims abstract description 10
- 238000012545 processing Methods 0.000 claims abstract description 420
- 238000009826 distribution Methods 0.000 claims abstract description 208
- 238000000034 method Methods 0.000 claims abstract description 59
- 238000004590 computer program Methods 0.000 claims description 8
- 238000000605 extraction Methods 0.000 claims description 6
- 238000012795 verification Methods 0.000 claims description 5
- 230000001360 synchronised effect Effects 0.000 claims description 2
- 239000000284 extract Substances 0.000 abstract description 22
- 238000001914 filtration Methods 0.000 abstract description 9
- 230000008569 process Effects 0.000 description 19
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000002159 abnormal effect Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 238000009827 uniform distribution Methods 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/23418—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种数据处理方法、装置、安全网关及存储设备,涉及数据处理技术领域。该方法通过安全网关中的数据分发核来根据数据包的特征信息将数据包分发至其所属节目所对应的数据处理核,这样可以确保同一个节目的数据包分发到一个数据处理核中,从而数据处理核可以对准确提取到属于同一个节目的音视频数据,进而实现对这些音视频数据的相应处理,如数据审核、过滤、存储等。
Description
技术领域
本申请涉及数据处理技术领域,具体而言,涉及一种数据处理方法、装置、安全网关及存储设备。
背景技术
在网关中,有来自不同源的数据流,如记者录制、专业机构制作、网站视频、其他电视台视频等,当然也有从本地电视台发送出去的数据,基于软硬件性能的提高,数据传输速率非常快,在10Gbps的带宽情况下,在某个很短的时间范围内,会受到大量的来自多个不同节目源、不同协议的数据流。
为了对这些数据实现自动化处理,如审核、过滤、存储、筛选等,需要累积到一定的数据量后才能进行处理。而对于一帧数据需要多个UDP或TCP报文才能发送完成,所以,网关会在短时间内收到多个节目的数据包,若网关需要提取同一个节目的音视频数据并实现对这些音视频数据进行处理,则需要对这些来自不同节目源的数据包进行准确区分,但是目前针对该问题尚未有较好的解决方案。
发明内容
本申请实施例的目的在于提供一种数据处理方法、装置、安全网关及存储设备,用以对接收到的不同节目源的数据包进行准确区分,以实现对同一节目的数据包中音视频数据的准确提取。
第一方面,本申请实施例提供了一种数据处理方法,应用于安全网关,所述安全网关包括数据分发核和数据处理核,所述方法包括:
通过所述安全网关的数据分发核获取接收的待转发数据包;
通过所述数据分发核提取每个待转发数据包的特征信息,所述特征信息用于标识待转发数据包所属的节目;
通过所述数据分发核基于每个待转发数据包的特征信息将每个待转发数据包分发至其所属节目所对应的数据处理核,其中,一个节目对应一个数据处理核;
通过所述安全网关的数据处理核对其所对应的节目的数据包进行处理。
在上述实现过程中,通过安全网关中的数据分发核来根据数据包的特征信息将数据包分发至其所属节目所对应的数据处理核,这样可以确保同一个节目的数据包分发到一个数据处理核中,从而数据处理核可以对准确提取到属于同一个节目的音视频数据,进而实现对这些音视频数据的相应处理,如数据审核、过滤、存储等。
可选地,通过所述数据分发核基于每个待转发数据包的特征信息将每个待转发数据包分发至其所属节目所对应的数据处理核,包括:
通过所述数据分发核基于每个待转发数据包的特征信息将每个待转发数据包分发至对应的数据分发队列中,以通过所述数据处理核从对应的数据分发队列中获取数据包,其中,一个数据处理核对应一个数据分发队列。
在上述实现过程中,通过将数据包发送到数据分发队列中,使得数据处理核从数据分发队列中获取数据包,这样可以避免直接将数据包分发给数据处理核而打断数据处理核正在处理的业务的问题,该方式可减少数据处理核的中断,提高数据处理核的处理效率。
可选地,所述特征信息包括待转发数据包的地址信息,所述通过所述数据分发核基于每个待转发数据包的特征信息将每个待转发数据包分发至其所属节目所对应的数据处理核,包括:
通过所述数据分发核获取每个待转发数据包的地址信息对应的第一数值;
通过所述数据分发核将每个待转发数据包对应的第一数值与数据处理核的总个数进行取余运算,获得每个待转发数据包对应的余数;
通过所述数据分发核根据每个待转发数据包对应的余数与各个数据处理核的编号将各个待转发数据包分发至对应的数据处理核。
在上述实现过程中,通过根据余数来分发数据包,可确保数据处理核所处理的节目数量尽量均衡。
可选地,所述通过所述数据分发核根据每个待转发数据包对应的余数与各个数据处理核的编号将各个待转发数据包分发至对应的数据处理核,包括:
通过所述数据分发核在确定各个数据处理核中所处理的节目个数未达到其对应的最大处理节目个数时,将每个待转发数据包分发至编号为该待转发数据包对应的余数的数据处理核。
可选地,所述通过所述数据分发核根据每个待转发数据包对应的余数与各个数据处理核的编号将各个待转发数据包分发至对应的数据处理核,包括:
通过所述数据分发核在确定编号为目标待转发数据包对应的余数的数据处理核中所处理的节目个数达到其对应的最大处理节目个数时,将所述目标待转发数据包分发至其他节目个数未到达最大处理节目个数的数据处理核,其中,所述目标待转发数据包为不属于其编号为所述余数的数据处理核中当前所处理的节目的数据包。
在上述实现过程中,将数据包分发给其他数据处理核可避免数据处理核之间的负载不均衡的问题。
可选地,所述通过所述数据分发核将所述目标待转发数据包分发至其他节目个数未到达最大处理节目个数的数据处理核,包括:
通过所述数据分发核获取当前所处理的节目个数最少的目标数据处理核;
通过所述数据分发核将所述目标待转发数据包分发至所述目标数据处理核。
在上述实现过程中,将数据包发送给负载较小的数据处理核,这样可平衡各个数据处理核之间的负载,避免某个数据处理核由于负载较大而使得处理效率较低的问题。
可选地,所述通过所述数据分发核根据每个待转发数据包对应的余数与各个数据处理核的编号将各个待转发数据包分发至对应的数据处理核,包括:
通过所述数据分发核在确定其中一个数据处理核中的节目个数达到其所能处理的最大节目个数时,获取存储有各个数据处理核中当前所处理的节目对应的第二数值的第一数组;
通过所述数据分发核确定所述第一数组中编号为目标待转发数据包对应的余数的数据处理核对应的第二数值中是否有与所述目标待转发数据包对应的第一数值相同的数值;
若有,则通过所述数据分发核将所述目标待转发数据包分发给编号为所述目标待转发数据包对应的余数的数据处理核;
若没有,则通过所述数据分发核遍历所述第一数组,将所述目标待转发数据包分发给有与所述目标待转发数据包对应的第一数值相同的第二数值对应的其他数据处理核。
在上述实现过程中,通过数组来记录各个数据处理核中所处理的节目信息,这样可在进行数据包分发时,通过查找数组来实现分发,可确保没有按照取余方式分发的节目的数据包也能分发到同一个数据处理核中。
可选地,所述方法还包括:
通过所述数据分发核将所述目标待转发数据包对应的第一数值存储到第二数组中,所述第二数组用于记录未将数据包分发至编号与其余数相同的数据处理核的节目。从而可使得数据分发核知晓那些节目是未按照正常方式分发的。
可选地,所述方法还包括:
通过所述数据分发核在确定所述目标待转发数据包所属的目标节目没有对应的待转发数据包时,则将所述第二数组中所述目标待转发数据包对应的第一数值删除,并更新所述第二数组所记录的节目个数。以减少数据的内存占用。
可选地,所述方法还包括:
通过所述数据分发核在确定所述第二数组所记录的节目个数为0时,清空所述第一数组中所记录的各个节目对应的第一数值。这样可使得数据分发核能够对后续待转发数据包按照正常方式继续实现高效分发。
可选地,所述第一数值和第二数值为哈希值。由于哈希值能确保属于同一节目的数据包的哈希值相同,所以可以实现将数据包进行准确的分发。
可选地,所述通过所述安全网关的数据处理核对其所对应的节目的数据包进行处理,包括:
通过所述安全网关的数据处理核提取属于同一节目对应的数据包中的音视频数据,并对提取到的音视频数据进行敏感信息审核。
可选地,所述通过所述安全网关的数据处理核提取属于同一节目对应的数据包中的音视频数据之前,还包括:
通过所述安全网关的数据处理核以轮询的方式从所述数据处理核对应的数据分发队列中获取各个节目对应的数据包。从而可减少数据处理核的中断,并提升数据处理核的处理效率。
可选地,所述数据处理核每次获取的数据包的数量与每次提取音视频数据的数据包的数量相同。从而可使得数据处理核不会因读写数据不匹配而造成内存不够用的问题。
可选地,所述通过所述安全网关的数据处理核提取属于同一节目对应的数据包中的音视频数据,包括:
通过所述安全网关的数据处理核解析各个节目对应的各个数据包,获得各个数据包中的同步源SSRC值;
通过所述安全网关的数据处理核将SSRC值相同的数据包挂载在同一个数据链表上,其中,一个数据链表上挂载的数据包属于同一节目;
通过所述安全网关的数据处理核在数据链表上挂载的数据包的个数达到预设数量后,提取该数据链表上的数据包中的音视频数据。
在上述实现过程中,由于有些情况下因为外界原因,如网络因素等会使得数据包达到的先后顺序会乱掉,所以,提取音视频数据时,可以在数据链表上挂载的数据包达到预设数量后再进行音视频数据提取,这样就可以避免由于有点数据包晚来而没有按照顺序提取到的问题。
可选地,各个SSRC值作为节点形成总链表,所述总链表中的每个节点包含相同的SSRC值的数据包形成的数据链表,所述通过所述安全网关的数据处理核将SSRC值相同的数据包挂载在同一个数据链表上,包括:
通过所述安全网关的数据处理核查找所述总链表中SSRC值对应的节点,并将SSRC值对应的数据包挂载到该节点下的数据链表中。
可选地,所述通过所述安全网关的数据处理核提取属于同一节目对应的数据包中的音视频数据,包括:
通过所述安全网关的数据处理核依次从所述总链表的每个节点中提取预设数量的数据包中的音视频数据。这样可实现每个节目写入的数据量跟其收到的数据量是均衡的,可有效提升处理效率。
第二方面,本申请实施例提供了一种数据处理装置,运行于安全网关,所述安全网关包括数据分发核和数据处理核,所述装置包括:
数据包获取模块,用于通过所述安全网关的数据分发核获取接收的待转发数据包;
信息提取模块,用于通过所述数据分发核提取每个待转发数据包的特征信息,所述特征信息用于标识待转发数据包所属的节目;
数据包分发模块,用于通过所述数据分发核基于每个待转发数据包的特征信息将每个待转发数据包分发至其所属节目所对应的数据处理核,其中,一个节目对应一个数据处理核;
数据处理模块,用于通过所述安全网关的数据处理核对其所对应的节目的数据包进行处理。
第三方面,本申请实施例提供一种安全网关,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如上述第一方面提供的所述方法中的步骤。
第四方面,本申请实施例提供一种存储设备,其上存储有计算机程序,所述计算机程序被处理器执行时运行如上述第一方面提供的所述方法中的步骤。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种用于执行数据处理方法的安全网关的结构示意图;
图2为本申请实施例提供的一种数据分发方法的流程图;
图3为本申请实施例提供的一种数据分发方式的结构示意图;
图4为本申请实施例提供的一种数据分发方法的详细流程图;
图5为本申请实施例提供的一种数据链表的结构示意图;
图6为本申请实施例提供的一种双层链表的结构示意图;
图7为本申请实施例提供的一种数据处理装置的结构框图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述。
安全网关为了对来自不同节目源的数据实现自动化处理,如审核、过滤、存储、筛选等,需要累积到一定的数据量,例如,想审核某个视频是否存在敏感信息的画面,那么最小的检测单位可能是一帧,当然也可以切换到更小,比如256个像素点,但是这些像素点必须相邻才能检测,而安全网关获得的视频数据,是进行了一定的编码之后才发送的,无法保证安全网关拿到的某个数据流的单独一条流,里面的数据是满足视频数据相邻这一条件的。所以,需要把多个数据流按一定方式整合起来,提取其中的数据,进行组合,才有可能还原出某一帧数据。例如,某无压缩的视频数据视频格式为1080P,采用8bit编码,则某一关键帧的数据量为1920*1080字节,假设每个数据流可以携带1600个字节,则传输一帧数据,需要(1920*1080)/1600 = 1296个数据包才能把一帧数据发送完成,即安全网关获取到第一份数据后,需要解析1296个连续的同一节目流的数据流,才能把这一帧数据提取出来。
所以,安全网关如何对这些来自不同的节目的数据包进行准确区分,以及如何准确提取属于同一节目的音视频数据,目前尚未有解决方案。
以上现有技术中的方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本发明实施例针对上述问题所提出的解决方案,都应该是发明人在本发明过程中对本发明做出的贡献。
本申请中,为了安全网关能够对不同节目的音视频数据实现准确提取,以便于后续能够对这些节目的数据进行相应处理,如审核、过滤等,本申请提供了一种数据处理方法,该方法通过安全网关中的数据分发核来根据数据包的特征信息将数据包分发至其所属节目所对应的数据处理核,这样可以确保同一个节目的数据包分发到一个数据处理核中,从而数据处理核可以对准确提取到属于同一个节目的音视频数据,进而实现对这些音视频数据的相应处理,如数据审核、过滤、存储等。
请参照图1,图1为本申请实施例提供的一种用于执行数据处理方法的安全网关的结构示意图,所述安全网关可以包括:至少一个处理器110,例如CPU,至少一个通信接口120,至少一个存储器130和至少一个通信总线140。其中,通信总线140用于实现这些组件直接的连接通信。其中,本申请实施例中设备的通信接口120用于与其他节点设备进行信令或数据的通信。存储器130可以是高速RAM存储器,也可以是非易失性的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器130可选的还可以是至少一个位于远离前述处理器的存储装置。存储器130中存储有计算机可读取指令,当所述计算机可读取指令由所述处理器110执行时,安全网关执行下述图2所示方法过程。
本申请的安全网关若采用多核处理器,即处理器110为多核处理器,分为数据分发核和数据处理核,其实现方式为多核中的一个核作为数据分发核,其余核作为数据处理核。数据分发核上可以运行操作系统(如linux或DPDK)以及硬件驱动程序,硬件驱动程序可用于执行本申请中的步骤S110-S130,即实现数据包的分发,而数据处理核可以用于对数据包进行相应的处理,这样采用多核处理器来处理数据包,各个核可以独立工作,其效率并不会互相影响,从而可以提升整体数据处理的效率。当然,处理器的任何一个核都可以执行本申请中的步骤,本申请也并不将这些方案排除在外。
可以理解,图1所示的结构仅为示意,所述安全网关还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
请参照图2,图2为本申请实施例提供的一种数据处理方法的流程图,该方法包括如下步骤:
步骤S110:通过数据分发核获取接收的待转发数据包。
本申请中的数据分发核用于实现将数据包分发至不同的数据处理核中,数据处理核用于对数据包进行相应的处理。在进行数据包分发时,安全网关可以先将接收到的数据流镜像出一份数据出来,这样不影响数据包的正常转发(如根据数据包的四元组信息将数据包转发到目的设备),然后再对镜像处理的数据包进行分发,所以,在进行分发时,数据分发核可从镜像数据中获取这些待转发数据包。
步骤S120:通过数据分发核提取每个待转发数据包的特征信息。
由于来自不同节目的数据包所携带的信息不同,所以可以提取每个待转发数据包中的特征信息来对待转发数据包所属的节目进行区分,即特征信息用于表示待转发数据包所属的节目。本申请实施例中,节目可以理解为来自不同源的音视频数据,不同源的数据可以理解为特征信息(如下述的四元组信息)不同的数据,也就是说,属于同一节目的数据包的特征信息相同,不同节目的数据包的特征信息不同。
其中,待转发数据包的特征信息可以为数据包的四元组信息,包括源IP地址、目的IP地址、源端口和目的端口,每个四元组信息对应一个节目,即每个节目的四元组信息不同。四元组信息携带在数据包中,所以,数据分发核可以对每个待转发数据包进行解析,然后从中提取出对应的四元组信息,这样可以基于四元组信息将不同的节目的数据包分发到不同的数据处理核。
当然,在一些实施方式中,特征信息也可以是其他用于表示数据包所属节目的信息,如数据发送端在发送数据包时,针对数据包的四元组信息生成一个节目标识,然后将生成的节目标识添加到数据包的包头中,这样数据分发核可以直接从包头中获取节目标识,该节目标识即为待转发数据包的特征信息。
步骤S130:通过数据分发核基于每个待转发数据包的特征信息将每个待转发数据包分发至其所属节目所对应的数据处理核。
为了确保数据的高效处理,数据处理核可以为多个,这样可以将多个节目流分到不同的数据处理核中,一个节目对应一个数据处理核,即同一个节目的数据包分发到同一个数据处理核中,而一个数据处理核可以处理多个节目。在一些实施方式中,针对每个数据处理核可以预先配置其与所处理的节目的映射关系,如数据处理核1所处理的节目包括节目1和节目2,数据处理核2所处理的节目包括节目3、节目4和节目5等,如此数据分发核在对待转发数据包进行分发时,可以根据待转发数据包的特征信息确定其所属的节目,通过查找其映射关系然后将其分发到对应的数据处理核中,例如,某个待转发数据包所属的节目为节目1,则将该待转发数据包分发至数据处理核1中,若某个待转发数据包所属的节目为节目3,则将该待转发数据包分发至数据处理核2中。当然,上述的映射关系也可以是特征信息与数据处理核的映射关系,这样可以直接通过该映射关系确定待转发数据包需转发到哪个数据处理核中。
本申请中将一个节目的数据包分发到一个数据处理核中,是因为在进行数据保存的时候,如果是多个数据处理核往同一个文件里写入数据(如多个数据处理核将属于同一个节目的数据包写入同一个文件中)的时候,会涉及到锁的操作,从而导致数据处理核的整体性能就会降低的问题。并且同一节目的数据包被分配到不同数据处理核中进行处理,这些数据包的顺序也难以保证。所以,本申请中将一个节目的数据包分发到一个数据处理核中可以避免数据处理核的整体性能降低以及数据包的顺序无法保证的问题。
步骤S140:通过数据处理核对其所对应的节目的数据包进行处理。
数据分发核在将各个节目的数据包分发给对应的数据处理核后,数据处理核可以对这些数据包进行相应的处理,如提取音视频数据、对提取的音视频数据进行敏感信息审核、过滤、存储等处理。数据处理核的具体处理过程在后续实施例会详细介绍,这里先不详细阐述。
在上述实现过程中,通过安全网关中的数据分发核来根据数据包的特征信息将数据包分发至其所属节目所对应的数据处理核,这样可以确保同一个节目的数据包分发到一个数据处理核中,从而数据处理核可以对准确提取到属于同一个节目的音视频数据,进而实现对这些音视频数据的相应处理,如数据审核、过滤、存储等。
在一些实施方式中,为了提高数据处理核的处理效率,本申请实施例中采用DPDK系统,相比于linux系统,减少了硬件中断的时间,进而可以提升处理效率,这样可以确保不会因为数据处理不及时而丢包。所以,可以为数据处理核添加数据分发队列,该数据分发队列为DPDK系统中的ring环,ring环是一个无锁队列,每个数据处理核对应一个数据分发队列,这样数据分发核可以实时将获得的待转发数据包分发到对应的ring环中,数据处理核也可以实时地从ring环中获取数据。
所以,数据分发核在进行分发时,可基于每个待转发数据包的特征信息将每个待转发数据包分发至对应的数据分发队列中,以通过数据处理核从对应的数据分发队列中获取数据包,一个数据处理核对应一个数据分发队列。
其数据分发的方式如图3所示,数据分发核按照上述方式将各个节目的待转发数据包先分发到其所属节目对应的数据处理核对应的数据分发队列中,数据处理核可以以轮询的方式从对应的数据分发队列中读取数据,这样做的好处是:如果直接将数据包发送给数据处理核,而数据处理核则会由于在处理其他数据而需要中断当前业务来接收数据,而加入数据分发队列,则数据处理核可以在处理完业务后直接在数据分发队列中读取数据即可,这样可以减少数据处理核的中断,提高数据处理核的处理效率。
在一些实施方式中,在采用多个数据处理核高效处理数据时,为了确保这些数据处理核之间能实现负载均衡,在数据分发时,还需确保能够将各个节目均分到各个数据处理核,其实现方式可以为:待转发数据包的特征信息包括待转发数据包的地址信息,数据分发核获取每个待转发数据包的地址信息对应的第一数值,然后数据分发核将每个待转发数据包对应的第一数值与数据处理核的总个数进行取余运算,获得每个待转发数据包对应的余数,然后数据分发核再根据每个待转发数据包对应的余数与各个数据处理核的编号将各个待转发数据包分发至对应的数据处理核。
其中,第一数值可以是指哈希值,或者第一数值也可以是通过特征信息映射出来的一个综合值,如不同的四元组信息映射为一个唯一的哈希值或其他综合值,这样属于同一节目的数据包计算出的第一数值是相同的,从长远来看,节目是随机来的,那经过取余运算,可以将节目随机分给对应的数据处理核,长远看即可实现均匀分配。
在具体实现过程中,为了将余数与数据处理器对应起来,可以对多个数据处理核进行编号,如数据处理核0、数据处理核1、......、数据处理核N,其分配的方式可采用一个计算公式来表达,如(待转发数据包1的四元组信息对应的第一数值(如hash值))%(数据处理核的总个数N+1)=X,X即为余数,在X为0时,则将该待转发数据包1分发至数据处理核0对应的数据分发队列中。按照该方式,可确保属于同一个节目的数据包能分发到同一个数据处理核中。
需要说明的是,上述的分发方式是为了实现节目在数据处理核之间进行均匀分发,但是无法避免在一些情况下,可能会存在有的数据处理核所处理的节目数量还是比较多,而有的数据处理核所处理的节目数量比较少,从而造成数据处理核之间负载不均衡的问题。所以,为了避免这个情况,还可以针对每个数据处理核设置一个最大处理节目个数Y,表示数据处理核能处理的最大节目数量,在数据分发核确定各个数据处理核中所处理的节目个数未到达其对应的最大处理节目个数时,则将每个待转发数据包分发至编号为该待转发数据包对应的余数的数据处理核,也就是说按照上述方式来进行数据包分发。
其中,为了实现负载均衡,每个数据处理核对应的Y可以相同,当然,在实际应用中,每个数据处理核对应的Y也可以不相同,但是原则上不应相差太大,否则无法确保数据处理核之间的负载均衡以及一些数据处理核因为所处理的数据量太大而导致处理效率低的问题。其中,Y的具体值可以是经过多次测试来确定的。在某个节目被分发到某个数据处理核之后,该数据处理核所处理的节目个数则加1。
每个数据处理核自己统计自己所处理的节目个数,在某个数据处理核所处理的节目个数达到其对应的最大处理节目个数时,数据处理核向数据分发核发送提示信息,这样数据分发核即可知晓哪个数据处理核已经达到最大处理节目个数,而在数据分发核没有收到任意一个数据处理核发送的提示信息,则确定当前所有的数据处理核均还没有达到饱和,所以,对于当前的待转发数据包继续按照上述的分发方式进行分发,即将待转发数据包分发至编号与其余数相等的数据处理核中。或者,也可以通过数据分发核来统计各个数据处理核所处理的节目个数,这样可以直接通过统计结果来判断是否有数据处理核所处理的节目个数达到最大处理节目个数。
在一些实施方式中,若数据分发核在确定某一数据处理核所处理的节目个数达到其最大处理节目个数时,若继续按照上述取余的方式进行分发的话可能会导致继续将新的节目的数据包又分发到该数据处理核中,则会使得该数据处理核的负载较大。所以,针对这种情况的处理方式可以为:数据分发核在确定编号为目标待转发数据包对应的余数的数据处理核中所处理的节目个数未达到其对应的最大处理节目个数时,则将目标待转发数据包分发至其他节目个数未达到最大处理节目个数的数据处理核,其中,该目标待转发数据包为不属于其编号为余数的数据处理核中当前所处理的节目的数据包。
其中,目标待转发数据包可以是指当前未分发至其编号等于其余数的数据处理核的数据包中的其中一个,例如,某个待转发数据包a,根据上述计算公式计算出的余数等于5,则本应将该待转发数据包a分发至数据处理核5中,但是若此时数据处理核5所处理的节目个数已经达到最大处理节目个数,而待转发数据包a不属于数据处理核5中当前所处理的节目的数据包,即待转发数据包a为一个新节目的数据包,所以针对该新节目的数据包本应按照上述分发方式分发给数据处理核5,但是由于数据处理核5已达到饱和,则将该待转发数据包a以及后续属于该新节目的数据包均分发至其他未达到最大处理节目个数的数据处理核。
具体选择数据处理核分发的方式可以是:获取当前未达到最大处理节目个数的数据处理核,然后从中任意选择一个数据处理核,并将待转发数据包a分发至该数据处理核;或者数据分发核获取当前所处理的节目个数最少的目标数据处理核,然后将目标待转发数据包(如上述的待转发数据包a)分发至目标数据处理核;或者,还可以获取当前未到达最大处理节目个数的数据处理核当前所处理的节目个数,若每个数据处理核对应的最大处理节目个数不同时,则可以选择当前所处理的节目个数与其对应的最大处理节目个数的差值最大的数据处理核作为目标数据处理核,表明目前该数据处理核的负载最小,即将目标待转发数据包分发给该目标数据处理核,例如数据处理核1当前所处理的节目个数为3,其对应的最大处理节目个数为5,则其差值为2,而数据处理核2当前所处理的节目个数为2,其对应的最大处理节目个数为3,则其差值为1,则此时将数据处理核1作为目标数据处理核,目标待转发数据包则分发至数据处理核1。
在一些实施方式中,为了便于针对这些未按照上述取余的方式正常分发的节目的数据包的后续分发,数据分发核可在确定其中任意一个数据处理核中的节目个数达到其所能处理的最大节目个数时,统计各个数据处理核当前所处理的节目的对应的第二数值,然后将该第二数值存储在第一数组array[0][Y+256/N]中,其中N为数据处理核的总数,Y为数据处理核的最大处理节目个数,256是指最多可能有256个节目。
其中,第二数值也可以为哈希值,或者也可以是根据特征信息计算出的一个综合值,应理解地,第一数值和第二数值的表现形式应一致,从而可便于进行比对,后续实施例中均以哈希值为例进行说明。针对每个节目计算出一个哈希值,然后存储在第一数组中,举个示例,若有三个数据处理核,其各个数据处理核当前所处理的节目信息如第一数组所示:
如上述第一数组所示,数据处理核0所处理的节目包括节目1(hash1)和节目2(hash2),该数据处理核0当前处理的节目还有其他,第一数组中并未全部示出,若是数据处理核0所处理的节目个数达到最大处理节目个数时,则统计获得上述第一数组,数据处理核1所处理的节目包括节目3(hash3),数据处理核2所处理的节目包括节目4(hash4)。
当然,数据分发核也可以实时统计各个数据处理核所处理的节目信息,并记录在第一数组中,在进行数据分发时,如果某个数据处理核所处理的节目个数达到最大处理节目个数,如数据处理核0满足这个条件,此时数据分发核可为该数据处理核0设置一个标识,如g_uiabnormalFlag = 1,用于标识该数据处理核0已经达到饱和,那么后续本应分给数据处理核0的新节目的数据包则需要分给其他数据处理核。
在这种情况下,其数据分发方式可以概括为:
通过数据分发核在确定其中一个数据处理核中的节目个数达到其所能处理的最大节目个数时,获取存储有各个数据处理核中当前所处理的节目对应的第二数值的第一数组;数据分发核确定第一数组中编号为目标待转发数据包对应的余数的数据处理核对应的第二数值中是否有与目标待转发数据包对应的第一数值相同的数值,若有,则通过数据分发核将目标待转发数据包分发给编号为目标待转发数据包对应的余数的数据处理核,若没有,则数据分发核遍历第一数组,将目标待转发数据包分发给有与目标待转发数据包对应的第一数值相同的第二数值对应的其他数据处理核。
举例来说,在各个数据处理核均没有达到最大处理节目个数时,对于数据包的分发,可以计算获得数据包的hash值以及计算余数,然后可直接将该数据包分发给编号与其余数相同的数据处理核(为了便于区分,这种分发方式称为正常分发)。数据分发核可以实时记录各个数据处理核所处理的节目信息,以便于数据分发核也可以对各个数据处理核所处理的节目个数进行统计,例如,若某个数据包的余数为0,表示应将该数据包分发给数据处理核为0,然后查找第一数组中数据处理核为0对应的各个hash值(第一数组中存储的hash值称为第二数值),若发现该数据包的hash值与hash1相同,则表示该数据包为节目1的数据包,此时直接将该数据包分发给数据处理核0即可。但是若发现在第一数组中数据处理核0对应的各个hash值并没有与该数据包的hash值相同的hash值,表示该数据包为一个新的节目的数据包,此时可将该数据包的hash值记录在第一数组中,且若此时数据处理核0没有达到最大处理节目个数,并将该数据包分发给数据处理核0。
若待转发数据包b经过取余计算,发现待转发数据包b应该分发给数据处理核0,并且待转发数据包b为一个新节目的数据包,如果按照上述分发方式确定将待转发数据包b经过异常方式分发而分发给数据处理核1了,则此时第一数组中增加一条记录,即增加数据处理核1对应的待转发数据包b的hash值。
但是若某个数据处理核(如数据处理核0)所处理的节目个数达到最大节目个数时,数据分发核设置一个上述的标识,即g_uiabnormalFlag = 1,那么对于后续的待转发数据包,则不能按照上述正常方式直接分发了,而是可以采用如下的分发方式:例如,对于后续新来的待转发数据包c,如果该待转发数据包c与待转发数据包b的hash值相同,即四元组信息相同,则表明这两个待转发数据包属于同一个节目,本来待转发数据包c也应分发给数据处理核0,但是通过查找第一数组中数据处理核0对应的hash值,发现数据处理核0对应的hash值中没有待转发数据包c对应的hash值,此时,则遍历第一数组中其他数据处理核对应的hash值,若找到数据处理核1中的某个hash值与待转发数据包c的hash值相同,则将待转发数据包c分发给数据处理核1,从而确保在异常分发时,也能确保同一节目的数据包分发给同一数据处理核。
当然,若对于后续的待转发数据包d,其本来是属于数据处理核0中当前所处理的节目,若通过查找第一数组中数据处理核0对应的hash值中有与待转发数据包d相同的hash值,则可表明待分数据包d不是新节目的数据包,而是数据处理核0中当前所处理的节目的数据包,所以可以直接将该待转发数据包d分发给数据处理核0。
上述分发方式可参照图4所示,其大概包括如下步骤:
步骤S210:检测是否有任一数据处理核所处理的节目个数达到最大处理节目个数(图4中表示为检测是否有g_uiabnormalFlag=1的标识);
步骤S220:在没有g_uiabnormalFlag=1的标识时,按照取余的方式进行分发。
步骤S230:在有g_uiabnormalFlag=1的标识时,计算获得数据包的余数。
步骤S240:查找第一数组中与余数相同的编号的数据处理核对应的hash值中是否有该数据包对应的hash值,若有,执行步骤S250,若没有执行步骤S260。
步骤S250:将该数据包分发到数据处理核X。
步骤S260:遍历第一数组中的其他hash值,判断是否能找到数据包的hash值,若能找到,执行步骤S270,若没有找到,执行步骤S280。
步骤S270:把该数据包分发到数据处理核i上。
步骤S280:把该数据包分发到节目个数最少的数据处理j上,同时保存该数据包的hash值在第一数组中。
步骤S290:保存该数据包的hash值在第二数组中,并更新第二数组的节目统计个数。
在一些实施方式中,为了便于记录未按照正常方式分发的节目,并且可以使得数据分发核及时知晓何时将后续的待转发数据包按照正常方式进行分发,还可以将未按照正常分发的节目记录在第二数组g_unnormal[256]。例如,上述的待转发数据包c本应分给数据处理核0,而经过异常分发方式分给了数据处理核1,此时数据分发核可以将该目标待转发数据包(待转发数据包c)对应的第一数值存储到第二数组中,该第二数组则用于记录未将数据包分发至编号与其余数相同的数据处理核的节目,如可将待转发数据包c对应的hash值记录在第二数组中。
在一些实施方式中,为了及时对信息进行删除,在某个数据处理核确定其处理的某个节目不会再来数据包时,可以通知数据分发核将该节目的相关信息删除,如数据处理核0在其对应的数据分发队列中获取数据包,如果达到预设次数(如100次)均未获取到节目1对应的数据包时,则认为节目1不会继续再来数据包了,或者数据处理核0在预设时间段内均未获取到节目1的数据包,则表示节目1不会再来数据包了,此时数据处理核0可通知数据分发核,数据分发核则可把节目1相关的信息删除了。也就是说,数据分发核在确定目标转发数据包所属的目标节目没有对应的待转发数据包时,则将第一数组中目标待转发数据包对应的第一数值删除,如将hash1删除,然后将此数据处理核0所处理的节目个数减1。
另外,若目标待转发数据包为上述按照异常方式分发的数据包,如上述的待转发数据包c,若数据处理核1确定待转发数据包c所属的节目不会再来数据包时,则通知数据分发核,数据分发核可将第二数组中目标待转发数据包对应的第一数值删除,并更新第二数组所记录的节目个数,这样可便于数据分发核及时知晓进行异常分发的节目信息。
在一些实施方式中,若数据分发核在确定第二数组所记录的节目个数为0时,则清空第一数组中所记录的各个节目对应的第一数值,表示当前按照异常分发的节目没有了,对于后续新来的待转发数据包,则可继续按照正常方式进行分发即可,即按照取余的方式将待转发数据包分发至编号与余数相同的数据处理核中。
按照上述分发方式,可在确保将同一节目的数据包分发给同一数据处理核的情况下,也能确保各个数据处理核之间的负载均衡,也就是说,既兼顾了高效,又兼顾了均衡,还确保了同一节目的数据包被分发到一个数据处理核上,从而可保证数据处理核能够实现对同一节目的数据包的准确提取,以便于后续数据处理核实现对数据的相关处理。
在一些实施方式中,数据处理核在获取数据包时,是以轮询的方式从数据处理核对应的数据分发队列中获取各个节目对应的数据包,这样可实现数据处理核的高效处理。
数据处理核在获得数据包后,在一些实施方式中,数据处理核可以提取属于同一节目对应的数据包中的音视频数据,并对提取到的音视频数据进行敏感信息审核。
当然,数据处理核也可以将提取到的属于同一节目对应的数据包中的音视频数据写入到同一文件中,由安全网关中的其他处理进程或者其他设备来读取这文件中的音视频数据,并对音视频数据进行审核。
在一些实施方式中,为了确保数据处理核能够按照准确的顺序提取数据包的音视频数据,从而实现对音视频数据按照正确的顺序拼接出完整的数据,数据处理核还可以解析各个节目对应的各个数据包,获得各个数据包中的同步源(Synchronization Source,SSRC)值,然后将SSRC值相同的数据包挂载在同一个数据链表上,一个数据链表上挂载的数据包属于同一节目,在数据链表上挂载的数据包的个数达到预设数量后,提取该数据链表上的数据包中的音视频数据。
不同的节目的数据包其对应的SSRC值不同,当然,为了更准确的辨识属于不同节目的数据包,也可以提取数据包中的有效载荷等信息,基于这些信息来综合判断属于不同节目的数据包。然后可将同一节目的数据包挂载到一个数据链表上,例如,由于数据处理核是以轮询的方式从数据分发队列中获取数据包,所以,数据处理核每次获得的数据包可能来自于不同的节目,如数据处理核获得20个数据包,通过获取每个数据包的SSRC值,发现其中有5个数据包的SSRC值为SSRC1,有11个数据包的SSRC为SSRC2,有4个数据包的SSRC值为SSRC3,表明这20个数据包来自三个节目。如果SSRC1对应的节目先前未有数据包来,则此时还没有对应的数据链表,所以数据处理核可先新建一个数据链表1,然后再将SSRC1对应的5个数据包挂载在该数据链表1中,若已经存在有SSRC2对应的数据链表2,则直接将SSRC2对应的11个数据包挂载到数据链表2中即可。如图5所示,其示出了一个数据链表的结构示意图,其数据包序号是Sequenc num。
但是有些情况下因为外界原因,如网络因素等会使得数据包达到的先后顺序会乱掉,所以,提取音视频数据时,可以在数据链表上挂载的数据包达到预设数量后再进行音视频数据提取。这样带来的好处如:在图5中,Sequence num = N+1,N+2,N+3,N+4这几个数据包当前并没有收到,但是由于数据处理核并不会来一个数据包就提取一个音视频数据,只要在Sequnence num = N+5这个数据包被处理之前收到,都可以把Sequence num = N+1,N+2,N+3,N+4这几个数据包加入到链表里,从而就可以按照正确的顺序进行音视频数据的提取,这样既保障数据不会乱掉,也不会被人为丢弃。
上述实现方式中,一个节目对应一个数据链表,在提取音视频数据时,数据处理核每次从一个数据链表中取下K个数据包来进行音视频数据提取,也就是一次提取部分的音视频数据,并将提取的音视频数据写入到一个文件中,一个节目的音视频数据写入同一个文件中。而为了保障数据处理核不会因读写数据不匹配,而造成内存不够用的情况,则数据处理核每次从一个数据链表中取下K个数据包后,再从数据分发队列中读取K个数据包来挂载到对应的数据链表中。
在一些实施方式中,为了实现数据处理核对多个节目的音视频数据的高效提取,还可以将各个节目作为节点形成总链表,即各个SSRC值作为节点形成总链表,如图6所示,其总链表中的每个节点包含相同的SSRC值的数据包形成的数据链表,也就是说总链表是由上述的各个数据链表形成的双层链表结构。而数据处理核在挂载数据包时,可以先从总链表中查找SSRC值对应的节点,然后将SSRC值对应的数据包挂载到该节点下的数据链表中。
例如,对于上述SSRC1、SSRC2、SSRC3的数据包,可以先在总链表中查找这三个SSRC值对应的节点,从而找到对应的数据链表,然后再将数据包挂载到各自对应的数据链表上即可。
在一些实施方式中,为了实现各个节目的数据包的音视频数据的均衡提取,还可以在提取音视频数据时,依次从总链表的每个节点中提取预设数量的数据包中的音视频数据。
也就是说,每次提取的数据包为一个节目的预设数量的数据包,如果上次从SSRC=X对应的数据链表中取下K个数据包,并提取音视频数据到一个文件中后,则此次提取数据就找下一个节点,即从SSRC=Y对应的节点中的数据链表中取下K个数据包,然后将这K个数据包的音视频数据提取出来写入到另一个文件中,本次操作完成后,继续从数据分发队列中获取K个数据包。
如此一次获取一个节目的K个数据包,优于一次获取K个节目中每个节目的一个数据包,长期来看,这种方式每个节目流写入的数据量跟其收到的数据量是可以均衡的,其可以达到提升效率。
当然,数据处理核也可以每次从多个节目中获取数据包,然后可同时对多个节目的数据包进行音视频数据的提取,这种方式相比于现有技术的方式可以实现数据更高效的提取,因为现有方式是将数据包转发到目的设备,由目的设备来进行音视频数据提取,但是不同节目的数据包对应不同的目的设备,所以目的设备只能对自身接收到的数据包进行音视频数据的提取,而无法实现同时对多个节目进行音视频数据的提取。
另外,在数据处理核将一个节目的音视频数据写入到一个文件中后,则可以在一段时间后对每个文件中的音视频数据进行敏感信息的审核,如查找音视频数据中是否存在敏感词、敏感图像等信息,或者通过其他的敏感信息审核规则来进行审核。当然,数据处理核也可以对这些音视频数据做另外处理,如过滤、筛选等,或者数据处理核也可以只将数据包中的音视频数据提取出来存入对应的文件中,以供其他设备或其他进程使用。
所以,本申请实施例中,可以保障在大批量不同节目源的数据包到来时,通过安全网关的数据分发核把相同节目的数据包分发到同一个数据处理核中,以使得数据处理核可以按照正确的顺序来实现音视频数据的提取。
请参照图7,图7为本申请实施例提供的一种数据处理装置200的结构框图,该装置200可以是安全网关上的模块、程序段或代码。应理解,该装置200与上述图2方法实施例对应,能够执行图2方法实施例涉及的各个步骤,该装置200具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。
可选地,所述装置200包括:
数据包获取模块210,用于通过所述安全网关的数据分发核获取接收的待转发数据包;
信息提取模块220,用于通过所述数据分发核提取每个待转发数据包的特征信息,所述特征信息用于标识待转发数据包所属的节目;
数据包分发模块230,用于通过所述数据分发核基于每个待转发数据包的特征信息将每个待转发数据包分发至其所属节目所对应的数据处理核,其中,一个节目对应一个数据处理核;
数据处理模块240,用于通过所述安全网关的数据处理核对其所对应的节目的数据包进行处理。
可选地,所述数据包分发模块230,用于通过所述数据分发核基于每个待转发数据包的特征信息将每个待转发数据包分发至对应的数据分发队列中,以通过所述数据处理核从对应的数据分发队列中获取数据包,其中,一个数据处理核对应一个数据分发队列。
可选地,所述特征信息包括待转发数据包的地址信息,所述数据包分发模块230,用于通过所述数据分发核获取每个待转发数据包的地址信息对应的第一数值;通过所述数据分发核将每个待转发数据包对应的第一数值与数据处理核的总个数进行取余运算,获得每个待转发数据包对应的余数;通过所述数据分发核根据每个待转发数据包对应的余数与各个数据处理核的编号将各个待转发数据包分发至对应的数据处理核。
可选地,所述数据包分发模块230,用于通过所述数据分发核在确定各个数据处理核中所处理的节目个数未达到其对应的最大处理节目个数时,将每个待转发数据包分发至编号为该待转发数据包对应的余数的数据处理核。
可选地,所述数据包分发模块230,用于通过所述数据分发核在确定编号为目标待转发数据包对应的余数的数据处理核中所处理的节目个数达到其对应的最大处理节目个数时,将所述目标待转发数据包分发至其他节目个数未到达最大处理节目个数的数据处理核,其中,所述目标待转发数据包为不属于其编号为所述余数的数据处理核中当前所处理的节目的数据包。
可选地,所述数据包分发模块230,用于通过所述数据分发核获取当前所处理的节目个数最少的目标数据处理核;通过所述数据分发核将所述目标待转发数据包分发至所述目标数据处理核。
可选地,所述数据包分发模块230,用于:
通过所述数据分发核在确定其中一个数据处理核中的节目个数达到其所能处理的最大节目个数时,获取存储有各个数据处理核中当前所处理的节目对应的第二数值的第一数组;
通过所述数据分发核确定所述第一数组中编号为目标待转发数据包对应的余数的数据处理核对应的第二数值中是否有与所述目标待转发数据包对应的第一数值相同的数值;
若有,则通过所述数据分发核将所述目标待转发数据包分发给编号为所述目标待转发数据包对应的余数的数据处理核;
若没有,则通过所述数据分发核遍历所述第一数组,将所述目标待转发数据包分发给有与所述目标待转发数据包对应的第一数值相同的第二数值对应的其他数据处理核。
可选地,所述装置200还包括:
数据存储模块,用于通过所述数据分发核将所述目标待转发数据包对应的第一数值存储到第二数组中,所述第二数组用于记录未将数据包分发至编号与其余数相同的数据处理核的节目。
可选地,所述装置200还包括:
数据删除模块,用于通过所述数据分发核在确定所述目标待转发数据包所属的目标节目没有对应的待转发数据包时,则将所述第二数组中所述目标待转发数据包对应的第一数值删除,并更新所述第二数组所记录的节目个数。
可选地,所述装置200还包括:
数据删除模块,用于通过所述数据分发核在确定所述第二数组所记录的节目个数为0时,清空所述第一数组中所记录的各个节目对应的第一数值。
可选地,所述第一数值和所述第二数值为哈希值。
可选地,所述数据处理模块240,用于通过所述数据处理核提取属于同一节目对应的数据包中的音视频数据,并对提取到的音视频数据进行敏感信息审核。
可选地,所述装置200还包括:
数据包读取模块,用于通过所述安全网关的数据处理核以轮询的方式从所述数据处理核对应的数据分发队列中获取各个节目对应的数据包。
可选地,所述数据处理核每次获取的数据包的数量与每次提取音视频数据的数据包的数量相同。
可选地,所述数据处理模块240,用于通过所述安全网关的数据处理核解析各个节目对应的各个数据包,获得各个数据包中的同步源SSRC值;通过所述数据处理核将SSRC值相同的数据包挂载在同一个数据链表上,其中,一个数据链表上挂载的数据包属于同一节目;通过所述数据处理核在数据链表上挂载的数据包的个数达到预设数量后,提取该数据链表上的数据包中的音视频数据。
可选地,各个SSRC值作为节点形成总链表,所述总链表中的每个节点包含相同的SSRC值的数据包形成的数据链表,所述数据处理模块240,用于通过所述安全网关的数据处理核查找所述总链表中SSRC值对应的节点,并将SSRC值对应的数据包挂载到该节点下的数据链表中。
可选地,所述数据处理模块240,用于通过所述安全网关的数据处理核依次从所述总链表的每个节点中提取预设数量的数据包中的音视频数据。
需要说明的是,本领域技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再重复描述。
本申请实施例提供一种存储设备,其上存储有计算机程序,所述计算机程序被处理器执行时,执行如图2所示方法实施例中安全网关所执行的方法过程。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机存储设备上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如,包括:通过安全网关的数据分发核获取接收的待转发数据包;通过所述数据分发核提取每个待转发数据包的特征信息,所述特征信息用于标识待转发数据包所属的节目;通过所述数据分发核基于每个待转发数据包的特征信息将每个待转发数据包分发至其所属节目所对应的数据处理核,其中,一个节目对应一个数据处理核;通过安全网关的数据处理核对其所对应的节目的数据包进行处理。
综上所述,本申请实施例提供一种数据处理方法、装置、安全网关及存储设备,通过安全网关中的数据分发核来根据数据包的特征信息将数据包分发至其所属节目所对应的数据处理核,这样可以确保同一个节目的数据包分发到一个数据处理核中,从而数据处理核可以对准确提取到属于同一个节目的音视频数据,进而实现对这些音视频数据的相应处理,如数据审核、过滤、存储等。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种数据处理方法,其特征在于,应用于安全网关,所述方法包括:
通过所述安全网关的数据分发核获取接收的待转发数据包;
通过所述数据分发核提取每个待转发数据包的特征信息,所述特征信息用于标识待转发数据包所属的节目;
通过所述数据分发核基于每个待转发数据包的特征信息将每个待转发数据包分发至其所属节目所对应的数据处理核,其中,一个节目对应一个数据处理核;
通过所述安全网关的数据处理核对其所对应的节目的数据包进行处理;
其中,所述通过所述数据分发核基于每个待转发数据包的特征信息将每个待转发数据包分发至其所属节目所对应的数据处理核,包括:
通过所述数据分发核基于每个待转发数据包的特征信息将每个待转发数据包分发至对应的数据分发队列中,以通过所述数据处理核以轮询的方式从对应的数据分发队列中获取数据包,其中,一个数据处理核对应一个数据分发队列;
其中,在所述特征信息包括四元组信息时,所述通过所述数据分发核基于每个待转发数据包的特征信息将每个待转发数据包分发至其所属节目所对应的数据处理核,还包括:
通过所述数据分发核获取每个待转发数据包的四元组信息对应的第一数值,所述第一数值为哈希值;
通过所述数据分发核将每个待转发数据包对应的第一数值与数据处理核的总个数进行取余运算,获得每个待转发数据包对应的余数;
通过所述数据分发核根据每个待转发数据包对应的余数与各个数据处理核的编号将各个待转发数据包分发至对应的数据处理核。
2.根据权利要求1所述的方法,其特征在于,所述通过所述数据分发核根据每个待转发数据包对应的余数与各个数据处理核的编号将各个待转发数据包分发至对应的数据处理核,包括:
通过所述数据分发核在确定各个数据处理核中所处理的节目个数未达到其对应的最大处理节目个数时,将每个待转发数据包分发至编号为该待转发数据包对应的余数的数据处理核。
3.根据权利要求1所述的方法,其特征在于,所述通过所述数据分发核根据每个待转发数据包对应的余数与各个数据处理核的编号将各个待转发数据包分发至对应的数据处理核,包括:
通过所述数据分发核在确定编号为目标待转发数据包对应的余数的数据处理核中所处理的节目个数达到其对应的最大处理节目个数时,将所述目标待转发数据包分发至其他节目个数未到达最大处理节目个数的数据处理核,其中,所述目标待转发数据包为不属于其编号为所述余数的数据处理核中当前所处理的节目的数据包。
4.根据权利要求1所述的方法,其特征在于,所述通过所述数据分发核根据每个待转发数据包对应的余数与各个数据处理核的编号将各个待转发数据包分发至对应的数据处理核,包括:
通过所述数据分发核在确定其中一个数据处理核中的节目个数达到其所能处理的最大节目个数时,获取存储有各个数据处理核中当前所处理的节目对应的第二数值的第一数组;
通过所述数据分发核确定所述第一数组中编号为目标待转发数据包对应的余数的数据处理核中当前所处理的节目对应的第二数值中是否有与所述目标待转发数据包对应的第一数值相同的数值;
若有,则通过所述数据分发核将所述目标待转发数据包分发给编号为所述目标待转发数据包对应的余数的数据处理核;
若没有,则通过所述数据分发核遍历所述第一数组,将所述目标待转发数据包分发给有与所述目标待转发数据包对应的第一数值相同的第二数值对应的其他数据处理核。
5.根据权利要求1-4任一所述的方法,其特征在于,所述通过所述安全网关的数据处理核对其所对应的节目的数据包进行处理,包括:
通过所述安全网关的数据处理核提取属于同一节目对应的数据包中的音视频数据,并对提取到的音视频数据进行敏感信息审核。
6.根据权利要求5所述的方法,其特征在于,所述通过所述安全网关的数据处理核提取属于同一节目对应的数据包中的音视频数据,包括:
通过所述安全网关的数据处理核解析各个节目对应的各个数据包,获得各个数据包中的同步源SSRC值;
通过所述安全网关的数据处理核将SSRC值相同的数据包挂载在同一个数据链表上,其中,一个数据链表上挂载的数据包属于同一节目;
通过所述安全网关的数据处理核在数据链表上挂载的数据包的个数达到预设数量后,提取该数据链表上的数据包中的音视频数据。
7.根据权利要求6所述的方法,其特征在于,各个SSRC值作为节点形成总链表,所述总链表中的每个节点包含相同的SSRC值的数据包形成的数据链表,所述通过所述安全网关的数据处理核将SSRC值相同的数据包挂载在同一个数据链表上,包括:
通过所述安全网关的数据处理核查找所述总链表中SSRC值对应的节点,并将SSRC值对应的数据包挂载到该节点下的数据链表中。
8.一种数据处理装置,其特征在于,运行于安全网关,所述装置包括:
数据包获取模块,用于通过所述安全网关的数据分发核获取接收的待转发数据包;
信息提取模块,用于通过所述数据分发核提取每个待转发数据包的特征信息,所述特征信息用于标识待转发数据包所属的节目;
数据包分发模块,用于通过所述数据分发核基于每个待转发数据包的特征信息将每个待转发数据包分发至其所属节目所对应的数据处理核,其中,一个节目对应一个数据处理核;
数据处理模块,用于通过所述安全网关的数据处理核对其所对应的节目的数据包进行处理;
其中,所述数据包分发模块,具体用于通过所述数据分发核基于每个待转发数据包的特征信息将每个待转发数据包分发至对应的数据分发队列中,以通过所述数据处理核以轮询的方式从对应的数据分发队列中获取数据包,其中,一个数据处理核对应一个数据分发队列;
其中,在所述特征信息包括四元组信息时,所述数据包分发模块,用于通过所述数据分发核获取每个待转发数据包的四元组信息对应的第一数值,所述第一数值为哈希值;通过所述数据分发核将每个待转发数据包对应的第一数值与数据处理核的总个数进行取余运算,获得每个待转发数据包对应的余数;通过所述数据分发核根据每个待转发数据包对应的余数与各个数据处理核的编号将各个待转发数据包分发至对应的数据处理核。
9.一种安全网关,其特征在于,包括处理器以及存储器,所述处理器为多核处理器,分为数据分发核和数据处理核,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如权利要求1-7任一所述的方法。
10.一种存储设备,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时运行如权利要求1-7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110188534.1A CN112565821B (zh) | 2021-02-19 | 2021-02-19 | 数据处理方法、装置、安全网关及存储设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110188534.1A CN112565821B (zh) | 2021-02-19 | 2021-02-19 | 数据处理方法、装置、安全网关及存储设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112565821A CN112565821A (zh) | 2021-03-26 |
CN112565821B true CN112565821B (zh) | 2021-05-28 |
Family
ID=75034358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110188534.1A Active CN112565821B (zh) | 2021-02-19 | 2021-02-19 | 数据处理方法、装置、安全网关及存储设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112565821B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101878663A (zh) * | 2007-11-29 | 2010-11-03 | 瑞科网信科技有限公司 | 分布式多重处理安全网关的系统和方法 |
CN201813496U (zh) * | 2010-09-21 | 2011-04-27 | 北京歌华有线数字媒体有限公司 | Dvb视频网关系统 |
CN102231126A (zh) * | 2011-07-28 | 2011-11-02 | 大唐移动通信设备有限公司 | 一种实现多核处理器中核间备份的方法及系统 |
CN103873712A (zh) * | 2014-04-14 | 2014-06-18 | 中国人民解放军信息工程大学 | VoIP网关检测方法及多核处理设备 |
CN104639460A (zh) * | 2015-02-03 | 2015-05-20 | 重庆邮电大学 | 一种基于众核处理器的高速网络数据包并行化接收方法 |
CN111556154A (zh) * | 2020-04-27 | 2020-08-18 | 深圳震有科技股份有限公司 | 数据传输方法、装置、设备及计算机可读存储介质 |
CN111736761A (zh) * | 2020-05-12 | 2020-10-02 | 深圳震有科技股份有限公司 | 数据分发方法、装置、存储系统及计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090328119A1 (en) * | 2008-06-25 | 2009-12-31 | Alcatel Lucent | Packet Recovery Server Based Triggering Mechanism for IPTV Diagnostics |
-
2021
- 2021-02-19 CN CN202110188534.1A patent/CN112565821B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101878663A (zh) * | 2007-11-29 | 2010-11-03 | 瑞科网信科技有限公司 | 分布式多重处理安全网关的系统和方法 |
CN201813496U (zh) * | 2010-09-21 | 2011-04-27 | 北京歌华有线数字媒体有限公司 | Dvb视频网关系统 |
CN102231126A (zh) * | 2011-07-28 | 2011-11-02 | 大唐移动通信设备有限公司 | 一种实现多核处理器中核间备份的方法及系统 |
CN103873712A (zh) * | 2014-04-14 | 2014-06-18 | 中国人民解放军信息工程大学 | VoIP网关检测方法及多核处理设备 |
CN104639460A (zh) * | 2015-02-03 | 2015-05-20 | 重庆邮电大学 | 一种基于众核处理器的高速网络数据包并行化接收方法 |
CN111556154A (zh) * | 2020-04-27 | 2020-08-18 | 深圳震有科技股份有限公司 | 数据传输方法、装置、设备及计算机可读存储介质 |
CN111736761A (zh) * | 2020-05-12 | 2020-10-02 | 深圳震有科技股份有限公司 | 数据分发方法、装置、存储系统及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112565821A (zh) | 2021-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111770023B (zh) | 基于fpga的报文去重方法、装置及fpga芯片 | |
CN106972985B (zh) | 加速dpi设备数据处理与转发的方法和dpi设备 | |
CN113259143B (zh) | 信息处理方法、设备、系统及存储介质 | |
US10284460B1 (en) | Network packet tracing | |
CN106921665B (zh) | 一种报文处理方法及网络设备 | |
CN112688837B (zh) | 基于时间滑动窗口的网络测量方法与装置 | |
CN109525495B (zh) | 一种数据处理装置、方法和fpga板卡 | |
CN111314179A (zh) | 网络质量检测方法、装置、设备和存储介质 | |
CN112672381A (zh) | 一种数据关联方法、装置、终端设备及介质 | |
CN107819697B (zh) | 数据传输方法、交换机及数据中心 | |
CN112565821B (zh) | 数据处理方法、装置、安全网关及存储设备 | |
CN108460044B (zh) | 数据的处理方法和装置 | |
CN114244781B (zh) | 一种基于dpdk的报文去重处理方法和装置 | |
CN114615200A (zh) | 一种基于acl的大象流检测方法及装置 | |
CN109547389B (zh) | 一种码流文件重组的方法及装置 | |
US20230188439A1 (en) | Traffic Monitoring Device, Traffic Monitoring Method, and Traffic Monitoring Program | |
US10305754B2 (en) | Apparatus and method to collect packets related to abnormal connection | |
CN110908798B (zh) | 多进程协同式网络流量解析方法及装置 | |
US9306854B2 (en) | Method and apparatus for diagnosing interface oversubscription and microbursts | |
CN115499338B (zh) | 数据处理方法、设备、介质及云网络观测系统 | |
CN117176839B (zh) | 遥测报文传输方法、装置、通信设备及存储介质 | |
CN109542662B (zh) | 一种内存管理方法、装置、服务器及存储介质 | |
CN116760744B (zh) | 丢包统计方法、装置及电子设备 | |
US9674282B2 (en) | Synchronizing SLM statuses of a plurality of appliances in a cluster | |
CN116582507B (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 |