CN109714269B - 一种数据处理方法及网络设备 - Google Patents
一种数据处理方法及网络设备 Download PDFInfo
- Publication number
- CN109714269B CN109714269B CN201811557937.3A CN201811557937A CN109714269B CN 109714269 B CN109714269 B CN 109714269B CN 201811557937 A CN201811557937 A CN 201811557937A CN 109714269 B CN109714269 B CN 109714269B
- Authority
- CN
- China
- Prior art keywords
- forwarding
- card
- core
- cross
- cores
- 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.)
- Active
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明的实施例提供一种数据处理方法及网络设备,涉及通信领域,以解决现有的包含多转发核的转发卡在基于多跨卡交换单元进行跨卡数据转发时,跨卡交换单元所存在的负载不均衡的问题。该方法应用于网络设备,该网络设备中的转发卡连接至少两个跨卡交换单元,该方法包括:获取所述转发卡的多个转发核中每个转发核的目标值,该目标值用于表征转发卡所处理的数据流在该转发核上的分布情况,根据该目标值,从至少两个跨卡交换单元中,确定出多个转发核中每个数据流对应的目标跨卡交换单元;分别将每个数据流分别发送至对应的目标跨卡交换单元。
Description
技术领域
本发明涉及通信领域,尤其涉及一种数据处理方法及网络设备。
背景技术
目前,大部分网络设备(例如,路由器)中设置有多张转发卡,转发卡之间的数据转发依赖于网络设备中的跨卡交换单元,源端转发卡可以将需要发送的数据通过跨卡转发单元发送至目的端转发卡。
为了避免所有转发卡的数据流都通过一个跨卡转发单元来进行转发,现有的网络设备会对转发卡中的数据流进行负载均衡。具体的,针对转发卡1来说,首先,现有的网络设备会将所有的数据流均匀的分配到该转发卡的多个队列中,然后,将所有队列均匀的分配到转发卡1中的多个转发核中,使得该转发卡1中的每个转发核所处理的数据流比较均匀,进一步的,网络设备会为每个转发核分配相应的跨卡转发单元,从而使得每个跨卡转发单元对应的转发核的数量尽量相同,进而使得每个跨卡转发单元负载的数据流比较均衡。
然而,由于现有的转发卡中转发核的数据与队列的数量、以及转发核的数量与该转发卡对应的跨卡转发单元的数量之间不均衡,从而导致转发卡中的数据流无法均匀的负载到跨卡交换单元上。例如,以包含17个队列、4个转发核的转发卡1为例,网络设备会将队列依次循环分配给4个转发核,最终,会使得其中一个转发核会比其他转发核多分配一个队列,从而使得每个转发核处理数据不均衡。同时,如果转发卡1对应的跨卡转发单元的数量不能被4除尽,此时,就算每个转发核处理的队列数量均匀,也会导致每个跨卡转发单元负载的数据流不均衡。
发明内容
本发明的实施例提供一种数据处理方法及网络设备,以解决现有的包含多转发核的转发卡在基于多跨卡交换单元进行跨卡数据转发时,跨卡交换单元所存在的负载不均衡的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供一种数据处理方法,应用于网络设备,所述网络设备中包括至少一个转发卡以及与所述转发卡连接的至少两个跨卡交换单元,所述方法包括:
获取所述转发卡的多个转发核中每个转发核的目标值,该目标值用于表征所述转发卡所处理的数据流在所述转发核上的分布情况;
根据所述目标值,从所述至少两个跨卡交换单元中,确定出所述多个转发核中每个数据流对应的目标跨卡交换单元;
分别将所述每个数据流发送至对应的目标跨卡交换单元。
可选的,根据所述目标值,从所述至少两个跨卡交换单元中,确定出所述多个转发核中每个数据流对应的目标跨卡交换单元,包括:
遍历所述多个转发核;
所述遍历所述多个转发核,包括:
若当前遍历的转发核的目标值大于或等于预定阈值,则将所述当前遍历的转发核对应的跨卡交换单元,作为所述当前遍历的转发核中所有数据流对应的目标跨卡交换单元;
若所述当前遍历的转发核的目标值小于所述预定阈值,则根据所述当前遍历的转发核中每个数据流的数据标识,确定出每个数据流对应的目标跨卡交换单元。
可选的,所述获取所述转发卡的多个转发核中每个转发核的目标值,包括:
获取所述转发卡的多个转发核中每个转发核的数据参数,所述数据参数包括所述每个转发核在预定监测周期内处理的数据流的数量;
根据所述数据流的数量以及所述转发卡中转发核的数量,计算出所述每个转发核的目标值。
可选的,所述根据所述数据流的数量以及所述转发卡中转发核的数量,计算出所述每个转发核的目标值,包括:
根据所述数据流的数量、所述转发卡中转发核的数量以及预定公式,计算出所述每个转发核的目标值;
可选的,所述预定阈值是基于所述转发卡中需要进行负载均衡的转发核的数量确定的。
第二方面,本发明实施例提供一种网络设备,所述网络设备包括至少一个转发卡以及与所述转发卡连接的至少两个跨卡交换单元,所述网络设备包括:
获取模块,用于获取所述转发卡的多个转发核中每个转发核的目标值,该目标值用于表征所述转发卡所处理的数据流在所述转发核上的分布情况;
确定模块,用于根据所述获取模块获取的所述目标值,从所述至少两个跨卡交换单元中,确定出所述多个转发核中每个数据流对应的目标跨卡交换单元;
发送模块,用于分别将所述每个数据流发送至对应的目标跨卡交换单元。
可选的,所述确定模块具体用于:
遍历所述多个转发核;
所述遍历所述多个转发核,包括:
若当前遍历的转发核的目标值大于或等于预定阈值,则将所述当前遍历的转发核对应的跨卡交换单元,作为所述当前遍历的转发核中所有数据流对应的目标跨卡交换单元;
若所述当前遍历的转发核的目标值小于所述预定阈值,则根据所述当前遍历的转发核中每个数据流的数据标识,确定出每个数据流对应的目标跨卡交换单元。
可选的,所述获取模块具体用于:
获取所述转发卡的多个转发核中每个转发核的数据参数,所述数据参数包括所述每个转发核在预定监测周期内处理的数据流的数量;
根据所述数据流的数量以及所述转发卡中转发核的数量,计算出所述每个转发核的目标值。
可选的,所述获取模块具体用于:
根据所述数据流的数量、所述转发卡中转发核的数量以及预定公式,计算出所述每个转发核的目标值;
可选的,所述预定阈值是基于所述转发卡中需要进行负载均衡的转发核的数量确定的。
本发明实施例提供的数据处理方法及网络设备,通过获取网络设备中的转发卡的多个转发核中每个转发核的目标值,由于每个转发核的目标值用于表征该转发卡所处理的数据流在该转发核上的分布情况,从而可以基于每个转发核上数据流的分布情况,从该转发卡对应的至少两个跨卡交换单元中,确定出多个转发核中每个数据流对应的目标跨卡交换单元,然后,分别将每个数据流发送至对应的目标跨卡交换单元,从而能够将该转发卡所处理的数据流均衡的负载到每个跨卡交换单元上。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有的数据处理流程示意图;
图2为本发明实施例提供的数据处理方法的流程示意图;
图3为本发明实施例提供的网络设备的结构示意图之一;
图4为本发明实施例提供的网络设备的结构示意图之二。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本文中的“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
需要说明的是,本发明实施例所提及的“多个”是指两个或多于两个。
需要说明的是,本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能或作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。
本发明实施例提供的数据处理方法的执行主体可以为网络设备,也可以为该网络设备中的中央处理器(Central Processing Unit,CPU)或者可以为该网络设备中的控制单元或者功能模块或者为该网络设备中的转发卡中的控制转发核(通常为转发核0),本发明对此不做限定。示例性的,本发明实施例中的网络设备中包含有多个转发卡以及多个跨卡交换单元,每个转发卡对应至少一个跨卡交换单元,每个转发卡中包含多个队列和多个转发核。
在现有技术中,以网络设备中的转发卡1为例,网络设备主要通过以下流程来将转发卡1中的数据流均衡的负载到多个跨卡交换单元上。
流程1:转发卡1的物理接口接收到数据。
流程2:网络设备根据该数据的数据内容,计算出该数据对应的五元组HASH值(即五元组HASH或者其他能够识别一条数据流的HASH值)。上述的五元组指:源地址、目标地址、源端口、目标端口和IP协议。
流程3:网络设备将数据归入相应的队列(即基于该数据对应的五元组HASH值,计算出对应的队列号,确定出该数据需要归入哪个队列)。例如,如果有16个队列,则可能选择数据的五元组HASH值的后4bit作为队列索引,当然数据入哪个队列也是可以设置或者指定的,但均是将同一条数据流的数据分配到同一个队列处理。
流程4:转发卡1中的转发核从相应队列中取出数据处理。其中,一个队列只被一个转发核处理。然而,一般情况下,队列的数量要比转发核的数量多,因此,大多数情况下,会将队列遍历分配给转发核处理,例如对于有16个队列3个转发核的转发卡,队列1、2、3依次分配给转发核1、2、3,队列4、5、6依然分配给转发核1、2、3,以此类推,直到将所有的队列依次分配给所有的转发核,但是所有队列并不能均分到所有转发核,转发核1会多分一个队列。
流程5:转发卡1中的转发核会从对应的队列中获取数据并进行简单处理,例如对数据进行错误校验,判断数据是否合法,是否有缺失等等。
流程6:解析数据并进行输入控制和选路(以路由器设备为例)。
流程7:选路后,得到数据的出接口并判断出接口是否在本转发卡,如果出接口在本转发卡,则直接将数据从物理接口发送出去。
流程8:出接口不在本转发卡,则对数据进行必要的跨卡封装后(封装数据需要发送到的目的端转发卡信息)交给跨卡发送模块。
流程9:网络设备中的跨卡发送模块判断该网络设备有多个跨卡交换单元,且本转发卡和出接口所在转发卡连接每个跨卡交换单元的跨卡链路均可用,则根据数据所在的转发核的核号进行HASH,选择出数据需要发送的跨卡交换单元。例如有2个跨卡交换单元,则将转发核号与0x1做逻辑与(coreId&0x1)的结果作为选择跨卡交换单元的HASH索引,结果0表示选择跨卡交换单元1,1表示选择跨卡交换单元2。
流程10:将数据通过对应的跨卡链路发送至根据转发核号HASH索引到的或者直接指定的跨卡交换单元。
流程11:跨卡交换单元根据数据中封装的信息将数据发送至目的端转发卡。
流程12:跨卡发送模块判断本转发卡与发送目的端转发卡之间只有一条跨卡链路可用,则无需进行HASH索引,直接指定对应的跨卡交换单元。
流程13:跨卡发送模块判断本转发卡与发送目的端转发卡之间没有可用的跨卡链路,则放弃发送数据,返回错误。
基于上述方案可知,上述方案存在比较明显的缺陷,由于数据流与转发核之间的关系是通过队列绑定实现的,而一般情况下数据流的数量(数据流的五元组HASH值)要比队列的数量多,所有的队列会被依次分配给各个转发核,1个队列只能被1个转发核处理。因此,当队列与转发核的分配不能做到均分,即每个转发核处理的队列个数并不一定相等,例如有16个队列,3个转发核的情况,如果将队列依次循环分配给3个转发核,则转发核1会比其他转发核多分配一个队列,从而导致每个跨卡转发单元负载的数据流不均衡。此外,如果转发核的数量不能除尽跨卡交换单元的数量(例如有3个转发核,2个跨卡交换单元的情况),即便每个转发核处理的队列中的数据流数量都是比较均匀的,也会导致每个跨卡转发单元负载的数据流不均衡。
其中,跨卡转发单元负载的数据流不均衡,则会导致跨卡链路的利用率下降,甚至有可能造成跨卡链路负载超过链路带宽而出现链路丢包,导致系统可靠性降低。
为了解决上述问题,本发明实施例提供了一种数据处理方法及网络设备,通过获取网络设备中的转发卡的多个转发核中每个转发核的目标值,由于每个转发核的目标值用于表征该转发卡所处理的数据流在该转发核上的分布情况,从而可以基于每个转发核上数据流的分布情况,从该转发卡对应的至少两个跨卡交换单元中,确定出多个转发核中每个数据流对应的目标跨卡交换单元,然后,分别将每个数据流发送至对应的目标跨卡交换单元,从而能够将该转发卡所处理的数据流均衡的负载到每个跨卡交换单元上,进而避免由于跨卡链路负载超过链路带宽而出现的链路丢包现象,提高了系统可靠性。
为了使本领域的技术人员更好的理解本发明的技术方案,下面结合附图和具体实施例对本发明作进一步的详细说明。
本发明实施例提供一种数据处理方法,本发明实施例主要通过网络设备来实现,该网络设备包含多个转发卡和多个跨卡交换单元。
具体的,本发明实施例主要针对上述的多个转发卡中连接至少两个跨卡交换单元、且包含多个转发核的转发卡。
基于此,如图2所示,针对网络设备中的每个连接至少两个跨卡交换单元、且包含多个转发核的转发卡,该数据处理方法具体包括如下步骤:
步骤101:网络设备获取转发卡的多个转发核中每个转发核的目标值。
在本发明实施例中,一个转发核的目标值用于表征该转发卡所处理的数据流在该转发核上的分布情况。
在一种示例中,上述的多个转发核可以为该目标转发核中所有转发核的数量,也可以为该目标转发核中需要负载均衡的转发核的数量,即该目标转发核中需要动态调整对应跨卡交换单元负载均衡策略的转发核的数量。
在本发明实施例中,转发卡的物理接口接收到数据后,会根据该数据的数据内容计算出该数据对应的五元组HASH值。然后,根据该数据对应的五元组HASH值将该数据归入相应的队列,具体可以按照现有流程来实现,本发明对此不再赘述。
进一步的,由于一个队列只能被一个转发核处理,因此,在本发明实施例中,在转发卡运行之前的初始化阶段,首先,会需要合理的映射队列与转发核之间的关系,并将转发核进行分组,例如,对于有16个队列、3个转发核的转发卡、对应有2个跨卡交换单元的场景,队列遍历分配给转发核,但是转发核1会多分配一个队列,且3个转发核按照核号也不能均分到跨卡交换单元,具体可参照图1的流程1至流程4。
在本发明实施例中,在为该转发卡中的所有转发核分配完队列后,网络设备会将转发核1与转发核2、转发核3进行分组,即转发核1为一组,转发核2和转发核3为一组,转发核1固定按照数据五元组HASH值确定该转发核1中所有数据流对应的跨卡交换单元,再对转发核2和转发核3中的数据流进行统计,计算出转发核2和转发核3的最佳的负载均衡策略,再基于该负载均衡策略,确定出转发核2和转发核3中的每个数据流对应的跨卡交换单元。
可选的,在本发明实施例中,上述的步骤101具体包括如下步骤:
步骤101a:网络设备获取转发卡的多个转发核中每个转发核的数据参数。
在本发明实施例中,上述的每个转发核的数据参数包括:每个转发核在预定监测周期内处理的数据流的数量。其中,上述的预定监测周期可以为固定值(例如,1秒监测一次),也可以根据实际应用场景灵活设定,本发明对此不做限制。
步骤101b:网络设备根据每个转发核在预定监测周期内处理的数据流的数量以及转发卡中转发核的数量,计算出每个转发核的目标值。
进一步可选的,在本发明实施例中,上述的步骤101b具体包括如下内容:
步骤101b1:网络设备根据每个转发核在预定监测周期内处理的数据流的数量、转发卡中转发核的数量以及预定公式,计算出每个转发核的目标值。
其中,H为目标值,n为转发卡中的转发核的数量,Δi用于表征转发核i在该预定监测周期内处理的数据流的数量。此外,上述的预定公式的分子为所有需要动态调整跨卡交换单元负载均衡策略的转发核所处理的数据流的数量的和,分母为这些转发核的数量与目标数据核(Max(Δ1,Δ2…Δn)对应的数据核)所处理的数据流的最大数量的乘积。
同时,基于上述预定公式可知,该目标值越趋近于1则表示每个转发核处理数据流的数量越均匀,反之,如果该目标值越趋近于1/n则表示数据流在该转发核上的分布越不均匀。
步骤102:网络设备根据该目标值,从转发卡对应的至少两个跨卡交换单元中,确定出多个转发核中每个数据流对应的目标跨卡交换单元。
可选的,在本发明实施例中,上述的步骤102具体包括如下内容:
步骤102a:网络设备遍历所述多个转发核。
示例性的,网络设备在遍历多个转发核的过程具体包括如下内容:
步骤A1:若当前遍历的转发核的目标值大于或等于预定阈值,则网络设备将当前遍历的转发核对应的跨卡交换单元,作为当前遍历的转发核中所有数据流对应的目标跨卡交换单元。
示例性的,若当前遍历的转发核的目标值大于或等于预定阈值,则网络设备基于该转发核的核号确定出该转发核对应的跨卡交换单元,将该转发核对应的跨卡交换单元作为负载该转发核中的所有数据流的跨卡交换单元。
步骤A2:若当前遍历的转发核的目标值小于预定阈值,则网络设备根据当前遍历的转发核中每个数据流的数据标识,确定出每个数据流对应的目标跨卡交换单元。
示例性的,上述的每个数据流的数据标识可以为该数据流的数据五元组HASH值,即在当前遍历的转发核的目标值小于预定阈值时,网络设备基于数据五元组HASH值来确定出该转发核中每个数据流对应的跨卡交换单元。
例如,若该转发卡对应2个跨卡交换单元,如果该转发卡中的某一转发核的目标值趋近于1,则将该转发核的核号与0x1做逻辑与的结果作为选择跨卡交换单元的HASH索引,如果该转发卡中的某一转发核的目标值趋近于1/(n-1),则将该转发核中的任一数据流的数据五元组HASH值与0x1做逻辑与的结果作为选择跨卡交换单元的HASH索引,结果为0表示选择跨卡交换单元1,结果为1表示选择跨卡交换单元2。
在本发明实施例中,上述的预定阈值是基于转发卡中的转发核的数量确定的。
步骤103:网络设备分别将每个数据流分别发送至对应的目标跨卡交换单元。
应注意的是,步骤103以及步骤103之后的流程,也可以参照图1中的流程10至流程13,本发明对此不做限定。
本发明实施例提供的数据处理方法及网络设备,通过获取网络设备中的转发卡的多个转发核中每个转发核的目标值,由于每个转发核的目标值用于表征该转发卡所处理的数据流在该转发核上的分布情况,从而可以基于每个转发核上数据流的分布情况,从该转发卡对应的至少两个跨卡交换单元中,确定出多个转发核中每个数据流对应的目标跨卡交换单元,然后,分别将每个数据流发送至对应的目标跨卡交换单元,从而能够将该转发卡所处理的数据流均衡的负载到每个跨卡交换单元上。
示例1:以具有32个队列、15个转发核的转发卡1、且通过2个跨卡交换单元进行跨卡转发的路由器设备为例。
路由设备在跨卡数据转发之前首先需要合理的映射队列与转发核之间的关系,并分配转发核组,针对转发卡1,对应的队列与转发核组间的映射关系以及转发核组对应的跨卡负载方式如下表1所示:
表1
需要说明的是,由于转发卡中的转发核0通常为控制核,因此,分配队列通常是从转发核1开始的。
参照表1可知,转发卡1的15个转发核中,只有转发核4到转发核15这12个转发核需要根据环境动态调整跨卡交换单元的负载均衡方式。具体的,转发卡1的控制核会周期性的检测对应需要动态调整跨卡交换单元负载均衡方式的转发核,在监测周期内获取相应转发核的数据流的数据参数,对转发卡1,统计转发核4到转发核15中每个转发核的数据流分布情况。
对于转发卡1,的最大值为1,最小值为1/12,取两者的中间值即13/24,当H大于13/24时,采用转发核号进行跨卡交换单元的HASH,当H小于13/24时采用数据五元组HASH值进行跨卡交换单元的HASH。
示例2:以具有16个队列、3个转发核的转发卡2、且通过2个跨卡交换单元进行跨卡转发的路由器设备为例。
路由设备在跨卡数据转发之前首先需要合理的映射队列与转发核之间的关系,并分配转发核组,针对转发卡2,对应的队列与转发核组间的映射关系以及转发核组对应的跨卡负载方式如下表2所示:
表2
参照表1可知,转发卡2的3个转发核中,只有转发核2和转发核3这2个转发核需要根据环境动态调整跨卡交换单元的负载均衡方式。具体的,转发卡2的控制核会周期性的检测对应需要动态调整跨卡交换单元负载均衡方式的转发核,在监测周期内获取相应转发核的数据流的数据参数,对转发卡2,统计转发核2和转发核3的数据流分布情况。
综上所述,通过本发明提供的方案来分析队列与转发核以及转发核与跨卡交换单元的关系,合理的将转发核进行分组,实现了相应转发核在跨卡发送数据时对跨卡交换单元的动态负载均衡,避免了物理链路资源的浪费,减少了可能的跨卡链路负荷超过链路带宽的情况,提高了系统的可靠性。
本发明实施例提供一种网络设备,该网络设备包括至少一个转发卡以及与所述转发卡连接的至少两个跨卡交换单元,如图3所示,该网络设备20包括:获取模块21、确定模块22以及发送模块23,其中:
获取模块21,用于获取转发卡的多个转发核中每个转发核的目标值,一个转发核的目标值用于表征转发卡所处理的数据流在该转发核上的分布情况。
确定模块22,用于根据获取模块21获取的上述的目标值,从至少两个跨卡交换单元中,确定出多个转发核中每个数据流对应的目标跨卡交换单元。
发送模块23,用于分别将每个数据流发送至对应的目标跨卡交换单元。
可选的,上述的确定模块22具体用于:遍历多个转发核;上述的遍历多个转发核,包括:若当前遍历的转发核的目标值大于或等于预定阈值,则将当前遍历的转发核对应的跨卡交换单元,作为当前遍历的转发核中所有数据流对应的目标跨卡交换单元;若当前遍历的转发核的目标值小于预定阈值,则根据当前遍历的转发核中每个数据流的数据标识,确定出每个数据流对应的目标跨卡交换单元。
可选的,上述的获取模块21具体用于:获取转发卡的多个转发核中每个转发核的数据参数,该数据参数包括每个转发核在预定监测周期内处理的数据流的数量;根据该数据流的数量以及转发卡中转发核的数量,计算出每个转发核的目标值。
可选的,上述的获取模块21具体用于:根据该数据流的数量、转发卡中转发核的数量以及预定公式,计算出每个转发核的目标值;
可选的,上述的预定阈值是基于转发卡中需要进行负载均衡的转发核的数量确定的。
本发明实施例提供的网络设备,通过获取网络设备中的转发卡的多个转发核中每个转发核的目标值,由于每个转发核的目标值用于表征该转发卡所处理的数据流在该转发核上的分布情况,从而可以基于每个转发核上数据流的分布情况,从该转发卡对应的至少两个跨卡交换单元中,确定出多个转发核中每个数据流对应的目标跨卡交换单元,然后,分别将每个数据流发送至对应的目标跨卡交换单元,从而能够将该转发卡所处理的数据流均衡的负载到每个跨卡交换单元上。
本发明实施例提供一种网络设备的硬件结构示意图,如图4所示,该网络设备30包括:处理器31、通信接口32、存储器33和总线34。
其中,处理器31,用于获取转发卡的多个转发核中每个转发核的目标值,一个转发核的目标值用于表征转发卡所处理的数据流在该转发核上的分布情况,根据上述的目标值,从至少两个跨卡交换单元中,确定出多个转发核中每个数据流对应的目标跨卡交换单元,分别将每个数据流发送至对应的目标跨卡交换单元。
本发明实施例中,在图4中,总线可以包括任意数量的互联的总线和桥,具体由处理器31代表的一个或多个处理器和存储器33代表的存储器的各种电路链接在一起。需要说明的是,在具体实现过程中,上述如图2所示的方法流程中网络设备所执行的各步骤均可以通过硬件形式的处理器31执行存储器33中存储的软件形式的计算机执行指令实现,为避免重复,此处不再赘述。
上述网络设备所执行的动作所对应的程序均可以以软件形式存储于该网络设备的存储器中,以便于处理器调用执行以上各个模块对应的操作。
上文中的存储器可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard diskdrive,HDD)或固态硬盘(solid-state drive,SSD);还可以包括上述种类的存储器的组合。
上文所提供的网络设备中的处理器可以是一个处理器,也可以是多个处理元件的统称。例如,处理器可以为中央处理器(central processing unit,CPU;也可以为其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(applicationspecific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gatearray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等;还可以为专用处理器,该专用处理器可以包括基带处理芯片、射频处理芯片等中的至少一个。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种数据处理方法,应用于网络设备,所述网络设备中包括至少一个转发卡以及与所述转发卡连接的至少两个跨卡交换单元,其特征在于,所述方法包括:
获取所述转发卡的多个转发核中每个转发核的目标值,该目标值用于表征所述转发卡所处理的数据流在所述转发核上的分布情况;
遍历所述多个转发核;
若当前遍历的转发核的目标值大于或等于预定阈值,则将所述当前遍历的转发核对应的跨卡交换单元,作为所述当前遍历的转发核中所有数据流对应的目标跨卡交换单元;
若所述当前遍历的转发核的目标值小于所述预定阈值,则根据所述当前遍历的转发核中每个数据流的数据标识,确定出每个数据流对应的目标跨卡交换单元;
分别将所述每个数据流发送至对应的目标跨卡交换单元。
2.根据权利要求1所述的数据处理方法,其特征在于,所述获取所述转发卡的多个转发核中每个转发核的目标值,包括:
获取所述转发卡的多个转发核中每个转发核的数据参数,所述数据参数包括所述每个转发核在预定监测周期内处理的数据流的数量;
根据所述数据流的数量以及所述转发卡中转发核的数量,计算出所述每个转发核的目标值。
4.根据权利要求1所述的数据处理方法,其特征在于,所述预定阈值是基于所述转发卡需要进行负载均衡的转发核的数量确定的。
5.一种网络设备,所述网络设备包括至少一个转发卡以及与所述转发卡连接的至少两个跨卡交换单元,其特征在于,所述网络设备包括:
获取模块,用于获取所述转发卡的多个转发核中每个转发核的目标值,该目标值用于表征所述转发卡所处理的数据流在所述转发核上的分布情况;
确定模块,用于遍历所述多个转发核;
若当前遍历的转发核的目标值大于或等于预定阈值,则将所述当前遍历的转发核对应的跨卡交换单元,作为所述当前遍历的转发核中所有数据流对应的目标跨卡交换单元;
若所述当前遍历的转发核的目标值小于所述预定阈值,则根据所述当前遍历的转发核中每个数据流的数据标识,确定出每个数据流对应的目标跨卡交换单元;
发送模块,用于分别将所述每个数据流发送至对应的目标跨卡交换单元。
6.根据权利要求5所述的网络设备,其特征在于,所述获取模块具体用于:
获取所述转发卡的多个转发核中每个转发核的数据参数,所述数据参数包括所述每个转发核在预定监测周期内处理的数据流的数量;
根据所述数据流的数量以及所述转发卡中转发核的数量,计算出所述每个转发核的目标值。
8.根据权利要求5所述的网络设备,其特征在于,所述预定阈值是基于所述转发卡中需要进行负载均衡的转发核的数量确定的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811557937.3A CN109714269B (zh) | 2018-12-19 | 2018-12-19 | 一种数据处理方法及网络设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811557937.3A CN109714269B (zh) | 2018-12-19 | 2018-12-19 | 一种数据处理方法及网络设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109714269A CN109714269A (zh) | 2019-05-03 |
CN109714269B true CN109714269B (zh) | 2022-05-17 |
Family
ID=66256958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811557937.3A Active CN109714269B (zh) | 2018-12-19 | 2018-12-19 | 一种数据处理方法及网络设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109714269B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110365586B (zh) * | 2019-07-16 | 2022-05-17 | 迈普通信技术股份有限公司 | 报文传输的方法及装置 |
CN112311678B (zh) * | 2020-09-29 | 2022-05-27 | 新华三技术有限公司合肥分公司 | 报文分发的实现方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102779075A (zh) * | 2012-06-28 | 2012-11-14 | 华为技术有限公司 | 一种在多处理器核系统中进行调度的方法、装置及系统 |
CN104468387A (zh) * | 2014-11-03 | 2015-03-25 | 首都师范大学 | 可扩展路由器中ospf链路状态信息的分布式存储方法 |
CN105874757A (zh) * | 2014-11-12 | 2016-08-17 | 华为技术有限公司 | 一种数据处理方法及多核处理器系统 |
CN106357726A (zh) * | 2016-08-24 | 2017-01-25 | 东软集团股份有限公司 | 负载均衡方法及装置 |
CN106713185A (zh) * | 2016-12-06 | 2017-05-24 | 瑞斯康达科技发展股份有限公司 | 一种多核cpu的负载均衡方法及装置 |
CN107579925A (zh) * | 2017-09-29 | 2018-01-12 | 迈普通信技术股份有限公司 | 报文转发方法及装置 |
CN108768866A (zh) * | 2018-09-06 | 2018-11-06 | 迈普通信技术股份有限公司 | 组播报文跨卡转发方法、装置、网络设备及可读存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101641541B1 (ko) * | 2010-03-31 | 2016-07-22 | 삼성전자주식회사 | 다중 코어에서 동적으로 부하를 분배하는 장치 및 방법 |
US8391174B2 (en) * | 2010-07-13 | 2013-03-05 | Hewlett-Packard Development Company, L.P. | Data packet routing |
-
2018
- 2018-12-19 CN CN201811557937.3A patent/CN109714269B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102779075A (zh) * | 2012-06-28 | 2012-11-14 | 华为技术有限公司 | 一种在多处理器核系统中进行调度的方法、装置及系统 |
CN104468387A (zh) * | 2014-11-03 | 2015-03-25 | 首都师范大学 | 可扩展路由器中ospf链路状态信息的分布式存储方法 |
CN105874757A (zh) * | 2014-11-12 | 2016-08-17 | 华为技术有限公司 | 一种数据处理方法及多核处理器系统 |
CN106357726A (zh) * | 2016-08-24 | 2017-01-25 | 东软集团股份有限公司 | 负载均衡方法及装置 |
CN106713185A (zh) * | 2016-12-06 | 2017-05-24 | 瑞斯康达科技发展股份有限公司 | 一种多核cpu的负载均衡方法及装置 |
CN107579925A (zh) * | 2017-09-29 | 2018-01-12 | 迈普通信技术股份有限公司 | 报文转发方法及装置 |
CN108768866A (zh) * | 2018-09-06 | 2018-11-06 | 迈普通信技术股份有限公司 | 组播报文跨卡转发方法、装置、网络设备及可读存储介质 |
Non-Patent Citations (2)
Title |
---|
HASS:A Scheduler for heterogeneous multicore systems;Shelepov,Daniel,et al.;《ACM SIGOPS Operating Systems Review》;20091231;全文 * |
一种面向流媒体的多核处理器分组调度算法;贺鹏程;《计算机应用研究》;20101231;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109714269A (zh) | 2019-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230239368A1 (en) | Accelerated network packet processing | |
US10348683B2 (en) | Network packet filtering via media access control (MAC) address learning | |
US9154441B2 (en) | Adaptive buffer allocation management | |
CN109714269B (zh) | 一种数据处理方法及网络设备 | |
CN111585896A (zh) | 一种数据转发方法、装置及可读存储介质 | |
CN114079638A (zh) | 多协议混合网络的数据传输方法、装置和存储介质 | |
US10911366B2 (en) | Technologies for balancing throughput across input ports of a multi-stage network switch | |
US11875839B2 (en) | Flow based rate limit | |
CN111740922B (zh) | 数据传输方法、装置、电子设备及介质 | |
WO2016137371A1 (en) | A sampling node and a method performed thereby for handling flows through a sdn between client(s) and origin server(s) of a communication network | |
US11870707B2 (en) | Bandwidth management and configuration method for cloud service, and related apparatus | |
CN113453285B (zh) | 一种资源调整方法、装置及存储介质 | |
US11711318B1 (en) | Packet switches | |
EP4044531B1 (en) | High delay link determination method and apparatus, and route distribution method and apparatus | |
CN109787922A (zh) | 一种获取队列长度的方法、设备及计算机可读存储介质 | |
CN113765796A (zh) | 流量转发控制方法及装置 | |
CN114448903A (zh) | 一种报文处理方法、装置和通信设备 | |
JP2016146077A (ja) | 計算機、通信制御方法および通信制御プログラム | |
WO2022147762A1 (zh) | 一种数据包排序方法及装置 | |
CN118132449B (zh) | 自动化测试系统、平台、方法、设备、集群、介质及产品 | |
WO2020248634A1 (zh) | 一种光网络的故障保护方法、设备和系统 | |
CN114793217B (zh) | 智能网卡、数据转发方法、装置及电子设备 | |
CN113992589B (zh) | 一种报文分流方法、装置及电子设备 | |
WO2023051038A1 (zh) | 基于等价多路径的选路方法、设备和存储介质 | |
US11496400B2 (en) | Network load dispersion device and method |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |