CN104158764A - 报文处理方法及装置 - Google Patents

报文处理方法及装置 Download PDF

Info

Publication number
CN104158764A
CN104158764A CN201410393069.5A CN201410393069A CN104158764A CN 104158764 A CN104158764 A CN 104158764A CN 201410393069 A CN201410393069 A CN 201410393069A CN 104158764 A CN104158764 A CN 104158764A
Authority
CN
China
Prior art keywords
user
message
hardware queue
hardware
corresponding relation
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
CN201410393069.5A
Other languages
English (en)
Other versions
CN104158764B (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.)
Hangzhou H3C Technologies Co Ltd
Original Assignee
Hangzhou 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 Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN201410393069.5A priority Critical patent/CN104158764B/zh
Publication of CN104158764A publication Critical patent/CN104158764A/zh
Application granted granted Critical
Publication of CN104158764B publication Critical patent/CN104158764B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种报文处理方法及装置,该方法应用于多核网络设备上,该方法包括:在接收到用户报文后,从所述用户报文中提取用户标识,根据预先配置的用户标识与硬件队列的对应关系,将所述用户报文存储到对应的硬件队列中;根据预先配置的用户标识与CPU核的对应关系,将所述用户标识对应的硬件队列中的用户报文发送给对应的CPU核进行处理。本发明为每一个用户配置了对应的硬件资源,避免由于某个用户报文过多,独占所有硬件资源,而使得其他用户无法正常接收报文进行处理。

Description

