CN100581140C - 实现转发能力动态检测的方法和装置 - Google Patents
实现转发能力动态检测的方法和装置 Download PDFInfo
- Publication number
- CN100581140C CN100581140C CN200710175709A CN200710175709A CN100581140C CN 100581140 C CN100581140 C CN 100581140C CN 200710175709 A CN200710175709 A CN 200710175709A CN 200710175709 A CN200710175709 A CN 200710175709A CN 100581140 C CN100581140 C CN 100581140C
- Authority
- CN
- China
- Prior art keywords
- transfer capability
- outgoing interface
- interface
- cpu
- assessed value
- 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
Abstract
本发明公开了一种实现转发能力动态检测的方法和装置。本发明通过检测连接出接口CPU的SPI4接口产生的反压信号来检测出接口的CPU转发能力。这样,即可将检测结果通知该出接口对应的各入接口,用以各入接口确定自身向该出接口所发送的报文流量,以有效的实现板间流控,保证对应的所有入接口的报文流量之和不会超出出接口的CPU转发能力,从而使得本发明中实现转发能力动态检测的方法和装置为提高报文转发的可靠性提供了保障。
Description
技术领域
本发明涉及流量控制技术,特别涉及一种基于带宽估计实现转发能力动态检测的方法、一种基于带宽估计实现转发能力动态检测的装置。
背景技术
现有基于交换网技术的分布式路由系统中,包括多个路由设备,每个路由设备均通过交换网与其他路由设备相连。
其中,每个路由设备均可作为分布式路由系统的入接口,接收来自系统外部的报文,并通过系统中的交换网传输到作为出接口的其他路由设备,再由作为出接口的路由设备将报文转发到系统之外。
图1为现有分布式路由系统的示例性结构图。如图1所示,该系统中包括3个路由设备,即接口板LPU_a、接口板LPU_b、接口板LPU_c,每个接口板均通过交换(Switch)芯片与另外2个接口板相连,Switch芯片看作交换网。其中,LPU_a和LPU_b作为入接口,将来自系统外的报文通过作为交换网的Switch芯片发送给LPU_c,LPU_c作为出接口,将来自LPU_a和LPU_b的报文转发到系统外,单向箭头曲线表示报文流的流向。
上述系统中,每个接口板中均包括一个用于板间流量控制的在现场可编程门阵列(FPGA)、以及一个用于报文转发的中央处理单元(CPU)。FPGA与CPU之间采用第四级数据速率的系统包接口(System Packet InterfaceLevel 4,SPI4)接口,Level 4表示标称数据速率,即9.953Gbps。
其中,SPI4主要应用于物理(PHY)层器件与链路(LINK)层器件之间的点对点互连。SPI4接口信号如图2所示,收发方向各有两根状态线TSTAT[1:0]和RSTAT[1:0]用作反压信号。
对于作为出接口的LPU_c,如图3示,FPGA中的FIFO_1接收来自LPU_a和LPU_b的报文进行缓存,然后,FPGA将FIFO_1中缓存的待发送报文再缓存到FIFO_2,由FIFO_2通过SPI_4接口发往CPU中的FIFO_3,CPU依次将缓存在FIFO_3中的待发送报文进行转发。
假设LPU_c中的CPU的处理能力只有1Gbps,而FPGA当前发送的报文流量远大于1Gbps(LPU_c中的FPGA当前发送的报文流量等于来自LPU_a和LPU_b的报文流量之和),则CPU中FIFO_3将很快达到几乎满(AlmostFull)状态,从而通过SPI4接口产生反压信号,令FPGA暂停发送报文流。
这样,FPGA暂停向CPU发送报文流后,由于FIFO_1仍然接收到来自LPU_a和LPU_b的报文,使得SPI4接口侧的FIFO_2将会在一定时间内也达到AlmostFull状态。在FIFO_2达到AlmostFull状态后,FIFO_1中的报文则无法再发送到FIFO_2,从而使得FIFO_1发生溢出,而溢出的结果就是板间丢包,即LPU_c丢失来自LPU_a和LPU_b的报文。
可见,现有基于交换网技术的分布式路由系统中,由于无法获知作为出接口的CPU转发能力,因而无法为该出接口对应的所有入接口合理分配带宽,从而无法保证对应的所有入接口的报文流量之和不会超出(或者不会长时间超出)出接口的CPU转发能力,也就无法避免板间丢包,使得报文转发的可靠性不高。
发明内容
有鉴于此,本发明提供了一种实现转发能力动态检测的方法、一种实现转发能力动态检测的装置,能够为提高报文转发的可靠性提供保障。
本发明提供的一种实现转发能力动态检测的方法,设置出接口CPU转发能力评估值,所述出接口CPU通过与其连接的SPI4接口接收来自对应入接口的报文并进行转发,该方法包括:
实时检测连接出接口CPU的SPI4接口是否产生反压信号;
根据检测结果调整所述出接口CPU转发能力评估值;
将调整后的出接口CPU转发能力评估值分配给与该出接口对应的各入接口;
将分配结果分别发送给对应的各入接口,用以各入接口按照分配结果所表示的带宽,确定其自身向出接口所发送的报文流量。
所述根据检测结果调整出接口CPU转发能力评估值包括:
如果检测到反压信号,表示所述出接口的CPU转发能力降低,则调低所述出接口CPU转发能力评估值;
否则,表示所述出接口的CPU转发能力提高,则调高所述出接口CPU转发能力评估值。
该方法进一步包括预设检测周期、以及在所述检测周期结束时产生定时器事件;
在所述定时器事件发生后,根据前一检测周期内是否产生过反压信号执行所述调整。
所述调低所述出接口CPU转发能力评估值为:将所述出接口CPU转发能力评估值减半。
在前一检测周期调高所述出接口CPU转发能力评估值,在当前检测周期需要调低所述出接口CPU转发能力评估值,则将所述出接口CPU转发能力评估值恢复为调高之前的值。
所述调高出接口CPU转发能力评估值之前,进一步包括:
判断当前出接口CPU转发能力评估值是否为预设的出接口CPU实际转发能力的上限值,如果是,则保持当前出接口CPU转发能力评估值不变,否则,执行所述调高出接口CPU转发能力评估值。
执行调高所述出接口CPU转发能力评估值为:将出接口CPU转发能力评估值增加原有值的1/4。
将调整后的出接口CPU转发能力评估值分配给与该出接口对应的各入接口为:
将调整后的出接口CPU转发能力评估值平均分配给与该出接口对应的各入接口;
或者,根据预设的不同入接口的优先级,采用加权的方式将调整后的出接口CPU转发能力评估值分配给各入接口。
将分配结果分别发送给对应的各入接口为:
利用带宽分配ALLOC报文将分配结果分别发送给对应的各入接口。
本发明提供的一种实现转发能力动态检测的装置,该装置作为分布式路由系统的出接口,包括:流量控制单元,用于接收来自装置外部的报文,并通过SPI4接口发送给CPU;CPU,用于对接收到的报文进行转发;
该装置进一步包括与所述SPI4接口相连的检测单元,所述检测单元中预先设置了出接口CPU转发能力评估值,用于实时检测连接出接口CPU的SPI4接口是否产生反压信号;根据检测结果调整所述出接口CPU转发能力评估值;
该装置还包括:带宽分配单元和通知发送单元,其中,
所述带宽分配单元,将所述检测单元调整后的出接口CPU转发能力评估值分配给所述分布式路由系统中对应的各入接口;
所述通知发送单元,将所述带宽分配单元得到的分配结果分别发送给所述对应的各入接口,用以各入接口按照分配结果所表示的带宽,确定其自身所发送的报文流量。
所述检测单元中包括反压信号检测子单元和调整子单元,其中,
所述反压信号检测子单元,如果检测到反压信号,则通知所述调整子单元所述出接口的CPU转发能力降低,否则,通知所述调整子单元所述出接口的CPU转发能力提高;
所述调整子单元,如果接收到表示所述出接口的CPU转发能力降低的通知,则调低所述出接口CPU转发能力评估值;如果接收到表示所述出接口的CPU转发能力提高的通知,则调高所述出接口CPU转发能力评估值。
该装置进一步包括定时器,在预设检测周期结束时产生定时器事件;
所述检测单元在定时器事件发生后,根据前一检测周期内是否检测到反压信号执行所述调整。
由上述技术方案可见,本发明中实现转发能力动态检测的方法和装置,通过检测连接出接口CPU的SPI4接口产生的反压信号来检测出接口的CPU转发能力。这样,即可将检测结果通知该出接口对应的各入接口,用以各入接口确定自身向该出接口所发送的报文流量,以有效的实现板间流控,保证对应的所有入接口的报文流量之和不会超出出接口的CPU转发能力,从而本发明中实现转发能力动态检测的方法和装置为提高报文转发的可靠性提供了保障。
而且,由于各入接口被分配的带宽总和等于出接口CPU转发能力评估值,从而能够充分利用了出接口CPU的转发能力。
附图说明
图1为现有分布式路由系统的示例性结构图。
图2为SPI4接口信号的示意图。
图3为分布式路由系统中的接口板的结构示意图。
图4为本发明实施例中实现转发能力动态检测的装置结构示意图。
图5为本发明实施例中实现转发能力动态检测的方法流程示意图。
图6为应用本发明实施例中技术方案的分布式路由系统的结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
本发明中,在基于交换网技术的分布式路由系统中,利用与出接口CPU相连的SPI4接口的反压信号,动态检测出接口的CPU转发能力。
这样,出接口即可将检测出的其CPU转发能力按照一定规则分配给对应的各入接口,令所有入接口调整发送给该出接口的报文流量,以有效的实现板间流控,保证对应的所有入接口的报文流量之和不会超出出接口的CPU转发能力,避免板间丢包,从而能够提高报文转发的可靠性。
而且,还可调整所有入接口的报文流量之和接近出接口的CPU转发能力,即充分利用出接口的CPU转发能力。
基于上述原理,本发明实施例中设置出接口CPU转发能力评估值。
其中,CPU的转发能力是动态变化的,不会保持固定值,而且这种能力不能用确定的数值来准确描述,因此,设置的出接口CPU转发能力评估值为一初始值,用于后续的动态调整。
实现转发能力动态检测的方法包括:实时检测连接出接口CPU的SPI4接口是否产生反压信号;
根据表示是否检测到反压信号的检测结果,调整出接口CPU转发能力评估值。具体来说,如果检测到反压信号,表示出接口的CPU转发能力降低,则调低出接口CPU转发能力评估值;否则,表示出接口的CPU转发能力提高,则调高出接口CPU转发能力评估值。
可见,上述方法通过检测连接出接口CPU的SPI4接口产生的反压信号,实现了对出接口的CPU转发能力的检测。
然后,还可根据动态调整的出接口CPU转发能力评估值,为该出接口对应的各入接口分配带宽,并将分配结果发送给各入接口。
这样,不但实现了对动态变化的出接口CPU转发能力的动态检测,还通过双向调整预设出接口CPU转发能力评估值,实现了对各入接口发送的报文流量的调整,以保证对应的来自所有入接口的报文流量之和不会超出出接口CPU的实际转发能力。
实际应用中,可以设置一检测周期为T的定时器,该定时器能够在检测周期结束时产生定时器事件。在系统开始运行后,启动该定时器,以检测每个T时间段内在出接口CPU的SPI4接口上是否产生反压信号,只有在检测周期结束产生定时器事件时,才根据检测结果,即在前一检测周期内是否检测到反压信号来调整出接口CPU转发能力评估值。也就是说,在T时间段内不根据SPI4的反压信号作任何处理,只是记录SPI4接口是否产生过反压信号,而无需实时调整出接口CPU转发能力评估值。
上述调低出接口CPU转发能力评估值,可以根据预设的步长来调低出接口CPU转发能力评估值。例如,带宽减半法(出接口CPU转发能力评估值表示该出接口CPU所能够转发的报文流总量,即带宽总和),在系统开始运行后,如果是首次检测到SPI4的反压信号,则将出接口CPU转发能力评估值减半;如果连续的几个检测周期内均检测到SPI4的反压信号,则将出接口CPU转发能力评估值连续减半,直至在一个检测周期内没有SPI4的反压信号为止。
如果在一个或几个检测周期内没有检测到SPI4的反压信号,则可以判断当前出接口CPU转发能力评估值是否为预设的出接口CPU实际转发能力的上限值,如果是,则保持当前出接口CPU转发能力评估值不变,否则,根据预设的步长来调高出接口CPU转发能力评估值。例如,如果在一个检测周期内没有检测到SPI4的反压信号,则将出接口CPU转发能力评估值增加原有值的1/4,如果连续几个检测周期内没有检测到SPI4的反压信号,则在每个检测周期结束时,将出接口CPU转发能力评估值增加原有值的1/4,直至检测到SPI4的反压信号、或出接口CPU转发能力评估值已经调高到线速(CPU实际转发能力的最大上限值,通常为10Gbps)为止。
这样,即可根据每个检测周期的检测结果,实现出接口CPU转发能力评估值的双向调整。这样,如果前一检测周期内未检测到SPI4的反压信号并调高了出接口CPU转发能力评估值,而在当前检测周期内检测到了SPI4的反压信号,则将出接口CPU转发能力评估值回退至前一次调整前的大小。
以下,假设出接口CPU转发能力评估值为P、SPI4的反压信号为S,结合具体实例对上述调整出接口CPU转发能力评估值的过程进行进一步说明:
a、系统开始运行之前,将P的初始值P0配置为线速(10Gbps),并将其均匀分配给各入接口,即m个入接口中的每个入接口分配到P/m。
b、如果所有入接口的报文流量和小于等于配置为线速的P0,即小于等于出接口的CPU实际转发能力上限(10Gbps),则出接口CPU上的SPI4接口不会产生反压信号S;如果某时刻开始,所有入接口的报文流量之和大于P0,即大于出接口的CPU实际转发能力上限(10Gbps),则在该时刻所处的第n个检测周期内,CPU的SPI4接口产生反压信号S。
c、如果在第n个检测周期中首次检测到反压信号S,假设第n个检测周期时的出接口转发能力评估值为Pn,则将Pn减半,即Pn+1=0.5Pn。
d、如果在第n+1个检测周期内再次检测到反压信号S,则再将Pn+1减半,即Pn+2=0.5Pn+1;如果在第n+2个检测周期中又一次检测到反压信号S,则再将Pn+2减半,即Pn+3=0.5Pn+2,也就是说,只要在连续的检测周期内产生反压信号S,则一直将P减半,直到在接下来的第k个检测周期中没有出现反压信号S为止。
e、如果在第k个检测周期没有检测到反压信号S,则将Pk+1修正为1.25Pk,即Pk+1=1.25Pk;如果在第k+1个检测周期内没有检测到反压信号S,则再将Pk+2修正为1.25Pk+1,即Pk+2=1.25Pk+1,也就是说,只要在连续的检测周期内没有检测到反压信号S,则连续将P增加1/4,直到在接下来的第j个检测周期检测到反压信号S或者P已经增加到线速为止。
f、如果第j+1个检测周期检测到反压信号S,则将Pj+1修正为Pj-1,即Pj+1=Pj-1;如果在第j+1个检测周期内没有检测到反压信号S,则将Pj+2修正为1.25Pj+1,即Pj+2=1.25Pj+1,否则将Pj+1减半,即Pj+2=0.5Pj+1。
由上述调整过程可见,本发明实施例在检测周期内检测到反压信号后,采用带宽减半法,迅速降低出接口CPU转发能力评估值,从而能够令各入接口迅速减少发送给该出接口的报文流量,而在检测周期内未检测到反压信号时,则只调高出接口CPU转发能力评估值的1/4,即采用缓慢增长法,以逐步探测出接口CPU的实际转发能力是否能够满足来自各入接口的报文流量总和,从而为进一步提高报文转发的可靠性提供了保障。
本发明中还提供了一种实现转发能力动态检测的装置,该装置作为分布式路由系统中的出接口,能够实现上述方法。
图4为本发明实施例中实现转发能力动态检测的装置结构示意图。如图4所示,该装置作为分布式路由系统的出接口,包括:流量控制单元、CPU和检测单元,流量控制单元与CPU通过SPI4接口相连。
流量控制单元,用于接收来自装置外部的报文,并通过SPI4接口发送给CPU。
其中,流量控制单元中可以包括两个FIFO,例如如图3所示的FIFO_1和FIFO_2;FIFO_1接收来自分布式路由系统中入接口的报文并进行缓存,然后,流量控制单元将FIFO_1中缓存的待发送报文再缓存到FIFO_2,由FIFO_2通过SPI 4接口发往CPU。
CPU,用于对接收到的报文进行转发。
其中,CPU中包括一个FIFO_3,接收来自流量控制单元的报文并进行缓存。
检测单元与SPI4接口相连,且检测单元中预先设置了出接口CPU转发能力评估值,该出接口CPU转发能力评估值为一初始值,用于后续的动态调整。
检测单元,用于实时检测连接出接口CPU的SPI4接口是否产生反压信号,并根据表示是否检测到反压信号的检测结果,调整所述出接口CPU转发能力评估值。
也就是说,检测单元通过检测连接出接口CPU的SPI4接口产生的反压信号来检测出接口的CPU转发能力。
具体来说,检测单元中包括反压信号检测子单元和调整子单元。
反压信号检测子单元,如果检测到上述与CPU相连的SPI4接口产生的反压信号,则通知调整子单元出接口的CPU转发能力降低,否则,通知调整子单元出接口的CPU转发能力提高。
调整子单元,如果接收到表示出接口的CPU转发能力降低的通知,则调低出接口CPU转发能力评估值;如果接收到表示出接口的CPU转发能力提高的通知,则调高出接口CPU转发能力评估值。
实际应用中,该装置可以进一步包括一检测周期为T的定时器,与检测单元相连。
在系统开始运行后,启动该定时器,定时器在检测周期结束时产生一定时器事件,检测单元则只有在定时器事件发生时,才根据检测结果,即根据在前一检测周期内是否检测到反压信号来调低出接口CPU转发能力评估值,而无需检测单元实时调整出接口CPU转发能力评估值。
其中,检测单元调低出接口CPU转发能力评估值,可以采用带宽减半法,迅速降低出接口CPU转发能力评估值,以令各入接口迅速减少发送给该出接口的报文流量,而检测单元调高出接口CPU转发能力评估值,则可以只调高出接口CPU转发能力评估值的1/4,即采用缓慢增长法。
双向调整出接口CPU转发能力评估值的处理过程,可以按照如前所述的实现转发能力动态检测的方法中的相关处理过程来实现。
如图4所示的装置中,流量控制单元可以按照现有方式,用FPGA来实现。由于FPGA具有可编程功能,因此,只要FPGA具有足够的硬件资源,检测单元和定时器也可以由FPGA来实现,即流量控制单元、检测单元和定时器位于同一物理实体中。这样,即可简化如图4所示的装置内部结构,还能够充分利用硬件资源。
上述实现转发能力动态检测的方法和装置中,检测周期T的长短可以按照如下方式来确定:当与出接口CPU连接的SPI4接口产生反压信号时,从入接口发送过来的报文将被缓存在流量控制单元的FIFO_1及FIFO_2中,因此,检测周期T的长短需要满足CPU的转发处理能力达到线速的情况下,FIFO_1和FIFO_2在检测周期T内都不会发生溢出。
以上所述的实现转发能力动态检测的方法和装置中,均是以出接口的SPI4接口使用单通道为例。而实际应用中,SPI4接口还能够支持多通道分别传输多个报文流,因此,可以在出接口处为每一个入接口分配一个专用的SPI4接口,并同样可以按照上述方案利用每个SPI4接口的反压信号来分别检测CPU对各SPI4接口所对应的入接口的转发能力。
可见,上述实现转发能力动态检测的方法和装置,通过检测连接出接口CPU的SPI4接口产生的反压信号来检测出接口的CPU转发能力。这样,即可将检测结果通知该出接口对应的各入接口,用以各入接口确定自身向该出接口所发送的报文流量,以有效的实现板间流控,保证对应的所有入接口的报文流量之和不会超出出接口的CPU转发能力,从而本发明中实现转发能力动态检测的方法和装置为提高报文转发的可靠性提供了保障。
以上是对本发明实施例中实现转发能力动态检测的方法和装置的说明。
在执行了实现转发能力动态检测的方法之后,即可将检测到的出接口CPU转发能力,即出接口CPU转发能力评估值发送给各对应的入接口,这就构成了本发明实施例中实现报文转发流量控制的方法。
图5为本发明实施例中实现转发能力动态检测的方法流程示意图。如图5所示,本发明实施例中实现转发能力动态检测的方法包括:
步骤501,在每个预设检测周期内,如果检测到连接出接口CPU的SPI4接口产生的反压信号,则调低预设的出接口CPU转发能力评估值,否则,调高预设的出接口CPU转发能力评估值。
其中,CPU的转发能力是动态变化的,不会保持固定值,而且这种能力不能用确定的数值来准确描述,因此,预先设置的出接口CPU转发能力评估值为一初始值,例如,该初始值可以为出接口CPU实际转发能力的上限值,即线速。
本步骤中,如果在预设检测周期内未接收到SPI4接口产生的反压信号,但当前的出接口CPU转发能力评估值为出接口CPU实际转发能力的上限值,则不需调高该评估值。
如果在检测周期内检测到反压信号,则采用带宽减半法,迅速降低出接口CPU转发能力评估值,以令各入接口迅速减少发送给该出接口的报文流量,而如果在检测周期内未检测到反压信号,则只调高出接口CPU转发能力评估值的1/4,即采用缓慢增长法,以逐步探测出接口CPU的实际转发能力是否能够满足来自各入接口的报文流量总和,避免过快地提高出接口CPU转发能力评估值会造成来自各入接口的报文流量总和突增,从而避免板间丢包,进一步提高报文转发的可靠性。
步骤502,在调整了出接口CPU转发能力评估值之后,将调整后的出接口CPU转发能力评估值分配给与该出接口对应的各入接口。
其中,由于出接口CPU转发能力评估值表示该出接口CPU所能够转发的报文流总量,即能够分配给对应的所有入接口的带宽总和,因此,将出接口CPU转发能力评估值分配给与该出接口对应的各入接口就是指为各对应的入接口分配带宽。
本步骤中,可以将调整后的出接口CPU转发能力评估值平均分配给对应的各入接口,即平均分配带宽;也可以根据预设的不同入接口的优先级,采用加权的方式分配给各入接口。不论采用何种分配方式,各入接口被分配的带宽总和等于出接口CPU转发能力评估值,从而充分利用了出接口CPU的转发能力。
本步骤的执行条件是出接口CPU转发能力评估值发生变化,即被调整。
步骤503,将分配结果分别发送给对应的各入接口。
本步骤中,可以按照各种预设格式的协议报文,例如分布式路由系统中的控制报文,将分配结果分别发送给对应的各入接口。
在本实施例中,可以采用控制报文中的带宽分配(ALLOC)报文,即将控制报文的第5个字节设置为1,表示该控制报文为ALLOC报文,并在该控制报文的数据字段(最后144个字节)中添加分配结果。实际应用中,也可以采用其他自定义报文来发送分配结果。
如果在步骤502采用的分配方式为平均分配,则本步骤中可以通过广播或组播的方式,利用预设格式的协议报文将分配结果分别发送给对应的各入接口;如果在步骤502采用的分配方式为加权方式,则本步骤中可以通过单播或组播(对于相同加权因子的各入接口)的方式,利用预设格式的协议报文将分配结果分别发送给对应的各入接口。
上述步骤501~步骤503,即实现了通过检测连接出接口CPU的SPI4接口产生的反压信号来检测出接口的CPU转发能力,并将检测结果通知该出接口对应的各入接口。
步骤504,各入接口接收到分配结果后,按照分配结果所表示的带宽,确定其自身向出接口所发送的报文流量。
至此,本流程结束。
上述流程为一个循环执行的过程,这样,上述方法通过检测连接出接口CPU的SPI4接口产生的反压信号来检测出接口的CPU转发能力,并将检测结果通知该出接口对应的各入接口,用以各入接口确定自身向该出接口所发送的报文流量,从而有效的实现板间流控,保证了对应的所有入接口的报文流量之和不会超出出接口的CPU转发能力,提高了报文转发的可靠性。
对于如图4所示的实现转发能力动态检测的装置,为了能够将检测结果通知分布式路由系统中对应的各入接口,以便各入接口能够确定自身向作为出接口的该装置发送的报文流量,该装置中还可以包括:带宽分配单元和通知发送单元。
带宽分配单元,将检测单元调整后的出接口CPU转发能力评估值分配给分布式路由系统中对应的各入接口。
通知发送单元,将带宽分配单元得到的分配结果分别发送给对应的各入接口,用以各入接口按照分配结果所表示的带宽,确定其自身所发送的报文流量。
实际应用中,带宽分配单元和通知发送单元也可以利用FPGA来实现。
图6为应用本发明实施例中技术方案的分布式路由系统的结构示意图。如图6所示,作为出接口的报文转发装置,在每个预设检测周期内,通过检测连接出接口CPU的SPI4接口产生的反压信号来检测出接口的CPU转发能力;将检测结果通知其对应的作为入接口的各报文转发装置,用以作为入接口的各报文转发装置确定自身发送的报文流量。
具体来说,作为入接口的报文转发装置,向作为出接口的报文转发装置发送报文流;根据来自作为出接口报文转发装置的分配结果所表示的带宽,确定其自身向作为出接口报文转发装置发送的报文流量。
作为出接口的报文转发装置,在每个预设检测周期内,如果检测到其自身连接其CPU的SPI4接口产生的反压信号,则调低预设的出接口CPU转发能力评估值,否则,调高预设的出接口CPU转发能力评估值;将调整后的出接口CPU转发能力评估值分配给与该出接口对应的各作为入接口的报文转发装置,并将分配结果分别发送给对应的各作为入接口的报文转发装置。
其中,作为出接口的报文转发装置的内部具体处理过程,可以按照如图5所示的方法来实现。
上述系统中,每个报文转发装置均可作为入接口,也可作为出接口。
可见,上述系统通过检测连接出接口CPU的SPI4接口产生的反压信号来检测出接口的CPU转发能力,并将检测结果通知该出接口对应的各入接口,用以各入接口确定自身向该出接口所发送的报文流量,从而有效的实现板间流控,保证了对应的所有入接口的报文流量之和不会超出出接口的CPU转发能力,提高了报文转发的可靠性。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。
Claims (12)
1、一种实现转发能力动态检测的方法,其特征在于,设置出接口CPU转发能力评估值,所述出接口CPU通过与其连接的SPI4接口接收来自对应入接口的报文并进行转发,该方法包括:
实时检测连接所述出接口CPU的SPI4接口是否产生反压信号;
根据检测结果调整所述出接口CPU转发能力评估值;
将调整后的出接口CPU转发能力评估值分配给与该出接口对应的各入接口;
将分配结果分别发送给对应的各入接口,用以各入接口按照分配结果所表示的带宽,确定其自身向出接口所发送的报文流量。
2.如权利要求1所述的方法,其特征在于,所述根据检测结果调整出接口CPU转发能力评估值包括:
如果检测到反压信号,表示所述出接口的CPU转发能力降低,则调低所述出接口CPU转发能力评估值;
否则,表示所述出接口的CPU转发能力提高,则调高所述出接口CPU转发能力评估值。
3、如权利要求2所述的方法,其特征在于,该方法进一步包括预设检测周期、以及在所述检测周期结束时产生定时器事件;
在所述定时器事件发生后,根据前一检测周期内是否产生过反压信号执行所述调整。
4、如权利要求3所述的方法,其特征在于,所述调低所述出接口CPU转发能力评估值为:将所述出接口CPU转发能力评估值减半。
5、如权利要求3所述的方法,其特征在于,在前一检测周期调高所述出接口CPU转发能力评估值,在当前检测周期需要调低所述出接口CPU转发能力评估值,则将所述出接口CPU转发能力评估值恢复为调高之前的值。
6、如权利要求3所述的方法,其特征在于,所述调高出接口CPU转发能力评估值之前,进一步包括:
判断当前出接口CPU转发能力评估值是否为预设的出接口CPU实际转发能力的上限值,如果是,则保持当前出接口CPU转发能力评估值不变,否则,执行所述调高出接口CPU转发能力评估值。
7、如权利要求6所述的方法,其特征在于,执行调高所述出接口CPU转发能力评估值为:将出接口CPU转发能力评估值增加原有值的1/4。
8、如权利要求1至6中任一项所述的方法,其特征在于,将调整后的出接口CPU转发能力评估值分配给与该出接口对应的各入接口为:
将调整后的出接口CPU转发能力评估值平均分配给与该出接口对应的各入接口;
或者,根据预设的不同入接口的优先级,采用加权的方式将调整后的出接口CPU转发能力评估值分配给各入接口。
9、如权利要求1至6中任一项所述的方法,其特征在于,将分配结果分别发送给对应的各入接口为:
利用带宽分配ALLOC报文将分配结果分别发送给对应的各入接口。
10、一种实现转发能力动态检测的装置,该装置作为分布式路由系统的出接口,包括:流量控制单元,用于接收来自装置外部的报文,并通过SPI4接口发送给CPU;CPU,用于对接收到的报文进行转发;
其特征在于,该装置进一步包括与所述SPI4接口相连的检测单元,所述检测单元中预先设置了出接口CPU转发能力评估值,用于实时检测连接出接口CPU的SPI4接口是否产生反压信号;根据检测结果调整所述出接口CPU转发能力评估值;
该装置还包括:带宽分配单元和通知发送单元,其中,
所述带宽分配单元,将所述检测单元调整后的出接口CPU转发能力评估值分配给所述分布式路由系统中对应的各入接口;
所述通知发送单元,将所述带宽分配单元得到的分配结果分别发送给所述对应的各入接口,用以各入接口按照分配结果所表示的带宽,确定其自身所发送的报文流量。
11、如权利要求10所述的装置,其特征在于,所述检测单元中包括反压信号检测子单元和调整子单元,其中,
所述反压信号检测子单元,如果检测到反压信号,则通知所述调整子单元所述出接口的CPU转发能力降低,否则,通知所述调整子单元所述出接口的CPU转发能力提高;
所述调整子单元,如果接收到表示所述出接口的CPU转发能力降低的通知,则调低所述出接口CPU转发能力评估值;如果接收到表示所述出接口的CPU转发能力提高的通知,则调高所述出接口CPU转发能力评估值。
12、如权利要求10所述的装置,其特征在于,该装置进一步包括定时器,在预设检测周期结束时产生定时器事件;
所述检测单元在定时器事件发生后,根据前一检测周期内是否检测到反压信号执行所述调整。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710175709A CN100581140C (zh) | 2007-10-10 | 2007-10-10 | 实现转发能力动态检测的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710175709A CN100581140C (zh) | 2007-10-10 | 2007-10-10 | 实现转发能力动态检测的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101127729A CN101127729A (zh) | 2008-02-20 |
CN100581140C true CN100581140C (zh) | 2010-01-13 |
Family
ID=39095655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710175709A Active CN100581140C (zh) | 2007-10-10 | 2007-10-10 | 实现转发能力动态检测的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100581140C (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105791140A (zh) * | 2014-12-19 | 2016-07-20 | 中兴通讯股份有限公司 | 报文的发送处理方法、装置及一种网络设备 |
-
2007
- 2007-10-10 CN CN200710175709A patent/CN100581140C/zh active Active
Non-Patent Citations (4)
Title |
---|
ATM网络预测拥塞控制器设计. 朱瑞军等.控制与决策,第19卷第1期. 2004 |
ATM网络预测拥塞控制器设计. 朱瑞军等.控制与决策,第19卷第1期. 2004 * |
SPI4.2接口的FPGA实现. 刘玉倩等.实验科学与技术. 2005 |
SPI4.2接口的FPGA实现. 刘玉倩等.实验科学与技术. 2005 * |
Also Published As
Publication number | Publication date |
---|---|
CN101127729A (zh) | 2008-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101104004B1 (ko) | 데이터 센터 이더넷 아키텍처를 위한 가상 레인들 상의 적응식 혼잡 제어 방법, 시스템, 및 컴퓨터 프로그램 제품 | |
JP5010739B2 (ja) | 集約帯域幅制御のための方法及びシステム | |
US7450509B2 (en) | Adaptive flow control method and apparatus | |
US20110173352A1 (en) | Power Reduction on Idle Communication Lanes | |
US10313089B2 (en) | Method, apparatus, and system for transmitting data in ethernet | |
WO2020253488A1 (zh) | 拥塞控制方法及装置、通信网络、计算机存储介质 | |
CN106302209B (zh) | 一种片上网络NoC及数据传输的方法 | |
CN102244773A (zh) | 一种基于窄变带宽网络的实时视频流传输方法 | |
CN101370175B (zh) | 确定数据发送时间的方法、组播分组方法、装置和系统 | |
CN101188560B (zh) | 基于转发能力动态检测的板间流控方法和装置 | |
CN103391253A (zh) | 网络拥塞的控制方法、装置及系统 | |
CN102970250A (zh) | 分布式路由器系统中的带宽分配方法和装置、网络设备 | |
CN103763213A (zh) | 报文发送方法及装置 | |
CN104836681A (zh) | 一种多链路绑定的数据分发方法及装置 | |
CN102739510B (zh) | 一种流控方法和装置 | |
CN100581140C (zh) | 实现转发能力动态检测的方法和装置 | |
JP5804566B2 (ja) | スリープ制御方法、光通信システム、及び光ネットワーク終端装置 | |
JP2008502192A (ja) | 多重化されたリンクに対するバックプレッシャ方法 | |
US7342881B2 (en) | Backpressure history mechanism in flow control | |
JP4382830B2 (ja) | パケット転送装置 | |
TWI446766B (zh) | 管理執行之方法及具有執行管理能力之裝置 | |
Hu et al. | Data aggregation in distributed sensor networks: towards an adaptive timing control | |
Le et al. | SFC: Near-source congestion signaling and flow control | |
JP2010130610A (ja) | データ伝送システム | |
CN103346973A (zh) | 一种动态调整ospf的lsa洪泛速率的方法和装置 |
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 |
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. |
|
CP03 | Change of name, title or address |