报文处理方法及装置、存储介质、电子设备制造方法及图纸

技术编号:17944120 阅读:25 留言:0更新日期:2018-05-15 23:17
本公开涉及一种报文处理方法及装置、存储介质、电子设备。所述方法包括:在当前网卡发包失败时,转发CPU利用可用CPU和/或可用网卡,对所述当前网卡发包失败的报文进行负载均衡;如果负载均衡失败,则判断所述转发CPU对应的缓存队列中报文的数目是否超过预设阈值;如果所述缓存队列中报文的数目未超过预设阈值,所述转发CPU将负载均衡失败的报文添加到所述缓存队列;所述转发CPU进行轮询处理时,如果所述当前网卡的负载空闲,则控制所述当前网卡发送所述缓存队列中的报文。如此方案,有助于降低发包失败概率,提高系统的稳定性。

Message processing method and device, storage medium, and electronic device

The disclosure relates to a message processing method and device, a storage medium, and an electronic device. The methods include: when the current network card packet fails, the forwarding CPU uses the available CPU and / or the available network card to load balance on the failed packets of the current network card package; if the load balance fails, determine whether the number of messages in the cache queue corresponding to the forwarded CPU exceeds the default threshold; if the cache is cached, The number of messages in the queue does not exceed the default threshold, and the forwarding CPU adds a load balancing failed message to the cached queue; when the forward CPU performs polling processing, if the current network card's load is idle, the current network card is controlled to send the message in the cache queue. Such a scheme can help reduce the probability of packet failure and improve the stability of the system.

