CN105227493A - 多核平台下提高数据报文转发性能的方法 - Google Patents
多核平台下提高数据报文转发性能的方法 Download PDFInfo
- Publication number
- CN105227493A CN105227493A CN201510666467.4A CN201510666467A CN105227493A CN 105227493 A CN105227493 A CN 105227493A CN 201510666467 A CN201510666467 A CN 201510666467A CN 105227493 A CN105227493 A CN 105227493A
- Authority
- CN
- China
- Prior art keywords
- fast
- forwarding
- data message
- forwarding table
- core platform
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种多核平台下提高数据报文转发性能的方法,包括:在数据报文的第一次转发处理过程中创建一个囊括所有转发元素的快速转发表;后续进行的数据转发,通过查找所述快速转发表来进行。本发明的多核平台下提高数据报文转发性能的方法,无需花费更多的成本去更换更高效的硬件平台,仅通过算法上的处理即可提升数据报文的转发性能,实用性强。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种多核平台下提高数据报文转发性能的方法。
背景技术
数据报文的转发性能是产品竞争时的一个非常重要的指标,通过提升数据报文的转发性能可以有效提升产品的竞争力。
现有技术中,数通产品为了提高数据报文的转发性能,如吞吐量,会采用包含多个内核的多核平台。但是,多核平台存在以下缺陷:
1)需要加锁防止并发;
2)板卡能集合的核数有限制。
因此,如何在多核平台的基础上再提升数据报文的转发性能以达到运营商或厂家的要求,则成为当前亟待解决的问题。
现有技术中,通过以下方式来多核平台下数据报文的转发性能:
1)直接更换更高效的核数更多的硬件平台
这种方法虽然可以直接地提高数据报文的转发性能,但却极大地提高成本预算,实用性较差。
2)通过堆加板卡数量来弥补单个板卡在数据转发性能上的不足
但是,该方法需要处理多块板卡之间的数据同步问题,即要解决类似分布式系统的问题,从而增加了更多的人力成本和资源成本。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种多核平台下提高数据报文转发性能的方法,无需花费更多的成本去更换更高效的硬件平台,仅通过算法上的处理即可提升数据报文的转发性能,实用性强。
为实现上述目的及其他相关目的,本发明提供一种多核平台下提高数据报文转发性能的方法包括:1)在数据报文的第一次转发处理过程中创建一个囊括所有转发元素的快速转发表;2)后续进行的数据转发,通过查找所述快速转发表来进行。
根据上述的多核平台下提高数据报文转发性能的方法,其中:通过在Linux内核的HOOK点上注册快速转发表的处理函数来创建快速转发表。
根据上述的多核平台下提高数据报文转发性能的方法,其中:所述快速转发表是由数据报文的源IP、目的IP、源端口、目的端口和协议通过自由组合的方式生成关键字来创建的。
根据上述的多核平台下提高数据报文转发性能的方法,其中:将所述快速转发表的创建注册到数据转发的普通处理流程所需要经过的链路上之后,只要开启了快速转发处理功能,则数据报文在第一次转发时就会创建快速转发表。
根据上述的多核平台下提高数据报文转发性能的方法,其中:创建的所述快速转发表存储在多核平台的共享内存中。
进一步地,根据上述的多核平台下提高数据报文转发性能的方法,其中:每个内核需要应用快速转发表的时候,需要先拷贝一份快速转发表到当前内核所独有的队列中。
根据上述的多核平台下提高数据报文转发性能的方法,其中:一次数据报文转发的流程包括以下步骤:
步骤S1、接收数据报文;
步骤S2、判断是否开启了数据报文的快速转发处理功能;若否,按照普通流程进行数据报文转发;若是,转入步骤S3;
步骤S3、判断当前内核的私有内存中是否包含快速转发表;若是,直接使用快速转发表进行数据报文的转发;若否,转入步骤S4;
步骤S4、判断多核平台的共享内存中是否包含快速转发表;若是,将共享内存中的快速转发表拷贝到当前内核中,并使用快速转发表进行数据报文的转发;若否,转入步骤S5;
步骤S5、判断多核平台的共享内存中是否包含未完成的快速转发表;若是,完善快速转发表,转入步骤S4;若否,转入步骤S6;
步骤S6、在多核平台的共享内存中创建未完成的快速转发表,转入步骤S5。
如上所述,本发明的多核平台下提高数据报文转发性能的方法,具有以下有益效果:
(1)数据报文在第一次转发处理过程中创建一个囊括所有转发元素的快速转发表,后续的转发只需要查找该快速转发表即可;
(2)根据数据报文的五元组,即源IP、目的IP、源端口、目的端口和协议,自由组合成关键字创建数据报文转发时的快速转发表;
(3)利用Linux内核的HOOK思想,把快速转发表的创建注册到普通处理流程所需要经过的链路上;只要开启了快速转发处理,则数据报文在第一次转发时就会创建快速转发表;
(4)利用多核处理机制,快速转发表创建时存储在一个共享内存中,但每个内核应用的时候先拷贝一份到当前内核所独有的队列中,使得每个内核在转发快速查找转发表时不需要加锁,以提高处理效率。
附图说明
图1显示为Linux的每一层协议的五个HOOK点及注册处理函数;
图2显示为多核数据存储模型的结构示意图;
图3显示为本发明的多核平台下提高数据报文转发性能的方法的一个实施例的流程图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
参照图1,本发明的多核平台下提高数据报文转发性能的方法包括:
1)在数据报文的第一次转发处理过程中创建一个囊括所有转发元素的快速转发表。
具体地,通过在Linux内核的HOOK点上注册快速转发表的处理函数来创建快速转发表,从而无需修改Linux内核代码即可添加创建快速转发表的功能。具体地,Linux的每一层协议的五个HOOK点及注册处理函数如图1所示。
其中,快速转发表是由数据报文的源IP、目的IP、源端口、目的端口和协议通过自由组合的方式生成关键字来创建的。
具体地,利用Linux内核的HOOK思想,将快速转发表的创建注册到数据转发的普通处理流程所需要经过的链路上之后,只要开启了快速转发处理功能,则数据报文在第一次转发时就会创建快速转发表。
如图2所示,在多核平台上,利用多核处理机制,将创建的快速转发表存储在一个共享内存中,但每个内核需要应用快速转发表的时候,需要先拷贝一份快速转发表到当前内核所独有的队列中,使得每个内核在转发快速查找转发表时不需要加锁,从而提高处理效率。
2)后续进行的数据转发,通过查找该快速转发表来进行。
如图3所示,在本发明的一个优选实施例中,多核平台下提高数据报文转发性能的方法包括以下步骤:
步骤S1、接收数据报文。
具体地,当前内核接收需要转发的数据报文。
步骤S2、判断是否开启了数据报文的快速转发处理功能;若否,按照普通流程进行数据报文转发;若是,转入步骤S3。
具体地,若当前内核开启了数据报文的快速转发功能,则进行快速转发;否则的话,按照数据转发的普通流程进程常规的数据报文转发。
步骤S3、判断当前内核的私有内存中是否包含快速转发表;若是,直接使用快速转发表进行数据报文的转发;若否,转入步骤S4。
步骤S4、判断多核平台的共享内存中是否包含快速转发表;若是,将共享内存中的快速转发表拷贝到当前内核中,并使用快速转发表进行数据报文的转发;若否,转入步骤S5。
步骤S5、判断多核平台的共享内存中是否包含未完成的快速转发表;若是,完善快速转发表,转入步骤S4;若否,转入步骤S6。
步骤S6、在多核平台的共享内存中创建未完成的快速转发表,转入步骤S5。
综上所述,本发明的多核平台下提高数据报文转发性能的方法中,数据报文在第一次转发处理过程中创建一个囊括所有转发元素的快速转发表,后续的转发只需要查找该快速转发表即可;根据数据报文的五元组,自由组合成关键字创建数据报文转发时的快速转发表;利用Linux内核的HOOK思想,把快速转发表的创建注册到普通处理流程所需要经过的链路上;只要开启了快速转发处理,则数据报文在第一次转发时就会创建快速转发表;利用多核处理机制,快速转发表创建时存储在一个共享内存中,但每个内核应用的时候先拷贝一份到当前内核所独有的队列中,使得每个内核在转发快速查找转发表时不需要加锁,以提高处理效率。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (7)
1.一种多核平台下提高数据报文转发性能的方法,其特征在于:包括:
1)在数据报文的第一次转发处理过程中创建一个囊括所有转发元素的快速转发表;
2)后续进行的数据转发,通过查找所述快速转发表来进行。
2.根据权利要求1所述的多核平台下提高数据报文转发性能的方法,其特征在于:通过在Linux内核的HOOK点上注册快速转发表的处理函数来创建快速转发表。
3.根据权利要求1所述的多核平台下提高数据报文转发性能的方法,其特征在于:所述快速转发表是由数据报文的源IP、目的IP、源端口、目的端口和协议通过自由组合的方式生成关键字来创建的。
4.根据权利要求1所述的多核平台下提高数据报文转发性能的方法,其特征在于:将所述快速转发表的创建注册到数据转发的普通处理流程所需要经过的链路上之后,只要开启了快速转发处理功能,则数据报文在第一次转发时就会创建快速转发表。
5.根据权利要求1所述的多核平台下提高数据报文转发性能的方法,其特征在于:创建的所述快速转发表存储在多核平台的共享内存中。
6.根据权利要求5所述的多核平台下提高数据报文转发性能的方法,其特征在于:每个内核需要应用快速转发表的时候,需要先拷贝一份快速转发表到当前内核所独有的队列中。
7.根据权利要求1所述的多核平台下提高数据报文转发性能的方法,其特征在于:一次数据报文转发的流程包括以下步骤:
步骤S1、接收数据报文;
步骤S2、判断是否开启了数据报文的快速转发处理功能;若否,按照普通流程进行数据报文转发;若是,转入步骤S3;
步骤S3、判断当前内核的私有内存中是否包含快速转发表;若是,直接使用快速转发表进行数据报文的转发;若否,转入步骤S4;
步骤S4、判断多核平台的共享内存中是否包含快速转发表;若是,将共享内存中的快速转发表拷贝到当前内核中,并使用快速转发表进行数据报文的转发;若否,转入步骤S5;
步骤S5、判断多核平台的共享内存中是否包含未完成的快速转发表;若是,完善快速转发表,转入步骤S4;若否,转入步骤S6;
步骤S6、在多核平台的共享内存中创建未完成的快速转发表,转入步骤S5。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510666467.4A CN105227493A (zh) | 2015-10-15 | 2015-10-15 | 多核平台下提高数据报文转发性能的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510666467.4A CN105227493A (zh) | 2015-10-15 | 2015-10-15 | 多核平台下提高数据报文转发性能的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105227493A true CN105227493A (zh) | 2016-01-06 |
Family
ID=54996189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510666467.4A Pending CN105227493A (zh) | 2015-10-15 | 2015-10-15 | 多核平台下提高数据报文转发性能的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105227493A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107682267A (zh) * | 2017-09-21 | 2018-02-09 | 烽火通信科技股份有限公司 | Linux设备的网络数据转发方法及系统 |
CN109309663A (zh) * | 2018-08-13 | 2019-02-05 | 厦门集微科技有限公司 | 云计算环境下实现docker网络穿透两层协议栈的方法及装置 |
CN111131046A (zh) * | 2019-12-16 | 2020-05-08 | 东软集团股份有限公司 | 报文转发方法和多核系统 |
CN113839889A (zh) * | 2021-09-18 | 2021-12-24 | 深圳震有科技股份有限公司 | 一种报文处理方法、终端及计算机可读存储介质 |
CN114006859A (zh) * | 2021-09-18 | 2022-02-01 | 深圳震有科技股份有限公司 | 一种报文转发方法、终端及计算机可读存储介质 |
CN115883440A (zh) * | 2021-09-27 | 2023-03-31 | 成都鼎桥通信技术有限公司 | 数据处理方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102081603A (zh) * | 2009-11-27 | 2011-06-01 | 上海博达数据通信有限公司 | 一种在多核环境下的arp查询优化的方法 |
CN102752198A (zh) * | 2012-06-21 | 2012-10-24 | 北京星网锐捷网络技术有限公司 | 多核报文转发方法、多核处理器及网络设备 |
CN102868635A (zh) * | 2012-08-24 | 2013-01-09 | 汉柏科技有限公司 | 多核多线程的报文保序方法及系统 |
CN104199800A (zh) * | 2014-07-21 | 2014-12-10 | 上海寰创通信科技股份有限公司 | 一种解决多核系统中表项互斥的方法 |
CN104965810A (zh) * | 2015-05-08 | 2015-10-07 | 国家计算机网络与信息安全管理中心 | 多核模式下快速处理数据报文的方法及装置 |
-
2015
- 2015-10-15 CN CN201510666467.4A patent/CN105227493A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102081603A (zh) * | 2009-11-27 | 2011-06-01 | 上海博达数据通信有限公司 | 一种在多核环境下的arp查询优化的方法 |
CN102752198A (zh) * | 2012-06-21 | 2012-10-24 | 北京星网锐捷网络技术有限公司 | 多核报文转发方法、多核处理器及网络设备 |
CN102868635A (zh) * | 2012-08-24 | 2013-01-09 | 汉柏科技有限公司 | 多核多线程的报文保序方法及系统 |
CN104199800A (zh) * | 2014-07-21 | 2014-12-10 | 上海寰创通信科技股份有限公司 | 一种解决多核系统中表项互斥的方法 |
CN104965810A (zh) * | 2015-05-08 | 2015-10-07 | 国家计算机网络与信息安全管理中心 | 多核模式下快速处理数据报文的方法及装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107682267A (zh) * | 2017-09-21 | 2018-02-09 | 烽火通信科技股份有限公司 | Linux设备的网络数据转发方法及系统 |
CN107682267B (zh) * | 2017-09-21 | 2020-04-28 | 烽火通信科技股份有限公司 | Linux设备的网络数据转发方法及系统 |
CN109309663A (zh) * | 2018-08-13 | 2019-02-05 | 厦门集微科技有限公司 | 云计算环境下实现docker网络穿透两层协议栈的方法及装置 |
CN109309663B (zh) * | 2018-08-13 | 2021-03-19 | 厦门集微科技有限公司 | 云计算环境下实现docker网络穿透两层协议栈的方法及装置 |
CN111131046A (zh) * | 2019-12-16 | 2020-05-08 | 东软集团股份有限公司 | 报文转发方法和多核系统 |
CN113839889A (zh) * | 2021-09-18 | 2021-12-24 | 深圳震有科技股份有限公司 | 一种报文处理方法、终端及计算机可读存储介质 |
CN114006859A (zh) * | 2021-09-18 | 2022-02-01 | 深圳震有科技股份有限公司 | 一种报文转发方法、终端及计算机可读存储介质 |
CN113839889B (zh) * | 2021-09-18 | 2024-04-05 | 深圳震有科技股份有限公司 | 一种报文处理方法、终端及计算机可读存储介质 |
CN115883440A (zh) * | 2021-09-27 | 2023-03-31 | 成都鼎桥通信技术有限公司 | 数据处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105227493A (zh) | 多核平台下提高数据报文转发性能的方法 | |
CN111382174B (zh) | 多方数据联合查询方法、装置、服务器和存储介质 | |
EP3267310A1 (en) | Data processing method and device | |
CN108667859A (zh) | 一种实现资源调度的方法及装置 | |
US20170078409A1 (en) | Systems and methods for decentralized service placement in a resource pool | |
CN106534338A (zh) | 一种云机器人系统及实现方法 | |
CN103995748B (zh) | 智能终端的任务处理方法及系统 | |
US20190196875A1 (en) | Method, system and computer program product for processing computing task | |
CN107710200A (zh) | 用于并行化smp数据库中的基于散列的运算符的系统和方法 | |
US11363093B2 (en) | Multi-stage pipelining for distributed graph processing | |
US20230071561A1 (en) | Wireless communication method and apparatus, device, storage medium, and computer program product | |
CN106534281A (zh) | 一种数据请求的响应方法、装置及系统 | |
US20140229933A1 (en) | Virtual machine discovery and identification | |
CN108563697A (zh) | 一种数据处理方法、装置和存储介质 | |
EP3572995A1 (en) | Case management by a state machine | |
CN111736982B (zh) | 一种5g数据转发平面的数据转发处理方法和服务器 | |
CN108351798A (zh) | 用于虚拟机的可扩展寻址机制 | |
US20150195140A1 (en) | Apparatus and method for sharing data by using topology | |
CN113168333A (zh) | 受协调设备环境的工作流配置 | |
US8694618B2 (en) | Maximizing data transfer through multiple network devices | |
CN103634385A (zh) | 一种数据同步系统、方法及服务器 | |
US9503420B2 (en) | Logical network separation method and apparatus | |
CN108520481A (zh) | 户型引用以及户型划区的方法、装置和计算机存储介质 | |
CN111831425B (zh) | 一种数据处理方法、装置及设备 | |
CN107172139A (zh) | 一种无线协议栈及其实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160106 |
|
RJ01 | Rejection of invention patent application after publication |