一种支持网络产品信息查询的众核平台深度包检测装置及方法转让专利

申请号 : CN201710154545.1

文献号 : CN106953780B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 许国良周小宇雒江涛

申请人 : 重庆邮电大学

摘要 :

本发明涉及一种支持网络产品信息查询的众核平台深度包检测装置及方法,该装置使用三颗TILE‑Gx36众核处理器。其中一颗负责完成数据预处理,另外两颗众核处理器各自独立完成DPI、产品信息查询与数据整合、输出等功能。众核按照一定的核心分配方案,并借助产品信息库完成以上三种功能。本发明利用众核的并行处理能力完成对原始网络数据包内容级别的DPI处理,与传统方法相比,计算性能、功耗比大幅提升,实时性强,集成度高。

权利要求 :

1.一种支持网络产品信息查询的众核平台深度包检测装置,其特征在于:包括一颗第一众核处理器、两颗第二众核处理器和交换芯片;

所述第一众核处理器包括第一数据包预处理模块,所述第二众核处理器包括第二数据包预处理模块,所述第二数据包预处理模块包括众核DPI模块、产品信息查询和数据整合模块和输出模块;

所述第一数据包预处理模块用于过滤掉不需要进一步匹配查询的数据包,完成HTTP协议包中GET数据包的提取,并将过滤掉后的数据包和GET数据包通过mPIPE发出到交换芯片上;进入交换芯片的数据包被平均分给第二众核处理器,所述众核DPI模块完成数据包的元数据提取以及Web应用识别,并根据数据包对应的Web应用提取出产品ID;众核DPI模块得到的元数据、WebID、产品ID都存储在xDR结构体中,并通过RingBuffer传递给产品信息查询和数据整合模块;

产品信息查询和数据整合模块根据众核DPI模块得到的Web应用以及产品ID通过查询接口,查询的结果、数据包的元数据、WebID一并整合以字符串的形式被存放在缓存中,该缓存用于存储多条整合数据,存满之后传递给输出模块;

输出模块将各产品信息查询和数据整合模块对应的输出队列上取下数据,发送给其他主机,完成数据的存储。

2.根据权利要求1所述的一种支持网络产品信息查询的众核平台深度包检测装置,其特征在于:所述第二众核处理器包括m个DPI线程、n个产品信息查询和数据整合模块和一个输出线程;DPI线程与产品信息查询和数据整合模块之间通过RingBuffer进行数据传递,RingBuffer的个数也是n个;DPI线程将以轮询的方式,将众核DPI模块处理的中间结果分发给n个RingBuffer;每个产品信息查询和数据整合模块对应单个RingBuffer,并循环的从其中提取数据处理;最终所有产品信息查询和数据整合模块处理的结果同样以RingBuffer的形式传递给单个输出线程输出。

3.根据权利要求2所述的一种支持网络产品信息查询的众核平台深度包检测装置,其特征在于:线程以及线程间数据传递使用的数据结构的分配都在装置运行前的初始化阶段完成。

4.一种支持网络产品信息查询的众核平台深度包检测方法,其特征在于:包括步骤S1:数据预处理;利用第一数据包预处理模块过滤掉不需要进一步匹配查询的数据包,完成HTTP协议包中GET数据包的提取,并将这些数据包通过mPIPE发出到交换芯片上;

步骤S2:数据调度;将经过预处理的数据包平均分发到两个与交换芯片相连接的mPIPE上,并由mPIPE传给各自对应的第二众核处理器;

步骤S3:利用众核DPI模块完成数据包的元数据提取以及Web应用识别,并根据数据包对应的Web应用提取出产品ID,众核DPI模块得到的元数据、WebID、产品ID都存储在xDR结构体中,并通过RingBuffer传递给产品信息查询和数据整合模块;

产品信息查询和数据整合模块根据众核DPI模块得到的Web应用以及产品ID通过查询接口,查询的结果、数据包的元数据、WebID一并整合以字符串的形式被存放在缓存中,该缓存用于存储多条整合数据,存满之后传递给输出模块;

步骤S4:产品信息查询和数据整合;根据众核DPI得到的Web应用以及产品ID通过查询接口,将查询的结果、数据包的元数据、WebID一并整合以字符串的形式存放在缓存中,该缓存用于存储多条整合数据,存满之后传递给输出部分;

步骤S5:数据输出;从各产品信息查询和数据整合模块对应的输出队列上取下数据,发送给其他主机,完成数据的存储。

5.根据权利要求4所述的一种支持网络产品信息查询的众核平台深度包检测方法,其特征在于:所述第二众核处理器包括m个DPI线程、n个产品信息查询和数据整合模块和一个输出线程;DPI线程与产品信息查询和数据整合模块之间通过RingBuffer进行数据传递;