【技术实现步骤摘要】
报文处理方法及装置、存储介质、电子设备
本公开涉及通信
,具体地,涉及一种报文处理方法及装置、计算机可读存储介质、电子设备。
技术介绍
DPDK(英文:DataPlaneDevelopmentKit,中文:数据平面开发套件)平台实现的基于用户态的网络转发系统,主要通过轮询方式来处理网络报文的接收和发送,如果设计上可以保证多核对共享资源的操作尽量不加锁,高性能的多核系统可以达到网卡限速的性能。然而,对于限速的转发系统而言,一旦中间的某一瞬间突发流量稍微多一点,就会导致网卡发包失败,无法达到网卡限速的性能。目前,防火墙的转发性能在测试稳定情况下,基本上可以达到最大限速的性能,但依旧存在一定的失败概率。在性能测试中,以测试限速情况下的吞吐量为例,若测试仪测试160G吞吐量,会有20%的概率失败,80%的概率成功。就目前已有的设计来说,测试稳定时就有可能通过限速情况的测试,一旦出现一点点的抖动,就会导致网卡发包失败,进而影响网络转发系统的整体稳定性。如何降低发包失败概率,提高系统的稳定性,是目前亟需解决的问题。
技术实现思路
本公开的目的是提供一种报文处理方法及装置、计算机可读存储介质、电子设备,有助于降低发包失败概率,提高系统的稳定性。为了实现上述目的,第一方面,本公开提供一种报文处理方法,所述方法包括:在当前网卡发包失败时,转发CPU利用可用CPU和/或可用网卡,对所述当前网卡发包失败的报文进行负载均衡;如果负载均衡失败,则判断所述转发CPU对应的缓存队列中报文的数目是否超过预设阈值;如果所述缓存队列中报文的数目未超过预设阈值,所述转发CPU将负载均衡失败的报文添加到所述缓存队列;所述转发CPU进行轮询处理时,如果所述当前网卡的负载空闲,则控制所述当前网卡发送所述缓存队列中的报文。可选地,所述转发CPU配置了bond口,且所述bond口的网卡中保存有该bond口的配置信息,则将所述bond口中未达到性能极限的网卡,确定为所述可用网卡,以使所述当前网卡根据所述配置信息,将发包失败的报文发送至所述可用网卡。可选地,所述当前网卡与多个CPU具有连接关系,且各CPU在所述当前网卡都有一个对应的发送队列,则将所述当前网卡的所有发送队列中,有效描述符最多的发送队列对应的CPU,确定为所述可用CPU,以使所述转发CPU将发包失败的报文发送至所述可用CPU。可选地,所述转发CPU进行轮询处理时,如果所述当前网卡的负载空闲,则控制所述当前网卡发送所述缓存队列中的报文,包括:所述转发CPU判断网卡队列在本次轮询周期内接收的报文数目,是否小于第一上限值;如果所述网卡队列在本次轮询周期内接收的报文数目小于第一上限值,所述转发CPU判定所述当前网卡的负载空闲;若所述缓存队列不为空,所述转发CPU控制所述当前网卡对所述缓存队列中的报文进行转发处理,直至所述缓存队列为空或者所述转发处理发包失败。可选地,所述方法还包括:所述转发CPU判断内核态队列在本次轮询周期内接收的报文数目,是否小于第二上限值;如果所述内核态队列在本次轮询周期内接收的报文数目小于第二上限值,所述转发CPU判定所述当前网卡的负载空闲;若所述缓存队列不为空,所述转发CPU控制所述当前网卡对所述缓存队列中的报文进行一次转发处理。可选地,如果缓存队列中的报文数目超过预设阈值,所述方法还包括:所述转发CPU判断所述当前网卡的每秒性能是否超过性能极限;如果所述当前网卡的每秒性能超过性能极限,所述转发CPU记录超过所述性能极限的时间,并对所述时间之后接收的报文进行丢包处理。可选地,获取所述当前网卡的每秒性能的方式为:所述转发CPU每秒获取一次,所述当前网卡的所有发送队列在当前秒发送成功的报文总字节数;所述转发CPU累加所述所有发送队列在当前秒发送成功的报文总字节数,获得所述当前网卡的每秒性能。第二方面,本公开一种报文处理装置,所述报文处理装置属于转发CPU,所述报文处理装置包括:报文负载均衡模块,用于在当前网卡发包失败时,利用可用CPU和/或可用网卡,对所述当前网卡发包失败的报文进行负载均衡;报文数目判断模块,用于在负载均衡失败时,判断所述转发CPU对应的缓存队列中报文的数目是否超过预设阈值;缓存队列添加模块,用于在所述缓存队列中报文的数目未超过预设阈值时,将负载均衡失败的报文添加到所述缓存队列;轮询控制模块,用于进行轮询处理时,如果所述当前网卡的负载空闲,则控制所述当前网卡发送所述缓存队列中的报文。可选地,所述转发CPU配置了bond口,且所述bond口的网卡中保存有该bond口的配置信息,所述装置还包括:可用网卡确定模块,用于将所述bond口中未达到性能极限的网卡,确定为所述可用网卡,以使所述当前网卡根据所述配置信息,将发包失败的报文发送至所述可用网卡。可选地,所述当前网卡与多个CPU具有连接关系,且各CPU在所述当前网卡都有一个对应的发送队列,所述装置还包括:可用CPU确定模块,用于将所述当前网卡的所有发送队列中,有效描述符最多的发送队列对应的CPU,确定为所述可用CPU,以使所述转发CPU将发包失败的报文发送至所述可用CPU。可选地,所述轮询控制模块,用于判断网卡队列在本次轮询周期内接收的报文数目,是否小于第一上限值;如果所述网卡队列在本次轮询周期内接收的报文数目小于第一上限值,则判定所述当前网卡的负载空闲;若所述缓存队列不为空,则控制所述当前网卡对所述缓存队列中的报文进行转发处理,直至所述缓存队列为空或者所述转发处理发包失败。可选地,所述轮询控制模块,还用于判断内核态队列在本次轮询周期内接收的报文数目,是否小于第二上限值;如果所述内核态队列在本次轮询周期内接收的报文数目小于第二上限值,则判定所述当前网卡的负载空闲;若所述缓存队列不为空,则控制所述当前网卡对所述缓存队列中的报文进行一次转发处理。可选地,所述装置还包括:每秒性能判断模块,用于在缓存队列中的报文数目超过预设阈值时,判断所述当前网卡的每秒性能是否超过性能极限;丢包处理模块,用于在所述当前网卡的每秒性能超过性能极限时,记录超过所述性能极限的时间,并对所述时间之后接收的报文进行丢包处理。可选地,所述装置还包括:每秒性能获得模块,用于每秒获取一次,所述当前网卡的所有发送队列在当前秒发送成功的报文总字节数;累加所述所有发送队列在当前秒发送成功的报文总字节数,获得所述当前网卡的每秒性能。第三方面,本公开提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述报文处理方法的步骤。第四方面,本公开提供一种电子设备,包括:上述的计算机可读存储介质;以及一个或者多个处理器,用于执行所述计算机可读存储介质中的程序。本公开方案中,在当前网卡出现发包失败问题时,转发CPU可以先通过负载均衡方式,利用可用CPU和/或可用网卡对发包失败的报文进行转发处理,并在负载均衡失败时,进一步通过缓存队列的方式,将负载均衡失败的报文添加到缓存队列中,等待当前网卡负载空闲时,再控制当前网卡对缓存队列中的报文进行转发处理,如此,可以尽量将发包失败的报文成功发送出去,有助于降低发包失败概率,提高系统的稳定性。本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。附图说明附图是用来提供对本公开的进一步理解,并且构本文档来自技高网...
报文处理方法及装置、存储介质、电子设备

