CN108632165A - 一种报文处理方法、装置及设备 - Google Patents

一种报文处理方法、装置及设备 Download PDF

Info

Publication number
CN108632165A
CN108632165A CN201810367006.0A CN201810367006A CN108632165A CN 108632165 A CN108632165 A CN 108632165A CN 201810367006 A CN201810367006 A CN 201810367006A CN 108632165 A CN108632165 A CN 108632165A
Authority
CN
China
Prior art keywords
message
cpu
forwarding
forwarding cpu
queue
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.)
Granted
Application number
CN201810367006.0A
Other languages
English (en)
Other versions
CN108632165B (zh
Inventor
李�杰
辛戌冰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Technologies Co Ltd
Original Assignee
New H3C Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by New H3C Technologies Co Ltd filed Critical New H3C Technologies Co Ltd
Priority to CN201810367006.0A priority Critical patent/CN108632165B/zh
Publication of CN108632165A publication Critical patent/CN108632165A/zh
Application granted granted Critical
Publication of CN108632165B publication Critical patent/CN108632165B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供一种报文处理方法、装置及设备,该方法包括:获取多个转发CPU中的每个转发CPU在预设时间段内的报文总数量;确定报文总数量最大的第一转发CPU和报文总数量最小的第二转发CPU;从所述第一转发CPU的所有报文队列中选择报文队列;将选择的报文队列中的报文从所述第一转发CPU调整到所述第二转发CPU,以使所述第二转发CPU处理所述选择的报文队列中的报文。通过本申请的技术方案,对转发CPU之间的报文队列进行动态调整,避免某转发CPU的负载过大,尽量使各转发CPU的负载均衡,达到负载均衡效果,可以提高每个转发CPU的处理性能,提高多个转发CPU的并行处理能力。

Description

一种报文处理方法、装置及设备
技术领域
本申请涉及通信技术领域,尤其是涉及一种报文处理方法、装置及设备。
背景技术
目前,为了提高网络设备(如路由器、交换机等)的处理性能,通常在网络设备部署多个CPU(Central Processing Unit,中央处理器),多个CPU可以并行处理网络设备接收到的报文,从而极大地提高了网络设备的处理性能。
为了充分利用每个CPU的处理资源,可以将网络设备接收到的报文负载均衡地分配给每个CPU。具体的,网络设备的网卡接收到报文后,可以根据该报文的特征信息进行hash计算,根据计算结果将报文分配给对应的CPU。由于特征信息的随机性,因此,能够尽量将所有报文负载均衡地分配给每个CPU。
但是,若在某个时间段,具有相同特征信息的报文数量很多,则基于hash算法,这些报文会被分配给同一个CPU进行处理,导致这个CPU的负载很大,这个CPU的处理性能变差,并导致多个CPU的并行处理能力降低。
发明内容
本申请提供一种报文处理方法,应用于网络设备,所述网络设备包括多个转发中央处理器CPU,所述方法包括:
获取所述多个转发CPU中的每个转发CPU在预设时间段内的报文总数量;
确定报文总数量最大的第一转发CPU和报文总数量最小的第二转发CPU;
从所述第一转发CPU的所有报文队列中选择报文队列;
将选择的报文队列中的报文从所述第一转发CPU调整到所述第二转发CPU,以使所述第二转发CPU处理所述选择的报文队列中的报文。
本申请提供一种报文处理装置,应用于网络设备,所述网络设备包括多个转发中央处理器CPU,所述装置包括:
获取模块,用于获取所述多个转发CPU中的每个转发CPU在预设时间段内的报文总数量;
确定模块,用于确定报文总数量最大的第一转发CPU和报文总数量最小的第二转发CPU;
选择模块,用于从所述第一转发CPU的所有报文队列中选择报文队列;
调整模块,用于将选择的报文队列中的报文从所述第一转发CPU调整到所述第二转发CPU,以使所述第二转发CPU处理所述选择的报文队列中的报文。
本申请提供一种网络设备,所述网络设备包括控制中央处理器CPU、机器可读存储介质和多个转发CPU,所述机器可读存储介质存储有能够被所述控制CPU执行的机器可执行指令;所述控制CPU用于执行所述机器可执行指令,以实现上述的方法步骤。
基于上述技术方案,本申请实施例中,在基于hash算法将报文分配给转发CPU后,还可以确定报文总数量最大的第一转发CPU和报文总数量最小的第二转发CPU,并将第一转发CPU的报文队列调整到第二转发CPU,从而对各转发CPU之间的报文队列进行动态调整,避免某个转发CPU的负载过大,尽量使各转发CPU的负载均衡,达到负载均衡的效果,可以提高每个转发CPU的处理性能,提高多个转发CPU的并行处理能力,提高网络设备的整体转发性能。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1是本申请一种实施方式中的应用场景示意图;
图2是本申请一种实施方式中的报文处理方法的流程图;
图3是本申请另一种实施方式中的报文处理方法的流程图;
图4是本申请一种实施方式中的报文处理装置的结构图;
图5是本申请一种实施方式中的网络设备的硬件结构图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例中提出一种报文处理方法,该方法可以应用于网络设备(如路由器、交换机等),该网络设备可以包括控制CPU和多个转发CPU,参见图1所示,为本申请实施例的应用场景示意图,在图1中,是以3个转发CPU为例进行说明,在实际应用中,转发CPU的数量可以更多,对此不做限制。
其中,网络设备可以是基于多核CPU的网络设备,即网络设备的CPU可以包括多个核,这些核就是本实施例中的控制CPU和转发CPU,也就是说,图1中的控制CPU11、转发CPU12、转发CPU13和转发CPU14属于同一个CPU。
在上述应用场景下,多个转发CPU可以并行处理报文,从而极大地提高网络设备的处理性能。例如,转发CPU12处理报文1时,转发CPU13可以处理报文2,转发CPU14可以处理报文3,显然,每个转发CPU独立地处理报文,使得转发CPU12、转发CPU13和转发CPU14可以并行处理多个报文,而转发CPU的数量越多,则并行处理的报文数量越多,从而增加网络设备的处理性能。
为了充分利用每个转发CPU的处理资源,可以将网络设备接收到的所有报文负载均衡地分配给每个转发CPU。具体的,网络设备的网卡在接收到报文后,可以根据该报文的特征信息(如源IP地址、目的IP地址、源MAC地址、目的MAC地址、源端口、目的端口、协议类型中的一个或者多个,对此特征信息不做限制)进行hash计算,并根据计算结果将报文分配给对应的转发CPU。
例如,以hash算法是取余hash算法,特征信息是源IP地址为例,网卡15接收到报文后,是将源IP地址对报文队列总数量M进行取余处理,并将报文传递给取余结果对应的报文队列。显然,基于取余hash算法的特性,报文队列总数量M的值越大,则所有报文的负载均衡效果越好,因此,M可以设置的大一些。而且,为了使每个转发CPU的报文尽量均衡,则每个转发CPU的报文队列数量相同,因此,报文队列总数量M可以为转发CPU数量的正整数倍,例如,当转发CPU为3个时,则报文队列总数量M可以为3、6、9、12、15等。
为了方便描述,后续以报文队列总数量M为15为例,也就是说,转发CPU12可以存在5个报文队列(后续过程中,称为报文队列1-报文队列5),转发CPU13存在5个报文队列(后续过程中,称为报文队列6-报文队列10),转发CPU14存在5个报文队列(后续过程中,称为报文队列11-报文队列15)。此外,还可以在网卡15配置取余结果0与报文队列1的对应关系,配置取余结果1与报文队列2的对应关系,以此类推,配置取余结果14与报文队列15的对应关系。
在上述应用场景下,网卡15在接收到报文后,可以将该报文的源IP地址(如192.168.0.0)转换为数值(19216800),并将数值19216800对15进行取余处理,由于取余处理结果为0,因此网卡15将该报文存储到转发CPU12的报文队列1。
由于源IP地址的随机性,则网卡15将源IP地址对报文队列总数量15进行取余处理时,能够尽量将所有报文均衡地分配给报文队列1-报文队列15,从而尽量将所有报文负载均衡地分配给转发CPU12、转发CPU13和转发CPU14。
但是,在实际组网环境下,流量是多样化和复杂化的,可能无法将所有报文负载均衡地分配给转发CPU12、转发CPU13和转发CPU14。例如,在某个时间段,若网卡15接收到大量源IP地址为192.168.0.0的报文,则这些报文均会被存储到转发CPU12的报文队列1,使得转发CPU12需要处理大量报文,而转发CPU13和转发CPU14需要处理的报文数量较小。这样,转发CPU12的负载很大,使得转发CPU12的处理性能变差。而且,转发CPU13和转发CPU14已经空闲时,转发CPU12仍然有大量报文需要处理,导致多个转发CPU的并行处理能力降低,即无法充分利用转发CPU13和转发CPU14的处理资源。
针对上述发现,本申请实施例中,在基于hash算法将报文分配给转发CPU之后,还可以确定报文总数量最大的第一转发CPU和报文总数量最小的第二转发CPU,并将第一转发CPU的报文队列调整到第二转发CPU,从而对各转发CPU之间的报文队列进行动态调整,避免某个转发CPU的负载过大,尽量使各转发CPU的负载均衡,达到负载均衡的效果,可以提高每个转发CPU的处理性能,提高多个转发CPU的并行处理能力,提高网络设备的整体转发性能。
参见图2所示,为本申请实施例中的报文处理方法的流程图,该方法可以应用于网络设备,如应用于网络设备的控制CPU,该方法可以包括以下步骤:
步骤201,获取每个转发CPU在预设时间段内的报文总数量。
其中,每个转发CPU可以统计本转发CPU的每个报文队列,在预设时间段内写入的报文数量,并将每个报文队列的报文数量传递给控制CPU,控制CPU根据每个报文队列的报文数量获取转发CPU在预设时间段内的报文总数量。
例如,以预设时间段是60秒为例,转发CPU12可以统计报文队列1在60秒内写入的报文数量A1,以此类推,统计报文队列5在60秒内写入的报文数量A5;然后,转发CPU12将报文数量A1、报文数量A2、报文数量A3、报文数量A4、报文数量A5传递给控制CPU。控制CPU可以将报文数量A1、报文数量A2、报文数量A3、报文数量A4、报文数量A5的和,确定为转发CPU12在预设时间段内的报文总数量,后续将该报文总数量称为报文总数量A。
同理,控制CPU可以确定转发CPU13在预设时间段内的报文总数量B、转发CPU14在预设时间段内的报文总数量C,确定方式参见报文总数量A。
其中,预设时间段是根据经验配置的,如30秒、60秒、120秒等,对此不做限制,以60秒为例进行说明。例如,时间T1至时间T2是60秒的时间段,转发CPU12是统计每个报文队列在(时间T1至时间T2)内写入的报文数量,转发CPU13是统计每个报文队列在(时间T1至时间T2)内写入的报文数量,转发CPU14是统计每个报文队列在(时间T1至时间T2)内写入的报文数量。
步骤202,确定报文总数量最大的第一转发CPU和报文总数量最小的第二转发CPU。其中,为了区分方便,可以将报文总数量最大的转发CPU称为第一转发CPU,并可以将报文总数量最小的转发CPU称为第二转发CPU。
例如,当转发CPU12对应的报文总数量A大于转发CPU13对应的报文总数量B,且转发CPU13对应的报文总数量B大于转发CPU14对应的报文总数量C时,则确定转发CPU12是转发报文总数量最大的转发CPU,即第一转发CPU,转发CPU14是转发报文总数量最小的转发CPU,即第二转发CPU。
步骤203,从第一转发CPU的所有报文队列中选择报文队列。
其中,从第一转发CPU的所有报文队列中选择报文队列之前,还可以判断第一转发CPU的报文总数量与第二转发CPU的报文总数量的差值是否大于等于第一阈值;如果是,从第一转发CPU的所有报文队列中选择报文队列;如果否,可以不从第一转发CPU的所有报文队列中选择报文队列,即不再对第一转发CPU的报文队列进行动态调整,而是等待下一个周期,重新执行步骤201。
其中,第一阈值可以根据经验进行配置,对此不做限制,如20、30等。
当第一转发CPU的报文总数量与第二转发CPU的报文总数量的差值大于等于第一阈值时,则表示二者的差值比较大,即第一转发CPU的报文总数量与第二转发CPU的报文总数量不均衡,因此,可以对第一转发CPU的报文队列进行动态调整,以使第一转发CPU的负载与第二转发CPU的负载尽量保持均衡。
此外,当第一转发CPU的报文总数量与第二转发CPU的报文总数量的差值小于第一阈值时,则表示二者的差值比较小,即第一转发CPU的报文总数量与第二转发CPU的报文总数量已经比较均衡,因此,可以不对第一转发CPU的报文队列进行动态调整。进一步,即使不对第一转发CPU的报文队列进行动态调整,第一转发CPU的负载与第二转发CPU的负载也可以尽量保持均衡。
例如,若转发CPU12对应的报文总数量A与转发CPU14对应的报文总数量C的差值大于等于第一阈值,从转发CPU12的所有报文队列(如报文队列1-报文队列5)中选择报文队列;若报文总数量A与报文总数量C的差值小于第一阈值,则不再执行步骤203,而是等待下一个周期,重新执行步骤201。
在一个例子中,从第一转发CPU的所有报文队列中选择报文队列,可以包括但不限于如下方式的一种:
方式一、可以从第一转发CPU的所有报文队列中随机选择一个报文队列。
方式二、可以从第一转发CPU的所有报文队列中选择报文数量最小的报文队列。
方式三、获取第一转发CPU的所有报文队列中的每个报文队列的报文数量;若最小的报文数量大于第二阈值,且小于第三阈值,则可以从第一转发CPU的所有报文队列中选择报文数量最小的报文队列。
当然,上述三个选择方式只是本申请的示例,对此选择方式不做限制。
针对方式一,控制CPU可以从转发CPU12的所有报文队列(如报文队列1-报文队列5)中随机选择一个报文队列,例如,可以随机选择报文队列1。
针对方式二,控制CPU可以获取转发CPU12的所有报文队列中的每个报文队列的报文数量,例如,报文队列1的报文数量A1、报文队列2的报文数量A2、报文队列3的报文数量A3、报文队列4的报文数量A4、报文队列5的报文数量A5。然后,可以从报文数量A1、报文数量A2、报文数量A3、报文数量A4、报文数量A5中确定最小的报文数量(如报文数量A1)。然后,控制CPU从转发CPU12的所有报文队列中选择最小的报文数量A1对应的报文队列1。
针对方式三,控制CPU可以获取转发CPU12的所有报文队列中的每个报文队列的报文数量,例如,报文队列1的报文数量A1、报文队列2的报文数量A2、报文队列3的报文数量A3、报文队列4的报文数量A4、报文队列5的报文数量A5。然后,可以从报文数量A1、报文数量A2、报文数量A3、报文数量A4、报文数量A5中确定最小的报文数量(如报文数量A1)。然后,若最小的报文数量A1大于第二阈值,且最小的报文数量A1小于第三阈值,则控制CPU从转发CPU12的所有报文队列中选择最小的报文数量A1对应的报文队列1。
若最小的报文数量A1不大于第二阈值,和/或最小的报文数量A1不小于第三阈值,则可以不从转发CPU12的所有报文队列中选择报文队列,即不再对转发CPU12的报文队列进行动态调整,而是等待下一周期,重新执行步骤201。
其中,第二阈值可以根据经验进行配置,对此不做限制,如10、12等。
例如,当报文数量A1不大于第二阈值时,则表示报文数量A1比较小,没必要对报文队列进行调整。例如,当报文数量A1为3时,表示报文队列1中只有3个报文,不需要将报文队列1中的3个报文调整到第二转发CPU,即使由转发CPU12处理报文队列1中的3个报文,不会导致转发CPU12的处理性能显著下降。反之,当报文数量A1大于第二阈值时,可以对报文队列进行调整。
其中,第三阈值可以根据经验进行配置,对此不做限制,如50、60等。在根据经验配置第三阈值时,则第三阈值还可以大于第二阈值。
例如,当报文数量A1不小于第三阈值时,表示报文数量A1比较大,不应该对报文队列进行调整。例如,当报文数量A1为100时,表示报文队列1中有100个报文,如果将报文队列1中的100个报文调整到第二转发CPU,第二转发CPU处理报文队列1中的100个报文时,会导致第二转发CPU的处理性能显著下降。反之,当报文数量A1小于第三阈值时,可以对报文队列进行调整。
综上所述,若所述报文数量A1大于第二阈值,且所述报文数量A1小于第三阈值,则控制CPU可以从转发CPU12的所有报文队列中选择报文队列1,表示需要对报文队列1进行动态调整。
此外,若所述报文数量A1不大于第二阈值,和/或,所述报文数量A1不小于第三阈值,则控制CPU可以不从转发CPU12的所有报文队列中选择报文队列,表示不需要对报文队列1进行动态调整。
在一个例子中,第三阈值除了可以根据经验进行配置,还可以是根据第一转发CPU的报文总数量与第二转发CPU的报文总数量的差值确定的。例如,第三阈值可以是第一转发CPU的报文总数量与第二转发CPU的报文总数量的差值的1/2、1/3、2/3,对此不做限制。在根据第一转发CPU的报文总数量与第二转发CPU的报文总数量的差值确定第三阈值时,第三阈值与第二阈值无关。
例如,第三阈值可以是转发CPU12的报文总数量A与转发CPU14的报文总数量C的1/2,基于此,当报文数量A1大于等于(报文总数量A-报文总数量C)/2时,则表示报文数量A1比较大,如果将报文队列1中的所有报文均调整到转发CPU14,则会导致CPU14的处理性能显著下降,影响整体处理性能。
步骤204,将选择的报文队列中的报文从第一转发CPU调整到第二转发CPU,以使该第二转发CPU处理所述选择的报文队列中的报文。例如,若选择的报文队列是报文队列1,则控制CPU可以将报文队列1中的报文从转发CPU12调整到转发CPU14,以使转发CPU14处理该报文队列1中的报文。
其中,控制CPU可以向转发CPU12传递调整命令,该调整命令可以携带报文队列1的信息。转发CPU12在接收到该调整命令后,可以将报文队列1中的报文传递给转发CPU14,以使转发CPU14处理该报文队列1中的报文。
应当注意的是,在调整报文时,是以报文队列为单位进行调整,即将整个报文队列中的报文迁移到另一个转发CPU进行处理,这样可以保证同一个转发CPU能够处理同一报文特征的报文,避免出现同一报文特征的流量乱序问题。
以下结合具体实施例,对上述技术方案进行详细说明。参见图3所示,为本实施例中提出的报文处理方法的流程示意图,该方法可以包括:
步骤301,每个转发CPU统计本转发CPU的每个报文队列,在预设时间段内写入的报文数量,并将每个报文队列的报文数量传递给控制CPU。
步骤302,控制CPU根据每个报文队列的报文数量获取转发CPU在预设时间段内的报文总数量(即转发CPU的每个报文队列的报文数量之和)。
例如,控制CPU可以获取转发CPU12的报文队列1的报文数量A1、报文队列2的报文数量A2、报文队列3的报文数量A3、报文队列4的报文数量A4、报文队列5的报文数量A5,并将报文数量A1、报文数量A2、报文数量A3、报文数量A4、报文数量A5的和,确定为转发CPU12的报文总数量A。同理,控制CPU可以确定转发CPU13的报文总数量B、转发CPU14的报文总数量C。
步骤303,控制CPU确定报文总数量最大的第一转发CPU(后续以转发CPU12为例)和报文总数量最小的第二转发CPU(后续以转发CPU14为例)。
步骤304,控制CPU判断转发CPU12的报文总数量A与转发CPU14的报文总数量C的差值是否大于等于第一阈值;如果是,执行步骤305;如果否,不再对转发CPU12的报文队列进行调整,等待下一个周期重新执行步骤301。
步骤305,控制CPU获取转发CPU12的每个报文队列的报文数量(如报文队列1的报文数量A1等),并确定最小的报文数量(后续以报文数量A1为例)。
步骤306,控制CPU判断报文数量A1是否大于第二阈值;如果是,则可以执行步骤307;如果否,则可以等待下一个周期,重新执行步骤301。
步骤307,控制CPU判断报文数量A1是否小于第三阈值;如果是,则可以执行步骤308;如果否,则可以等待下一个周期,重新执行步骤301。
步骤308,控制CPU选择报文数量A1对应的报文队列1。
步骤309,控制CPU将报文队列1中的报文从转发CPU12调整到转发CPU14,以使转发CPU14处理报文队列1中的报文,对此调整过程不再赘述。
基于与上述方法同样的申请构思,本申请实施例中还提出一种报文处理装置,所述装置可以应用于网络设备,所述网络设备包括多个转发中央处理器CPU,如图4所示,为所述报文处理装置的结构图,所述装置具体包括:
获取模块401,用于获取所述多个转发CPU中的每个转发CPU在预设时间段内的报文总数量;确定模块402,用于确定报文总数量最大的第一转发CPU和报文总数量最小的第二转发CPU;选择模块403,用于从所述第一转发CPU的所有报文队列中选择报文队列;调整模块404,用于将选择的报文队列中的报文从所述第一转发CPU调整到所述第二转发CPU,以使所述第二转发CPU处理所述选择的报文队列中的报文。
所述选择模块403从所述第一转发CPU的所有报文队列中选择报文队列时具体用于:判断所述第一转发CPU的报文总数量与所述第二转发CPU的报文总数量的差值是否大于等于第一阈值;如果是,则从所述第一转发CPU的所有报文队列中选择报文队列。
所述选择模块403从所述第一转发CPU的所有报文队列中选择报文队列时具体用于:从第一转发CPU的所有报文队列中选择报文数量最小的报文队列。
所述选择模块403从所述第一转发CPU的所有报文队列中选择报文队列时具体用于:获取所述第一转发CPU的所有报文队列中的每个报文队列的报文数量;若最小的报文数量大于第二阈值,且小于第三阈值,则从所述第一转发CPU的所有报文队列中选择报文数量最小的报文队列。
所述确定模块402,还用于根据所述第一转发CPU的报文总数量与所述第二转发CPU的报文总数量的差值确定所述第三阈值。
本申请实施例提供的网络设备(如基于多核CPU的网络设备),从硬件层面而言,硬件架构示意图具体可以参见图5所示,包括处理器和机器可读存储介质,该处理器又可以包括控制CPU和多个转发CPU,其中:
所述机器可读存储介质:存储有能够被处理器执行的机器可执行指令。
所述处理器:与所述机器可读存储介质通信,用于读取和执行所述机器可读存储介质中存储的所述指令代码,实现本申请上述示例公开的报文处理操作。例如,所述处理器中的控制CPU,用于读取和执行所述机器可读存储介质中存储的所述指令代码,控制转发CPU实现本申请上述示例公开的报文处理操作。
这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(RadomAccess Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (11)

1.一种报文处理方法,其特征在于,应用于网络设备,所述网络设备包括多个转发中央处理器CPU,所述方法包括:
获取所述多个转发CPU中的每个转发CPU在预设时间段内的报文总数量;
确定报文总数量最大的第一转发CPU和报文总数量最小的第二转发CPU;
从所述第一转发CPU的所有报文队列中选择报文队列;
将选择的报文队列中的报文从所述第一转发CPU调整到所述第二转发CPU,以使所述第二转发CPU处理所述选择的报文队列中的报文。
2.根据权利要求1所述的方法,其特征在于,所述从所述第一转发CPU的所有报文队列中选择报文队列之前,所述方法还包括:
判断所述第一转发CPU的报文总数量与所述第二转发CPU的报文总数量的差值是否大于等于第一阈值;如果是,则执行从所述第一转发CPU的所有报文队列中选择报文队列的过程。
3.根据权利要求1所述的方法,其特征在于,
所述从所述第一转发CPU的所有报文队列中选择报文队列,包括:
从所述第一转发CPU的所有报文队列中选择报文数量最小的报文队列。
4.根据权利要求1所述的方法,其特征在于,
所述从所述第一转发CPU的所有报文队列中选择报文队列,包括:
获取所述第一转发CPU的所有报文队列中的每个报文队列的报文数量;
若最小的报文数量大于第二阈值,且小于第三阈值,则从所述第一转发CPU的所有报文队列中选择报文数量最小的报文队列。
5.根据权利要求4所述的方法,其特征在于,所述第三阈值是根据所述第一转发CPU的报文总数量与所述第二转发CPU的报文总数量的差值确定。
6.一种报文处理装置,其特征在于,应用于网络设备,所述网络设备包括多个转发中央处理器CPU,所述装置包括:
获取模块,用于获取所述多个转发CPU中的每个转发CPU在预设时间段内的报文总数量;
确定模块,用于确定报文总数量最大的第一转发CPU和报文总数量最小的第二转发CPU;
选择模块,用于从所述第一转发CPU的所有报文队列中选择报文队列;
调整模块,用于将选择的报文队列中的报文从所述第一转发CPU调整到所述第二转发CPU,以使所述第二转发CPU处理所述选择的报文队列中的报文。
7.根据权利要求6所述的装置,其特征在于,所述选择模块从所述第一转发CPU的所有报文队列中选择报文队列时具体用于:判断所述第一转发CPU的报文总数量与所述第二转发CPU的报文总数量的差值是否大于等于第一阈值;如果是,则从所述第一转发CPU的所有报文队列中选择报文队列。
8.根据权利要求6所述的装置,其特征在于,
所述选择模块从所述第一转发CPU的所有报文队列中选择报文队列时具体用于:从所述第一转发CPU的所有报文队列中选择报文数量最小的报文队列。
9.根据权利要求6所述的装置,其特征在于,
所述选择模块从所述第一转发CPU的所有报文队列中选择报文队列时具体用于:获取所述第一转发CPU的所有报文队列中的每个报文队列的报文数量;若最小的报文数量大于第二阈值,且小于第三阈值,则从所述第一转发CPU的所有报文队列中选择报文数量最小的报文队列。
10.根据权利要求9所述的装置,其特征在于,
所述确定模块,还用于根据所述第一转发CPU的报文总数量与所述第二转发CPU的报文总数量的差值确定所述第三阈值。
11.一种网络设备,其特征在于,所述网络设备包括控制中央处理器CPU、机器可读存储介质和多个转发CPU,所述机器可读存储介质存储有能够被所述控制CPU执行的机器可执行指令;所述控制CPU用于执行所述机器可执行指令,以实现权利要求1-5任一所述的方法步骤。
CN201810367006.0A 2018-04-23 2018-04-23 一种报文处理方法、装置及设备 Active CN108632165B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810367006.0A CN108632165B (zh) 2018-04-23 2018-04-23 一种报文处理方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810367006.0A CN108632165B (zh) 2018-04-23 2018-04-23 一种报文处理方法、装置及设备

Publications (2)

Publication Number Publication Date
CN108632165A true CN108632165A (zh) 2018-10-09
CN108632165B CN108632165B (zh) 2022-03-25

Family

ID=63694347

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810367006.0A Active CN108632165B (zh) 2018-04-23 2018-04-23 一种报文处理方法、装置及设备

Country Status (1)

Country Link
CN (1) CN108632165B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109710411A (zh) * 2018-12-28 2019-05-03 深圳忆联信息系统有限公司 Tlp字段资源管理方法、装置、计算机设备及存储介质
CN110661731A (zh) * 2019-09-26 2020-01-07 光大兴陇信托有限责任公司 一种报文处理方法及其装置
CN111262792A (zh) * 2020-01-17 2020-06-09 新华三信息安全技术有限公司 报文转发方法、装置、网络设备及存储介质
CN111404776A (zh) * 2020-03-11 2020-07-10 深圳市东晟数据有限公司 一种开放式硬件实现深度数据过滤分流的系统及方法
CN113055292A (zh) * 2021-03-11 2021-06-29 青岛矽昌通信技术有限公司 一种提升多核路由器转发性能的方法及一种多核路由器
CN113992589A (zh) * 2021-10-21 2022-01-28 绿盟科技集团股份有限公司 一种报文分流方法、装置及电子设备
CN114553780A (zh) * 2020-11-11 2022-05-27 北京华为数字技术有限公司 负载均衡的方法、装置以及网卡
WO2022257799A1 (zh) * 2021-06-10 2022-12-15 华为技术有限公司 一种多线程转发的负载均衡方法及相关装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101968748A (zh) * 2010-09-17 2011-02-09 北京星网锐捷网络技术有限公司 多线程数据调度方法、装置及网络设备
US20150295842A1 (en) * 2012-10-30 2015-10-15 Zte Corporation Queue Scheduling Method, Apparatus And System

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101968748A (zh) * 2010-09-17 2011-02-09 北京星网锐捷网络技术有限公司 多线程数据调度方法、装置及网络设备
US20150295842A1 (en) * 2012-10-30 2015-10-15 Zte Corporation Queue Scheduling Method, Apparatus And System

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109710411A (zh) * 2018-12-28 2019-05-03 深圳忆联信息系统有限公司 Tlp字段资源管理方法、装置、计算机设备及存储介质
CN109710411B (zh) * 2018-12-28 2020-09-22 深圳忆联信息系统有限公司 Tlp字段资源管理方法、装置、计算机设备及存储介质
CN110661731A (zh) * 2019-09-26 2020-01-07 光大兴陇信托有限责任公司 一种报文处理方法及其装置
CN110661731B (zh) * 2019-09-26 2020-09-29 光大兴陇信托有限责任公司 一种报文处理方法及其装置
CN111262792A (zh) * 2020-01-17 2020-06-09 新华三信息安全技术有限公司 报文转发方法、装置、网络设备及存储介质
CN111262792B (zh) * 2020-01-17 2022-04-01 新华三信息安全技术有限公司 报文转发方法、装置、网络设备及存储介质
CN111404776A (zh) * 2020-03-11 2020-07-10 深圳市东晟数据有限公司 一种开放式硬件实现深度数据过滤分流的系统及方法
CN114553780A (zh) * 2020-11-11 2022-05-27 北京华为数字技术有限公司 负载均衡的方法、装置以及网卡
CN113055292A (zh) * 2021-03-11 2021-06-29 青岛矽昌通信技术有限公司 一种提升多核路由器转发性能的方法及一种多核路由器
WO2022257799A1 (zh) * 2021-06-10 2022-12-15 华为技术有限公司 一种多线程转发的负载均衡方法及相关装置
CN113992589A (zh) * 2021-10-21 2022-01-28 绿盟科技集团股份有限公司 一种报文分流方法、装置及电子设备
CN113992589B (zh) * 2021-10-21 2023-05-26 绿盟科技集团股份有限公司 一种报文分流方法、装置及电子设备

Also Published As

Publication number Publication date
CN108632165B (zh) 2022-03-25

Similar Documents

Publication Publication Date Title
CN108632165A (zh) 一种报文处理方法、装置及设备
US9569383B2 (en) Method of handling network traffic through optimization of receive side scaling
US9660942B2 (en) Automatic buffer sizing for optimal network-on-chip design
US9246821B1 (en) Systems and methods for implementing weighted cost multi-path using two-level equal cost multi-path tables
US9639403B2 (en) Receive-side scaling in a computer system using sub-queues assigned to processing cores
WO2015141337A1 (ja) 受信パケット分散方法、キュー選択器、パケット処理装置、および記録媒体
EP3367622B1 (en) Data processing apparatus
US9736011B2 (en) Server including switch circuitry
US20200242604A1 (en) Transaction selection device for selecting blockchain transactions
CN108259346A (zh) 一种等价路由表项建立方法和装置
US10470195B2 (en) Route selection method and apparatus
WO2018133782A1 (en) Best-efforts database functions
CN111726299A (zh) 流量均衡方法及装置
WO2018133781A1 (en) Database functions-defined network switch and database system
US10713279B2 (en) Enhanced replication
CN106254282B (zh) 链路聚合的实现方法及装置
JP6996341B2 (ja) 見積り装置および見積り方法
CN114513408B (zh) 一种ecn门限配置方法及装置
CN107046503B (zh) 一种报文传输方法、系统及其装置
CN109981696A (zh) 一种负载均衡方法、装置及设备
US20170270165A1 (en) Data streaming broadcasts in massively parallel processing databases
CN102364455B (zh) 一种级联多核cpu间vcpu均衡分担控制方法及其装置
CN110768915A (zh) 一种分流方法及装置
CN104932934A (zh) 信息处理装置及信息处理方法
CN110365667A (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