报文处理方法及装置
技术领域
本发明涉及通信技术领域,尤其涉及一种报文处理方法及装置。
背景技术
虚拟化通常是指计算机软件在虚拟的物理环境上而不是真实的物理环境上运行。业界现有的虚拟化技术方案大多采用内核虚拟化技术,例如,LXC(Linux container)技术,可以在操作系统层次上为用户进程提供虚拟的执行环境。LXC虚拟化技术可以依据不同用户来进行线程隔离,为每个用户线程分配特定比例的CPU(Central Processing Unit,中央处理器)使用时间、硬件资源使用时间,限制可以使用的内存大小,提供设备访问控制,让每个用户认为自己独占整个系统。
为了实现多核系统处理器的分配和隔离,操作系统需要规定每一个用户线程可以占用哪些CPU。但是现有方案只能在用户报文上送到操作系统层面时,才能根据不同用户上送到为该用户配置的CPU处理。在上送CPU之前,所有用户共享其它硬件资源。若存在某个用户报文过多,占用了所有的硬件资源,则即使其他用户对应的CPU空闲,也无法接收报文进行处理。
发明内容
有鉴于此,本发明提供了一种报文处理方法,该方法应用于多核网络设备上,该方法包括:
在接收到用户报文后,从所述用户报文中提取用户标识,根据预先配置的用户标识与硬件队列的对应关系,将所述用户报文存储到对应的硬件队列中;
根据预先配置的用户标识与CPU核的对应关系,将所述用户标识对应的硬件队列中的用户报文发送给对应的CPU核进行处理。
本发明还提供了一种报文处理装置,该装置应用于多核网络设备上,该装置包括:
报文存储单元,用于在接收到用户报文后,从所述用户报文中提取用户标识,根据预先配置的用户标识与硬件队列的对应关系,将所述用户报文存储到对应的硬件队列中;
报文处理单元,用于根据预先配置的用户标识与CPU核的对应关系,将所述用户标识对应的硬件队列中的用户报文发送给对应的CPU核进行处理。
本发明为每一个用户配置了对应的硬件资源,在接收到用户报文后,根据报文中携带的用户标识,选择对应的硬件资源进行处理,避免由于某个用户报文过多,独占所有硬件资源,而使得其他用户无法正常接收报文进行处理。
附图说明
图1是本发明一种实施方式中报文处理装置的逻辑结构及其基础硬件环境的示意图。
图2是本发明一种实施方式中报文处理方法的流程图。
图3是本发明一种实施方式中网络业务引擎芯片的基础结构示意图。
图4是本发明一种实施方式中某一网络业务引擎芯片的硬件结构示意图。
具体实施方式
以下结合附图对本发明进行详细说明。
本发明提供一种报文处理装置,以下以软件实现为例进行说明,但是本发明并不排除诸如硬件或者逻辑器件等其他实现方式。如图1所示,该装置运行的硬件环境包括CPU、内存、非易失性存储器以及其他硬件。该装置作为一个逻辑层面的虚拟装置,其通过CPU来运行。该装置包括报文存储单元和报文处理单元。请参考图2,该装置的使用和运行过程包括以下步骤:
步骤101,报文存储单元在接收到用户报文后,从所述用户报文中提取用户标识,根据预先配置的用户标识与硬件队列的对应关系,将所述用户报文存储到对应的硬件队列中;
步骤102,报文处理单元根据预先配置的用户标识与CPU核的对应关系,将所述用户标识对应的硬件队列中的用户报文发送给对应的CPU核进行处理。
为了满足大流量、高速的网络通讯要求,普遍采用多核网络设备进行报文处理。对于不同用户的访问需求,现有技术已经实现了在操作系统层面上的隔离,即为不同的用户分配其对应的CPU核,只处理本用户的报文,避免了由于某一个用户报文过多,而占用大量CPU核,影响其他用户对CPU核的使用。但现有技术中并未解决其他硬件资源的占用问题。在将用户报文送往CPU核处理之前,不同用户的报文仍然共享其他硬件资源。若某一用户报文过多,占用了整个硬件资源,则即使其他用户的CPU核空闲,也无法接收报文进行处理。
本发明通过对硬件资源进行配置,提高用户报文的处理效率。在多核网络设备中通常包括网络业务引擎芯片,图3所示为网络业务引擎芯片的基本结构,该类型芯片为多核处理器芯片,包括多核CPU、硬件阵列以及网络接口。本发明根据从网络接口上送的用户报文中携带的不同用户标识,选择对应的硬件阵列和CPU核进行报文处理。下面结合一种具体的芯片架构,对本发明的报文处理过程进行详细说明。
如图4所示,某一网络业务引擎芯片包括如图3所示的多核CPU、硬件阵列以及网络接口,其中,硬件阵列包括报文接收模块、硬件调度模块以及CPU调度模块。报文接收模块主要用于对从网络接口上送的用户报文进行字段提取和解析分类,并根据解析结果向硬件调度模块申请内存指针,将硬件调度模块返回的内存指针发送给CPU调度模块,由CPU调度模块将内存指针发送给指定的CPU核,CPU核根据该内存指针,从内存中读取用户报文进行处理。
本发明通过上述模块之间的配合,实现不同用户报文利用各自的硬件通道进行处理。首先,不同的用户报文在通过物理网口上送时,由以太网驱动为用户报文添加对应的用户标识。本发明采用私有串行总线互联协议HIGIG报文作为用户报文,以太网驱动在HIGIG报文的模块标识或端口标识字段添加用户标识。例如,某网络设备有3个物理网口,且3个物理网口分别分配给3个用户,每一个网口在接收到用户报文后,将用户标识添加到用户报文的端口标识字段。
interface1:dest port=1
interface2:dest port=2
interface3:dest port=3
上述为3个网口对用户报文的处理过程,以网口1(interface1:dest port=1)为例,“interface1”表示网络接口1;“dest port”表示用户报文的端口标识字段,“1”表示用户1的用户标识。
当添加了用户标识的报文上送到硬件阵列的报文接收模块时,报文接收模块对用户报文头进行逐层解析。报文接收模块不仅可以解析TCP/IP协议栈的标准七层报文头,还可以解析HIGIG、VLAN(Virtual Local Area Network,
虚拟局域网)以及根据需求在报文起始位置添加的任意长度的自定义报文头。本发明中报文接收模块接收到HIGIG报文后,对该协议报文的报文头进行逐层解析,从报文头中提取字段与报文接收模块内部的存储匹配子模块中的表项进行匹配。每一个表项表示一个用户标识与报文分类结果的对应关系。该对应关系需要预先配置,具体配置过程如下:
PCAM Entry1:term=higig,value=destport=1,style=1
PCAM Entry2:term=higig,value=destport=2,style=2
PCAM Entry3:term=higig,value=destport=3,style=3
上述提供3个用户标识与报文分类结果对应关系的配置示例,以第一个表项“PCAM Entry1:term=higig,value=destport=1,style=1
”为例阐述该表项含义。“PCAM Entry1”表示存储匹配子模块1的表项;“term=higig”表示可以处理的报文格式为HIGIG;“value=destport=1”表示对HIGIG报文头的destport字段为1的用户报文进行处理,即对用户1的报文进行处理;“style”表示报文的类型标记。本发明基于用户进行报文分类,因此,对3个用户的报文分类style分别标记为1、2、3,以下简称style1、style2以及style3。
当报文接收模块提取到HIGIG报文的端口标识字段时,若该字段与某一个存储匹配子模块中的预设表项匹配,则按照预先配置的用户标识与硬件队列的对应关系,将用户报文存储到对应的硬件阵列中。其中,用户标识与硬件队列的对应关系主要是指报文接收模块根据分类结果style为每一个用户预先分配的硬件调度模块的指针队列和CPU调度模块的缓存队列,具体配置过程如下。
style1:AURA=1,Group=1
style2:AURA=2,Group=2
style3:AURA=3,Group=3
上述指令是报文接收模块为3个用户配置的硬件队列,其中,AURA是硬件调度模块的指针队列标识,3个用户的AURA分别标记为1、2、3,以下简称AURA1、AURA2以及AURA3;Group是CPU调度模块的缓存队列标识,3个用户的Group分别标记为1、2、3,以下简称Group1、Group2以及Group3。
报文接收模块接收到用户报文后,根据用户标识向其对应的指针队列申请指针,例如,若接收到的报文为用户1的报文,则向硬件调度模块中的AURA1指针队列申请指针。若申请成功,则硬件调度模块将内存指针返回给报文接收模块,报文接收模块将用户报文保存到该指针指向的内存中,每一个内存指针对应一个用户报文。同时,报文接收模块将该指针发送给CPU调度模块,CPU调度模块根据报文接收模块的配置将内存指针保存到对应的Group中,例如,用户1的报文的内存指针送入CPU调度模块的Group1中进行缓存,以便在后续处理中将内存指针上送指定的CPU核进行处理。
接收到的用户报文具体由哪几个CPU核处理,是由预先配置的用户标识与CPU核的对应关系决定的,为每一个用户指定处理其报文的专用CPU核。对CPU核的具体配置过程如下。
Group1:cpu1、cpu2
Group2:cpu3、cpu4
Group3:cpu5、cpu6
上述指令为CPU调度模块为每一个Group配置的CPU核,例如,Group1为用户1的缓存队列,用户1的报文上送到cpu1和cpu2进行处理。用户报文上送CPU的过程具体为:CPU调度模块将Group1中的内存指针上送给cpu1或cpu2,cpu1或cpu2从内存中读取用户报文进行处理。
由于每一个用户对网络的使用情况不尽相同,为了最大限度提高报文处理效率,在配置用户标识与硬件队列的对应关系时,根据用户的数据流量设置对应硬件队列的长度。假设用户1的数据流量>用户2的数据流量>用户3的数据流量,则可以按照各个用户数据流量比例(假设为4:2:1)分配指针队列长度。
AURA1:4096
AURA2:2048
AURA3:1024
设置的指针队列长度越大,则为对应用户分配的存储空间越多,可以处理的数据量越多。通过合理配置,可最大程度发挥网络设备的报文处理能力。
本发明通过为每一个用户配置了专用的报文处理通道,避免由于某个用户报文过多,独占所有硬件资源,而使得其他用户无法正常接收报文进行处理。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (8)