【技术保护点】
一种报文处理方法,其特征在于,所述方法包括:在当前网卡发包失败时,转发CPU利用可用CPU和/或可用网卡,对所述当前网卡发包失败的报文进行负载均衡;如果负载均衡失败,则判断所述转发CPU对应的缓存队列中报文的数目是否超过预设阈值;如果所述缓存队列中报文的数目未超过预设阈值,所述转发CPU将负载均衡失败的报文添加到所述缓存队列;所述转发CPU进行轮询处理时,如果所述当前网卡的负载空闲,则控制所述当前网卡发送所述缓存队列中的报文。

【技术特征摘要】
1.一种报文处理方法,其特征在于,所述方法包括:在当前网卡发包失败时,转发CPU利用可用CPU和/或可用网卡,对所述当前网卡发包失败的报文进行负载均衡;如果负载均衡失败,则判断所述转发CPU对应的缓存队列中报文的数目是否超过预设阈值;如果所述缓存队列中报文的数目未超过预设阈值,所述转发CPU将负载均衡失败的报文添加到所述缓存队列;所述转发CPU进行轮询处理时,如果所述当前网卡的负载空闲,则控制所述当前网卡发送所述缓存队列中的报文。2.根据权利要求1所述的方法,其特征在于,所述转发CPU配置了bond口,且所述bond口的网卡中保存有该bond口的配置信息,则将所述bond口中未达到性能极限的网卡,确定为所述可用网卡,以使所述当前网卡根据所述配置信息,将发包失败的报文发送至所述可用网卡。3.根据权利要求1所述的方法,其特征在于,所述当前网卡与多个CPU具有连接关系,且各CPU在所述当前网卡都有一个对应的发送队列,则将所述当前网卡的所有发送队列中,有效描述符最多的发送队列对应的CPU,确定为所述可用CPU,以使所述转发CPU将发包失败的报文发送至所述可用CPU。4.根据权利要求1所述的方法,其特征在于,所述转发CPU进行轮询处理时,如果所述当前网卡的负载空闲,则控制所述当前网卡发送所述缓存队列中的报文,包括:所述转发CPU判断网卡队列在本次轮询周期内接收的报文数目,是否小于第一上限值;如果所述网卡队列在本次轮询周期内接收的报文数目小于第一上限值,所述转发CPU判定所述当前网卡的负载空闲;若所述缓存队列不为空,所述转发CPU控制所述当前网卡对所述缓存队列中的报文进行转发处理,直至所述缓存队列为空或者所述转发处理发包失败。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:所述转发CPU判断内核态队列在本次轮询周期内接收的报...

【专利技术属性】
技术研发人员:刘健男
申请(专利权)人:东软集团股份有限公司
类型:发明
国别省市:辽宁,21

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

1