DPI线程将以轮询的方式,将众核DPI模块处理的中间结果分发给n个RingBuffer;每个产品信息查询和数据整合模块对应单个RingBuffer,并循环的从其中提取数据处理;最终所有产品信息查询和数据整合模块处理的结果同样以RingBuffer的形式传递给单个输出线程输出。

6.根据权利要求5所述的一种支持网络产品信息查询的众核平台深度包检测方法,其特征在于:线程以及线程间数据传递使用的数据结构的分配都在装置运行前的初始化阶段完成。

说明书 :

一种支持网络产品信息查询的众核平台深度包检测装置及

方法

技术领域

[0001] 本发明属于DPI(Deep Packet Inspection,深度包检测)技术领域,具体涉及一种支持网络产品信息查询的众核DPI装置及方法。

背景技术

[0002] 当前的网络监测系统与网络安全系统中普遍使用了DPI,但是传统的基于网络端口的DPI已经无法满足需求,内容级别的DPI渐渐受到重视,利用爬虫建立网络产品信息库有助于实现内容级别的DPI。另外,随着网络流量的爆炸式增长,传统的使用x86架构服务器的DPI系统在性能方面显现出了严重的不足。为了提高性能当前业界普遍采用众核服务器,众核服务器使用的众核处理器是为了实现高度的并行运算而设计的,它包含大量的简单并独立的处理核心,并广泛用于嵌入式计算机和高性能计算。2016年6月公布的世界超算冠军“神威太湖之光”就使用了40960个260核心的SW26010众核芯片。但由于产品信息库较大,众核服务器的内存与存储空间有限,所以在实时DPI时需要查询外置产品信息库。但支持实时产品信息库查询的众核平台DPI系统未见报道。

发明内容

[0003] 本发明的目的是为了克服现有技术的缺陷和不足,提供一种高性能的支持网络产品信息查询的众核DPI装置,该装置也可作为内容级别的访问控制系统的重要组成部分;同时还提出一种支持网络产品信息查询的众核平台深度包检测方法。
[0004] 本发明之一的目的是通过以下技术方案来实现的,一种支持网络产品信息查询的众核平台深度包检测装置,包括一颗第一众核处理器、两颗第二众核处理器和交换芯片;
[0005] 所述第一众核处理器包括第一数据包预处理模块,所述第二众核处理器包括第二数据包预处理模块,所述第二数据包预处理模块包括众核DPI模块、产品信息查询数据整合模块和输出模块;
[0006] 所述第一数据预处理模块用于过滤掉不需要进一步匹配查询的数据包,完成HTTP协议包中GET数据包的提取,并将这些数据包(指过滤掉后的数据包和GET数据包)通过mPIPE发出到交换芯片上;进入交换芯片的数据包被平均分给第二众核处理器,[0007] 所述众核DPI模块完成数据包的元数据提取以及Web应用识别,并根据数据包对应的Web应用提取出产品ID;众核DPI模块得到的元数据、WebID、产品ID都存储在xDR结构体中,并通过RingBuffer传递给产品信息查询和数据整合模块;
[0008] 产品信息查询和数据整合模块根据众核DPI模块得到的Web应用以及产品ID通过查询接口,查询的结果、数据包的元数据、WebID一并整合以字符串的形式被存放在缓存中,该缓存用于存储多条整合数据,存满之后传递给输出模块;
[0009] 输出模块将各产品信息查询和数据整合模块对应的输出队列上取下数据,发送给其他主机,完成数据的存储。
[0010] 进一步,所述第二众核处理器包括m个DPI线程、n个产品信息查询与数据整合线程和一个输出线程;DPI线程与产品信息查询与数据整合线程之间通过RingBuffer进行数据传递;DPI线程将以轮询的方式,将众核DPI模块处理的中间结果分发给n个RingBuffer;每个产品信息查询与数据整合线程对应单个RingBuffer,并循环的从其中提取数据处理;最终所有产品信息查询与数据整合线程处理的结果同样以RingBuffer的形式传递给单个输出线程输出。
[0011] 进一步,线程以及线程间数据传递使用的数据结构的分配都在装置运行前的初始化阶段完成。
[0012] 本发明之二的目的是通过以下技术方案来实现的,一种支持网络产品信息查询的众核平台深度包检测方法,包括
[0013] 步骤S1:数据预处理;利用第一数据包预处理模块过滤掉不需要进一步匹配查询的数据包,完成HTTP协议包中GET数据包的提取,并将这些数据包通过mPIPE发出到交换芯片上;
[0014] 步骤S2:数据调度;将经过预处理的数据包平均分发到两个与交换芯片相连接的mPIPE上,并由mPIPE传给各自对应的第二众核处理器;
[0015] 步骤S3:利用众核DPI模块完成数据包的元数据提取以及Web应用识别,并根据数据包对应的Web应用提取出产品ID,
[0016] 众核DPI模块得到的元数据、WebID、产品ID都存储在xDR结构体中,并通过RingBuffer传递给产品信息查询和数据整合线程;
[0017] 产品信息查询和数据整合模块根据众核DPI模块得到的Web应用以及产品ID通过查询接口,查询的结果、数据包的元数据、WebID一并整合以字符串的形式被存放在缓存中,该缓存用于存储多条整合数据,存满之后传递给输出模块;
[0018] 步骤S4:产品信息查询和数据整合;根据众核DPI得到的Web应用以及产品ID通过查询接口,将查询的结果、数据包的元数据、WebID一并整合以字符串的形式存放在缓存中,该缓存用于存储多条整合数据,存满之后传递给输出部分。
[0019] 步骤S5:数据输出;从各产品信息查询和数据整合线程对应的输出队列上取下数据,发送给其他主机,完成数据的存储。
[0020] 进一步,所述第二众核处理器包括m个DPI线程、n个产品信息查询与数据整合线程和一个输出线程;DPI线程与产品信息查询与数据整合线程之间通过RingBuffer进行数据传递;DPI线程将以轮询的方式,将众核DPI模块处理的中间结果分发给n个RingBuffer;每个产品信息查询与数据整合线程对应单个RingBuffer,并循环的从其中提取数据处理;最终所有产品信息查询与数据整合线程处理的结果同样以RingBuffer的形式传递给单个输出线程输出。
[0021] 进一步,线程以及线程间数据传递使用的数据结构的分配都在装置运行前的初始化阶段完成。
[0022] 由于采用以上技术方案,本发明具有以下优点:
[0023] 本发明通过使用众核处理器完成数据包的预处理,为对数据包的进一步匹配查询节省时间;为实现高速数据包处理,可以根据各部分任务的性能情况,使用不同的核心分配策略以求提高整体性能。采用多级缓存系统缓存产品信息,使得查询速度大幅提升,能有效提高整个系统的吞吐量。

