目标应用的数据包处理方法、装置及电子设备制造方法及图纸

技术编号:22816899 阅读:28 留言:0更新日期:2019-12-14 13:04
本发明专利技术提供了一种目标应用的数据包处理方法、装置及电子设备,涉及计算机技术领域,该方法包括:通过目标应用的主进程检测目标应用占用的内存池中是否存在目标数据包;目标数据包是由目标应用的次进程对数据包进行处理操作后得到的;如果是,通过主进程释放目标数据包所占用的内存。本发明专利技术提升了目标应用的数据包处理稳定性。

Data packet processing method, device and electronic equipment of target application

【技术实现步骤摘要】
目标应用的数据包处理方法、装置及电子设备
本专利技术涉及计算机
,尤其是涉及一种目标应用的数据包处理方法、装置及电子设备。
技术介绍
现有的多进程部署计算机软件在运行时,在服务器上部署一个主进程,其他进程为次进程。然而,现有的多进程部署计算机软件在处理网卡发送的数据包时,采用次进程释放完成处理操作的数据包,当次进程异常退出时,会影响软件对数据包的正常处理。因此,现有的数据包处理技术的稳定性还有待提升。
技术实现思路
本专利技术实施例的目的在于提供一种目标应用的数据包处理方法、装置及电子设备,较好地提升了数据包处理的稳定性。第一方面,本专利技术实施例提供一种目标应用的数据包处理方法,所述方法包括:通过所述目标应用的主进程检测所述目标应用占用的内存池中是否存在目标数据包;所述目标数据包是由所述目标应用的次进程对数据包进行处理操作后得到的;如果是,通过所述主进程释放所述目标数据包所占用的内存。在可选的实施方式中,所述检测所述目标应用占用的内存池中是否存在目标数据包的步骤,包括:检测所述内存池中是否存在引用计数为0的数据包;如果是,将所述引用计数为0的数据包确定为目标数据包。在可选的实施方式中,所述释放所述目标数据包所占用的内存的步骤,包括:将所述目标数据包所占用内存的地址确定为目标内存地址,并将所述目标内存地址发送至内存管理队列,以使所述内存池基于所述内存管理队列中的所述目标内存地址接收网卡发送的新的数据包。在可选的实施方式中,所述方法还包括:从所述内存池中获取未经处理的数据包;从所述目标应用的多个次进程中查找用于处理所述未经处理的数据包的次进程,将查找到的所述次进程作为目标次进程;将所述未经处理的数据包的内存地址通过ring队列发送至所述目标次进程,以使所述目标次进程对所述未经处理的数据包进行处理操作。在可选的实施方式中,所述处理操作包括:按照预设方式处理数据包且将经处理后的所述数据包的引用计数减1。第二方面,本专利技术实施例提供一种目标应用的数据包处理装置,所述装置包括:检测模块,用于通过所述目标应用的主进程检测所述目标应用占用的内存池中是否存在目标数据包;所述目标数据包是由所述目标应用的次进程对数据包进行处理操作后得到的;释放模块,用于在所述内存池中存在目标数据包时,通过所述主进程释放所述目标数据包所占用的内存。在可选的实施方式中,所述检测模块,进一步用于检测所述内存池中是否存在引用计数为0的数据包;如果存在引用计数为0的数据包,将所述引用计数为0的数据包确定为目标数据包。在可选的实施方式中,所述释放模块,进一步用于将所述目标数据包所占用内存的地址确定为目标内存地址,并将所述目标内存地址发送至内存管理队列,以使所述内存池基于所述内存管理队列中的所述目标内存地址接收网卡发送的新的数据包s。第三方面,本专利技术实施例提供一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述前述实施方式任一项所述的方法。第四方面,本专利技术实施例提供一种计算机可读介质,所述计算机可读介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,所述计算机可执行指令促使所述处理器实现前述实施方式任一项所述的方法。本专利技术实施例提供了一种目标应用的数据包处理方法、装置及电子设备,在该方法中,首先通过目标应用的主进程检测目标应用占用的内存池中是否存在目标数据包(目标数据包是由目标应用的次进程对数据包进行处理操作后得到的);如果目标应用占用的内存池中存在目标数据包,再通过主进程释放目标数据包所占用的内存。该方法在次进程对数据包完成处理操作后,通过主进程释放目标数据包内存,以便对目标数据包进行实质性释放,缓解了现有技术中次进程异常退出时目标应用无法正常处理数据包的问题,因此,本专利技术实施例提升了目标应用的数据包处理稳定性。附图说明为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种数据包处理方法流程图;图2为本专利技术实施例提供的一种目标应用的数据包处理方法流程图;图3为本专利技术实施例提供的一种次进程数据包处理方法流程图;图4为本专利技术实施例提供的一种数据包处理方法流程图;图5为本专利技术实施例提供的一种目标应用的数据包处理装置结构示意图;图6为本专利技术实施例提供的一种电子设备结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本专利技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本专利技术的实施例的详细描述并非旨在限制要求保护的本专利技术的范围,而是仅仅表示本专利技术的选定实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。下面结合附图,对本专利技术的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。现有的数据包处理技术,参见如图1所示的数据包处理方法流程图,图1中的内存池是通过主进程预先申请得到的,内存池包括多块内存和内存池的管理队列(管理队列用于存放内存池中被分为多块内存的内存地址)。网卡接收数据包后,从内存池的管理队列中获取可以存放数据包的内存地址,并将接收到的数据包放置在对应的内存地址中。主进程将网卡接收的数据包A的内存地址传递给次进程,次进程根据数据包A的内存地址,从内存池中获取数据包A,对数据包A处理完成后,将数据包A的内存地址释放回内存池。然而,现有的数据包处理技术,采用次进程释放完成处理操作的数据包,当次进程异常退出时,会影响到对数据包的正常处理。因此,现有的数据包处理技术的稳定性还有待提升。基于此,本专利技术实施例提供了一种目标应用的数据包处理方法、装置及电子设备,该方法可以应用于提升数据包处理的稳定性。为便于对本实施例进行理解,首先对本专利技术实施例所公开的一种目标应用的数据包处理方法进行详细介绍。参见如图2所示的目标应用的数据包处理方法流程图,该方法可以由运行上述主进程的处理器执行,该方法包括以下步骤:步骤S202:通过目标应用的主进程检测目标应用占用的内存池中是否存在目标数据包;目标数据包是由目标应用的次进程对数据包进行处理操作后得到的。上述目标应用为具有多进程部署的计算机软件,该目标应用在运行时在服务器上部署一个主进程,其他进程为次进程(包括多个次进程),例如,该目标应用可以是数据平面开发套件(DPDK,DataPlaneDev本文档来自技高网...

【技术保护点】
1.一种目标应用的数据包处理方法,其特征在于,所述方法包括:/n通过所述目标应用的主进程检测所述目标应用占用的内存池中是否存在目标数据包;所述目标数据包是由所述目标应用的次进程对数据包进行处理操作后得到的;/n如果是,通过所述主进程释放所述目标数据包所占用的内存。/n

【技术特征摘要】
1.一种目标应用的数据包处理方法,其特征在于,所述方法包括:
通过所述目标应用的主进程检测所述目标应用占用的内存池中是否存在目标数据包;所述目标数据包是由所述目标应用的次进程对数据包进行处理操作后得到的;
如果是,通过所述主进程释放所述目标数据包所占用的内存。


2.根据权利要求1所述的方法,其特征在于,所述检测所述目标应用占用的内存池中是否存在目标数据包的步骤,包括:
检测所述内存池中是否存在引用计数为0的数据包;
如果是,将所述引用计数为0的数据包确定为目标数据包。


3.根据权利要求1所述的方法,其特征在于,所述释放所述目标数据包所占用的内存的步骤,包括:
将所述目标数据包所占用内存的地址确定为目标内存地址,并将所述目标内存地址发送至内存管理队列,以使所述内存池基于所述内存管理队列中的所述目标内存地址接收网卡发送的新的数据包。


4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
从所述内存池中获取未经处理的数据包;
从所述目标应用的多个次进程中查找用于处理所述未经处理的数据包的次进程,将查找到的所述次进程作为目标次进程;
将所述未经处理的数据包的内存地址通过ring队列发送至所述目标次进程,以使所述目标次进程对所述未经处理的数据包进行处理操作。


5.根据权利要求4所述的方法,其特征在于,所述处理操作包括:按照预设...

【专利技术属性】
技术研发人员:陈闯潘飚王鹤王能洁
申请(专利权)人:南京中孚信息技术有限公司
类型:发明
国别省市:江苏;32

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

1