CN101325558B - 一种多级多平面结构的数据流发送方法、装置和系统 - Google Patents
一种多级多平面结构的数据流发送方法、装置和系统 Download PDFInfo
- Publication number
- CN101325558B CN101325558B CN200810134587XA CN200810134587A CN101325558B CN 101325558 B CN101325558 B CN 101325558B CN 200810134587X A CN200810134587X A CN 200810134587XA CN 200810134587 A CN200810134587 A CN 200810134587A CN 101325558 B CN101325558 B CN 101325558B
- Authority
- CN
- China
- Prior art keywords
- tag field
- failure identification
- output port
- switching module
- exchange plane
- 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为本发明实施例中一种多级交换系统的结构示意图;
图2为本发明实施例中一种多级多平面结构中的数据流发送方法的流程示意图;
图3为本发明实施例中输入单元的路由分发表的表项结构示意图;
图4为本发明实施例中输出端口的第一标记字段的格式示意图;
图5为本发明实施例中输出端口的第二标记字段的格式示意图;
图6为本发明实施例中一种可能出现的链路故障结构示意图;
图7为本发明实施例中标记字段的更新流程示意图;
图8为本发明实施例中包含链路故障指示的控制信元的格式示意图;
图9为本发明实施例中输入单元中路由分发表的更新流程示意图;
图10为本发明实施例中第一级交换模块中路由分发表的格式示意图;
图11为本发明实施例中第一级交换模块中路由分发表的更新流程示意图;
图12为本发明实施例中一种输入单元的结构示意图;
图13为本发明实施例中一种多级多平面交换系统的结构示意图。
具体实施方式
对于多级交换结构组成的多级多平面交换系统,在交换平面内部出现链路故障的情况下,交换平面的处理能力也会随之发生变化。针对这种情况,提出一种方法使输入单元根据链路的故障情况对其输出端口的发送流量进行调整,降低故障链路所在交换平面内部出现拥塞的概率。
如图1所示,为应用了本发明实施例的三级交换系统的结构示意图。
本发明实施例的三级交换系统包括:输入级模块IM(输入单元)、中间级模块CM(交换平面)和输出级模块OM(输出单元)构成了一个三级交换结构。
其中每个中间级模块CM(i)可以看作为一个交换平面,它实际上也是一个三级交换结构,它由以下三个部分组成:第一级交换模块SE1、第二级交换模块SE2以及第三级交换模块SE3。
在本发明实施例中,该交换系统有2048个输入级模块IM和2048个输出级模块OM,32个中间级模块CM。其中,每个中间级模块CM都是由三级交换结构组成,在本发明实施例中,每个第一级交换模块和第三级交换模块均包含32个输入端口和32个输出端口,即为32×32的交换结构,每个第二级交换模块包含64个输入端口和64个输出端口,即为64×64的交换结构。
需要进一步指出的是,上述的交换系统结构仅是本发明的一种优选实施例,在实际应用中,输入级模块IM(输入单元)、中间级模块CM(交换平面)和输出级模块OM(输出单元)的数量,以及各级交换模块的交换结构,均可以根据实际情况进行变化,这样的变化同样属于本发明的保护范围。
本发明实施例提供了一种多级多平面结构中的数据流发送方法,当链路出现故障时,只要存在通路,就可以发送信元,只是发送的流量要做出相应的调整。每个输入模块单元维持一张路由分发表,并且为它的每个输出端口配置两类标记字段,包括第一标记字段和第二标记字段。
其中,第一标记字段用于记录交换平面内第一级链路故障的位置,具体的,第一级链路是指交换平面内第一级交换模块与第二级交换模块之间的链路,或者第一级交换模块输出端口所在的链路或者是第二级交换模块输入端口所在的链路。
第二标记字段用于记录交换平面内第二级链路故障的位置,具体的,第二级链路是指交换平面内第二级交换模块与第三级交换模块之间的链路,或者第二级交换模块输出端口所在的链路或者是第三级交换模块输入端口所在的链路。
当有数据流需要发送时,先查询路由分发表确定是否有可用路由,如果有可用路由,再配合标记字段中的记录进行流量分配。
为方便说明,在后续的实施例描述过程中,输入级模块IM、中间级模块CM和输出级模块OM统一称为输入单元、交换平面和输出单元,这样的描述名称变化,并不影响本发明的保护范围。
需要理解的是,本发明实施例中的多级多平面交换系统是以三级交换系统为例进行说明,而在其他可选择的实施例中,所述三级交换系统中的中间级模块CM亦可包括多个相互独立的交换平面,因此本发明实施例中的多级多平面交换系统不仅限于三级。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图2所示,为本发明实施例中一种多级多平面结构中的数据流发送方法的流程示意图,具体包括以下步骤:
步骤S201、根据数据流的目的地址在路由分发表中查找可用的输出端口,如果查找到可用的输出端口时,执行步骤202,否则执行步骤S205。
每个输入单元里面都维持一个路由分发表,路由分发表由若干个表项组成,表项的数目等于输出单元的数目,每个表项的比特数目等于输入单元的输出端口的数目。例如,对于本实施例中的交换系统,如图3所示,每个输入单元的路由分发表有2048个表项,每个表项的长度为32比特。
第k(1≤k≤2048)个表项对应的目的输出单元为OM(k),如果它的表项中的32个比特都为“1”,则表示可以通过所有的32个输出端口向目的输出单元OM(k)发送数据流,如果其中第i(1≤i≤32)个比特为“0”,则表示不能通过第i个输出端口所在的链路向目的输出单元OM(k)发送数据流。
例如,第一表项表示它的目的输出单元为OM(1),如果第一个表项的32个比特全为“1”,则表明可以通过所有的32个输出端口向OM(1)发送数据流,如果第3个比特为“0”,就表明不能通过输入单元的输出端口3所在的链路向OM(1)发送数据流。
当根据数据流的目的地址在路由分发表中查找到至少一个可用的输入单元的输出端口时,转入步骤S202;
当根据数据流的目的地址在路由分发表中不能查找到至少一个可用的输出端口时,转入步骤S205。
步骤S202、输入单元判断所述可用的输出端口所对应的第一标记字段和/或第二标记字段是否存在故障标识,当所述第一标记字段和/或第二标记字段存在故障标识时,执行步骤203,否则执行步骤204。
在确定了输出端口后,查看该输出端口所对应的两个标记字段,如果没有链路故障记录,则按照正常速度发送流量,如果有链路故障记录,则按照下面所述的链路故障处理方法控制流量的发送。
当输入单元判断其输出端口的第一标记字段和/或第二标记字段存在故障标识时,转入步骤S203;
当输入单元判断其输出端口的第一标记字段和/或第二标记字段不存在故障标识时,转入步骤S204。
为了保持链路故障状态下的负载均衡,输入单元为它的每个输出端口维持两类标记字段,包括第一标记字段和第二标记字段。其中,第一标记字段用于记录交换平面内第一级链路的故障情况,第二标记字段记录交换平面内第二级链路的故障情况。每种标记字段都由若干个标记字节构成。在本发明实施例中,每个标记字节都为16比特,其中,对于第一标记字段来说,前5个比特用于记录故障链路所处的交换平面号码,中间6比特用于记录故障链路所处的第一级交换模块,后5位用于记录故障链路所处的第一级交换模块的输出端口号码;对于第二标记字段来说,前5个比特用于记录故障链路所处的交换平面号码,中间5比特用于记录故障链路所处的第二级交换模块,后6位用于记录故障链路所处的第二级交换模块的输出端口号码。
对于本文档中所示的交换系统,输入模块单元的每个输出端口与一个交换平面内的一个第一级交换模块相连,如果需要记录所有可能出现的链路故障,每个输出端口对应的第一标记字段需要32个标记字节;类似地,如果需要记录所有可能出现的链路故障,每个输出端口对应的第二标记字段需要2048个标记字节。
另外,第一标记字段的故障记录对输入单元的影响是全局性的,而第二标记字段的故障记录对输入单元的影响是局部性的,因此,可以对每个输出端口的标记字节进行如下配置:第一标记字段配置为32个标记字节,第二标记字段根据实际需要灵活设置大小。当然,也可以对两种标记字段都采用完整记录的方式(即第一标记字段为32个标记字节,第二标记字段为2048个标记字节),或者都采用灵活设置标记字段大小的方式。
对于一个输入单元,它的每个输出端口所对应的第一标记字段的格式如图4所示,第二标记字段的格式如图5所示。其中,1≤n1≤32,1≤n2≤2048,n1和n2的取值可以根据实际需要灵活设定。
步骤S203、当第一标记字段和/或第二标记字段存在故障标识时,根据故障标识调整该输出端口的数据流流量。
具体地,当只有第一标记字段中有链路故障的记录时,如果输入单元中的标记字段记录表明交换平面Pk(1≤k≤32)内的第一级链路出现n1(1≤n1≤32)条链路故障,则将输出端口k的发送流量减小n1/32。
当只有第二标记字段中有链路故障的记录时,如果输入单元中的标记字段记录表明交换平面Pk(1≤k≤32)内的第三级交换模块SE3#i(1≤i≤64)的输入端口出现n2(1≤n2≤32)条链路故障,则表明通过输出端口k发往输出单元OM(32(i-1)+1)至输出单元OM(32i)的数据流会受到链路故障的影响,因此,应将通过输出端口k发往OM(32(i-1)+1)至OM(32i)的流量减小n2/32,发往其他输出单元的流量则保持不变。
当两个标记字段都有链路故障的记录时,首先依据所发数据的目的输出单元,确定与之相连的第三级交换模块SE3#i(1≤i≤64),然后查看该模块(SE3#i)的全部32条输入链路是否存在故障,对于不同结果按如下方式处理:
SE3#i有n2条输入链路故障,这时需确定在n1、n2中,有多少条故障链路在同一路径上(即:与同一中间级模块相连)。假设在n2中有r条故障链路与第一级故障链路在同一路径上,就将输出端口k的发送流量减小n1/32+(n2-r)/32。
例如,对于图6所示的交换系统链路状态示意图,对于IM(1)-IM(32)来说,其两个标记字段都有链路故障的记录,其中,交换平面P1内的第一级链路出现1条故障、第二级链路出现3条故障(如图中黑色加粗虚线条所示)。其中,SE3#1的输入端口32所在的链路出现一条链路故障,并且这条链路与交换平面内第一级的故障链路不在同一条路径上,因此,IM(1)-IM(32)的输出端口1向OM(1)-OM(32)发送数据流时,其流量应减小2/32。由于SE3#64的输入端口1和32所在的链路同时出现故障,并且端口1所在的链路与第一级的故障链路在同一条路径上,因此,对于IM(1)-IM(32)而言,SE3#64的输入端口1的链路故障可以不用考虑。这样,IM(1)-IM(32)的输出端口1向OM(2017)-OM(2048)发送数据流时,只需要考虑第一级链路的1条故障以及SE3#64的输入端口32所处的链路故障,这样,IM(1)-IM(32)通过平面1向OM(2017)-OM(2048)发送数据流的流量应减小2/32。类似地,对于IM(1)-IM(32)的输出端口1来说,发往OM(33)-OM(2016)的数据流仅受到第一级链路故障的影响,因此,发送流量减小1/32。
另一方面,在链路出现故障后,输出端口的发送流量需要按比例进行减小。流量控制的方案很多,本文档中采用对轮询次数进行概率统计的方法来控制流量的发送,具体方法如下:
如果IM的第一标记字段表明输出端口1的流量应变为正常流量的30/32(也即15/16),则可以通过简单的轮询方式实现。数据流到来后,通过轮询的方式依次分发数据流,前15次轮询都是将信元转发到所有的输出端口,第16次轮询时将信元发送到除输出端口1之外的其他31个输出端口。这样,从概率统计上来看,经过16次轮询之后,输出端口1转发了15次信元,而其他的输出端口则转发了16次信元,也即输出端口1的流量为其他正常工作的端口流量的15/16。
同样,如果第二标记字段表明通过输出端口1向OM(1)-OM(32)发送数据流的流量应变为正常情况下的7/8时,在第8次轮询时,目的输出端口为OM(1)-OM(32)的数据流不向输出端口1进行转发。这样,也可以从概率上实现通过输出端口1的目的端口为OM(1)-OM(32)的数据流的流量变为其他正常工作的端口流量的7/8。
为了方便实现,还可用采用统一的方式,以32次轮询为一个周期进行。
步骤S204、输入单元正常发送数据流。
步骤S205、输入单元停止发送数据流。
进一步的,在上述实施例中所提及路由分发表和两个标记字段均可以根据系统中的状态变化发生相应的更新,具体的更新流程通过以下实施例进行说明。
如图7所示,为本发明实施例中标记字段的更新流程示意图,其具体的更新方式是输入单元收到包含链路故障指示的控制信元后,需要根据链路的故障情况判断是否会影响其输出端口的工作,然后做出是否使用故障标记字段记录链路故障的判定,具体包括以下步骤:
步骤S701、判断是否收到包含链路故障指示的控制信元。
其中,包含链路故障指示的控制信元的格式如图8所示:
报头用于标明控制信元,接下来的错误指示包含链路故障的具体位置(包括发生链路故障的交换平面、交换模块的级数(第二级或者第三级)、交换模块以及相应的输入端口号码等)。
如果收到,转入步骤S702;
如果没有收到,则完成本次更新流程,重复本步骤,判断是否收到包含链路故障指示的控制信元。
步骤S702、判断链路故障是否发生在交换平面内。
由于本实施例中的两个标记字段分别记录交换平面内的第一级链路和第二级链路的故障情况,所以,需要判断当前故障是否发生在交换平面内。
如果是发生在交换平面内,转入步骤S703;
如果不是发生在交换平面内,则不记录此故障,完成本次更新流程,转入步骤S701,进行下次更新流程。
需要进一步指出的是,如果故障发生在输入级链路或输出级链路上,则此故障不会记录在上述的标记字段中,而是转入路由分发表中进行记录,需要对路由分发表进行更新,具体的更新过程见本发明后面的实施例。
步骤S703、判断链路故障是发生在第一级链路或第二级链路上。
如果是发生在第一级链路上,转入步骤S704;
如果是发生在第二级链路上,转入步骤S705。
步骤S704、更新第一标记字段。
标记字段的更新算法为:
如果是交换平面Pk(1≤k≤32)内某一个第二级交换模块的输入端口i(1≤i≤64)所在的链路发生故障,即交换平面内第一级链路发生故障,这就表明输入单元IM(32(i-1)+1)至IM(32i)(1≤i≤64)的输出端口k(1≤k≤32)会受到此链路故障的影响,因此,输入单元IM(32(i-1)+1)-IM(32i)(1≤i≤64)的第一种故障标记字段需要记录链路故障发生的位置。
步骤S705、更新第二标记字段。
标记字段的更新算法为:
如果交换平面Pk(1≤k≤32)内第三级交换模块SE3#i(1≤i≤64)的输入端口所在链路发生故障,即交换平面内第二级链路发生故障,这就表明对于所有的输入单元,如果向OM(32(i-1)+1)-OM(32i)(1≤i≤64)发送数据信元,其输出端口k(1≤k≤32)会受到此链路故障的影响。因此,所有输入单元的输出端口k(1≤k≤32)对应的第二种故障标记字段需要记录链路故障发生的位置。
完成更新后,重新开始新的更新流程,即转入步骤S901,以便实时的更新链路故障信息,保证标记字段的信息准确率,提高网络传输效率。
如图9所示,为本发明实施例中路由分发表的更新流程,其具体的更新方式包括以下步骤:
步骤S901、检查输入单元是否收到包含链路故障指示的控制信元或标记字段的反馈指示。
如果收到包含链路故障指示的控制信元,则转入步骤S902;
如果收到标记字段的反馈指示,则转入步骤S906;
如果没有收到,则转入步骤S909。
步骤S902、判断链路故障是否发生在输入级链路或输出级链路。
如果是输入级链路或者输出级链路出现故障,则要对输入单元中维持的2048个分发表做出相应更改。
当链路故障是发生在输入级链路或输出级链路时,转入步骤S903;
当链路故障不是发生在输入级链路或输出级链路时,转入步骤S909。
步骤S903、进一步判断链路故障是发生在输入级链路还是输出级链路。
当链路故障是发生在输入级链路时,转入步骤S904;
当链路故障发生在输出级链路时,转入步骤S905。
步骤S904、变更路由分发表中所有表项中故障输入单元的对应字段。
如果是输入单元IM(s)(1≤s≤2048)的输出端口r(1≤r≤32)所在的链路出现故障,即输入级链路出现故障,则输入单元IM(s)内的2048个表项中的第r比特应被置“0”,表示路由分发表不能通过输出端口r发送数据信元;
步骤S905、变更路由分发表中发生故障的输出单元对应的表项中故障端口对应的字段。
如果是输出单元OM(j)1≤j≤2048)的输入端口h(1≤h≤32)所在的链路出现故障,即输出级链路出现故障,则所有输入单元路由分发表内第j个表项的第h比特被置“0”,表明不能通过其输出端口h到达OM(j)。
步骤S906、判断是第一标记字段或第二标记字段发出的反馈指示。
如果标记字段中的链路故障记录表明,在交换平面的第一级(SE1),某个(或某些)单元的所有输出端口所在的链路均出现故障,就会导致输入单元无法通过该交换平面传递数据;同样,如果标记字段中的链路故障记录表明,在交换平面的第三级(SE3),某个(或某些)交换模块的所有输入端口所在的链路均出现故障,就会导致输入单元无法通过该交换平面向某些输出单元传递数据;因此,在上述两种情况下,需要产生反馈指示来对路由分表进行更新。
当是第一标记字段发出反馈指示时,转入步骤S907;
当是第二标记字段发出反馈指示时,转入步骤S908。
步骤S907、更新路由分发表中所有表项的对应字段。
如果发现第一标记字段中出现这样的情况:交换平面Pi(1≤i≤32)内发生32个链路故障,并且链路故障发生在交换模块SE2#1-SE2#32的输入端口k(1≤k≤64),这就表明交换平面Pi内的第一级交换模块SE1#k的所有输出链路都出现故障,于是标记字段向路由分发表发送一个反馈指示,通知路由分发表将2048个表项中的第i比特全部置“0”。
步骤S908、更新路由分发表中对应表项中的对应字段。
如果发现第二标记字段中出现这样的情况:交换平面Pi(1≤i≤32)内的一个交换模块SE3#k(1≤k≤64)的32个输入端口都有链路故障的记录,则表明SE3#k交换模块的所有输入端口对应的第二级链路全部出现故障,于是标记字段向路由分发表发送一个反馈指示,通知路由分发表将第32(k-1)+1至32k这32个表项中的第i比特全部置“0”。
例如,如果交换平面P1内的第三级交换模块SE3#1的32个输入端口所处的链路均出现故障,则会向路由分发表发送一个反馈指示,使其第1-32个表项中的第1位均置“0”。
步骤S909、不改变路由分发表。
完成更新后,重新开始新的更新流程,即转入步骤S901,以便实时的更新链路故障信息,保证路由分发表的信息准确率,提高网络传输效率。
另外,需要进一步指出的是,在交换平面中的第一级交换模块中,也保存着一份路由分发表,用于指导该模块向交换平面中的后级交换模块发送数据流。
这个路由分发表也有2048个表项,每个表项对应一个输出单元,每个表项有32个比特,分别对应这个交换模块的32个输出端口,如果输出端口所在的链路正常工作,这32个比特全部为“1”,如果第i(1≤i≤32)个输出端口所在的链路出现故障,则路由分发表中的2048个表项中的第i个比特都被置“0”。
交换平面内第一级交换模块处理链路故障的思路是:如果是输入级链路或者输出级链路出现故障,则不予理睬;如果是交换平面内第一级链路或者第二级链路出现故障,则直接修改它的路由分发表,路由分发表的结构如图10所示。
如图11所示,为本发明实施例中交换平面中的第一级交换模块的路由分发表的更新流程示意图,具体包括以下步骤:
步骤S1101、判断是否收到包含链路故障指示的控制信元。
如果收到,转入步骤S1102;
如果没有收到,则不改变路由分发表,完成本次更新流程,重复本步骤,判断是否收到包含链路故障指示的控制信元。
步骤S1102、判断链路故障是否发生在交换平面内。
由于本实施例中的路由分发表位于交换平面内的第一级交换模块,所以,与输入单元中的路由分发表不同,不再记录输入级链路或输出级链路的故障情况,而是记录交换平面内的第一级链路和第二级链路的故障情况,所以,需要判断当前故障是否发生在交换平面内。
如果是发生在交换平面内,转入步骤S1103;
如果不是发生在交换平面内,则不改变路由分发表,完成本次更新流程,转入步骤S1101,进行下次更新流程。
步骤S1103、判断链路故障是发生在第一级链路或第二级链路上。
如果是发生在第一级链路上,转入步骤S1104;
如果是发生在第二级链路上,转入步骤S1105。
步骤S1104、更新第一级交换模块的路由分发表中所有表项的对应字段。
如果交换平面内第一级链路出现故障,假设SE1#k1(1≤k1≤64)的输出端口i(1≤i≤32)所在的链路出现故障,则将路由分发表中2048个表项中的第i个比特全部置“0”。
步骤S1105、更新第一级交换模块的路由分发表中对应表项的对应字段。
如果交换平面内第二级链路出现故障,假设SE2#k2(1≤k2≤32)的输出端口j(1≤j≤64)所在的链路出现故障,则表明数据信元不能通过SE2#k2(1≤k2≤32)的输出端口j(1≤j≤64)所在的链路向目的输出模块单元OM(32(j-1)+1)-OM(32j)发送数据信元,因此,应将路由分发表中第32(j-1)+1-32j个表项的第k2个比特置“0”。
完成更新后,重新开始新的更新流程,即转入步骤S1101,以便实时的更新链路故障信息,保证路由分发表的信息准确率,提高网络传输效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,所述存储介质可以是只读存储器,磁盘或光盘等。
如图12所示,为本发明实施例提出的一种输入单元的结构示意图,具体包括:
查找模块1210,用于根据数据流的目的地址在路由分发表中查找一个可用的输出端口,从而确定输入单元向交换平面发送数据流的端口;
判断模块1220,用于在查找模块1210查找到输出端口后,判断该输出端口的第一标记字段和/或第二标记字段是否存在故障标识,确定该输出端口的第一级链路和/或第二级链路是存在故障情况;
调整模块1230,用于当判断模块1220判断第一标记字段和/或第二标记字段存在故障标识时,根据故障标识调整输出端口的数据流流量。
进一步的,输入单元还包括:
存储模块1240,用于存储路由分发表,为查找模块1210查找可用的输出端口提供依据,具体包括:
更新子模块1241,用于依据本发明前述实施例中的步骤S901至S909所述的流程,根据收到包含链路故障指示的控制信元或标记字段的反馈指示更新路由分发表。
标识模块1250,用于存储和更新第一标记字段和第二标记字段,为判断模块1220判断链路故障提供依据,其中,第一标记字段用于记录交换平面内第一级链路的故障情况,第二标记字段记录交换平面内第二级链路的故障情况,具体包括:
标识存储子模块1251,用于存储第一标记字段和第二标记字段;
标识更新子模块1252,用于用于依据本发明前述实施例中的步骤S701至S705所述的流程,更新第一标记字段和第二标记字段。
上述模块可以分布于一个装置,也可以分布于多个装置。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
本发明实施例的技术方案具有以下优点,因为采用了多级多平面结构中的数据流发送方法,从而,通过根据链路的故障情况对输出端口的发送流量进行调整,达到了降低故障链路所在交换平面内部出现拥塞的概率的效果。
如图13所示,为本发明实施例提出的一种多级多平面交换系统的结构示意图,包括输入单元1、交换平面2及输出单元3各多个。
其中,输入单元1的具体结构如图12所示,并由本发明前述实施例进行说明,进一步的,该多级多平面交换系统的工作原理详见本发明前述实施例,本实施例不再详述。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (16)
1.一种多级多平面结构中的数据流发送方法,其特征在于,包括以下步骤:
根据数据流的目的地址确定一个可用的输出端口;
判断所述输出端口所对应的第一标记字段和/或第二标记字段是否存在故障标识,其中,第一标记字段用于记录交换平面内第一级链路的故障情况,第二标记字段记录交换平面内第二级链路的故障情况;
当所述第一标记字段和/或第二标记字段存在故障标识时,根据所述故障标识调整所述输出端口的数据流流量,包括:当所述第一标记字段存在所述故障标识时,按照所述故障标识对应的交换平面中交换模块的输出端口在所述故障标识对应的交换平面中第一级交换模块的全部输出端口中所占的比例,减少所述输出端口向所有输出单元发送的数据流流量;当所述第二标记字段存在所述故障标识时,按照所述故障标识对应的交换平面中交换模块的输出端口在所述故障标识对应的交换平面中第二级交换模块的全部输出端口中所占的比例,减少所述输出端口向所述故障标识对应的交换模块所对应的输出单元发送的数据流流量;当所述第一标记字段和第二标记字段存在所述故障标识,并且所述第一标记字段和第二标记字段的所述故障标识所对应的故障位于相同路径时,按照所述第一标记字段的所述故障标识对应的交换平面中交换模块的输出端口在所述故障标识对应的交换平面中交换模块的全部输出端口中所占的比例,减少所述输出端口向所述故障标识对应的交换模块所对应的输出单元发送的数据流流量;当所述第一标记字段和第二标记字段存在所述故障标识,并且所述第一标记字段和第二标记字段的所述故障标识所对应的故障位于不同路径时,包括:计算第一标记字段的所述故障标识对应的交换平面中交换模块的输出端口在所述故障标识对应的交换平面中交换模块的全部输出端口中所占的比例;计算第二标记字段的故障标识对应的交换平面中交换模块的输出端口在所述故障标识对应的交换平面中第二级交换模块的全部输出端口中所占的比例;按照这两个比例之和,减少所述输出端口向所述故障标识对应的交换模块所对应的输出单元发送的数据流流量。
2.如权利要求1所述多级多平面结构中的数据流发送方法,其特征在于,所述根据数据流的目的地址确定一个可用的输出端口,包括:
根据路由分发表,在所述数据流的目的地址对应的表项中,查找一个具有可用标识的输出端口。
3.如权利要求2所述多级多平面结构中的数据流发送方法,其特征在于,所述在路由分发表中查找一个可用的输出端口之前,还包括:
更新所述路由分发表。
4.如权利要求3所述多级多平面结构中的数据流发送方法,其特征在于,所述更新路由分发表,包括:
接收标记字段的反馈指示,根据所述指示更新所述路由分发表;或,
当所述输出端口出现故障时,所述路由分发表中对应所述输出端口的表项记录所述故障;当输出单元出现故障时,所述路由分发表中所有表项中对应的字段记录所述故障。
5.如权利要求1所述多级多平面结构中的数据流发送方法,其特征在于,
所述第一标记字段,用于记录交换平面内第一级链路的故障情况,所述第一标记字段包括小于或等于所述交换平面内第一级单个交换模块的输出端口数量的表项,所述表项中具体包括:存在故障的交换平面号码、在所述存在故障的交换平面中存在故障的第一级交换模块号码,和在所述存在故障的交换模块中存在故障的输出端口号码 。
6.如权利要求1所述多级多平面结构中的数据流发送方法,其特征在于,
所述第二标记字段,用于记录交换平面内第二级链路的故障情况,所述第二标记字段包括小于或等于一个所述交换平面内全部第二级模块的输出端口总数的表项,所述表项中具体包括:存在故障的交换平面号码、在所述存在故障的交换平面中第二级交换模块号码,和在所述存在故障的交换模块中存在故障的输出端口号码。
7.如权利要求5或6所述多级多平面结构中的数据流发送方法,其特征在于,还包括:
更新所述第一标记字段和第二标记字段。
8.如权利要求7所述多级多平面结构中的数据流发送方法,其特征在于,所述更新第一标记字段和第二标记字段,包括:
当所述交换平面内的处于所述第一级链路发生故障时,由所述第一标记字段记录所述故障;
当所述交换平面内的处于所述第二级链路发生故障时,由所述第二标记字段记录所述故障。
9.一种输入单元,其特征在于,具体包括:
查找模块,用于根据数据流的目的地址确定一个可用的输出端口;
判断模块,用于在所述查找模块查找到所述输出端口后,判断所述输出端口对应的第一标记字段和/或第二标记字段是否存在故障标识,其中,第一标记字段用于记录交换平面内第一级链路的故障情况,第二标记字段记录交换平面内第二级链路的故障情况;
调整模块,用于当所述判断模块判断所述第一标记字段和/或第二标记字段存在故障标识时,根据所述故障标识调整所述输出端口的数据流流量,包括:当所述第一标记字段存在所述故障标识时,按照所述故障标识对应的交换平面中交换模块的输出端口在所述故障标识对应的交换平面中第一级交换模块的全部输出端口中所占的比例,减少所述输出端口向所有输出单元发送的数据流流量;当所述第二标记字段存在所述故障标识时,按照所述故障标识对应的交换平面中交换模块的输出端口在所述故障标识对应的交换平面中第二级交换模块的全部输出端口中所占的比例,减少所述输出端口向所述故障标识对应的交换模块所对应的输出单元发送的数据流流量;当所述第一标记字段和第二标记字段存在所述故障标识,并且所述第一标记字段和第二标记字段的所述故障标识所对应的故障位于相同路径时,按照所述第一标记字段的所述故障标识对应的交换平面中交换模块的输出端口在所述故障标识对应的交换平面中交换模块的全部输出端口中所占的比例,减少所述输出端口向所述故障标识对应的交换模块所对应的输出单元发送的数据流流量;当所述第一标记字段和第二标记字段存在所述故障标识,并且所述第一标记字段和第二标记字段的所述故障标识所对应的故障位于不同路径时,包括:计算 第一标记字段的所述故障标识对应的交换平面中交换模块的输出端口在所述故障标识对应的交换平面中交换模块的全部输出端口中所占的比例;计算第二标记字段的故障标识对应的交换平面中交换模块的输出端口在所述故障标识对应的交换平面中第二级交换模块的全部输出端口中所占的比例;按照这两个比例之和,减少所述输出端口向所述故障标识对应的交换模块所对应的输出单元发送的数据流流量。
10.如权利要求9所述的输入单元,其特征在于,还包括:
存储模块,用于存储路由分发表,
其中,所述查找模块根据所述路由分发表,在所述数据流的目的地址对应的表项中,查找一个具有可用标识的输出端口。
11.如权利要求10所述的输入单元,其特征在于,所述存储模块,具体包括:
更新子模块,用于更新所述路由分发表。
12.如权利要求9所述的输入单元,其特征在于,还包括:
标识模块,用于存储和更新所述第一标记字段和第二标记字段。
13.一种多级多平面交换系统,所述多级多平面交换系统包括输入单元、交换平面、及输出单元,其特征在于,所述输入单元具体包括:
查找模块,用于根据数据流的目的地址确定一个可用的输出端口;
判断模块,用于在所述查找模块查找到所述输出端口后,判断所述输出端口对应的第一标记字段和/或第二标记字段是否存在故障标识,其中,第一标记字段用于记录交换平面内第一级链路的故障情况,第二标记字段记录交换平面内第二级链路的故障情况;及
调整模块,用于当所述判断模块判断所述第一标记字段和/或第二标记字段存在故障标识时,根据所述故障标识调整所述输出端口的数据流流量,包括:当所述第一标记字段存在所述故障标识时,按照所述故障标识对应的交换平面中交换模块的输出端口在所述故障标识对应的交换平面中第一级交换模块的全部输出端口中所占的比例,减少所述输出端口向所有输出单元发送 的数据流流量;当所述第二标记字段存在所述故障标识时,按照所述故障标识对应的交换平面中交换模块的输出端口在所述故障标识对应的交换平面中第二级交换模块的全部输出端口中所占的比例,减少所述输出端口向所述故障标识对应的交换模块所对应的输出单元发送的数据流流量;当所述第一标记字段和第二标记字段存在所述故障标识,并且所述第一标记字段和第二标记字段的所述故障标识所对应的故障位于相同路径时,按照所述第一标记字段的所述故障标识对应的交换平面中交换模块的输出端口在所述故障标识对应的交换平面中交换模块的全部输出端口中所占的比例,减少所述输出端口向所述故障标识对应的交换模块所对应的输出单元发送的数据流流量;当所述第一标记字段和第二标记字段存在所述故障标识,并且所述第一标记字段和第二标记字段的所述故障标识所对应的故障位于不同路径时,包括:计算第一标记字段的所述故障标识对应的交换平面中交换模块的输出端口在所述故障标识对应的交换平面中交换模块的全部输出端口中所占的比例;计算第二标记字段的故障标识对应的交换平面中交换模块的输出端口在所述故障标识对应的交换平面中第二级交换模块的全部输出端口中所占的比例;按照这两个比例之和,减少所述输出端口向所述故障标识对应的交换模块所对应的输出单元发送的数据流流量。
14.如权利要求13所述的多级多平面交换系统,其特征在于,所述输入单元还包括:
存储模块,用于存储路由分发表,
其中,所述查找模块根据所述路由分发表,在所述数据流的目的地址对应的表项中,查找一个具有可用标识的输出端口。
15.如权利要求14所述的多级多平面交换系统,其特征在于,所述存储模块,具体包括:
更新子模块,用于更新所述路由分发表。
16.如权利要求13所述的多级多平面交换系统,其特征在于,所述输入单元还包括:
标识模块,用于存储和更新所述第一标记字段和第二标记字段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810134587XA CN101325558B (zh) | 2008-07-29 | 2008-07-29 | 一种多级多平面结构的数据流发送方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810134587XA CN101325558B (zh) | 2008-07-29 | 2008-07-29 | 一种多级多平面结构的数据流发送方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101325558A CN101325558A (zh) | 2008-12-17 |
CN101325558B true CN101325558B (zh) | 2013-04-24 |
Family
ID=40188891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810134587XA Active CN101325558B (zh) | 2008-07-29 | 2008-07-29 | 一种多级多平面结构的数据流发送方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101325558B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105763469B (zh) * | 2016-04-07 | 2019-03-22 | 烽火通信科技股份有限公司 | 三级Clos网络架构中链路拥塞检测及带宽控制的方法与系统 |
CN108259260B (zh) * | 2017-01-24 | 2020-12-04 | 新华三技术有限公司 | 链路检测方法及装置 |
CN113595937B (zh) * | 2021-09-27 | 2021-12-31 | 新华三技术有限公司 | 一种报文发送方法、装置及交换网芯片 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6411599B1 (en) * | 1998-05-29 | 2002-06-25 | International Business Machines Corporation | Fault tolerant switching architecture |
CN1369991A (zh) * | 2002-04-01 | 2002-09-18 | 北京港湾网络有限公司 | 交换机捆绑端口分流方法及交换机芯片 |
CN101179453A (zh) * | 2007-12-06 | 2008-05-14 | 华为技术有限公司 | 一种链路状态检测方法和系统 |
-
2008
- 2008-07-29 CN CN200810134587XA patent/CN101325558B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6411599B1 (en) * | 1998-05-29 | 2002-06-25 | International Business Machines Corporation | Fault tolerant switching architecture |
CN1369991A (zh) * | 2002-04-01 | 2002-09-18 | 北京港湾网络有限公司 | 交换机捆绑端口分流方法及交换机芯片 |
CN101179453A (zh) * | 2007-12-06 | 2008-05-14 | 华为技术有限公司 | 一种链路状态检测方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101325558A (zh) | 2008-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101983494B (zh) | 自动化功率拓扑发现 | |
CN100461751C (zh) | 具有交替路由控制的标签交换路径网络 | |
CN100472480C (zh) | 分组处理方法和装置 | |
US6498778B1 (en) | Optimizing restoration capacity | |
CN105740337B (zh) | 一种基于内容的发布订阅系统中的事件快速匹配方法 | |
CN101888333A (zh) | 用于在网络元件的转发平面内保持端口状态表的方法和装置 | |
CN103020024B (zh) | 一种文件格式转换方法 | |
US7058009B1 (en) | Router-level automatic protection switching | |
CN105471745A (zh) | 用于在粗粒度和细粒度的负荷平衡之间进行桥接的技术 | |
CN103931147A (zh) | 面向连接的网络中的路径分集 | |
CN104618221A (zh) | 一种去中心化的消息服务系统 | |
CN100442255C (zh) | 具有条目群组和跳过操作的关联存储器 | |
CN101299685B (zh) | 交换网测试方法和系统以及测试发起模块 | |
CN101325558B (zh) | 一种多级多平面结构的数据流发送方法、装置和系统 | |
CN107005469A (zh) | 一种路由的方法、相关设备及系统 | |
US20060062211A1 (en) | System and method for designing a customized switched metro Ethernet data network | |
CN100421106C (zh) | 具有增强能力的关联存储器 | |
CN111382114A (zh) | 一种用于片上网络的数据传输方法、装置及电子设备 | |
CN105610707A (zh) | AntNet路由算法在二维网格拓扑片上网络中的实现方法 | |
US7308494B1 (en) | Reprovisioning technique for an interconnect fabric design | |
US7818555B2 (en) | Method and apparatus for changing a configuration of a computing system | |
CN101227327A (zh) | 一种集中网管系统以及上载下级告警信息的方法 | |
CN109466981A (zh) | 一种安全回路检测电路、检测方法及移动终端 | |
CN106464511A (zh) | 一种业务保护方法及装置 | |
CN105099942A (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 |