多核平台下提高数据报文转发性能的方法
【技术领域】
[0001]本发明涉及通信技术领域,特别是涉及一种多核平台下提高数据报文转发性能的方法。
【背景技术】
[0002]数据报文的转发性能是产品竞争时的一个非常重要的指标,通过提升数据报文的转发性能可以有效提升产品的竞争力。
[0003]现有技术中,数通产品为了提高数据报文的转发性能,如吞吐量,会采用包含多个内核的多核平台。但是,多核平台存在以下缺陷:
[0004]I)需要加锁防止并发;
[0005]2)板卡能集合的核数有限制。
[0006]因此,如何在多核平台的基础上再提升数据报文的转发性能以达到运营商或厂家的要求,则成为当前亟待解决的问题。
[0007]现有技术中,通过以下方式来多核平台下数据报文的转发性能:
[0008]I)直接更换更高效的核数更多的硬件平台
[0009]这种方法虽然可以直接地提高数据报文的转发性能,但却极大地提高成本预算,实用性较差。
[0010]2)通过堆加板卡数量来弥补单个板卡在数据转发性能上的不足
[0011]但是,该方法需要处理多块板卡之间的数据同步问题,即要解决类似分布式系统的问题,从而增加了更多的人力成本和资源成本。
【发明内容】
[0012]鉴于以上所述现有技术的缺点,本发明的目的在于提供一种多核平台下提高数据报文转发性能的方法,无需花费更多的成本去更换更高效的硬件平台,仅通过算法上的处理即可提升数据报文的转发性能,实用性强。
[0013]为实现上述目的及其他相关目的,本发明提供一种多核平台下提高数据报文转发性能的方法包括:1)在数据报文的第一次转发处理过程中创建一个囊括所有转发元素的快速转发表;2)后续进行的数据转发,通过查找所述快速转发表来进行。
[0014]根据上述的多核平台下提高数据报文转发性能的方法,其中:通过在Linux内核的HOOK点上注册快速转发表的处理函数来创建快速转发表。
[0015]根据上述的多核平台下提高数据报文转发性能的方法,其中:所述快速转发表是由数据报文的源IP、目的IP、源端口、目的端口和协议通过自由组合的方式生成关键字来创建的。
[0016]根据上述的多核平台下提高数据报文转发性能的方法,其中:将所述快速转发表的创建注册到数据转发的普通处理流程所需要经过的链路上之后,只要开启了快速转发处理功能,则数据报文在第一次转发时就会创建快速转发表。
[0017]根据上述的多核平台下提高数据报文转发性能的方法,其中:创建的所述快速转发表存储在多核平台的共享内存中。
[0018]进一步地,根据上述的多核平台下提高数据报文转发性能的方法,其中:每个内核需要应用快速转发表的时候,需要先拷贝一份快速转发表到当前内核所独有的队列中。
[0019]根据上述的多核平台下提高数据报文转发性能的方法,其中:一次数据报文转发的流程包括以下步骤:
[0020]步骤S1、接收数据报文;
[0021]步骤S2、判断是否开启了数据报文的快速转发处理功能;若否,按照普通流程进行数据报文转发;若是,转入步骤S3 ;
[0022]步骤S3、判断当前内核的私有内存中是否包含快速转发表;若是,直接使用快速转发表进行数据报文的转发;若否,转入步骤S4 ;
[0023]步骤S4、判断多核平台的共享内存中是否包含快速转发表;若是,将共享内存中的快速转发表拷贝到当前内核中,并使用快速转发表进行数据报文的转发;若否,转入步骤S5 ;
[0024]步骤S5、判断多核平台的共享内存中是否包含未完成的快速转发表;若是,完善快速转发表,转入步骤S4 ;若否,转入步骤S6 ;
[0025]步骤S6、在多核平台的共享内存中创建未完成的快速转发表,转入步骤S5。
[0026]如上所述,本发明的多核平台下提高数据报文转发性能的方法,具有以下有益效果:
[0027](I)数据报文在第一次转发处理过程中创建一个囊括所有转发元素的快速转发表,后续的转发只需要查找该快速转发表即可;
[0028](2)根据数据报文的五元组,即源IP、目的IP、源端口、目的端口和协议,自由组合成关键字创建数据报文转发时的快速转发表;
[0029](3)利用Linux内核的HOOK思想,把快速转发表的创建注册到普通处理流程所需要经过的链路上;只要开启了快速转发处理,则数据报文在第一次转发时就会创建快速转发表;
[0030](4)利用多核处理机制,快速转发表创建时存储在一个共享内存中,但每个内核应用的时候先拷贝一份到当前内核所独有的队列中,使得每个内核在转发快速查找转发表时不需要加锁,以提高处理效率。
【附图说明】
[0031]图1显示为Linux的每一层协议的五个HOOK点及注册处理函数;
[0032]图2显示为多核数据存储模型的结构示意图;
[0033]图3显示为本发明的多核平台下提高数据报文转发性能的方法的一个实施例的流程图。
【具体实施方式】
[0034]以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的【具体实施方式】加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
[0035]需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0036]参照图1,本发明的多核平台下提高数据报文转发性能的方法包括:
[0037]I)在数据报文的第一次转发处理过程中创建一个囊括所有转发元素的快速转发表。
[0038]具体地,通过在Linux内核的HOOK点上注册快速转发表的处理函数来创建快速转发表,从而无需修改Linux内核代码即可