1.一种报文处理方法,该方法应用于多核网络设备上,其特征在于,该方法包括:
在接收到用户报文后,从所述用户报文中提取用户标识,根据预先配置的用户标识与硬件队列的对应关系,将所述用户报文存储到对应的硬件队列中;
根据预先配置的用户标识与CPU核的对应关系,将所述用户标识对应的硬件队列中的用户报文发送给对应的CPU核进行处理。
2.如权利要求1所述的方法,其特征在于:
所述方法具体应用于所述多核网络设备中的网络业务引擎芯片上。
3.如权利要求1所述的方法,其特征在于:
所述用户报文为私有串行总线互联协议HIGIG报文;所述用户标识携带在所述HIGIG报文的模块标识字段或者端口标识字段。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
在配置用户标识与硬件队列的对应关系时,根据用户的数据流量大小设置所述用户对应的硬件队列长度。
5.一种报文处理装置,该装置应用于多核网络设备上,其特征在于,该装置包括:
报文存储单元,用于在接收到用户报文后,从所述用户报文中提取用户标识,根据预先配置的用户标识与硬件队列的对应关系,将所述用户报文存储到对应的硬件队列中;
报文处理单元,用于根据预先配置的用户标识与CPU核的对应关系,将所述用户标识对应的硬件队列中的用户报文发送给对应的CPU核进行处理。
6.如权利要求5所述的装置,其特征在于:
所述装置具体应用于所述多核网络设备中的网络业务引擎芯片上。
7.如权利要求5所述的装置,其特征在于:
所述用户报文为私有串行总线互联协议HIGIG报文;所述用户标识携带在所述HIGIG报文的模块标识字段或者端口标识字段。
8.如权利要求5所述的装置,其特征在于,所述装置还包括:队列配置单元,用于在配置用户标识与硬件队列的对应关系时,根据用户的数据流量大小设置所述用户对应的硬件队列长度。
CN201410393069.5A 2014-08-12 2014-08-12 报文处理方法及装置 Active CN104158764B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410393069.5A CN104158764B (zh) 2014-08-12 2014-08-12 报文处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410393069.5A CN104158764B (zh) 2014-08-12 2014-08-12 报文处理方法及装置

