CN101572673A - 扩展交换带宽的分布式包交换***和分布式包交换方法 - Google Patents
扩展交换带宽的分布式包交换***和分布式包交换方法 Download PDFInfo
- Publication number
- CN101572673A CN101572673A CNA200910147777XA CN200910147777A CN101572673A CN 101572673 A CN101572673 A CN 101572673A CN A200910147777X A CNA200910147777X A CN A200910147777XA CN 200910147777 A CN200910147777 A CN 200910147777A CN 101572673 A CN101572673 A CN 101572673A
- Authority
- CN
- China
- Prior art keywords
- bandwidth
- hardware port
- logic
- cable card
- card board
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种扩展交换带宽的分布式包交换***和分布式包交换方法。包交换芯片将其硬件端口划分为至少两组并为每一组硬件端口分别提供数据包交换支持,其中,每一组分别为各线卡板提供一个硬件端口进行连接;各线卡板基于业务流选路,将本线卡板流量分配给不同硬件端口组进行数据包交换;以及,各线卡板分别基于硬件端口组进行流量控制。通过本发明,能够基于现有包交换芯片硬件,有效扩展板间交换能力,简单易行且成本较低。
Description
技术领域
本发明涉及数据通信领域,尤其涉及一种扩展交换带宽的分布式包交换***和一种分布式包交换方法。
背景技术
为了适应网络迅速增加的带宽需求,中间层路由交换设备的结构发生了根本性变化,由传统的基于总线和中央处理器架构逐步过渡到分布式架构,从而能够通过交换结构(switch fabric)提高数据通信速度;其中,以IP数据包为调度单位的分布式包交换结构广泛应用于基于以太网技术的网络中。
图1示出了一分布式包交换***的结构框图;该分布式包交换***包括多个线卡板#1、#2……#N和一个包交换芯片300(也称以太网包交换芯片),每个线卡板#1、#2……#N分别包括一个逻辑调度单元#11、#21……#N1和一个包处理单元#12、#22……#N2;包交换芯片300的每个输入端口最多同时接收一个数据包,每个输出接口最多同时发送一个数据包,基于报文长度统计、以数据包为单位进行报文调度;
一般的,是由逻辑调度单元#11、#21……#N1配合实现上述以数据包为单位的报文调度,其基本原则是:接收侧逻辑调度单元接收发送侧的各种状态信息(例如队列状态、包缓存空间等),动态的为每个发送侧分配带宽,发送侧逻辑调度单元根据此带宽发送报文;通过上述分布式带宽流控,保证了各线卡板之间的公平调度,避免在以太网包交换芯片中发生拥塞和报文丢弃,同时兼顾了以太网包交换芯片的带宽利用率;
可以说,现有技术中的分布式包交换***相对于传统的总线-中央处理器架构,能够实现较高的数据吞吐率和带宽利用率;但是,由于各线卡板#1、#2……#N是通过以太网总线与包交换芯片300的一个端口连接,因此其接口带宽是固定的;例如,对于10Gbps端口的包交换芯片300来说,可以为与其连接的线卡板提供接收和发送各10Gbps带宽;如果线卡板#1、线卡板#2与线卡板#N进行包交换,由于线卡板#N受到端口带宽限制:线卡板#1和线卡板#2同时发送到线卡板#N的流量不能超过10Gbps;反之,线卡板#N发送到线卡板#1和线卡板#2的流量之和也不能超过10Gbps;
显然,现有分布式包交换***的板间交换能力受限于包交换芯片的端口,而对于网络设备商来说,很难通过随时升级包交换芯片硬件端口的方式来满足客户要求;因此,如何基于已有的包交换芯片硬件平台实现更高的板间交换能力,就成为本领域技术人员所致力解决的一个问题。
发明内容
本发明的实施例旨在提供一种能够扩展交换带宽的分布式包交换方案,以基于已有包交换芯片硬件平台实现对于更高板间交换能力的支持。
为实现上述目的,本发明的实施例提供了一种扩展交换带宽的分布式包交换***,包括包交换芯片和多个线卡板;
所述包交换芯片将其硬件端口划分为至少两组并为每一组硬件端口分别提供数据包交换支持;其中,每一组分别为各线卡板提供一个硬件端口进行连接;
所述各线卡板基于业务流选路,将本线卡板流量分别分配给不同硬件端口组,并基于硬件端口组分别进行线卡板之间的流量控制。
为实现上述目的,本发明的实施例还提供了一种扩展交换带宽的分布式包交换方法,适用于包括包交换芯片和多个线卡板的分布式包交换***,包括以下步骤:
步骤S0:包交换芯片将其硬件端口划分为至少两组并为每一组硬件端口分别提供数据包交换支持,其中,每一组分别为各线卡板提供一个硬件端口进行连接;
步骤S1:各线卡板基于业务流选路,将本线卡板流量分配给不同硬件端口组进行数据包交换;
步骤S2:各线卡板分别基于硬件端口组进行流量控制。
由上述技术方案可知,本发明的实施例基于现有硬件端口能力,采用每一线卡板至少连接包交换芯片两个硬件端口并分别加以流控的方式,具有以下有益效果:
1、能够有效扩展板间交换能力;
2、无需对包交换芯片进行硬件升级,简单易行且成本较低。
通过以下参照附图对优选实施例的说明,本发明的上述以及其它目的、特征和优点将更加明显。
附图说明
图1为现有技术中一分布式包交换***的结构框图;
图2为本发明提供的扩展交换带宽的分布式包交换***一实施例的框图;
图3为图2所示***中进行流量控制的示意图;
图4为图2所示***中包处理单元一实施例的框图;
图5为图2所示***中逻辑调度单元一实施例的框图;
图6为不同硬件端口组下逻辑调度单元之间的关系示意图;
图7为本发明提供的扩展交换带宽的分布式包交换方法一实施例的流程图;
图8为图7所示方法中基于业务流选路一实施例的流程图;
图9为执行逻辑选路表老化一实施例的流程图;
图10为图7所示方法中各线卡板基于硬件端口组进行流量控制一实施例的流程图。
具体实施方式
下面将详细描述本发明的具体实施例。应当注意,这里描述的实施例只用于举例说明,并不用于限制本发明。
本发明的主要构思在于基于现有包交换芯片的硬件平台,通过线卡板与包交换芯片之间多端口连接及分别流控,来有效提高板间交互能力。下面将详细介绍本发明所提供的扩展交换带宽的分布式包交换方案。
下面,对本发明提供的扩展交换带宽的分布式包交换***加以描述。
如图2所示,显示了扩展交换带宽的分布式包交换***一实施例的框图,包括多个线卡板#1、#2……#N和一个包交换芯片300;
该包交换芯片300将其硬件端口划分为两组Group1和Group2,每一硬件端口组分别为各线卡板#1、#2……#N提供一个硬件端口进行连接;
假设包交换芯片300的硬件端口带宽为10Gbps,由于每一线卡板#1、#2……#N事实上是同时通过两个硬件端口与包交换芯片300进行连接,因此理论上包交换芯片300可以支持该线卡板同时发送/接收20Gbps的流量;
举例说明,线卡板#1、线卡板#2与线卡板#3之间进行分布式包交换,线卡板#1和线卡板#2同时发送到线卡#3的流量不能超过20Gbps,反之,线卡#3发送到线卡板#1和线卡板#2的流量之和也不能超过20Gbps;
但是,每一线卡板#1、#2……#N和包交换芯片300对上述20Gbps的流量是通过两个硬件端口实现的,由于每一硬件端口仍然保持10Gbps流量的硬件限制,因此要实现对20Gbps板间交互带宽的支持,还需要进行以下处理:包交换芯片300内部为每一组硬件端口Group1和Group2分别提供数据包交换支持,以及线卡板#1、#2……#N对于本线卡板进行流量流控,具体如下:
首先,包交换芯片300为硬件端口组Group1和Group2分别提供内部的独立包缓存,不会产生突发冲突导致对包交换芯片内部共享包缓存的占用,因此保证包交换芯片300内部两个硬件端口组的通道在数据包转发时互不影响;
可以看出,通过上述设置,事实上是将分布式包交换***分割为两个10Gbps的虚拟包交换***,在两个虚拟包交换***满负荷工作的情况下,就可以通过两组以太网总线提供20Gbps的总带宽,从而基于现有的10Gbps的硬件端口,无需升级实现板间交换能力的提高;
进一步的,由于硬件端口10Gbps的限制,要求每一线卡板#1、#2……#N必须进行流量控制,保证通过每一硬件端口发送/接收的数据包流量不能超过10Gbps;
因此,各线卡板#1、#2……#N先进行负载分担,即基于业务流选路,将本线卡板流量分别分配给包交换芯片300连接到本线卡板的不同硬件端口,使本线卡板的流量分别进入不同的硬件端口组Group1和Group2进行处理;以及,基于各硬件端口组Group1和Group2分别进行线卡板之间#1、#2……#N的流量控制,避免虚拟包交换***发生内部的拥塞和丢包。
作为一个较为优选的实施例,上述各线卡板#1、#2……#N可以通过以下结构实现负载分担和流量控制:
各线卡板#1、#2……#N上均设有两个彼此独立的逻辑调度单元#11-1、#11-2、#21-1、#21-2……#N1-1和#N1-2;在每一线卡板上#1、#2……#N,所述逻辑调度单元分别与硬件端口组Group1和Group2提供给本线卡板的硬件端口对应连接,并分别通过不同的物理链路与本线卡板上的包处理单元#12、#22……#N2连接;
包处理单元#12、#22……#N2对进入本线卡板的数据包执行业务处理和转发,包括根据转发表、邻接表等重新封装报文,作为现有技术,不再赘述;与现有技术不同的是,由于每一包处理单元#12、#22……#N2对应两个逻辑调度单元,因此在上行转发过程中需要执行业务流的选路操作,即对于一块业务板#N上的包处理单元#N2来说,其基于业务流选路将上行数据包通过相应的物理链路发送至选定的逻辑调度单元#N1-1或#N1-2,并接收各逻辑调度单元#N1-1和#N1-2发送的下行数据包;
而对于相应业务板#N上逻辑调度单元#N1-1和#N1-2来说,以逻辑调度单元#N1-1为例,其通过包交换芯片300中所属硬件端口组Group1进行上行数据包发送和下行数据包接收,并与硬件端口组Group1下的其他线卡板逻辑调度单元(如#11-1、#21-1)一起进行流量控制,保证通过硬件端口组Group1进行交换的流量不会超过10Gbps;
图3显示了本发明提供的扩展交换带宽的分布式包交换***各线卡板之间进行流量控制的示意图:线卡板#1、线卡板#2与线卡板#3之间进行分布式包交换,则逻辑调度单元#11-1和逻辑调度单元#21-1同时发送到线卡板#3的逻辑调度单元#31-1的流量不会超过10Gbps,反之,逻辑调度单元#31-1发送到逻辑调度单元#11-1和逻辑调度单元#21-1的流量之和也不会超过10Gbps;同样,逻辑调度单元#11-2和逻辑调度单元#21-2同时发送到逻辑调度单元#31-2的流量不会超过10Gbps,反之,逻辑调度单元#31-2发送到逻辑调度单元#11-2和逻辑调度单元#21-2的流量之和也不会超过10Gbps;
可以看出,通过同一硬件端口组下的线卡板逻辑调度单元的流量控制,能够保证不突破每一硬件端口的带宽容量,同时,提高***的整体吞吐量;
需要指出的是,图3示出了一种理想状况下的负载分担,即线卡板#1的包处理单元#12分别将各10Gbps的流量发送给逻辑调度单元#11-1和#11-2;事实上,包处理单元#12所转发的上行数据包流量总数可能小于或者大于20Gbps,而且选路也很难正好将流量平均分配给各逻辑调度单元#11-1和#11-2,也就是说,包处理单元#12与逻辑调度单元#11-1和#11-2之间的流量可能大于、等于或者小于10Gbps。
上面结合图2~图3对本发明提供的扩展交换带宽的分布式包交换***从整体上进行了描述,虽然是以包交换芯片300分别为各线卡板#1、#2……#N提供两个硬件端口为例加以说明,但本领域技术人员可以了解,如果包交换芯片300分别为各线卡板#1、#2……#N提供两个以上硬件端口进行连接(比如m个硬件端口),那么相当于将包交换芯片300划分为m个虚拟包交换***,并针对每一个虚拟包交换***分别进行流控,其实现原理与划分为2个虚拟包交换***并无不同,因此在此不再赘述;事实上,由于提供两个以上硬件端口的情况下,进行选路的***开销较大,因此在实际应用中主要以两个硬件端口的情况为主;
可以看出,以包交换芯片硬件平台为10Gbps为例,如果用户要求达到10Gbps以上的板间交换能力,设备商无需向芯片商请求硬件端口能够支持10Gbps以上的包交换芯片,而是利用现有的包交换芯片,通过本发明所提供的扩展交换带宽的分布式包交换***架构,即可实现对20Gbps甚至更高带宽的支持;
因此,本发明提供的扩展交换带宽的分布式包交换***是基于现有的包交换芯片硬件进行平滑升级,简单易行且实现成本较低,路由器采用本发明所提供的架构,能够大幅度降低设备成本。
在了解本发明所提供扩展交换带宽的分布式包交换***的整体架构后,下面就其中各个组成部分结构的较佳实施例分别加以具体描述;
有必要指出的是,上述各组成部分中,包交换芯片300和包处理单元#12、#22……#N2是必要的硬件平台,其硬件结构沿用现有技术即可;
其中,包处理单元#12、#22……#N2的负载分担功能可以采用软件方式实现;
逻辑调度单元可以通过现场可编程门阵列实现,也可以通过专用集成电路或者纯软件实现;具体的,以采用现场可编程门阵列实现为例,一个线卡板上的全部逻辑调度单元可以通过一个独立的现场可编程门阵列实现,也可以是每个逻辑调度单元分别通过独立的现场可编程门阵列实现;很多情况下,后者由于无需进行逻辑区分,因此实现更为简单、成本更优,并有利于与现有***兼容和平滑升级;
继续,先就包处理单元#12、#22……#N2的具体结构加以描述:
线卡板#1、#2……#N上的包处理单元#12、#22……#N2需要对进入包交换芯片300的流量在至少两个逻辑调度单元之间进行选路和负载分担,即选择不同的物理链路分别进入不同的逻辑调度单元;
如图4所示,显示了一包处理单元200的结构示意图,该包处理单元200首先沿用现有技术中的功能实现方案,进行一般性的业务处理;此外,为了适应本发明的扩展交换带宽的分布式包交换***,还需要通过以下结构提供负载分担的选路功能(为了便于描述,所涉及的示例性说明均为包处理单元200基于两个逻辑调度单元#N1-1和#N1-2进行选路的情况):
业务流标识表210,用于对应保存业务流信息和业务流标识;
其中,业务流信息可以是数据包的三元组、五元组或七元组,这样,包处理单元200就能够根据数据包的三元组、五元组或七元组进行选路;
较佳的,为了便于保存和检索,业务流信息也可以是对数据包的三元组、五元组或七元组按照一定算法进行计算的结果,比如Hash计算结果;
逻辑选路表220,用于对应保存业务流标识、选路信息及有效/无效标识;
可以看出,业务流标识表210和逻辑选路表220通过业务流标识相关联,业务流标识也叫业务流ID,其数据位较少,能够实现快速的查找;
流信息提取模块230,与所述业务流标识表210连接,用于提取上行数据包的业务流信息;如果业务流标识表210已存在该业务流信息,则携带相应的业务流标识触发业务流处理模块250;如果业务流标识表210中不存在该业务流信息,则触发业务流标识分配模块240;
其中,流信息提取模块可以仅仅是简单的提取数据包的三元组、五元组或七元组信息作为选路决策的依据,但较佳的,可以采用基于三元组、五元组或七元组的Hash算法,为每个数据包计算确定的Hash比特位作为选路决策的依据;
业务流标识分配模块240,与所述流信息提取模块230和业务流标识表210连接,用于为业务流信息分配业务流标识(业务流ID)并对应保存至业务流标识表210中,以及触发业务流处理模块250;
业务流处理模块250,与逻辑选路表220接,用于接收流信息提取模块230或业务流标识分配模块240发送的业务流标识,识别所述逻辑选路表220中是否存在该有效的业务流标识;
如果存在该业务流标识且该标识有效,则携带所述逻辑选路表220中的选路信息触发数据包发送处理模块270;
如果不存在该业务流标识或存在的标识无效,则将相应业务流标识保存到逻辑选路表220中并触发逻辑选路模块260;
逻辑选路模块260,与逻辑选路表220连接,用于按照预定算法选路并在所述逻辑选路表220中与相应业务流标识表项对应保存,以及,携带所述选路信息触发数据包发送处理模块270;其中,所述预定算法包括:
奇偶:例如,将业务流标识为奇数的数据包发送到逻辑选路单元#N1-1,将业务流标识为偶数的数据包发送到逻辑选路单元#N1-2;
轮询:例如,将第一个业务流标识的数据包发送到逻辑选路单元#N1-1,将第二个业务流标识的数据包发送到逻辑选路单元#N1-2,将第三个业务流标识的数据包发送到逻辑选路单元#N1-1,将第四个业务流标识的数据包发送到逻辑选路单元#N1-2,依次类推;
随机:例如,按照某种随机算法进行相应业务流标识的选路;
按流量比重进行选路计算:例如,由于老化等因素,当前有100个业务流标识对应的数据包被发送到逻辑选路单元#N1-1,而有110个业务流标识对应的数据包被发送到逻辑选路单元#N1-2,则接下来创建的10个业务流标识对应的数据包都被发送到逻辑选路单元#N1-1;
上述四种选路方式仅为举例而非限制,本领域技术人员可以根据实际情况选择选路方式,但一般都尽量以尽可能保证负载均衡为前提;
显然,由于同一条流的特征固定,即其业务流信息固定,因此无论按照哪一种选路方式,一旦确定该流的选路,其所有的数据包都会固定选择某一逻辑选路单元,而不会发生同一条业务流的数据包交叉使用两个逻辑选路单元的情况;
数据包发送处理模块270,与所述业务流处理模块250和所述逻辑选路模块260连接,用于根据所述选路信息将所述上行数据包发送到选定的物理链路,进入相应的逻辑调度单元;
上述所提供的是包处理单元200的实施例中,业务流标识表210~逻辑选路模块260也可以设置在内置或者外置但与包处理单元200连接的选路单元中,但这种软件功能的分离或者结合并不会影响本发明的技术效果;
此外,实际应用中并不排除Hash计算得到相同的Hash比特位,但数据包实际的三元组、五元组或七元组并不完全相同的情况,这种情况我们称为Hash冲突;由于Hash计算的结果仅作为选路依据,因此为了简化和降低成本,可以不处理Hash冲突,即可能存在具有相同Hash比特位的两条数据流进入同一逻辑选路单元,在业务流较多的情况下,并不会对负载均衡造成很大影响;
进一步的,为了提高网络基础设备的转发性能,减轻计算负荷,包处理单元200中的转发表等表项的老化时间一般设置较长,及时在一定时间内某些业务流没有数据的情况下,也能在保持有效;而对于包处理单元200而言,这些没有数据收发的有效流会影响选路的均衡性,从而导致带宽利用率不足;
比如,分给两个逻辑选路单元#N1-1和#N1-2各100条业务流,从包处理单元200的角度来看,已经做到了最大可能的负载均衡,两个逻辑选路单元的流量应该大致相当;然而,如果其中逻辑选路单元#N1-1有20条业务流并没有数据包发送,那么实际负载将具有相当大的均衡误差;
因此,有必要采取逻辑选路表220的快速老化机制,以有效减少上述因素对负载均衡的影响;具体的,包处理单元200还包括与所述逻辑选路表220相连接的老化模块280,用于对逻辑选路表220中在一定的老化时间内无数据发送的表项执行老化处理,所述老化处理方式包括失效逻辑选路表220中相应的表项;其中,最优的快速老化时间可以依据报文由本线卡板逻辑调度单元转发到接收端线卡板包处理单元的最长时间确定;
经过老化模块280处理后,逻辑选路表220的快速老化时间一般都远低于转发表中表项的正常老化时间,提高包处理单元200的负载均衡效果。
继续,对逻辑调度单元#11-1、#11-2、#21-1、#21-2……#N1-1和#N1-2的具体结构加以描述;由于各逻辑调度单元可以采用相同的结构,因此下面以一个逻辑调度单元为例加以说明;
如图5所示,为逻辑调度单元100一实施例的结构框图,包括接收端流量控制模块110和发送端流量控制模块120;其中,
接收端流量控制模块110,用于定时获取所属硬件端口组下各发送端硬件端口的流量信息,根据所获取的流量信息分别为各发送端分配带宽,并将所分配带宽结果通过带宽分配通知报文广播给各发送端;其中,所分配带宽之和不超过相应硬件端口的最大带宽容量,例如10Gbps;
发送端流量控制模块120,用于根据所属硬件端口组下接收端为自身确定的分配带宽进行上行数据包的发送;
较佳的,所述发送端流量控制模块120设有缓存拥塞通知子模块121,用于在本逻辑调度单元发生缓存拥塞时,向所属硬件端口组下的接收端发送拥塞通知报文;则目的线卡板的接收端流量控制模块110根据收到的拥塞接收报文,利用剩余带宽资源重新进行带宽分配,并将带宽重新分配结果通过带宽分配通知报文广播给所属硬件端口组下的各发送端;
请结合图6,显示了不同硬件端口组下逻辑调度单元之间的关系示意图,仍以线卡板#1、线卡板#2与线卡板#3之间进行分布式包交换为例;由于从一个时间段的角度,都是多个发送线卡板和一个接收线卡板之间进行数据交换,例如,上一个时间段内,是线卡板#1和#2向#3发送数据;到了下一个时间段,就可能变成#3和#2向#1发送数据,其仅是执行流控的对象发生了转移,原理并未发生改变;因此图6中以#1和#2向#3发送数据为例进行描述,其中粗黑线代表业务流;
Group1下的逻辑调度单元#11-1、#21-1和#31-1配合执行流控:
逻辑调度单元#11-1的报文缓存(指分配给逻辑调度单元#11-1的报文缓存空间)拥塞时,逻辑调度单元#11-1发送拥塞通知报文FCN11到目标逻辑调度单元#31-1;同样,逻辑调度单元#21-1的报文缓存拥塞时,逻辑调度单元#21-1发送拥塞通知报文FCN21到目标逻辑调度单元#31-1;
逻辑调度单元#31-1根据逻辑调度单元#11-1或逻辑调度单元#21-1发送的FCN11报文和FCN21报文,以及当前逻辑调度单元#31-1接收到逻辑调度单元#11-1和逻辑调度单元#21-1发送报文的统计数据,为逻辑调度单元#11-1和逻辑调度单元#21-1分别重新分配一个固定带宽(基于公平调度,并充分利用剩余带宽资源),并向其虚拟包交换***内的所有源逻辑调度单元(#11-1和#21-1)广播带宽分配通知报文BAN31,并且带宽之和不超过10Gbps;
逻辑调度单元#11-1和逻辑调度单元#21-1依据逻辑调度单元#31-1为其分配的带宽,进行报文发送;
类似的,由逻辑调度单元#11-2、逻辑调度单元#21-2和逻辑调度单元#31-2构建的另外一个虚拟交换***也按照相同的方式进行流控控制和报文收发;
特别是,拥塞通知报文FCN11和FCN21,以及带宽分配通知报文BAN31,在虚拟包交换***中处于最高优先级,会得到优先处理;
可以看出,本申请中线卡板是以硬件端口组为单位进行流控调度的,单独从每个硬件端口组来看,其发送端和接收端均可以沿用现有技术中的具体流控调度方案,如中国专利申请CN200710176023.8、CN200710179965.1、CN200710193772.1以及CN200810112356.9分别加以探讨的情况,因此不再赘述。
基于本发明提供的扩展交换带宽的分布式包交换***,本发明提供了相应的扩展交换带宽的分布式包交换方法;
图7示出了该扩展交换带宽的分布式包交换方法一实施例的流程图,包括以下步骤:
步骤S0:包交换芯片将其硬件端口划分为至少两组并为每一组硬件端口分别提供数据包交换支持,其中,每一组分别为各线卡板提供一个硬件端口进行连接;
步骤S1:各线卡板基于业务流选路,将本线卡板流量分配给不同硬件端口组进行数据包交换;
步骤S2:各线卡板分别基于硬件端口组进行流量控制;
上述扩展交换带宽的分布式包交换方法步骤S1可以通过线卡板上包处理单元和与硬件端口组数目相应的逻辑选路单元来实现,主要包括:包处理单元基于业务流选路,将上行数据包通过相应的物理链路发送至选定的逻辑调度单元;选定的逻辑调度单元再通过相应硬件端口组所提供的硬件端口发送出去;上述通过包处理单元和逻辑选路单元实现的具体方式请参见对本发明***相应部件的描述;
其中,步骤S1中基于业务流选路的一实施例可以具体包括以下步骤,如图8所示:
步骤S11:提取上行数据包的业务流信息;其中,业务流信息可以为数据包的三元组、五元组或七元组信息;较佳的实施方式是基于数据包的三元组、五元组或七元组进行Hash计算,得到确定的Hash比特位作为业务流信息,具体的Hash算法可以由基础设备上根据需要加以灵活选择,比如循环冗余校验CRC32(Cyclic Redundancy Check);
步骤S12:识别业务流标识表中是否存在该业务流信息,是则执行步骤S14,否则执行步骤S13;
步骤S13:为业务流信息分配业务流标识并对应保存至所述业务流标识表中,并执行步骤S14;
步骤S14:识别逻辑选路表中是否存在该有效的业务流标识,是则提取该业务流表识表项对应的选路信息并执行步骤S16,否则执行步骤S15;
步骤S15:按照预定算法选路并在所述逻辑选路表中对应保存业务流标识和选路信息,并执行步骤S16;
其中,所述预定算法可以为奇偶、轮询、随机或按流量比重进行选路计算;
步骤S16:根据所述选路信息将所述上行数据包经选定的物理链路发送至相应的硬件端口组进行数据包交换;
可以看出,通过上述步骤S11~S16的处理,线卡板能够完成数据包的选路操作,保证具有相同业务流信息的数据包进入同一个硬件端口组进行交换;
进一步的,为了优化负载均衡的效果,步骤S1中还可以包括对逻辑选路表中在一定的老化时间内无数据发送的表项执行老化处理的步骤,其中,一定的老化时间可以依据报文由本线卡板逻辑调度单元转发到接收端线卡板包处理单元的最长时间确定;
具体的,所述老化处理方式包括失效逻辑选路表中相应的表项,图9示出了对逻辑选路表执行老化一具体实施例的流程图;
上述扩展交换带宽的分布式包交换方法步骤S2可以通过线卡板上与硬件端口组数目相应的逻辑选路单元来实现,事实上,就是不同的硬件端口组与相应的线卡板逻辑调度单元共同构成了独立的虚拟包交换***,各逻辑选路单元分别进行所属虚拟包交换***的流量控制,上述通过逻辑选路单元实现的具体方式请参见对本发明***相应部件的描述;
对于任一硬件端口组,在每一时间段仅存在一个接收端和多个发送端,步骤S2的一具体实施例如图10所示:
步骤S21:接收端定时获取所属硬件端口组下其他各发送端硬件端口的状态信息;
步骤S22:接收端根据所获取的状态信息分别为各发送端分配带宽,并将所分配带宽结果通过带宽分配通知报文广播给所属硬件端口组下的各发送端;其中,所分配带宽之和不超过所述硬件端口组为本线卡板提供的硬件端口的最大带宽容量;
步骤S23:发送端根据所属硬件端口组下接收端为自身确定的分配带宽进行上行数据包的发送;
事实上,上述步骤S21~S23就是基于一定的周期进行带宽的重新分配;此外,为了即时对线卡板上拥塞现象进行处理,步骤S2还执行以下步骤,如图10所示:
步骤S2A:当某一硬件端口组下的发送端发生缓存拥塞时,向所属硬件端口组下的接收端发送拥塞通知报文;
步骤S2B:接收端根据收到的拥塞接收报文和状态信息,利用剩余带宽资源重新进行带宽分配,并将带宽重新分配结果通过带宽分配通知报文广播给所属硬件端口组下的各发送端;
其中,上述拥塞通知报文和所述带宽分配通知报文具有最高优先级,以保证得到优先处理;
本领域技术人员可以看出,在较佳的实施例中,接收端根据定时或拥塞触发进行带宽的重新分配。
综上所述,本发明提供的扩展交换带宽的分布式包交换方法通过将流量分别负载到不同的硬件端口组进行交换,能够基于现有包交换芯片的硬件端口带宽条件,实现两倍甚至更高的板间交换能力;而且,由于无需对包交换芯片的硬件端口进行改造,因此能够平滑升级,易于实现且成本较低。
虽然已参照几个典型实施例描述了本发明,但应当理解,所用的术语是说明和示例性、而非限制性的术语。由于本发明能够以多种形式具体实施而不脱离发明的精神或实质,所以应当理解,上述实施例不限于任何前述的细节,而应在随附权利要求所限定的精神和范围内广泛地解释,因此落入权利要求或其等效范围内的全部变化和改型都应为随附权利要求所涵盖。
Claims (15)
1.一种扩展交换带宽的分布式包交换***,包括包交换芯片和多个线卡板,其特征在于,
所述包交换芯片将其硬件端口划分为至少两组并为每一组硬件端口分别提供数据包交换支持;其中,每一组分别为各线卡板提供一个硬件端口进行连接;
所述各线卡板基于业务流选路,将本线卡板流量分别分配给不同硬件端口组,并基于硬件端口组分别进行线卡板之间的流量控制。
2.根据权利要求1所述的扩展交换带宽的分布式包交换***,其特征在于,所述各线卡板上均设有至少两个彼此独立的逻辑调度单元,分别与所述硬件端口组提供给本线卡板上的硬件端口对应连接,并分别通过不同的物理链路与本线卡板上的包处理单元连接;
所述包处理单元基于业务流选路将上行数据包通过相应的物理链路发送至选定的逻辑调度单元,并接收各逻辑调度单元发送的下行数据包;
所述逻辑调度单元通过其连接至所述包交换芯片的硬件端口进行上行数据包发送和下行数据包接收,并与所属硬件端口组下的其他线卡板逻辑调度单元一起进行流量控制。
3.根据权利要求2所述的扩展交换带宽的分布式包交换***,其特征在于,所述包处理单元包括:
业务流标识表,用于对应保存业务流信息和业务流标识;
逻辑选路表,用于对应保存业务流标识、选路信息及有效/无效标识;
流信息提取模块,与所述业务流标识表连接,用于提取上行数据包的业务流信息;如果业务流标识表已存在该业务流信息,则携带相应的业务流标识触发业务流处理模块;如果业务流标识表中不存在该业务流信息,则触发业务流标识分配模块;
业务流标识分配模块,与所述流信息提取模块和业务流标识表连接,用于为业务流信息分配业务流标识并对应保存至业务流标识表中,以及触发业务流处理模块;
业务流处理模块,与所述逻辑选路表接,用于接收流信息提取模块或业务流标识分配模块发送的业务流标识,识别所述逻辑选路表中是否存在该有效的业务流标识,是则携带所述逻辑选路表中的选路信息触发数据包发送处理模块,否则将相应业务流标识保存到逻辑选路表中并触发逻辑选路模块;
逻辑选路模块,与所述逻辑选路表连接,用于按照预定算法选路并在所述逻辑选路表中与相应业务流标识表项对应保存,以及,携带所述选路信息触发数据包发送处理模块;其中,所述预定算法包括奇偶、轮询、随机或者按按流量比重进行选路计算;
数据包发送处理模块,与所述业务流处理模块和所述逻辑选路模块连接,用于根据所述选路信息将所述上行数据包发送到选定的物理链路。
4.根据权利要求3所述的扩展交换带宽的分布式包交换***,其特征在于,所述流信息提取模块采用哈希Hash算法,计算上行数据包三元组、五元组或七元组的Hash值作为业务流信息。
5.根据权利要求3或4所述的扩展交换带宽的分布式包交换***,其特征在于,所述包处理单元还包括与所述逻辑选路表相连接的老化模块,用于对所述逻辑选路表中在一定的老化时间内无数据发送的表项执行老化处理,所述老化处理方式包括失效逻辑选路表中相应的表项。
6.根据权利要求2所述的扩展交换带宽的分布式包交换***,其特征在于,所述逻辑调度单元包括接收端流量控制模块和发送端流量控制模块;其中,
所述接收端流量控制模块,用于定时获取所属硬件端口组下各发送端硬件端口的流量信息,根据所获取的流量信息分别为各发送端分配带宽,并将所分配带宽结果通过带宽分配通知报文广播给所述各发送端;其中,所分配带宽之和不超过相应硬件端口的最大带宽容量;
所述发送端流量控制模块,用于根据所属硬件端口组下接收端为自身确定的分配带宽进行上行数据包的发送。
7.根据权利要求6所述的扩展交换带宽的分布式包交换***,其特征在于,所述逻辑调度单元中:
所述发送端流量控制模块设有缓存拥塞通知子模块,用于在本逻辑调度单元发生缓存拥塞时,向所属端口组下的接收端发送拥塞通知报文;
所述接收端流量控制模块根据收到的拥塞接收报文,利用剩余带宽资源重新进行带宽分配,并将带宽重新分配结果通过带宽分配通知报文广播给所属端口组下的各发送端。
8.一种扩展交换带宽的分布式包交换方法,适用于包括包交换芯片和多个线卡板的分布式包交换***,其特征在于,包括以下步骤:
步骤S0:包交换芯片将其硬件端口划分为至少两组并为每一组硬件端口分别提供数据包交换支持,其中,每一组分别为各线卡板提供一个硬件端口进行连接;
步骤S1:各线卡板基于业务流选路,将本线卡板流量分配给不同硬件端口组进行数据包交换;
步骤S2:各线卡板分别基于硬件端口组进行流量控制。
9.根据权利要求8所述的扩展交换带宽的分布式包交换方法,其特征在于,所述步骤S1中,任一线卡板基于业务流选路的步骤包括:
步骤S11:提取上行数据包的业务流信息;
步骤S12:识别业务流标识表中是否存在该业务流信息,是则执行步骤S14,否则执行步骤S13;
步骤S13:为业务流信息分配业务流标识并对应保存至所述业务流标识表中,并执行步骤S14;
步骤S14:识别逻辑选路表中是否存在该有效的业务流标识,是则提取该业务流表识表项对应的选路信息并执行步骤S16,否则执行步骤S15;
步骤S15:按照预定算法选路并在所述逻辑选路表中对应保存业务流标识和选路信息,并执行步骤S16;
步骤S16:根据所述选路信息将所述上行数据包经选定的物理链路发送至相应的硬件端口组进行数据包交换。
10.根据权利要求9所述的扩展交换带宽的分布式包交换方法,其特征在于,所述步骤S11具体为:采用哈希Hash算法,计算上行数据包三元组、五元组或七元组的Hash值作为业务流信息。
11.根据权利要求9所述的扩展交换带宽的分布式包交换方法,其特征在于,所述步骤S15中,所述预定算法为奇偶、轮询、随机或按流量比重进行选路计算。
12.根据权利要求9-11任一所述的扩展交换带宽的分布式包交换方法,其特征在于,所述步骤S1中还包括对所述逻辑选路表中在一定的老化时间内无数据发送的表项执行老化处理的步骤;所述老化处理方式包括失效逻辑选路表中相应的表项。
13.根据权利要求8所述的扩展交换带宽的分布式包交换方法,其特征在于,基于任一硬件端口组,所述步骤S2包括:
步骤S21:接收端定时获取所属硬件端口组下其他各发送端硬件端口的状态信息;
步骤S22:接收端根据所获取的状态信息分别为各发送端分配带宽,并将所分配带宽结果通过带宽分配通知报文广播给所属硬件端口组下的各发送端;其中,所分配带宽之和不超过所述硬件端口组为本线卡板提供的硬件端口的最大带宽容量;
步骤S23:发送端根据所属硬件端口组下接收端为自身确定的分配带宽进行上行数据包的发送。
14.根据权利要求13所述的扩展交换带宽的分布式包交换方法,其特征在于,所述步骤S2还包括:
步骤S2A:当某一硬件端口组下的发送端发生缓存拥塞时,向所属硬件端口组下的接收端发送拥塞通知报文;
步骤S2B:接收端根据收到的拥塞接收报文和状态信息,利用剩余带宽资源重新进行带宽分配,并将带宽重新分配结果通过带宽分配通知报文广播给所属硬件端口组下的各发送端。
15.根据权利要求14所述的扩展交换带宽的分布式包交换方法,其特征在于,所述拥塞通知报文和所述带宽分配通知报文具有最高优先级。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910147777XA CN101572673B (zh) | 2009-06-19 | 2009-06-19 | 扩展交换带宽的分布式包交换***和分布式包交换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910147777XA CN101572673B (zh) | 2009-06-19 | 2009-06-19 | 扩展交换带宽的分布式包交换***和分布式包交换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101572673A true CN101572673A (zh) | 2009-11-04 |
CN101572673B CN101572673B (zh) | 2013-03-20 |
Family
ID=41231911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910147777XA Active CN101572673B (zh) | 2009-06-19 | 2009-06-19 | 扩展交换带宽的分布式包交换***和分布式包交换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101572673B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102123080A (zh) * | 2010-12-31 | 2011-07-13 | 杭州华三通信技术有限公司 | 数据转发装置和线卡板以及数据转发方法 |
CN102356609A (zh) * | 2011-08-24 | 2012-02-15 | 华为技术有限公司 | 交换网的流量控制方法和装置 |
CN103178996A (zh) * | 2013-03-15 | 2013-06-26 | 烽火通信科技股份有限公司 | 分布式包交换芯片模型验证***及验证方法 |
CN103441961A (zh) * | 2013-07-11 | 2013-12-11 | 盛科网络(苏州)有限公司 | 基于多条处理逻辑线实现高速宽带的方法和装置 |
CN106330783A (zh) * | 2015-07-01 | 2017-01-11 | 中兴通讯股份有限公司 | 一种OpenFlow交换机能力上报的方法及装置 |
CN106330782A (zh) * | 2015-06-30 | 2017-01-11 | 中兴通讯股份有限公司 | 端口容量分配方法及装置、交换机业务板卡 |
CN106559838A (zh) * | 2015-09-24 | 2017-04-05 | 大唐移动通信设备有限公司 | 业务处理优化方法及装置 |
CN106850461A (zh) * | 2017-03-03 | 2017-06-13 | 深圳市风云实业有限公司 | 转发板通道复用方法及装置 |
WO2017219847A1 (zh) * | 2016-06-24 | 2017-12-28 | 中兴通讯股份有限公司 | 报文发送方法及装置 |
CN109120539A (zh) * | 2017-06-22 | 2019-01-01 | 深圳市中兴微电子技术有限公司 | 一种实现数据传输处理的方法及装置 |
CN113050703A (zh) * | 2021-02-05 | 2021-06-29 | 新华三技术有限公司 | 一种流量控制方法及设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1225726A3 (en) * | 1999-02-23 | 2002-08-28 | Alcatel Internetworking, Inc. | Multi-service network switch with a generic forwarding interface |
US6731599B1 (en) * | 1999-07-01 | 2004-05-04 | Nortel Networks Limited | Automatic load sharing-trunking |
CN101166099B (zh) * | 2007-09-21 | 2010-06-23 | 杭州华三通信技术有限公司 | 分布式多核网络设备和线卡板 |
CN101222422A (zh) * | 2007-09-28 | 2008-07-16 | 东南大学 | 一种公平可扩展网络调度方法 |
CN101141406B (zh) * | 2007-10-17 | 2010-04-07 | 杭州华三通信技术有限公司 | 分布式流量控制方法、***及装置 |
CN101159699B (zh) * | 2007-11-27 | 2010-04-21 | 杭州华三通信技术有限公司 | 分布式设备交换网带宽动态分配方法及装置 |
CN101188562B (zh) * | 2007-12-20 | 2011-02-09 | 杭州华三通信技术有限公司 | 流量控制方法、***和装置 |
-
2009
- 2009-06-19 CN CN200910147777XA patent/CN101572673B/zh active Active
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102123080A (zh) * | 2010-12-31 | 2011-07-13 | 杭州华三通信技术有限公司 | 数据转发装置和线卡板以及数据转发方法 |
CN102123080B (zh) * | 2010-12-31 | 2014-02-05 | 杭州华三通信技术有限公司 | 数据转发装置和线卡板以及数据转发方法 |
CN102356609A (zh) * | 2011-08-24 | 2012-02-15 | 华为技术有限公司 | 交换网的流量控制方法和装置 |
CN103178996A (zh) * | 2013-03-15 | 2013-06-26 | 烽火通信科技股份有限公司 | 分布式包交换芯片模型验证***及验证方法 |
CN103178996B (zh) * | 2013-03-15 | 2015-07-01 | 烽火通信科技股份有限公司 | 分布式包交换芯片模型验证***及验证方法 |
CN103441961A (zh) * | 2013-07-11 | 2013-12-11 | 盛科网络(苏州)有限公司 | 基于多条处理逻辑线实现高速宽带的方法和装置 |
CN106330782A (zh) * | 2015-06-30 | 2017-01-11 | 中兴通讯股份有限公司 | 端口容量分配方法及装置、交换机业务板卡 |
CN106330783A (zh) * | 2015-07-01 | 2017-01-11 | 中兴通讯股份有限公司 | 一种OpenFlow交换机能力上报的方法及装置 |
CN106559838A (zh) * | 2015-09-24 | 2017-04-05 | 大唐移动通信设备有限公司 | 业务处理优化方法及装置 |
WO2017219847A1 (zh) * | 2016-06-24 | 2017-12-28 | 中兴通讯股份有限公司 | 报文发送方法及装置 |
CN106850461A (zh) * | 2017-03-03 | 2017-06-13 | 深圳市风云实业有限公司 | 转发板通道复用方法及装置 |
CN106850461B (zh) * | 2017-03-03 | 2020-08-25 | 深圳市风云实业有限公司 | 转发板通道复用方法及装置 |
CN109120539A (zh) * | 2017-06-22 | 2019-01-01 | 深圳市中兴微电子技术有限公司 | 一种实现数据传输处理的方法及装置 |
CN109120539B (zh) * | 2017-06-22 | 2022-05-13 | 深圳市中兴微电子技术有限公司 | 一种实现数据传输处理的方法及装置 |
CN113050703A (zh) * | 2021-02-05 | 2021-06-29 | 新华三技术有限公司 | 一种流量控制方法及设备 |
CN113050703B (zh) * | 2021-02-05 | 2022-11-18 | 新华三技术有限公司 | 一种流量控制方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101572673B (zh) | 2013-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101572673B (zh) | 扩展交换带宽的分布式包交换***和分布式包交换方法 | |
US10153985B2 (en) | Dragonfly processor interconnect network | |
US6654342B1 (en) | Accumulating and distributing flow control information via update messages and piggybacked flow control information in other messages in a packet switching system | |
US8811153B1 (en) | Switch fabric for network devices | |
US7545740B2 (en) | Two-way link aggregation | |
US6674721B1 (en) | Method and apparatus for scheduling packets being sent from a component of a packet switching system | |
CN102763380B (zh) | 用于路由分组的***和方法 | |
EP2893678B1 (en) | Apparatus for transferring packets between interface control modules of line cards | |
CN101567855B (zh) | 分布式包交换***和分布式包交换方法 | |
US6747972B1 (en) | Method and apparatus for reducing the required size of sequence numbers used in resequencing packets | |
CN102263697A (zh) | 一种聚合链路流量分担方法和装置 | |
CN113630347B (zh) | 一种数据传输方法、***、存储介质及设备 | |
CN108989237B (zh) | 数据传输的方法和设备 | |
CN103957156A (zh) | 通过网络传输数据的方法 | |
US6728211B1 (en) | Method and apparatus for delaying packets being sent from a component of a packet switching system | |
CN103095568A (zh) | 机架式交换设备实现堆叠的***及方法 | |
CN101483593B (zh) | 一种交换设备中基于聚合链路分配缓存的方法及装置 | |
CN104995872A (zh) | 带有无源互连和分布式无交换机交换的路由器 | |
JP2016501474A (ja) | 分散型スイッチレス相互接続 | |
US6999453B1 (en) | Distributed switch fabric arbitration | |
US20130265876A1 (en) | Apparatus and method for controlling packet flow in multi-stage switch | |
WO2016132402A1 (ja) | 通信フレーム転送装置および通信システム | |
CN105577562B (zh) | 业务数据流的发送、转发方法及装置 | |
CN101950279B (zh) | 均衡数据信息流量的方法、总线***和译码器 | |
CN104935509A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |