CN109669792A - 分析数据报文的方法及业务服务器 - Google Patents
分析数据报文的方法及业务服务器 Download PDFInfo
- Publication number
- CN109669792A CN109669792A CN201811583719.7A CN201811583719A CN109669792A CN 109669792 A CN109669792 A CN 109669792A CN 201811583719 A CN201811583719 A CN 201811583719A CN 109669792 A CN109669792 A CN 109669792A
- Authority
- CN
- China
- Prior art keywords
- message
- target
- channel
- service
- shared
- 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.)
- Pending
Links
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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种分析数据报文的方法及业务服务器,属于虚拟化技术领域。其中,方法包括:目标DPDK进程进行初始化处理时,创建并监听共享信息通道;目标关联服务进程进行初始化处理时,访问共享信息通道,并在共享信息通道中添加报文共享请求;当在共享信息通道中检测到报文共享请求时,目标DPDK进程创建目标关联服务进程对应的共享报文通道;目标关联服务进程通过共享报文通道获取数据报文的报文信息,并基于报文信息对数据报文执行报文分析服务。本发明相较于现有技术,无需改变服务程序原有框架,便可实现多种报文分析服务,并且可以显著减轻业务服务器的数据读写负载。
Description
技术领域
本发明涉及虚拟化技术领域,特别涉及一种分析数据报文的方法及业务服务器。
背景技术
随着互联网技术得到不断开发,网络业务也随之快速发展。为了感知及预测用户行为,提高业务的服务质量,业务提供方往往需要对经过业务服务器的数据报文进行多方位的报文分析服务,如DPI(Deep Packet Inspection,深度报文检测)服务、IDS(IntrusionDetection Systems,入侵检测系统)服务等。
为了避免不必要的内存拷贝和系统调用,技术人员通常基于DPDK(Data PlaneDevelopment Kit,数据平面开发套件)技术开发报文分析服务程序,来提高数据报文处理性能。然而由于运行在DPDK框架下的服务进程(可称为DPDK进程)倾向于独占网卡,运行于其他框架下的服务进程(可称为非DPDK进程)无法从被独占的网卡上获取数据报文,如果业务服务器同时开启多个框架下的报文分析服务,则需要将多个报文分析服务合并在一个多功能服务程序中,通过该多功能服务程序对数据报文进行分析;或者对数据报文进行重复拷贝,得到多份数据报文副本,并向每个报文分析服务分别提供一份数据报文副本,以使每个服务进程基于数据报文副本执行各自的报文分析服务。
本专利申请的发明人,通过研究现有基于DPDK实现多种报文分析服务的技术的过程发现,现有技术至少存在以下问题:其一,如果选择对多种报文分析服务进行合并,由一个多功能服务程序来实现多种报文分析服务,则多功能服务程序的开发周期长并且开发难度大;其二,如果选择通过多次拷贝数据报文来实现多种报文分析服务,则当数据报文大量并发时,业务服务器的数据读写负载过高,严重影响业务服务器的其它业务服务的质量。
发明内容
本申请的目的在于提供一种分析数据报文的方法及业务服务器,以解决现有技术存在的部分或全部问题。
为实现上述目的,本申请一方面提供了一种分析数据报文的方法,所述方法包括:目标DPDK进程进行初始化处理时,创建并监听共享信息通道;目标关联服务进程进行初始化处理时,访问所述共享信息通道,并在所述共享信息通道中添加报文共享请求;当在所述共享信息通道中检测到所述报文共享请求时,所述目标DPDK进程创建所述目标关联服务进程对应的共享报文通道;所述目标关联服务进程通过所述共享报文通道获取数据报文的报文信息,并基于所述报文信息对所述数据报文执行报文分析服务。
进一步的,所述目标DPDK进程创建所述目标关联服务进程对应的共享报文通道之后的步骤还包括:目标DPDK进程获取并存储待分析的数据报文,将所述数据报文的存储地址添加至所述共享报文通道中。
进一步的,所述目标关联服务进程通过所述共享报文通道获取数据报文的报文信息的步骤包括:所述目标关联服务进程从所述共享报文通道获取所述存储地址,并根据所述存储地址获取所述数据报文的报文信息。
在一个实施例中,所述目标DPDK进程获取并存储待分析的数据报文的步骤包括:目标DPDK进程获取待分析的数据报文的镜像报文,将所述镜像报文存储在预设的报文存储空间。
进一步的,所述目标DPDK进程获取并存储待分析的数据报文之后的步骤包括:所述目标DPDK进程从所述报文存储空间中读取所述镜像报文的报文信息,根据所述报文信息执行报文分析服务;所述目标DPDK进程完成报文分析服务后删除所述镜像报文及所述存储地址。
进一步的,所述目标DPDK进程完成报文分析服务后的步骤包括:所述目标关联服务进程完成对所述镜像报文的报文分析服务后,访问所述共享信息通道,并在所述共享信息通道中添加报文删除请求;当在所述共享信息通道中检测到所述报文删除请求时,所述目标DPDK进程删除所述镜像报文及所述存储地址。
在一个实施例中,所述目标关联服务进程基于所述报文信息对所述数据报文执行报文分析服务之后的步骤还包括:所述目标关联服务进程如果暂停所述报文分析服务,则访问所述共享信息通道,并在所述共享信息通道中添加通道关闭请求;当在所述共享信息通道中检测到所述通道关闭请求时,所述目标DPDK进程关闭所述目标关联服务进程对应的共享报文通道。
进一步的,所述目标DPDK进程关闭所述目标关联服务进程对应的共享报文通道之后的步骤还包括:所述目标关联服务进程如果重启所述报文分析服务,则访问所述共享信息通道,并在所述共享信息通道中添加通道开启请求;当在所述共享信息通道中检测到所述通道开启请求时,所述目标DPDK进程开启所述目标关联服务进程对应的共享报文通道。
为实现上述目的,本申请另一方面还提供了一种分析数据报文的业务服务器,所述业务服务器执行有多个服务进程,所述多个服务进程包括:目标DPDK进程,用于在进行初始化处理时,创建并监听共享信息通道;目标关联服务进程,用于在进行初始化处理时,访问所述共享信息通道,并在所述共享信息通道中添加报文共享请求;当在所述共享信息通道中检测到所述报文共享请求时,所述目标DPDK进程还用于创建所述目标关联服务进程对应的共享报文通道;所述目标关联服务进程,还用于通过所述共享报文通道获取数据报文的报文信息,并基于所述报文信息对所述数据报文执行报文分析服务。
进一步的,所述目标DPDK进程创建所述目标关联服务进程对应的共享报文通道之后,所述目标DPDK进程还用于:获取并存储待分析的数据报文,将所述数据报文的存储地址添加至所述共享报文通道中。
进一步的,所述目标关联服务进程具体用于:从所述共享报文通道获取所述存储地址,并根据所述存储地址获取所述数据报文的报文信息。
在一个实施例中,所述目标DPDK进程具体还用于:获取待分析的数据报文的镜像报文,将所述镜像报文存储在预设的报文存储空间。
进一步的,所述目标DPDK进程获取并存储待分析的数据报文之后,所述目标DPDK进程还用于:从所述报文存储空间中读取所述镜像报文的报文信息,根据所述报文信息执行报文分析服务;完成报文分析服务后删除所述镜像报文及所述存储地址。
进一步的,所述目标DPDK进程完成报文分析服务之后,所述目标关联服务进程,还用于在完成对所述镜像报文的报文分析服务后,访问所述共享信息通道,并在所述共享信息通道中添加报文删除请求;
当在所述共享信息通道中检测到所述报文删除请求时,所述目标DPDK进程还用于删除所述镜像报文及所述存储地址。
在一个实施例中,所述目标关联服务进程基于所述报文信息对所述数据报文执行报文分析服务之后,所述目标关联服务进程如果暂停所述报文分析服务,所述目标关联服务进程还用于访问所述共享信息通道,并在所述共享信息通道中添加通道关闭请求;当在所述共享信息通道中检测到所述通道关闭请求时,所述目标DPDK进程还用于关闭所述目标关联服务进程对应的共享报文通道。
进一步的,所述目标DPDK进程关闭所述目标关联服务进程对应的共享报文通道之后,所述目标关联服务进程如果重启所述报文分析服务,所述目标关联服务进程还用于访问所述共享信息通道,并在所述共享信息通道中添加通道开启请求;当在所述共享信息通道中检测到所述通道开启请求时,所述目标DPDK进程还用于开启所述目标关联服务进程对应的共享报文通道。
为实现上述目的,本申请另一方面还提供了一种分析数据报文的业务服务器,所述业务服务器包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的分析数据报文的方法。
由上可见,本发明通过目标服务进程(目标DPDK进程)创建共享报文通道,使得目标服务进程的关联服务进程可以访问目标服务进程的报文存储空间,进而获取数据报文的报文信息,并执行相应的报文分析服务。本发明无需将目标服务程序和关联服务程序合并到一个服务程序中,相较于现有技术,无需改变服务程序原有框架,便可实现多种报文分析服务。并且,当目标服务程序和目标服务程序的关联服务程序都是基于DPDK框架的服务程序时,也无需通过多次拷贝数据报文来实现多种报文分析服务,克服了基于DPDK框架的服务独占网卡使得其他服务无法从该网卡获取数据报文的问题,本发明相较于现有技术可以显著减轻业务服务器的数据读写负载。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种分析数据报文的方法流程图;
图2为本发明实施例提供的一种分析数据报文的应用场景示意图;
图3为本发明实施例提供的一种分析数据报文的业务服务器结构示意图。
具体实施方式
下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种分析数据报文的方法,该方法可以应用于具有报文分析功能的任意业务服务器上,在正常工作状态下,该业务服务器具体可以运行有多个用于分析数据报文的服务进程,该多个服务进程中可以存在一个或多个运行在DPDK框架内的服务进程(即DPDK进程),以及一个或多个运行在非DPDK框架(例如Hadoop框架、Libpcap框架等)内的服务进程(即非DPDK进程)。本发明实施例提供的分析数据报文的方法中,在实现报文分析功能时,可以在多个服务进程中选取一个DPDK进程(例如运行在DPDK框架下的DPI服务进程)作为主服务进程,并将其它服务进程(包括其它DPDK进程和非DPDK进程(例如运行在Libpcap框架下的Snort服务进程))与主服务进程建立关联。之后,主服务进程和与其关联的其它服务进程(关联服务进程)可以通过传输存储地址的方式共享一份待分析的数据报文,并基于该数据报文分别执行各自的报文分析服务。
图1为本发明实施例提供的一种分析数据报文的方法流程图。
S101,目标DPDK进程进行初始化处理时,创建并监听共享信息通道。
在一个实施例中,业务服务器的技术人员可以在业务服务器上运行的多个分析报文的服务进程中,选取一个DPDK进程(即目标DPDK进程)作为主服务进程,为目标DPDK进程配置DPDK技术中共享内存以及环境初始化的相关功能。这样,业务服务器启动数据报文分析功能时,可以先搭建DPDK框架,并对DPDK框架进行参数配置,例如,在该DPDK框架中添加服务进程、绑定接收数据报文的网卡、绑定运行服务进程的逻辑核等。之后,目标DPDK进程在启动并进行初始化处理时,可以在预设的存储位置创建共享信息通道,并监听创建的共享信息通道。其中,共享信息通道本质是具备一定大小的内存空间,主要用于实现不同框架的服务进程之间的通信。
需要说明的是,如果每个服务进程绑定有多个逻辑核,每个服务进程可以通过负载均衡技术将多个数据报文分别分配给多个逻辑核来执行相应的报文分析服务。
S102,目标关联服务进程进行初始化处理时,访问共享信息通道,并在共享信息通道中添加报文共享请求。
在一个实施例中,对于关联服务进程,业务服务器的技术人员可以对关联服务进程的报文获取逻辑进行改造,使得关联服务进程不再从网卡处获取数据报文,而是与预设的运行在DPDK框架内的主服务进程共享同一份数据报文。这样,目标关联服务进程首次启动,进行初始化处理时,可以按照改造后的报文获取逻辑,先访问共享信息通道,然后在该共享信息通道中添加报文共享请求。
S103,当在共享信息通道中检测到报文共享请求时,目标DPDK进程创建目标关联服务进程对应的共享报文通道。
在一个实施例中,目标关联服务进程在共享信息通道中添加了报文共享请求后,基于监听机制,目标DPDK进程可以在共享信息通道检测到目标关联服务进程的报文共享请求。进而,目标DPDK进程可以创建目标关联服务进程对应的共享报文通道,并在预设的共享报文通道映射表中添加该共享报文通道的内存地址和目标关联服务进程的进程标识之间的映射关系项。此处,报文共享请求中还可以携带有通道大小信息,目标DPDK进程在创建共享报文通道时,可以按照该通道大小信息,创建指定大小的共享报文通道。当然,多个服务进程可以对应同一个共享报文通道,相应的,目标DPDK进程在接收到目标关联服务进程的报文共享请求时,可以直接在预设的共享报文通道映射表中,将目标关联服务进程的进程标识与已有的共享报文通道的内存地址进行对应。此处,共享报文通道可以具体理解为DPDK技术提供的环形无锁队列。
可选的,可以以在共享报文通道中添加数据报文的存储地址的方式实现报文共享,相应的,步骤S103之后存在如下处理:目标DPDK进程获取并存储待分析的数据报文,将所述数据报文的存储地址添加至所述共享报文通道中。
在一个实施例中,在进行初始化处理的过程中,目标DPDK进程可以向系统进程申请用于存储数据报文的报文存储空间,以及用于存储数据报文的存储地址的地址存储空间(共享报文通道)。之后,目标DPDK进程可以在地址存储空间的基础上创建共享报文通道。这样,目标DPDK进程可以在获取待分析的数据报文后,将待分析的数据报文存储在上述报文存储空间,同时可以将数据报文的存储地址添加至已创建好的共享报文通道中。此处,如果目标DPDK进程创建了多个共享报文通道,目标DPDK进程可以将数据报文的存储地址分别添加至每个共享报文通道中。
在另一个实施例中,针对目标DPDK进程获取到的数据报文,所有与目标DPDK进程关联的服务进程中可能只有部分服务进程需要。因此,目标DPDK进程还可以确定每次获取到的数据报文所符合的需求类型,基于每个与其关联的服务进程的数据报文的需求类型,将数据报文添加至对应的与目标DPDK进程关联的其他服务进程的共享报文通道中。
可选的,为了不对用户业务请求的正常处理产生影响,业务服务器可以对经过的数据报文进行镜像处理,使目标DPDK进程对得到的镜像报文进行报文分析服务。相应的,目标DPDK进程获取并存储待分析的数据报文的处理可以如下:目标DPDK进程获取待分析的数据报文的镜像报文,将所述镜像报文存储在预设的报文存储空间。
在一个实施例中,业务服务器可以通过旁路监控模式,将部署在业务服务器上的虚拟交换机的某个端口设置成镜像端口,并且将虚拟交换机上的其他端口收发的数据报文都拷贝到该镜像端口上,生成镜像报文。其中,虚拟交换机一端可以与业务服务器的网卡连接,另一端可以与目标DPDK进程进行数据交互。因此,在业务服务器的网卡接收到待分析的数据报文后,该数据报文可以被传输至虚拟交换机的端口,并进一步被拷贝至虚拟交换机的镜像端口。接下来,目标DPDK进程可以从虚拟交换机的镜像端口处获取待分析的数据报文的镜像报文,并将镜像报文存储在指定的报文存储空间中。
S104,目标关联服务进程通过共享报文通道获取数据报文的报文信息,并基于报文信息对数据报文执行报文分析服务。
在一个实施例中,目标DPDK进程创建了目标关联服务进程的共享报文通道之后,目标关联服务进程可以在需要获取数据报文的报文信息时,访问预设的内存通道映射表,然后根据其进程标识在该内存通道映射表中,查找进程标识对应的共享报文通道的内存地址。这样,目标关联服务进程可以按照内存地址访问共享报文通道,进一步通过所述共享报文通道获取数据报文的报文信息,并基于所述报文信息对所述数据报文执行报文分析服务。
可选的,基于上述在共享报文通道中添加数据报文的存储地址的情况,S104的处理可以具体如下:所述目标关联服务进程从所述共享报文通道获取所述存储地址,并根据所述存储地址获取所述数据报文的报文信息。
在一个实施例中,目标关联服务进程在运行过程中,可以监控各自对应的共享报文通道,在目标DPDK进程将数据报文的存储地址添加进共享报文通道之后,目标关联服务进程可以从共享报文通道中获取数据报文的存储地址,根据数据报文的存储地址来访问报文存储空间,找到对应的数据报文,从而获取该数据报文的报文信息。
可选的,由于共享报文通道的存储能力有限,因此目标DPDK进程需要及时删除共享报文通道内过期的数据报文的存储地址,以便于在共享报文通道中添加新获取的数据报文的存储地址。相应的,目标DPDK进程获取并存储待分析的数据报文之后可以存在如下处理:所述目标DPDK进程从所述报文存储空间中读取所述镜像报文的报文信息,根据所述报文信息执行报文分析服务;所述目标DPDK进程完成报文分析服务后删除所述镜像报文及所述存储地址。
在一个实施例中,目标DPDK进程在将数据报文的存储地址添加至共享报文通道之后,可以从报文存储空间中读取数据报文的报文信息,并基于该报文信息执行目标DPDK进程的报文分析服务。在完成针对该数据报文的报文分析服务之后,目标DPDK进程可以从报文存储空间中删除上述数据报文,同时从共享报文通道中删除该数据报文的存储地址。可以理解,如果目标DPDK进程同时存在多个服务线程使用报文信息执行报文分析服务,目标DPDK进程则可以在最后一个服务线程执行完本次报文分析服务后,删除上述数据报文及存储地址。
本实施例中,目标DPDK进程处理数据报文消耗的时间比目标关联服务进程处理数据报文消耗的时间要长。例如,目标DPDK进程需要获取数据报文中应用层的报文信息,目标关联服务进程只需要获取数据报文中传输层的报文信息,目标DPDK进程相较于目标关联服务进程对数据报文进行解封装的步骤要多。再如,目标关联服务进程同时存在多个服务线程使用报文信息执行报文分析服务,使得目标关联服务进程处理数据报文的效率高于目标DPDK进程。因此,针对同一数据报文,目标DPDK进程总会在目标关联服务进程完成报文分析服务之后完成报文分析服务,目标DPDK进程删除该数据报文及其存储地址不会对目标关联服务进程的报文分析服务产生影响。
可选的,如果目标DPDK进程在目标关联服务进程完成报文分析服务之前完成报文分析服务,为了保证目标DPDK进程删除数据报文及存储地址不对目标关联服务进程的报文分析服务产生影响,目标DPDK进程可以在确认目标关联服务进程对数据报文完成报文分析服务之后,再删除该数据报文及该数据报文的存储地址。相应的,所述目标DPDK进程完成报文分析服务后的处理可以如下:所述目标关联服务进程完成对所述镜像报文的报文分析服务后,访问所述共享信息通道,并在所述共享信息通道中添加报文删除请求;当在所述共享信息通道中检测到所述报文删除请求时,所述目标DPDK进程删除所述镜像报文及所述存储地址。
在一个实施例中,目标DPDK进程在完成针对数据报文的报文分析服务之后,若目标关联服务进程正在进行或者还未开始针对该数据报文的报文分析服务,目标DPDK进程则可以等待目标关联服务进程完成针对该数据报文的报文分析服务之后,删除该数据报文及该数据报文的存储地址。具体的,当目标关联服务进程完成对该数据报文的报文分析服务后,可以访问共享信息通道,并在共享信息通道中添加报文删除请求。可以理解,如果目标关联服务进程同时存在多个服务线程使用报文信息执行报文分析服务,目标关联服务进程则可以在最后一个服务线程执行完本次报文分析服务后,在共享信息通道中添加报文删除请求。当在共享信息通道中检测到报文删除请求时,目标DPDK进程可以从报文存储空间中删除上述数据报文,同时从共享报文通道中删除该数据报文的存储地址。
可选的,在目标DPDK进程创建共享报文通道后,目标关联服务进程可以通过共享信息通道控制共享报文通道开启或者关闭,相应的处理可以分别如下:
其一,所述目标关联服务进程如果暂停所述报文分析服务,则访问所述共享信息通道,并在所述共享信息通道中添加通道关闭请求;当在所述共享信息通道中检测到所述通道关闭请求时,所述目标DPDK进程关闭所述目标关联服务进程对应的共享报文通道。
在一个实施例中,在基于所述报文信息对所述数据报文执行报文分析服务之后,目标关联服务进程如果需要暂停报文分析服务,则可以访问目标DPDK进程创建的共享信息通道,并在共享信息通道中添加通道关闭请求。这样,对于目标DPDK进程来说,当在共享信息通道中检测到目标关联服务进程的通道关闭请求时,目标DPDK进程可以关闭目标关联服务进程所对应的共享报文通道。值得一提的是,如果目标关联服务进程和其它进程共同对应一个共享报文通道,目标DPDK进程同样在暂停报文分析服务时在共享信息通道中添加通道关闭请求,而目标DPDK进程仅在检测到共享报文通道对应的所有进程的通道关闭请求后,才关闭该共享报文通道。
其二,所述目标关联服务进程如果重启所述报文分析服务,则访问所述共享信息通道,并在所述共享信息通道中添加通道开启请求;当在所述共享信息通道中检测到所述通道开启请求时,所述目标DPDK进程开启所述目标关联服务进程对应的共享报文通道。
在一个实施例中,在目标DPDK进程关闭目标关联服务进程对应的共享报文通道之后,目标关联服务进程如果需要重启所述报文分析服务,则可以访问目标DPDK进程创建的共享信息通道,并在共享信息通道中添加通道开启请求。这样,对于目标DPDK进程来说,当在共享信息通道中检测到目标关联服务进程的通道开启请求时,目标DPDK进程可以开启目标关联服务进程所对应的共享报文通道。其中,如果目标关联服务进程和其它进程共同对应一个共享报文通道,目标DPDK进程同样在重启报文分析服务时在共享信息通道中添加通道开启请求,而目标DPDK进程在检测到共享报文通道对应的任一进程的通道开启请求后,则开启该共享报文通道。
需要说明的是,目标DPDK进程作为主服务进程时,还可以关联有作为从服务进程的多个其它DPDK进程,从而,目标DPDK进程可以在进行初始化的过程中,直接针对多个其它DPDK进程创建对应的共享报文通道,以使其它DPDK进程通过所述共享报文通道获取数据报文的报文信息,并基于所述报文信息对所述数据报文执行报文分析服务。
由上可见,DPDK进程作为主服务进程创建共享信息通道,关联服务进程通过共享信息通道向DPDK进程申请共享报文通道;在DPDK进程创建了共享报文通道后,关联服务进程则可以通过共享报文通道获取数据报文的报文信息。这样,无需将DPDK进程的报文分析服务和关联服务进程的报文分析服务合并到一个服务程序中,相较于现有技术,无需改变服务程序原有框架,便可实现多种报文分析服务。并且,通过共享报文通道实现多种报文分析服务对数据报文的共享,无需通过多次拷贝数据报文来实现多种报文分析服务,克服了DPDK进程独占网卡使得其他服务进程无法从该网卡获取数据报文的问题,本发明相较于现有技术可以显著减轻业务服务器的数据读写负载。
图2为本发明实施例提供的一种分析数据报文的应用场景示意图。
如图2所示,本实施例提供的分析数据报文的业务服务器执行有多个服务进程,所述多个服务进程至少包括目标DPDK进程和目标关联服务进程,其中:所述目标DPDK进程,用于在进行初始化处理时,创建并监听共享信息通道;所述目标关联服务进程,用于在进行初始化处理时,访问所述共享信息通道,并在所述共享信息通道中添加报文共享请求;当在所述共享信息通道中检测到所述报文共享请求时,所述目标DPDK进程还用于创建所述目标关联服务进程对应的共享报文通道;所述目标关联服务进程,还用于通过所述共享报文通道获取数据报文的报文信息,并基于所述报文信息对所述数据报文执行报文分析服务。
进一步的,所述目标DPDK进程创建所述目标关联服务进程对应的共享报文通道之后,所述目标DPDK进程还用于:获取并存储待分析的数据报文,将所述数据报文的存储地址添加至所述共享报文通道中。
进一步的,所述目标关联服务进程具体用于:从所述共享报文通道获取所述存储地址,并根据所述存储地址获取所述数据报文的报文信息。
在一个实施例中,所述目标DPDK进程具体还用于:获取待分析的数据报文的镜像报文,将所述镜像报文存储在预设的报文存储空间。
进一步的,所述目标DPDK进程获取并存储待分析的数据报文之后,所述目标DPDK进程还用于:从所述报文存储空间中读取所述镜像报文的报文信息,根据所述报文信息执行报文分析服务;完成报文分析服务后删除所述镜像报文及所述存储地址。
进一步的,所述目标DPDK进程完成报文分析服务之后,所述目标关联服务进程,还用于在完成对所述镜像报文的报文分析服务后,访问所述共享信息通道,并在所述共享信息通道中添加报文删除请求;
当在所述共享信息通道中检测到所述报文删除请求时,所述目标DPDK进程还用于删除所述镜像报文及所述存储地址。
在一个实施例中,所述目标关联服务进程基于所述报文信息对所述数据报文执行报文分析服务之后,所述目标关联服务进程如果暂停所述报文分析服务,所述目标关联服务进程还用于访问所述共享信息通道,并在所述共享信息通道中添加通道关闭请求;当在所述共享信息通道中检测到所述通道关闭请求时,所述目标DPDK进程还用于关闭所述目标关联服务进程对应的共享报文通道。
进一步的,所述目标DPDK进程关闭所述目标关联服务进程对应的共享报文通道之后,所述目标关联服务进程如果重启所述报文分析服务,所述目标关联服务进程还用于访问所述共享信息通道,并在所述共享信息通道中添加通道开启请求;当在所述共享信息通道中检测到所述通道开启请求时,所述目标DPDK进程还用于开启所述目标关联服务进程对应的共享报文通道。
本实施例的业务服务器可以用于执行图1所示方法实施例的方法,其实现原理和所要达到的技术效果上文中已有论述,在此不再赘述。
图3为本发明实施例提供的一种分析数据报文的业务服务器结构示意图。
所示业务服务器包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,可以实现上述的分析数据报文的方法。
具体的,上述分析数据报文的方法可以作为计算机程序存储在存储器中,上述存储器可以与处理器耦合,那么当处理器执行所述存储器中的计算机程序时,便可以实现上述的分析数据报文的方法中的各个步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该分析数据报文的软件产品可以存储在服务器可读存储介质中,如ROM/RAM、磁碟、光盘等,包括存储若干指令用以使得一台服务器执行各个实施例或实施例的某些部分所述的方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (17)
1.一种分析数据报文的方法,其特征在于,所述方法包括:
目标DPDK进程进行初始化处理时,创建并监听共享信息通道;
目标关联服务进程进行初始化处理时,访问所述共享信息通道,并在所述共享信息通道中添加报文共享请求;
当在所述共享信息通道中检测到所述报文共享请求时,所述目标DPDK进程创建所述目标关联服务进程对应的共享报文通道;
所述目标关联服务进程通过所述共享报文通道获取数据报文的报文信息,并基于所述报文信息对所述数据报文执行报文分析服务。
2.如权利要求1所述的方法,其特征在于,所述目标DPDK进程创建所述目标关联服务进程对应的共享报文通道之后的步骤还包括:
目标DPDK进程获取并存储待分析的数据报文,将所述数据报文的存储地址添加至所述共享报文通道中。
3.如权利要求2所述的方法,其特征在于,所述目标关联服务进程通过所述共享报文通道获取数据报文的报文信息的步骤包括:
所述目标关联服务进程从所述共享报文通道获取所述存储地址,并根据所述存储地址获取所述数据报文的报文信息。
4.如权利要求2所述的方法,其特征在于,所述目标DPDK进程获取并存储待分析的数据报文的步骤包括:
目标DPDK进程获取待分析的数据报文的镜像报文,将所述镜像报文存储在预设的报文存储空间。
5.如权利要求4所述的方法,其特征在于,所述目标DPDK进程获取并存储待分析的数据报文之后的步骤包括:
所述目标DPDK进程从所述报文存储空间中读取所述镜像报文的报文信息,根据所述报文信息执行报文分析服务;
所述目标DPDK进程完成报文分析服务后删除所述镜像报文及所述存储地址。
6.如权利要求5所述的方法,其特征在于,所述目标DPDK进程完成报文分析服务后的步骤包括:
所述目标关联服务进程完成对所述镜像报文的报文分析服务后,访问所述共享信息通道,并在所述共享信息通道中添加报文删除请求;
当在所述共享信息通道中检测到所述报文删除请求时,所述目标DPDK进程删除所述镜像报文及所述存储地址。
7.如权利要求1所述的方法,其特征在于,所述目标关联服务进程基于所述报文信息对所述数据报文执行报文分析服务之后的步骤还包括:
所述目标关联服务进程如果暂停所述报文分析服务,则访问所述共享信息通道,并在所述共享信息通道中添加通道关闭请求;
当在所述共享信息通道中检测到所述通道关闭请求时,所述目标DPDK进程关闭所述目标关联服务进程对应的共享报文通道。
8.如权利要求7所述的方法,其特征在于,所述目标DPDK进程关闭所述目标关联服务进程对应的共享报文通道之后的步骤还包括:
所述目标关联服务进程如果重启所述报文分析服务,则访问所述共享信息通道,并在所述共享信息通道中添加通道开启请求;
当在所述共享信息通道中检测到所述通道开启请求时,所述目标DPDK进程开启所述目标关联服务进程对应的共享报文通道。
9.一种分析数据报文的业务服务器,其特征在于,所述业务服务器执行有多个服务进程,所述多个服务进程至少包括目标DPDK进程和目标关联服务进程,其中:
所述目标DPDK进程,用于在进行初始化处理时,创建并监听共享信息通道;
所述目标关联服务进程,用于在进行初始化处理时,访问所述共享信息通道,并在所述共享信息通道中添加报文共享请求;
当在所述共享信息通道中检测到所述报文共享请求时,所述目标DPDK进程还用于创建所述目标关联服务进程对应的共享报文通道;
所述目标关联服务进程,还用于通过所述共享报文通道获取数据报文的报文信息,并基于所述报文信息对所述数据报文执行报文分析服务。
10.如权利要求9所述的业务服务器,其特征在于,所述目标DPDK进程创建所述目标关联服务进程对应的共享报文通道之后,所述目标DPDK进程还用于:
获取并存储待分析的数据报文,将所述数据报文的存储地址添加至所述共享报文通道中。
11.如权利要求10所述业务服务器,其特征在于,所述目标关联服务进程具体用于:
从所述共享报文通道获取所述存储地址,并根据所述存储地址获取所述数据报文的报文信息。
12.如权利要求10所述的业务服务器,其特征在于,所述目标DPDK进程具体还用于:
获取待分析的数据报文的镜像报文,将所述镜像报文存储在预设的报文存储空间。
13.如权利要求12所述的业务服务器,其特征在于,所述目标DPDK进程获取并存储待分析的数据报文之后,所述目标DPDK进程还用于:
从所述报文存储空间中读取所述镜像报文的报文信息,根据所述报文信息执行报文分析服务;
完成报文分析服务后删除所述镜像报文及所述存储地址。
14.如权利要求13所述的业务服务器,其特征在于,所述目标DPDK进程完成报文分析服务之后,所述目标关联服务进程,还用于在完成对所述镜像报文的报文分析服务后,访问所述共享信息通道,并在所述共享信息通道中添加报文删除请求;
当在所述共享信息通道中检测到所述报文删除请求时,所述目标DPDK进程还用于删除所述镜像报文及所述存储地址。
15.如权利要求9所述的业务服务器,其特征在于,所述目标关联服务进程基于所述报文信息对所述数据报文执行报文分析服务之后,
所述目标关联服务进程如果暂停所述报文分析服务,所述目标关联服务进程还用于访问所述共享信息通道,并在所述共享信息通道中添加通道关闭请求;
当在所述共享信息通道中检测到所述通道关闭请求时,所述目标DPDK进程还用于关闭所述目标关联服务进程对应的共享报文通道。
16.如权利要求15所述的业务服务器,其特征在于,所述目标DPDK进程关闭所述目标关联服务进程对应的共享报文通道之后,
所述目标关联服务进程如果重启所述报文分析服务,所述目标关联服务进程还用于访问所述共享信息通道,并在所述共享信息通道中添加通道开启请求;
当在所述共享信息通道中检测到所述通道开启请求时,所述目标DPDK进程还用于开启所述目标关联服务进程对应的共享报文通道。
17.一种分析数据报文的业务服务器,其特征在于,所述业务服务器包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求1至8中任一项所述的分析数据报文的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811583719.7A CN109669792A (zh) | 2018-12-24 | 2018-12-24 | 分析数据报文的方法及业务服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811583719.7A CN109669792A (zh) | 2018-12-24 | 2018-12-24 | 分析数据报文的方法及业务服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109669792A true CN109669792A (zh) | 2019-04-23 |
Family
ID=66146885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811583719.7A Pending CN109669792A (zh) | 2018-12-24 | 2018-12-24 | 分析数据报文的方法及业务服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109669792A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110414242A (zh) * | 2019-08-02 | 2019-11-05 | 中国工商银行股份有限公司 | 用于检测业务逻辑漏洞的方法、装置、设备及介质 |
CN114070900A (zh) * | 2020-07-27 | 2022-02-18 | 大唐移动通信设备有限公司 | 一种基于dpdk的抓包处理方法和装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104123265A (zh) * | 2013-04-26 | 2014-10-29 | 华为技术有限公司 | 一种众核间通信方法及系统 |
CN105404557A (zh) * | 2015-12-07 | 2016-03-16 | 中国电子科技集团公司第五十研究所 | 基于消息队列的进程通信方法 |
CN106445838A (zh) * | 2016-09-09 | 2017-02-22 | 南京南瑞继保电气有限公司 | 一种基于共享指针池的报文零拷贝处理方法 |
CN106961363A (zh) * | 2017-03-29 | 2017-07-18 | 云络动力(北京)科技有限公司 | 一种捕获虚拟交换机用户态数据平面数据报文的方法和系统 |
CN106982180A (zh) * | 2016-12-30 | 2017-07-25 | 中国银联股份有限公司 | 网络流量监控方法、交换机设备以及报文分析系统 |
CN107204908A (zh) * | 2016-03-17 | 2017-09-26 | 阿里巴巴集团控股有限公司 | 一种基于通信接口框架的消息发送、接收方法及装置 |
EP3273347A1 (en) * | 2016-07-22 | 2018-01-24 | 6Wind | System and method for storage access input/output operations in a virtualized environment |
CN108270676A (zh) * | 2016-12-31 | 2018-07-10 | 普天信息技术有限公司 | 一种基于IntelDPDK的网络数据处理方法及装置 |
CN108628684A (zh) * | 2017-03-20 | 2018-10-09 | 华为技术有限公司 | 一种基于dpdk的报文处理方法及计算机设备 |
-
2018
- 2018-12-24 CN CN201811583719.7A patent/CN109669792A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104123265A (zh) * | 2013-04-26 | 2014-10-29 | 华为技术有限公司 | 一种众核间通信方法及系统 |
CN105404557A (zh) * | 2015-12-07 | 2016-03-16 | 中国电子科技集团公司第五十研究所 | 基于消息队列的进程通信方法 |
CN107204908A (zh) * | 2016-03-17 | 2017-09-26 | 阿里巴巴集团控股有限公司 | 一种基于通信接口框架的消息发送、接收方法及装置 |
EP3273347A1 (en) * | 2016-07-22 | 2018-01-24 | 6Wind | System and method for storage access input/output operations in a virtualized environment |
CN106445838A (zh) * | 2016-09-09 | 2017-02-22 | 南京南瑞继保电气有限公司 | 一种基于共享指针池的报文零拷贝处理方法 |
CN106982180A (zh) * | 2016-12-30 | 2017-07-25 | 中国银联股份有限公司 | 网络流量监控方法、交换机设备以及报文分析系统 |
CN108270676A (zh) * | 2016-12-31 | 2018-07-10 | 普天信息技术有限公司 | 一种基于IntelDPDK的网络数据处理方法及装置 |
CN108628684A (zh) * | 2017-03-20 | 2018-10-09 | 华为技术有限公司 | 一种基于dpdk的报文处理方法及计算机设备 |
CN106961363A (zh) * | 2017-03-29 | 2017-07-18 | 云络动力(北京)科技有限公司 | 一种捕获虚拟交换机用户态数据平面数据报文的方法和系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110414242A (zh) * | 2019-08-02 | 2019-11-05 | 中国工商银行股份有限公司 | 用于检测业务逻辑漏洞的方法、装置、设备及介质 |
CN114070900A (zh) * | 2020-07-27 | 2022-02-18 | 大唐移动通信设备有限公司 | 一种基于dpdk的抓包处理方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11750446B2 (en) | Providing shared memory for access by multiple network service containers executing on single service machine | |
Linguaglossa et al. | Survey of performance acceleration techniques for network function virtualization | |
EP3549015B1 (en) | Performing context-rich attribute-based services on a host | |
US11601521B2 (en) | Management of update queues for network controller | |
US11522835B2 (en) | Context based firewall service for agentless machines | |
US20190238429A1 (en) | Performing services on data messages associated with endpoint machines | |
US10491502B2 (en) | Software tap for traffic monitoring in virtualized environment | |
US20180181754A1 (en) | Performing context-rich attribute-based process control services on a host | |
US20170346732A1 (en) | Using headerspace analysis to identify flow entry reachability | |
US20200092299A1 (en) | Mirroring virtual network traffic | |
US20190235934A1 (en) | Performing process control services on endpoint machines | |
US9930010B2 (en) | Security agent for distributed network security system | |
US20210218758A1 (en) | Efficiently performing intrusion detection | |
US8549108B2 (en) | Optimized prefetching of compound data | |
CN113924759A (zh) | 缺失的节点和链路的服务图突出显示 | |
US20140237094A1 (en) | Sample based determination of network policy violations | |
US20190068759A1 (en) | Application based egress interface selection | |
US9760390B2 (en) | Processor identification for virtual machines | |
US20170099365A1 (en) | Context enriched distributed logging services for workloads in a datacenter | |
CN109669792A (zh) | 分析数据报文的方法及业务服务器 | |
US20230137436A1 (en) | Data privacy preservation in object storage | |
US10834018B2 (en) | Distributed computing acceleration platform and distributed computing acceleration platform operation method | |
US20230015075A1 (en) | Managing l4 ports | |
CN107301084A (zh) | 集群服务器的虚拟机迁移方法、装置、服务器及存储介质 | |
US11425219B1 (en) | Smart stream capture |
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 |