Publications (2)

Publication Number Publication Date
CN104158764A true CN104158764A (zh) 2014-11-19
CN104158764B CN104158764B (zh) 2018-02-06

Family

ID=51884172

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410393069.5A Active CN104158764B (zh) 2014-08-12 2014-08-12 报文处理方法及装置

Country Status (1)

Country Link
CN (1) CN104158764B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104468401A (zh) * 2014-11-20 2015-03-25 华为技术有限公司 一种报文处理方法和装置
CN105677484A (zh) * 2016-01-08 2016-06-15 国家计算机网络与信息安全管理中心 一种自动负载均衡的多核cpu实时数据处理方法
CN106789152A (zh) * 2016-11-17 2017-05-31 东软集团股份有限公司 基于多队列网卡的处理器扩展方法及装置
CN107315622A (zh) * 2017-06-19 2017-11-03 杭州迪普科技股份有限公司 一种缓存管理的方法及装置
WO2018000195A1 (zh) * 2016-06-28 2018-01-04 华为技术有限公司 一种报文传输方法、虚拟交换机及服务器
CN107888626A (zh) * 2017-12-25 2018-04-06 新华三信息安全技术有限公司 一种报文检测方法及装置
CN110677358A (zh) * 2019-09-25 2020-01-10 杭州迪普科技股份有限公司 一种报文处理方法及一种网络设备
CN111698175A (zh) * 2020-06-24 2020-09-22 北京经纬恒润科技有限公司 一种用于网关的报文收发方法及系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090006729A1 (en) * 2007-06-28 2009-01-01 Intel Corporation Cache for a multi thread and multi core system and methods thereof
CN101634974A (zh) * 2009-08-26 2010-01-27 成都市华为赛门铁克科技有限公司 一种多中断类型的处理方法、装置和系统
US20100241758A1 (en) * 2008-10-17 2010-09-23 John Oddie System and method for hardware accelerated multi-channel distributed content-based data routing and filtering
CN102148757A (zh) * 2011-01-31 2011-08-10 中兴通讯股份有限公司 一种多核系统报文分发方法及装置
CN102231126A (zh) * 2011-07-28 2011-11-02 大唐移动通信设备有限公司 一种实现多核处理器中核间备份的方法及系统
CN102460342A (zh) * 2009-06-26 2012-05-16 英特尔公司 用于在多处理器核心系统中执行节能的网络数据包处理的方法和装置
CN102546441A (zh) * 2012-02-29 2012-07-04 杭州华三通信技术有限公司 一种报文分流方法和网络设备
CN102713852A (zh) * 2012-02-01 2012-10-03 华为技术有限公司 一种多核处理器系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090006729A1 (en) * 2007-06-28 2009-01-01 Intel Corporation Cache for a multi thread and multi core system and methods thereof
US20100241758A1 (en) * 2008-10-17 2010-09-23 John Oddie System and method for hardware accelerated multi-channel distributed content-based data routing and filtering
CN102460342A (zh) * 2009-06-26 2012-05-16 英特尔公司 用于在多处理器核心系统中执行节能的网络数据包处理的方法和装置
CN101634974A (zh) * 2009-08-26 2010-01-27 成都市华为赛门铁克科技有限公司 一种多中断类型的处理方法、装置和系统
CN102148757A (zh) * 2011-01-31 2011-08-10 中兴通讯股份有限公司 一种多核系统报文分发方法及装置
CN102231126A (zh) * 2011-07-28 2011-11-02 大唐移动通信设备有限公司 一种实现多核处理器中核间备份的方法及系统
CN102713852A (zh) * 2012-02-01 2012-10-03 华为技术有限公司 一种多核处理器系统
CN102546441A (zh) * 2012-02-29 2012-07-04 杭州华三通信技术有限公司 一种报文分流方法和网络设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
申建芳: "基于区分服务的自适应跨层调度算法", 《计算机工程》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104468401A (zh) * 2014-11-20 2015-03-25 华为技术有限公司 一种报文处理方法和装置
CN104468401B (zh) * 2014-11-20 2017-11-17 华为技术有限公司 一种报文处理方法和装置
CN105677484A (zh) * 2016-01-08 2016-06-15 国家计算机网络与信息安全管理中心 一种自动负载均衡的多核cpu实时数据处理方法
WO2018000195A1 (zh) * 2016-06-28 2018-01-04 华为技术有限公司 一种报文传输方法、虚拟交换机及服务器
CN106789152A (zh) * 2016-11-17 2017-05-31 东软集团股份有限公司 基于多队列网卡的处理器扩展方法及装置
CN107315622A (zh) * 2017-06-19 2017-11-03 杭州迪普科技股份有限公司 一种缓存管理的方法及装置
CN107315622B (zh) * 2017-06-19 2020-05-12 杭州迪普科技股份有限公司 一种缓存管理的方法及装置
CN107888626A (zh) * 2017-12-25 2018-04-06 新华三信息安全技术有限公司 一种报文检测方法及装置
CN107888626B (zh) * 2017-12-25 2020-11-06 新华三信息安全技术有限公司 一种报文检测方法及装置
CN110677358A (zh) * 2019-09-25 2020-01-10 杭州迪普科技股份有限公司 一种报文处理方法及一种网络设备
CN111698175A (zh) * 2020-06-24 2020-09-22 北京经纬恒润科技有限公司 一种用于网关的报文收发方法及系统
CN111698175B (zh) * 2020-06-24 2023-09-19 北京经纬恒润科技股份有限公司 一种用于网关的报文收发方法及系统

