CN109714273A - 一种多核网络设备的报文处理方法及装置 - Google Patents
一种多核网络设备的报文处理方法及装置 Download PDFInfo
- Publication number
- CN109714273A CN109714273A CN201811587811.0A CN201811587811A CN109714273A CN 109714273 A CN109714273 A CN 109714273A CN 201811587811 A CN201811587811 A CN 201811587811A CN 109714273 A CN109714273 A CN 109714273A
- Authority
- CN
- China
- Prior art keywords
- message
- type
- processing type
- message flow
- packet
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种多核网络设备的报文处理方法及装置,该方法包括获取报文流的报文描述符;根据报文描述符,对报文流进行协议解析,得到报文流的业务流量;根据报文流的协议类型和业务流量,确定报文流的优化处理类型;如果优化处理类型与报文描述符中的初始处理类型不同,则将初始处理类型更改为优化处理类型;根据优化处理类型,调用多核处理器中的一个核或多个核对报文流中的报文包进行处理。对于需报文保序的报文流,采用一个核顺次对报文流中的报文包进行逐个处理,以保证保序;对于不需报文保序的报文流,采用多个核并行处理报文流中的多个报文包,以提高对于非保序报文流的处理效率,提高处理性能。
Description
技术领域
本申请涉及网络通信技术领域,尤其涉及一种多核网络设备的报文处理方法及装置。
背景技术
随着网络的普及,用户对网络带宽的需求不断提高,网络设备的处理能力也越来越高。作为网络设备的核心处理单元,CPU的性能成为决定一个网络设备处理能力的重要标准。自从多核处理器的出现,使得网络设备的处理能力上了一个新的台阶。
现有的多核处理器处理报文的方式大部分采用序列号记录法、流水线法和数据流与核绑定法,以避免处理后的报文在发送过程中出现乱序的现象。但是,网络中存在部分不需要保序的业务流量,若采用上述处理方法处理非保序的报文流,则非保序报文的处理效率不高,降低多核处理器的处理性能。
发明内容
本申请提供了一种多核网络设备的报文处理方法及装置,以解决现有处理方法处理不需要保序的业务流量,则非保序报文的处理效率不高,降低多核处理器的处理性能的问题。
第一方面,本申请提供了一种多核网络设备的报文处理方法,所述方法包括:
获取报文流的报文描述符;
根据所述报文描述符,对报文流进行协议解析,得到所述报文流的业务流量;
根据所述报文流的协议类型和业务流量,确定所述报文流的优化处理类型;
如果所述优化处理类型与报文描述符中的初始处理类型不同,则将初始处理类型更改为优化处理类型,所述初始处理类型和优化处理类型均为并行处理类型、序列化处理类型或无序化处理类型的一种;
根据所述优化处理类型,调用多核处理器中的一个核或多个核对所述报文流中的报文包进行处理。
第二方面,本申请提供了一种多核网络设备的报文处理装置,所述装置包括:
第一获取模块,用于获取报文流的报文描述符;
协议解析模块,用于根据所述报文描述符,对报文流进行协议解析,得到所述报文流的业务流量;
确定模块,用于根据所述报文流的协议类型和业务流量,确定所述报文流的优化处理类型;
判断模块,用于如果所述优化处理类型与报文描述符中的初始处理类型不同,则将初始处理类型更改为优化处理类型,所述初始处理类型和优化处理类型均为并行处理类型、序列化处理类型或无序化处理类型的一种;
处理模块,用于根据所述优化处理类型,调用多核处理器中的一个核或多个核对所述报文流中的报文包进行处理。
由以上技术方案可知,本申请提供了一种多核网络设备的报文处理方法及装置,可根据协议类型和业务流量的不同,配置不同的处理方式,对于需报文保序的报文流,采用一个核顺次对报文流中的报文包进行逐个处理,以保证保序;对于不需报文保序的报文流,采用多个核并行处理报文流中的多个报文包,以提高对于非保序报文流的处理效率,提高处理性能。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种多核网络设备的报文处理方法的一个实施例的流程图;
图2为本申请提供的一种多核网络设备的报文处理方法的另一个实施例的流程图;
图3为本申请提供的一种多核网络设备的报文处理装置的一实施例的结构示意图;
图4为处理模块的一实施例的结构示意图;
图5为处理模块的另一实施例的结构示意图;
图6为本申请提供的一种多核网络设备的报文处理装置的另一实施例的结构示意图;
图7为第二获取模块的结构示意图。
具体实施方式
本发明是基于cavium平台硬件协处理单元(sso)进行配置,同时软件进行参与调度来完成报文保序的工作。其中,多核处理器是在同一个硅晶片上集成多个独立物理核心,每个核心均具有独立的逻辑结构,包括缓存、执行单元、指令级单元和总线接口等逻辑单元,通过高速总线、内存共享进行通信。
第一方面,参见图1,本申请的一实施例提供了一种多核网络设备的报文处理方法,包括如下步骤:
步骤11:获取报文流的报文描述符。
步骤12:根据所述报文描述符,对报文流进行协议解析,得到所述报文流的业务流量。
步骤13:根据所述报文流的协议类型和业务流量,确定所述报文流的优化处理类型。
如果报文流是音频或视频流,则该报文流需要保序,因此,优化处理类型为序列化处理;如果报文流是pppoe协议流量,则该报文不需要严格保序,因此,优化处理类型为并行处理。
步骤14:如果所述优化处理类型与报文描述符中的初始处理类型不同,则将初始处理类型更改为优化处理类型,所述初始处理类型和优化处理类型均为并行处理类型、序列化处理类型或无序化处理类型的一种。
步骤15:根据所述优化处理类型,调用多核处理器中的一个核或多个核对所述报文流中的报文包进行处理。
由以上技术方案可知,本申请提供了一种多核网络设备的报文处理方法,可根据协议类型和业务流量的不同,配置不同的处理方式,对于需报文保序的报文流,采用一个核顺次对报文流中的报文包进行逐个处理,以保证保序;对于不需报文保序的报文流,采用多个核并行处理报文流中的多个报文包,以提高对于非保序报文流的处理效率,提高处理性能。
参见图2,本申请的另一实施例提供了一种多核网络设备的报文处理方法,包括如下步骤:
步骤21:获取报文包的五元组,所述五元组数据包括源IP、目的IP、源端口、目的端口和协议类型。五元组数据可由用户预先设置或者是默认值。
步骤22:根据所述五元组,利用循环冗余算法,计算得到五元组哈希值。
步骤23:根据所述报文包的五元组哈希值和报文包的包头数据,将具有相同五元组哈希值和包头数据的报文包组成报文流。
多个报文包的五元组哈希值和报文包的包头数据相同时,可以确定这多个报文包属于同一条报文流。
步骤24:获取报文流的报文描述符。
报文描述符包括tag value,tag type,QoS value,group和packet datapointer。
其中,tag value是一个32位的数字,tag value由3个区别开的部分组成:31-24位衡为0;23-16位是接收到packet的接口号或者全是1;15-0位是五元组哈希值。tag type即是初始处理类型,该初始处理类型可由用户设置。
步骤25:根据所述报文描述符,对报文流进行协议解析,得到所述报文流的业务流量。
步骤26:根据所述报文流的协议类型和业务流量,确定所述报文流的优化处理类型。
如果报文流是音频或视频流,则该报文流需要保序,因此,优化处理类型为序列化处理;如果报文流是pppoe协议流量,则该报文不需要严格保序,因此,优化处理类型为并行处理。
步骤27:如果所述优化处理类型与报文描述符中的初始处理类型不同,则将初始处理类型更改为优化处理类型,所述初始处理类型和优化处理类型均为并行处理类型、序列化处理类型或无序化处理类型的一种。
步骤28:根据所述优化处理类型,调用多核处理器中的一个核或多个核对所述报文流中的报文包进行处理。
具体地,当所述初始处理类型为有序处理类型,优化处理类型为并行处理类型或无序化处理类型时,将初始化处理类型更改为并行处理类型或无序化处理类型;然后,将所述报文流中加锁的报文包进行解锁处理;再调用多核处理器中的多个核对所述报文流中的多个报文包进行处理。
如果初始处理类型为有序处理类型,对于不需要保序的报文流,会影响该报文流的处理效率,因此,需将有序处理更改为优化处理类型的并行处理或无序化处理,然后对加锁的报文包进行解锁处理,利用多核处理器的多个核对同属于一个报文流的多个报文包同时处理,以提高报文流的处理速度。
当所述初始处理类型为并行处理类型或无序化处理类型,优化处理类型为序列化处理类型时,将初始化处理类型更改为序列化处理类型:然后,按照所述报文流中报文包的入接口顺序,将未处理且位于第一位的报文包进行加锁处理;再调用多核处理器中的一个核对所述加锁的报文包进行处理,处理完毕后重复上述的步骤,直至将所述报文流中的报文包均处理完毕。
如果初始处理类型为并行处理类型或无序化处理类型,对于需要保序的报文流,会影响该报文流的保序,因此,需将并行处理类型或无序化处理更改为有序化处理,然后对报文流中报文包的入接口顺序,将未处理且位于第一位的报文包进行加锁处理,使多核处理器的仅一个核对加锁的报文包进行处理,并且无法对同一报文流中的未加锁的报文包进行处理,因此可实现严格保序。
第二方面,参见图3,本申请提供了一种多核网络设备的报文处理装置,所述装置包括:
第一获取模块31,用于获取报文流的报文描述符;
协议解析模块32,用于根据所述报文描述符,对报文流进行协议解析,得到所述报文流的业务流量;
确定模块33,用于根据所述报文流的协议类型和业务流量,确定所述报文流的优化处理类型;
判断模块34,用于如果所述优化处理类型与报文描述符中的初始处理类型不同,则将初始处理类型更改为优化处理类型,所述初始处理类型和优化处理类型均为并行处理类型、序列化处理类型或无序化处理类型的一种;
处理模块35,用于根据所述优化处理类型,调用多核处理器中的一个核或多个核对所述报文流中的报文包进行处理。
由以上技术方案可知,本申请提供了一种多核网络设备的报文处理装置,可根据协议类型和业务流量的不同,配置不同的处理方式,对于需报文保序的报文流,采用一个核顺次对报文流中的报文包进行逐个处理,以保证保序;对于不需报文保序的报文流,采用多个核并行处理报文流中的多个报文包,以提高对于非保序报文流的处理效率,提高处理性能。
进一步地,参见图4,当所述初始处理类型为并行处理类型或无序化处理类型,优化处理类型为序列化处理类型时,所述处理模块包括:
加锁单元41,用于按照所述报文流中报文包的入接口顺序,将未处理且位于第一位的报文包进行加锁处理;
第一调用单元42,调用多核处理器中的一个核对所述加锁的报文包进行处理,处理完毕后重复上述的步骤,直至将所述报文流中的报文包均处理完毕。
进一步地,参见图5,当所述初始处理类型为有序处理类型,优化处理类型为并行处理类型或无序化处理类型时,所述处理模块35包括:
解锁单元51,用于将所述报文流中加锁的报文包进行解锁处理;
第二调用单元52,用于调用多核处理器中的多个核对所述报文流中的多个报文包进行处理。
进一步地,参见图6,所述装置还包括:
第二获取模块61,用于获取报文包的五元组哈希值;
报文流确定模块62,用于根据所述报文包的五元组哈希值和报文包的包头数据,将具有相同五元组哈希值和包头数据的报文组成报文流。
进一步地,参见图7,所述第二获取模块61包括:
五元组获取单元71,用于获取报文包的五元组,所述五元组数据包括源IP、目的IP、源端口、目的端口和协议类型;
计算单元72,用于根据所述五元组,利用循环冗余算法,计算得到五元组哈希值。
由以上技术方案可知,本申请提供了一种多核网络设备的报文处理方法及装置,可根据协议类型和业务流量的不同,配置不同的处理方式,对于需报文保序的报文流,采用一个核顺次对报文流中的报文包进行逐个处理,以保证保序;对于不需报文保序的报文流,采用多个核并行处理报文流中的多个报文包,以提高对于非保序报文流的处理效率,提高处理性能。
本领域的技术人员可以清楚地了解到本申请实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请实施例中的技术方案本质上或者或对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以似的一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分可相互参见即可,每个实施例重点说明的都是与其他实施例的不同之处,尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
Claims (10)
1.一种多核网络设备的报文处理方法,其特征在于,所述方法包括:
获取报文流的报文描述符;
根据所述报文描述符,对报文流进行协议解析,得到所述报文流的业务流量;
根据所述报文流的协议类型和业务流量,确定所述报文流的优化处理类型;
如果所述优化处理类型与报文描述符中的初始处理类型不同,则将初始处理类型更改为优化处理类型,所述初始处理类型和优化处理类型均为并行处理类型、序列化处理类型或无序化处理类型的一种;
根据所述优化处理类型,调用多核处理器中的一个核或多个核对所述报文流中的报文包进行处理。
2.如权利要求1所述的方法,其特征在于,当所述初始处理类型为并行处理类型或无序化处理类型,优化处理类型为序列化处理类型时,所述根据所述优化处理类型,调用多核处理器中的一个核或多个核对所述报文流中的报文进行处理包括:
按照所述报文流中报文包的入接口顺序,将未处理且位于第一位的报文包进行加锁处理;
调用多核处理器中的一个核对所述加锁的报文包进行处理,处理完毕后重复上述的步骤,直至将所述报文流中的报文包均处理完毕。
3.如权利要求1所述的方法,其特征在于,当所述初始处理类型为有序处理类型,优化处理类型为并行处理类型或无序化处理类型时,所述根据所述优化处理类型,调用多核处理器中的一个核或多个核对所述报文流中的报文进行处理包括:
将所述报文流中加锁的报文包进行解锁处理;
调用多核处理器中的多个核对所述报文流中的多个报文包进行处理。
4.如权利要求1所述的方法,其特征在于,所述获取报文流的报文描述符之前包括:
获取报文包的五元组哈希值;
根据所述报文包的五元组哈希值和报文包的包头数据,将具有相同五元组哈希值和包头数据的报文包组成报文流。
5.如权利要求4所述的方法,其特征在于,所述获取报文包的五元组哈希值包括:
获取报文包的五元组,所述五元组数据包括源IP、目的IP、源端口、目的端口和协议类型;
根据所述五元组,利用循环冗余算法,计算得到五元组哈希值。
6.一种多核网络设备的报文处理装置,其特征在于,所述装置包括:
第一获取模块,用于获取报文流的报文描述符;
协议解析模块,用于根据所述报文描述符,对报文流进行协议解析,得到所述报文流的业务流量;
确定模块,用于根据所述报文流的协议类型和业务流量,确定所述报文流的优化处理类型;
判断模块,用于如果所述优化处理类型与报文描述符中的初始处理类型不同,则将初始处理类型更改为优化处理类型,所述初始处理类型和优化处理类型均为并行处理类型、序列化处理类型或无序化处理类型的一种;
处理模块,用于根据所述优化处理类型,调用多核处理器中的一个核或多个核对所述报文流中的报文包进行处理。
7.如权利要求6所述的装置,其特征在于,当所述初始处理类型为并行处理类型或无序化处理类型,优化处理类型为序列化处理类型时,所述处理模块包括:
加锁单元,用于按照所述报文流中报文包的入接口顺序,将未处理且位于第一位的报文包进行加锁处理;
第一调用单元,调用多核处理器中的一个核对所述加锁的报文包进行处理,处理完毕后重复上述的步骤,直至将所述报文流中的报文包均处理完毕。
8.如权利要求6所述的装置,其特征在于,当所述初始处理类型为有序处理类型,优化处理类型为并行处理类型或无序化处理类型时,所述处理模块包括:
解锁单元,用于将所述报文流中加锁的报文包进行解锁处理;
第二调用单元,用于调用多核处理器中的多个核对所述报文流中的多个报文包进行处理。
9.如权利要求6所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于获取报文包的五元组哈希值;
报文流确定模块,用于根据所述报文包的五元组哈希值和报文包的包头数据,将具有相同五元组哈希值和包头数据的报文包组成报文流。
10.如权利要求9所述的装置,其特征在于,所述第二获取模块包括:
五元组获取单元,用于获取报文包的五元组,所述五元组数据包括源IP、目的IP、源端口、目的端口和协议类型;
计算单元,用于根据所述五元组,利用循环冗余算法,计算得到五元组哈希值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811587811.0A CN109714273A (zh) | 2018-12-25 | 2018-12-25 | 一种多核网络设备的报文处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811587811.0A CN109714273A (zh) | 2018-12-25 | 2018-12-25 | 一种多核网络设备的报文处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109714273A true CN109714273A (zh) | 2019-05-03 |
Family
ID=66257475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811587811.0A Pending CN109714273A (zh) | 2018-12-25 | 2018-12-25 | 一种多核网络设备的报文处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109714273A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022110112A1 (zh) * | 2020-11-30 | 2022-06-02 | 华为技术有限公司 | 一种报文处理方法和装置 |
CN115720222A (zh) * | 2022-12-19 | 2023-02-28 | 广西大学 | 基于dpdk的在arm多核架构上实现http转发的方法及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102055649A (zh) * | 2009-10-29 | 2011-05-11 | 成都市华为赛门铁克科技有限公司 | 多核系统的报文处理方法、装置及系统 |
CN102801635A (zh) * | 2012-08-30 | 2012-11-28 | 北京傲天动联技术有限公司 | 在多核处理器系统中使用的报文保序方法 |
CN103428099A (zh) * | 2013-08-21 | 2013-12-04 | 中国人民解放军国防科学技术大学 | 一种通用多核网络处理器流量控制的方法 |
CN108595370A (zh) * | 2018-03-30 | 2018-09-28 | 新华三信息安全技术有限公司 | 一种多核处理器及报文处理方法 |
US20180351692A1 (en) * | 2017-05-30 | 2018-12-06 | Cavium, Inc. | Flowlet scheduler for multicore network processors |
-
2018
- 2018-12-25 CN CN201811587811.0A patent/CN109714273A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102055649A (zh) * | 2009-10-29 | 2011-05-11 | 成都市华为赛门铁克科技有限公司 | 多核系统的报文处理方法、装置及系统 |
CN102801635A (zh) * | 2012-08-30 | 2012-11-28 | 北京傲天动联技术有限公司 | 在多核处理器系统中使用的报文保序方法 |
CN103428099A (zh) * | 2013-08-21 | 2013-12-04 | 中国人民解放军国防科学技术大学 | 一种通用多核网络处理器流量控制的方法 |
US20180351692A1 (en) * | 2017-05-30 | 2018-12-06 | Cavium, Inc. | Flowlet scheduler for multicore network processors |
CN108595370A (zh) * | 2018-03-30 | 2018-09-28 | 新华三信息安全技术有限公司 | 一种多核处理器及报文处理方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022110112A1 (zh) * | 2020-11-30 | 2022-06-02 | 华为技术有限公司 | 一种报文处理方法和装置 |
CN115720222A (zh) * | 2022-12-19 | 2023-02-28 | 广西大学 | 基于dpdk的在arm多核架构上实现http转发的方法及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11451476B2 (en) | Multi-path transport design | |
EP3603001B1 (en) | Hardware-accelerated payload filtering in secure communication | |
US10326830B1 (en) | Multipath tunneling to a service offered at several datacenters | |
JP5544429B2 (ja) | 複数のデータを処理するための方法および通信パケットをスイッチングするためのスイッチングデバイス | |
US8677453B2 (en) | Highly parallel evaluation of XACML policies | |
US8913613B2 (en) | Method and system for classification and management of inter-blade network traffic in a blade server | |
US9185033B2 (en) | Communication path selection | |
US9356844B2 (en) | Efficient application recognition in network traffic | |
US20150039763A1 (en) | Systems and methods for least connection load balancing by multi-core device | |
JP2001053789A (ja) | コンピュータネットワークにおける多層広帯域準備のためのシステム | |
US10547547B1 (en) | Uniform route distribution for a forwarding table | |
US10819640B1 (en) | Congestion avoidance in multipath routed flows using virtual output queue statistics | |
US11126249B1 (en) | Power reduction methods for variable sized tables | |
CN109714273A (zh) | 一种多核网络设备的报文处理方法及装置 | |
US10616116B1 (en) | Network traffic load balancing using rotating hash | |
US11218394B1 (en) | Dynamic modifications to directional capacity of networking device interfaces | |
US11528187B1 (en) | Dynamically configurable networking device interfaces for directional capacity modifications | |
EP4199427A1 (en) | Ai-supported network telemetry using data processing unit | |
US11811685B1 (en) | Selective packet processing including a run-to-completion packet processing data plane | |
CN107888643A (zh) | 一种udp负载均衡方法、装置和系统 | |
CN106603426A (zh) | 报文丢弃方法及装置 | |
Thiruvenkatam et al. | Optimizing data center network throughput by solving TCP Incast problem using k‐means algorithm | |
JP2014007600A (ja) | ネットワーク装置、ネットワーク装置の制御方法及びネットワークシステム | |
Abdu Jyothi | Network flow optimization for distributed clouds |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190503 |
|
RJ01 | Rejection of invention patent application after publication |