附图说明

[0024] 为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步的详细描述,其中:
[0025] 图1是本发明的结构组成以及工作流程图;
[0026] 图2是众核数据包预处理流程图;
[0027] 图3是众核处理预处理过的数据包的流程图。

具体实施方式

[0028] 下面将结合附图,对本发明的优选实施例进行详细的描述。
[0029] 实施例1
[0030] 如图1所示,一种支持网络产品信息查询的众核平台深度包检测装置,该装置也可作为内容级别的访问控制系统的重要组成部分。这里的网络产品大致包括以下几类:视频网站的各类视频文件、电商网站销售的产品、阅读类网站的图书等。每个网站的网络产品都由一个相应的产品ID唯一标识。
[0031] 该装置使用三颗TILE-Gx36众核处理器(一颗第一众核处理器、两颗第二众核处理器)和交换芯片,该众核处理器整合有mPIPE(多核可编程智能包引擎,multicore Programmable Intelligent Packet Engine)协处理器,并包含36个类MIPS核心。其中mPIPE用于完成高速的数据包捕获与分发,36个核心用于并行数据包处理。该装置还利用爬虫产品信息库实现内容级别的信息查询。
[0032] 其中,第一众核处理器负责完成数据预处理,另外两颗第二众核处理器各自独立完成众核DPI、产品信息查询与数据整合、输出等功能。而且,这两颗第二众核处理器将以上三种功能各自交由独立的线程实现。由于众核CPU核心众多,为了增加CPU缓存命中率以及防止单个核心线程上下文切换影响处理性能,每个线程都绑定一个CPU核心。
[0033] 在本发明中,所述第一众核处理器包括第一数据包预处理模块,所述第二众核处理器包括第二数据包预处理模块,所述第二数据包预处理模块包括众核DPI模块、产品信息查询数据整合模块和输出模块;
[0034] 所述第一数据预处理模块用于过滤掉不需要进一步匹配查询的数据包,完成HTTP协议包中GET数据包的提取,并将这些数据包通过mPIPE发出到交换芯片上;进入交换芯片的数据包被平均分给第二众核处理器,
[0035] 所述众核DPI模块完成数据包的元数据提取以及Web应用识别,并根据数据包对应的Web应用提取出产品ID;众核DPI模块得到的元数据、WebID、产品ID都存储在xDR结构体中,并通过RingBuffer传递给产品信息查询和数据整合模块;
[0036] 产品信息查询和数据整合模块根据众核DPI模块得到的Web应用以及产品ID通过查询接口,查询的结果、数据包的元数据、WebID一并整合以字符串的形式被存放在缓存中,该缓存用于存储多条整合数据,存满之后传递给输出模块;
[0037] 输出模块将各产品信息查询和数据整合模块对应的输出队列上取下数据,发送给其他主机,完成数据的存储。
[0038] 在本发明中,众核DPI、产品信息查询与数据整合、输出三种功能所需CPU处理时间的不同实行以下线程(核心)分配方案:
[0039] DPI线程m个,产品信息查询与数据整合线程n个,输出线程一个。DPI线程与产品信息查询与数据整合线程之间通过RingBuffer实现的FIFO(First Input First Output)进行数据传递,RingBuffer的个数也是n个,每个DPI线程通过一个RingBuffer与产品信息查询与数据整合线程之间进行数据传递。DPI线程将以轮询的方式,将该部分处理的中间结果分发给n个RingBuffer。每个产品信息查询与数据整合线程对应单个RingBuffer,并循环的从其中提取数据处理。最终所有产品信息查询与数据整合线程处理的结果同样以RingBuffer的形式传递给单个输出线程输出。线程以及线程间数据传递使用的数据结构的分配都在装置运行前的初始化阶段完成。
[0040] 如图1-3所示,一种支持网络产品信息查询的众核平台深度包检测装置方法,其运行流程包括以下步骤:
[0041] 步骤一:数据预处理。数据预处理由一颗单独的众核处理器完成。其中,协处理器mPIPE主要负责高速的数据包收发工作,将网络流量分发给众核核心。每个核心上都创建并绑定有一个数据包预处理线程。预处理线程主要过滤掉不需要进一步匹配查询的数据包,完成HTTP协议包中GET数据包的提取,并将这些数据包通过mPIPE发出到交换芯片上。
[0042] 步骤二:数据调度。经过预处理的数据包进入交换芯片,被平均分给两个带有mPIPE的众核,通过在主CPU上对交换芯片进行设置,将经过预处理的数据包平均分发到两个与交换芯片相连接的mPIPE上,并由mPIPE传给各自对应的众核芯片。
[0043] 步骤三:众核DPI。该部分功能完成数据包的元数据提取以及Web应用识别,并根据数据包对应的Web应用提取出产品ID。这些元数据主要包括源目的IP地址、源目的端口、数据包捕获时间、Host、URI等。Web应用识别是用GET报文的URL去匹配Web应用特征库实现的。而产品ID则是根据Web应用的URI特征使用相应规则提取出来的。众核DPI结束后得到的元数据、WebID、产品ID都存储在xDR结构体中,并通过RingBuffer传递给产品信息查询和数据整合线程。
[0044] 步骤四:产品信息查询和数据整合。该部分功能根据众核DPI得到的Web应用以及产品ID通过特定的查询接口(网站,产品ID,查询信息标识),首先查询本地产品信息缓存,如果在本地缓存中未找到对应产品信息,则查询非本地的内存对象缓存系统以得到产品信息。而后,将查询的结果与数据包元数据,WebID一并整合以字符串的形式存放在一个较大的缓存中,该缓存用于存储多条整合数据,存满之后传递给输出部分。该步骤中查询接口的具体定义如下:
[0045] 查询接口(网站,产品ID,查询信息标识),其中的查询信息标识用来表示查询爬虫产品信息库的相应的信息。该标识用一个二进制数表示,每一位对应产品信息库中该产品的一个信息字段,如果需要查询该信息字段则将对应的位置1,否则置0。
[0046] 步骤五:数据输出。此功能分配一个线程去实现,该线程循环的从各产品信息查询和数据整合线程对应的输出队列上取下数据,socket发送给其他主机,完成数据的存储。
[0047] 本发明在实施过程中,使用一颗众核处理器对数据包进行预处理,并将HTTP协议的GET数据包通过mPIPE发送给交换芯片。通过在主CPU上对交换芯片进行设置,使得GET数据包被平均分配给另外两颗众核处理器。这两个众核处理器独立完成众核DPI、产品信息库查询与数据整合、日志输出等功能。众核数据包预处理流程图包括以下步骤:步骤一、选择mPIPE的数据包分发规则。步骤二、创建多个处理线程,并各自绑定一个CPU核心。步骤三、数据包处理线程完成预处理。
[0048] 本发明将众核处理器平台与爬虫产品信息库结合实现了网络数据包解析中内容级别的高实时性解析。利用了mPIPE协处理器的高速数据包捕获以及众核CPU高并发、高计算能力的特点,并结合了多级缓存系统的高速查询性能。本发明使用的众核芯片是tilera公司的TILE-Gx36,该芯片具有较高的性能功耗比。
[0049] 最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离本发明权利要求书所限定的范围。