Also Published As

Publication number Publication date
CN104158764B (zh) 2018-02-06

Similar Documents

Publication Publication Date Title
CN104158764A (zh) 报文处理方法及装置
CN112217746B (zh) 云计算系统中报文处理的方法、主机和系统
TWI430102B (zh) 網路卡資源配置方法、儲存媒體、及電腦
US20180167268A1 (en) Reconfigurable server
US9143467B2 (en) Network interface controller with circular receive buffer
EP3343881A1 (en) Packet processing method in cloud computing system, host, and system
KR102427550B1 (ko) 재구성 가능한 멀티 포트들을 구비한 PCIe 스토리지 시스템을 위한 서비스 품질을 인식하는 입출력 관리
EP3206339A1 (en) Network card configuration method and resource management center
US20140129741A1 (en) Pci-express device serving multiple hosts
US10341264B2 (en) Technologies for scalable packet reception and transmission
WO2016041375A1 (zh) 一种cpu与芯片之间传输消息报文的方法及装置
JP2007158870A (ja) 仮想計算機システム及びそのネットワーク通信方法
US9086900B2 (en) Data flow affinity for heterogenous virtual machines
WO2014082562A1 (en) Method, device, and system for information processing based on distributed buses
CN105049464B (zh) 用于加速网络虚拟化的技术
US10534737B2 (en) Accelerating distributed stream processing
US10616116B1 (en) Network traffic load balancing using rotating hash
JP7098711B2 (ja) 遠隔ノード発見、ならびに通信チャネル確認および通信チャネル接続のためのプロセッサによって実施される方法、コンピュータ・システム、およびコンピュータ・プログラム
US10623521B2 (en) Distribution of messages to queues in a distributed computing environment
US8799519B2 (en) Network-to-network bridge
WO2018057165A1 (en) Technologies for dynamically transitioning network traffic host buffer queues
CN105939242B (zh) 实现虚拟系统的方法及装置
US9258273B2 (en) Duplicating packets efficiently within a network security appliance
CN111240845A (zh) 一种数据处理方法、装置和存储介质
EP4451126A1 (en) Techniques for cooperative host/guest networking

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Applicant after: Xinhua three Technology Co., Ltd.

Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Applicant before: Huasan Communication Technology Co., Ltd.

CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Wu Fan

Inventor after: Fan Lulu

Inventor after: Wang Shupeng

Inventor before: Wu Fan

Inventor before: Fan Lu

Inventor before: Wang Shupeng

GR01 Patent grant
GR01 Patent grant