报文的处理方法及装置、计算机可读存储介质与流程

文档序号:14714139发布日期:2018-06-16 01:00阅读:158来源:国知局
报文的处理方法及装置、计算机可读存储介质与流程
本申请涉及通讯
技术领域
,尤其涉及一种报文的处理方法及装置、计算机可读存储介质。
背景技术
:负载均衡设备基于链路实际负载情况和灵活的选路算法,可以实现对多出接口带宽资源的均衡利用,将接收到的报文通过负载情况良好的出接口进行转发。负载均衡设备对于接收到的报文,可能需要对其进行相应的处理后再转发。那么,此时对负载均衡设备的处理性能要求较高,若负载均衡设备的处理性能较低,则会限制网络业务的速度,甚至导致延时等情况的发生。技术实现要素:有鉴于此,本申请提供一种报文的处理方法及装置、计算机可读存储介质,可以提高负载均衡设备的硬件处理性能,从而保证网络业务的正常进行。为实现上述目的,本申请提供技术方案如下:根据本申请的第一方面,提出了一种报文的处理方法,应用于负载均衡设备,所述负载均衡设备配置有多个CPU;所述方法包括:确定接收到的报文是否为待处理报文;当所述报文为待处理报文时,通过预定义的分配算法将所述报文分配至相应的CPU,以由该CPU对所述报文进行处理;其中,所述分配算法用于将接收到的报文平均分配至各个CPU。根据本申请的第二方面,提出了一种报文的处理装置,应用于负载均衡设备,所述负载均衡设备配置有多个CPU;所述装置包括:确定单元,确定接收到的报文是否为待处理报文;分配单元,当所述报文为待处理报文时,通过预定义的分配算法将所述报文分配至相应的CPU,以由该CPU对所述报文进行处理;其中,所述分配算法用于将接收到的报文平均分配至各个CPU。根据本申请的第三方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述技术方案中任一项所述方法的步骤。由以上技术方案可见,本申请通过将多个CPU集成于同一负载均衡设备中,并通过分配算法将报文尽可能平均地分配至各个CPU(各个CPU之间独立工作,互不关联)进行处理,可以提高负载均衡设备的硬件处理性能,从而进一步提高对网络业务的处理效率。附图说明图1是本申请一示例性实施例示出的一种报文的处理方法的流程图。图2是本申请一示例性实施例示出的负载均衡设备的结构示意图。图3是本申请一示例性实施例示出的另一种报文的处理方法的流程图。图4是本申请一示例性实施例示出的一种电子设备的结构示意图。图5是本申请一示例性实施例示出的一种报文的处理装置的框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清除地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。请参见图1,图1是本申请一示例性实施例示出的一种报文的处理方法的流程图,该方法应用于负载均衡设备,所述负载均衡设备配置有多个CPU;该方法可以包括以下步骤:步骤102,确定接收到的报文是否为待处理报文。在本实施例中,所述负载均衡设备配置有可编程逻辑器件,所述可编程逻辑器件存储有用于判定接收到报文是否为待处理报文的判定规则,所述判定规则包括以下至少之一:源IP地址范围、源端口范围、目的IP地址范围、目的端口范围、协议范围、接口、规则动作;所述规则动作用于指示匹配命中该规则后的分配方式,包括以下至少之一:指定分配、根据源IP地址分配、根据目的IP地址分配、丢弃报文、根据端口分配。其中,当所述报文与所述可编程逻辑器件存储的任一判定规则相匹配时,所述报文被确定为待处理报文。具体的,判定规则可以按照trie树的形式存储于所述可编程逻辑器件中;其中,各个判定规则的内容记录于该trie树的节点中。步骤104,当所述报文为待处理报文时,通过预定义的分配算法将所述报文分配至相应的CPU,以由该CPU对所述报文进行处理。在本实施例中,所述分配算法用于将接收到的报文平均分配至各个CPU。具体的,当所述负载均衡设备配置2个CPU时,根据所述分配算法的计算结果的奇偶性平均分配报文至相应的CPU。当所述负载均衡设备配置2个以上的CPU时,将所述分配算法的计算结果对CPU数量取余;根据取余结果平均分配报文至相应的CPU。通过将多个CPU集成于同一负载均衡设备中,并通过分配算法将报文尽可能平均地分配至各个CPU(各个CPU之间独立工作,互不关联)进行处理,可以提高负载均衡设备的硬件处理性能,从而进一步提高对网络业务的处理效率。在本实施例中,可编程逻辑器件用于对网络业务的报文进行转发(包括报文经处理后再转发和接收到报文后直接进行转发)。其中,当所述报文为非待处理报文时,通过所述可编程逻辑器件转发所述报文,并生成针对所述报文的快速转发表;当所述可编程逻辑器件中存储的判定规则被修改时,可清除所述可编程逻辑器件生成的快速转发表。在转发接收到的非待处理报文(即属于接收到后直接进行转发的报文)后,通过生成相应的快速转发表,可以在后续接收到同样的报文时,根据该快速转发表对该报文进行快速转发,从而提高了对报文的转发效率。同时,当可编程逻辑器件中存储的判定规则被修改时,可能出现某些报文在修改前属于非待处理报文(无需上传CPU进行处理),而在修改后属于待处理报文(需上传CPU进行处理)的情况。那么,若继续采用修改前生成的快速转发表转发该报文,则会使得该报文无法上传至CPU进行处理(而是直接通过可编程逻辑器件进行转发),从而导致网络业务出现错误。因此,通过清除可编程逻辑器件生成的快速转发表,可以避免出现上述的错误操作,从而保证对网络业务的正确处理。由以上技术方案可见,本申请通过将多个CPU集成于同一负载均衡设备中,并通过分配算法将报文尽可能平均地分配至各个CPU(各个CPU之间独立工作,互不关联)进行处理,可以提高负载均衡设备的硬件处理性能,从而进一步提高对网络业务的处理效率。为了便于理解,下面结合附图对本申请的技术方案进行详细说明。请参见图2,图2是本申请一示例性实施例示出的负载均衡设备的结构示意图。如图2所示,本申请的负载均衡设备可以包括多个CPU(比如图中的CPU1、CPU2、CPU3等),各个CPU均可与可编程逻辑器件传输报文。其中,可编程逻辑器件存储的用于判定接收到报文是否为待处理报文的判定规则,可由CPU208(例如,可以采用型号为BroadcomXLPIIV0.3FPUV0.3的芯片作为CPU208)生成并下发至可编程逻辑器件。具体的,可编程逻辑器件可以为FPGA(Field-ProgrammableGateArray,现场可编程门阵列)芯片(比如,型号可以为xcvu9p-flga2104-1-e-es1、xcvu9p-flga2104-1-e等),也可以是其他具有处理能力和转发报文功能的芯片,本申请并不对此进行限制。基于上述负载均衡设备配置有多个CPU的结构,可以尽可能平均地将待处理报文分配至各个CPU进行处理,从而提高对网络业务的处理效率。下面对本申请中负载均衡设备处理接收到报文的过程进行详细描述。请参见图3,图3是本申请一示例性实施例示出的另一种报文的处理方法的流程图,该方法应用于负载均衡设备,可以包括以下步骤:步骤302,接收报文。步骤304,判断是否命中判定规则,若命中,则转入步骤306;否则转入步骤312。在本实施例中,可编程逻辑器件存储有用于判定接收到报文是否为待处理报文(若为待处理报文,则需要上送至CPU进行处理后再转发)的判定规则。判定规则可以按照trie树的形式存储于可编程逻辑器件中;其中,各个判定规则的内容可以记录于该trie树的节点中。负载均衡设备在接收到报文后,该报文流入可编程逻辑器件,以由可编程逻辑器件确定该报文是否为待处理报文。具体的,判定规则可以包括以下至少之一:源IP地址范围、源端口范围、目的IP地址范围、目的端口范围、协议范围、接口、规则动作;其中,规则动作用于指示匹配命中该规则后的分配方式,可以包括以下至少之一:指定分配、根据源IP地址分配、根据目的IP地址分配、丢弃报文、根据端口分配。基于上述对判定规则的配置,当接收到的报文与任一判定规则相匹配时,可以确定该报文为待处理报文。举例而言,规则trie树节点中可以包含以下数据:源IP地址范围、源端口范围、目的IP地址范围、目的端口范围、协议范围、接口、规则动作;其中,规则动作可以包括:指定分配(例如,a、指定分配至CPU1;b、指定分配至CPU2等)、根据源IP地址分配、根据目的IP地址分配、丢弃报文、根据端口分配。例如,规则节点B存储的判定规则如表1所示:源IP地址2.2.2.2源端口80目的IP地址0.0.0.0目的端口0协议TCP规则动作根据目的IP地址分配表1可见,该判定规则并不关心目的IP地址和目的端口。那么,只要源IP地址为2.2.2.2、源端口为80、协议为TCP的报文均会命中该判定规则(说明为待处理报文)。并且,后续通过分配算法分配该报文时,根据该报文的目的IP地址进行分配。步骤306,输入分配算法。在本实施例中,根据匹配命中的判定规则中的规则动作,将相应的信息输入分配算法(用于将接收到的报文尽可能平均分配至各个CPU)进行计算。具体的,当负载均衡设备配置2个CPU时,根据分配算法的计算结果的奇偶性平均分配报文至相应的CPU;当负载均衡设备配置2个以上的CPU时,将分配算法的计算结果对CPU数量取余,再根据取余结果平均分配报文至相应的CPU。通过将多个CPU集成于同一负载均衡设备中,并通过分配算法将报文尽可能平均地分配至各个CPU(各个CPU之间独立工作,互不关联)进行处理,可以提高负载均衡设备的硬件处理性能,从而进一步提高对网络业务的处理效率。举例而言,承接于上述举例(即接收到的报文匹配命中规则节点B),即将该报文的目的IP地址输入分配算法(例如,可以采用哈希算法)。在一种情况下,当负载均衡设备配置2个CPU(分别为CPU1和CPU2)时,可以根据计算结果的奇偶性平均分配报文至相应的CPU。比如,当计算结果为奇数时,将报文分配至CPU1(CPU2);当计算结果为偶数时,将报文分配至CPU2(CPU1)。在另一种情况下,当负载均衡设备配置2个以上的CPU时,可以将计算结果对CPU数量取余,再根据取余结果平均分配报文至相应的CPU。比如,假定配置了CPU1-CPU3,当计算结果对3取余为0时,将报文分配至CPU1;当计算结果对3取余为1时,将报文分配至CPU2;当计算结果对3取余为2时,将报文分配至CPU3。基于其他数量的CPU的具体分配方法与上述举例类似,在此不再赘述。步骤308,可编程逻辑器件分配报文。步骤310,CPU处理报文。在本实施例中,可编程逻辑器件在确定接收到报文为待处理报文,并确定对应于该报文的分配对象(即CPU)后,将该报文分配至相应的CPU,以由该CPU对该报文进行处理。在CPU对报文进行处理后,将处理后的报文下发至可编程逻辑器件,以由可编程逻辑器件转发该报文至相应的对端设备。步骤312,可编程逻辑器件转发报文。在本实施例中,承接于步骤304,当未匹配命中判定规则时,说明该报文为非待处理报文,则直接由可编程逻辑器件转发该报文。承接于步骤310,CPU在处理完报文后,会将处理完的报文下发至可编程逻辑器件,以由可编程逻辑器件转发该报文至相应的对端设备。可见,在本申请的技术方案中,可编程逻辑器件可用于对网络业务的报文进行转发(包括报文经处理后再转发和接收到报文后直接进行转发)。其中,当报文为非待处理报文时,通过可编程逻辑器件转发该报文,并可以生成针对该报文的快速转发表;同时,当可编程逻辑器件中存储的判定规则被修改时,可清除可编程逻辑器件生成的快速转发表。在转发接收到的非待处理报文(即属于接收到后直接进行转发的报文)后,通过生成相应的快速转发表,可以在后续接收到同样的报文时,根据该快速转发表对该报文进行快速转发,从而提高了对报文的转发效率。并且,当可编程逻辑器件中存储的判定规则被修改时,可能出现某些报文在修改前属于非待处理报文(无需上传CPU进行处理),而在修改后属于待处理报文(需上传CPU进行处理)的情况。那么,若继续采用修改前生成的快速转发表转发该报文,则会使得该报文无法上传至CPU进行处理(而是直接通过可编程逻辑器件进行转发),从而导致网络业务出现错误。因此,通过清除可编程逻辑器件生成的快速转发表,可以避免出现上述的错误操作,从而保证对网络业务的正确处理。由以上技术方案可见,本申请通过将多个CPU集成于同一负载均衡设备中,并通过分配算法将报文尽可能平均地分配至各个CPU(各个CPU之间独立工作,互不关联)进行处理,可以提高负载均衡设备的硬件处理性能,从而进一步提高对网络业务的处理效率。图4示出了根据本申请的一示例性实施例的电子设备的结构示意图。请参考图4,在硬件层面,该电子设备包括处理器402、内部总线404、网络接口406、内存408以及非易失性存储器410,当然还可能包括其他业务所需要的硬件。处理器402从非易失性存储器410中读取对应的计算机程序到内存408中然后运行,在逻辑层面上形成报文的处理装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。请参考图5,在软件实施方式中,该报文的处理装置应用于负载均衡设备,所述负载均衡设备配置有多个CPU;所述装置可以包括确定单元501和分配单元502。其中:确定单元501,确定接收到的报文是否为待处理报文;分配单元502,当所述报文为待处理报文时,通过预定义的分配算法将所述报文分配至相应的CPU,以由该CPU对所述报文进行处理;其中,所述分配算法用于将接收到的报文平均分配至各个CPU。可选的,所述负载均衡设备配置有可编程逻辑器件,所述可编程逻辑器件存储有用于判定接收到报文是否为待处理报文的判定规则,所述判定规则包括以下至少之一:源IP地址范围、源端口范围、目的IP地址范围、目的端口范围、协议范围、接口、规则动作;所述规则动作用于指示匹配命中该规则后的分配方式,包括以下至少之一:指定分配、根据源IP地址分配、根据目的IP地址分配、丢弃报文、根据端口分配;其中,当所述报文与所述可编程逻辑器件存储的任一判定规则相匹配时,所述报文被确定为待处理报文。可选的,判定规则以trie树的形式存储于所述可编程逻辑器件中,其中,各个判定规则的内容记录于该trie树的节点中。可选的,还包括:生成单元503,当所述报文为非待处理报文时,通过所述可编程逻辑器件转发所述报文,并生成针对所述报文的快速转发表;清除单元504,当所述可编程逻辑器件中存储的判定规则被修改时,清除所述可编程逻辑器件生成的快速转发表。可选的,所述分配单元502具体用于:当所述负载均衡设备配置2个CPU时,根据所述分配算法的计算结果的奇偶性平均分配报文至相应的CPU;当所述负载均衡设备配置2个以上的CPU时,将所述分配算法的计算结果对CPU数量取余;根据取余结果平均分配报文至相应的CPU。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由报文的处理装置的处理器执行以完成上述方法,该方法可以包括:确定接收到的报文是否为待处理报文;当所述报文为待处理报文时,通过预定义的分配算法将所述报文分配至相应的CPU,以由该CPU对所述报文进行处理;其中,所述分配算法用于将接收到的报文平均分配至各个CPU。可选的,所述负载均衡设备配置有可编程逻辑器件,所述可编程逻辑器件存储有用于判定接收到报文是否为待处理报文的判定规则,所述判定规则包括以下至少之一:源IP地址范围、源端口范围、目的IP地址范围、目的端口范围、协议范围、接口、规则动作;所述规则动作用于指示匹配命中该规则后的分配方式,包括以下至少之一:指定分配、根据源IP地址分配、根据目的IP地址分配、丢弃报文、根据端口分配;其中,当所述报文与所述可编程逻辑器件存储的任一判定规则相匹配时,所述报文被确定为待处理报文。可选的,判定规则以trie树的形式存储于所述可编程逻辑器件中,其中,各个判定规则的内容记录于该trie树的节点中。可选的,还包括:当所述报文为非待处理报文时,通过所述可编程逻辑器件转发所述报文,并生成针对所述报文的快速转发表;当所述可编程逻辑器件中存储的判定规则被修改时,清除所述可编程逻辑器件生成的快速转发表。可选的,所述当所述报文为待处理报文时,通过预定义的分配算法将所述报文分配至相应的CPU,包括:当所述负载均衡设备配置2个CPU时,根据所述分配算法的计算结果的奇偶性平均分配报文至相应的CPU;当所述负载均衡设备配置2个以上的CPU时,将所述分配算法的计算结果对CPU数量取余;根据取余结果平均分配报文至相应的CPU。其中,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等,本申请并不对此进行限制。以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1