一种计算转发最短路径的方法

文档序号:7916451阅读:187来源:国知局
专利名称:一种计算转发最短路径的方法
技术领域
本发明涉及计算转发最短路径的技术,尤其涉及一种交换机堆叠系统计算 转发最短路径的方法。
背景技术
当交换机堆叠系统中的交换机比较多时,报文转发路径的选择会影响到整 个交换机堆叠系统的负载和转发能力。举例来说,由六台交换机组成的堆叠系
统,从交换机1到交换机6依次采用菊花链式,即交换机之间采用环形拓朴结 构连接。当报文从交换机1的端口进来,需要转发到交换机6的端口时,如果 是从交换机1开始途经六台交换机逐个转发,会很占用带宽,并且使得链路上 的带宽使用不合理。对于这种情况最快的转发方式就是将报文从交换机1的端 口直接转发到交换机6与交换机1相连的端口 ,也就是说选择一条转发的最短 路径,将报文从交换机1直接转发到交换机6。
目前,由于采用现有技术进行报文转发时,通常是按照预先设置的交换机 堆叠系统中各交换机之间的转发路径直接进行报文转发,而不是按照计算并判 断出的转发最短路径进行报文转发的,因此,采用现有技术存在的缺点是报 文的转发效率低;带宽占用率高,且链路上的带宽使用不合理。

发明内容
有鉴于此,本发明的主要目的在于提供一种计算转发最短路径的方法,能 在交换机堆叠系统实现报文的最短路径转发,使报文的转发效率得到提升;降 低带宽占用率,且使链路上的带宽使用更合理。
为达到上述目的,本发明的技术方案是这样实现的
一种计算转发最短路径的方法,该方法包括以下步骤八、创建权重数组;根据预先设置的端口属性初始化所述创建的权重数组,
以获取交换机到其邻居交换机的权重数组;
B、 递归遍历并计算当前交换机到其他交换机的权重数组;比较并获取所 述当前交换机到其他交换机的权重数组中的最小值,来获取到交换机堆叠系统 中当前交换机到其他交换机的最短路径。
其中,步骤A中还包括根据所述预先设置的端口属性初始化发送矩阵; 步骤B中还包括计算所述发送矩阵,以完成所述当前交换机到其他交换机的报 文发送。
其中,步骤B之后还包括
C、 继续执行步骤B,直至循环遍历完所有交换机,来获取到所述交换机堆 叠系统中每个交换机到其他交换机的最短路径;获取到所述每个交换机到其他 交换机的发送矩阵;
D、 根据每个交换机到其他交换机的最短路径、每个交换机到其他交换机 的发送矩阵,完成最短路径的报文转发。
其中,所述计算当前交换机到其他交换机的权重数组具体为在所述当前 交换机到目的交换机的转发路径未知条件下;或者当前交换机到目的交换机的 转发路径已知,且当前交换机到目的交换机的权重数组> 当前交换机到参照交换 机的权重数组+所述参照交换机到目的交换机的权重数组条件下,计算当前交换 机到其他交换机的权重数组的公式为
weight[src] [dst]=weight[src] [mid]+weight[mid] [dst];
其中,src为所述当前交换机的编号,mid为所述参照交换机的编号,dst 为所述目的交换机的编号;weight[src][dst]为当前交换机到其他交换机的权重数 组,weight[src][mid]为当前交换机到参照交换机的权重数组,weight[mid][dst] 为参照交换机到目的交换机的权重数组。
其中,所述计算发送矩阵的计算公式为发送矩阵[src][dsth发送矩阵 [src] [mid]。
本发明递归遍历并计算当前交换机到其他交换机的权重数组;比较并获取当前交换机到其他交换机的权重数组中的最小值,来获取到交换机堆叠系统中 当前交换机到其他交换机的最短路径。
采用本发明,能在交换机堆叠系统实现报文的最短路径转发,提升报文在 交换机堆叠系统的转发性能,即不仅使报文的转发效率得到提升,而且降低带 宽占用率,且使链路上的带宽使用更合理。


图1为本发明方法的实现流程示意图2为一交换机堆叠系统的组成结构示意图。
具体实施例方式
本发明的核心思想是递归遍历并计算当前交换机到其他交换机的权重数 组;比较并获取当前交换机到其他交换机的权重数组中的最小值,来获取到交 换机堆叠系统中当前交换机到其他交换机的最短路径。
下面结合附图对技术方案的实施作进一步的详细描述。
如图l所示, 一种计算转发最短路径的方法,该方法包括以下步骤
步骤101、创建权重数组;根据预先设置的端口属性初始化所述创建的权 重数组,以获取交换机到其邻居交换机的权重数组。
这里需要指出的是,权重数组,用于标识交换机堆叠系统中各交换机之间 报文转发路径的距离。针对邻居交换机而言,相邻的两个交换机互为邻居交换 机。端口属性,用于记录交换机堆叠系统中各交换机之间的端口连接关系。
这里,针对创建权重数组而言,设置交换机堆叠系统中交换机的数目为n,
按照从小到大顺序为每个交换机编号0、 1......( n - 1 ),则创建二维数组weight[n]为权重数组,该权重数组用来记录任意两个交换机之间的路径权重。通常, 在互为邻居交换机的两个交换机之间的路径权重,即交换机到其邻居交换机的 权重数组为1,可以理解为交换机到其邻居交换机的路径为一跳。
这里,步骤101中还包括根据预先设置的端口属性初始化发送矩阵,即报文的发送路径,以便后续通过对发送矩阵的计算完成当前交换机到其他交换 机的报文发送。当前交换机指源交换机,其他交换机指通过源交换机需将报文 发送到的目的交换机。发送矩阵的表示方式为发送矩阵[源][目的]。发送矩阵 [源][目的],用于标识源交换机上的堆叠端口 ,源交换机发往目的交换机任何端 口的报文均通过该堆叠端口发送。
其中,步骤101中进一步还包括根据预先设置的端口属性初始化接收矩
阵,即报文的接收路径,以便后续通过对接收矩阵的计算完成其他交换机从当 前交换机的报文接收。当前交换机指源交换机,其他交换机指通过源交换机需 将报文发送到的目的交换机。接收矩阵的表示方式为接收矩阵[目的][源]。接收 矩阵[源][目的],用于标识目的交换机上的堆叠端口 ,若源交换机需要发送报文 给目的交换机,则发送至该堆叠端口,也就是说,目的交换机从源交换机任何 端口 4妄收的4艮文均通过该堆叠端口"t妄收。
以下,针对根据预先设置的端口属性初始化所述创建的权重数组,以及发 送矩阵和接收矩阵而言,进行举例阐述。
当端口 i为编号为src的交换才几的堆叠端口时,该端口 i的端口属性为 tx_cpu—key和tx_stk—idx,并且tx—cpu—key对应的交4奐才几编号为dst。 乂人而将交 换机src作为源交换机,将交换机dst作为目的交换机。那么交换机src通过该 端口 i可以发送报文给交换机dst,则初始化并设置权重数组为 weight[src][dst]=l;初始化并设置发送矩阵为发送矩阵[src][dst]^;初始化并 设置接收矩阵为[dst][src]= tx_stk_idx。按照此方法,遍历交换机堆叠系统中 所有交换机的所有堆叠端口 ,根据交换机堆叠系统中的所有堆叠端口的端口属 性来完成对权重数组、发送矩阵和接收矩阵的初始化。另外,当该堆叠端口为 全双工时,即该堆叠端口不仅可以用作发送才艮文的端口 ,而且还可以用作接收 报文的端口。那么,同样可以初始化并设置权重数组为weight[dst][ src]=l; 初始化并设置发送矩阵为发送矩阵[dst][ src]=i;初始化并设置接收矩阵为 接收矩阵[src][dst;h tx—stk—idx。按照此方法,遍历交换机堆叠系统中所有交换 机的所有堆叠端口 ,同样根据交换机堆叠系统中的所有堆叠端口的端口属性来完成对权重数组、发送矩阵和接收矩阵的初始化。
步骤102、递归遍历并计算当前交换才几到其他交换机的权重数组;比较并 获取当前交换机到其他交换机的权重数组中的最小值,来获取到交换机堆叠系 统中当前交换机到其他交换机的最短路径。
其中,步骤102中还包括计算发送矩阵以完成当前交换机到其他交换机 的报文发送。步骤102中还进一步包括计算接收矩阵以完成其他交换机从当 前交换机的报文接收。
这里,计算当前交换机到其他交换机的权重数组具体为在当前交换机到 目的交换机的转发路径未知条件下;或者当前交换机到目的交换机的转发路径 已知,且当前交换机到目的交换机的权重数组>当前交换机到参照交换机的权重 数组+参照交换机到目的交换机的权重数组条件下,计算当前交换机到其他交换 机的权重数组的公式为如下所示的公式(1 ):
weight[src][dst]二weight[src][mid]+weight[mid][dst] ( 1 )
其中,src为当前交换机的编号,mid为参照交换机的编号,dst为目的交 换机的编号;weight[src] [dst]为当前交换机到其他交换机的权重数组, weight[src][mid]为当前交换机到参照交换机的权重数组,weight[mid][dst]为参照 交换机到目的交换机的权重数组。并且,当前交换机src和参照交换机mid,参 照交换机mid和目的交换机dst之间均相通。
这里,计算发送矩阵的计算公式为如下所示的公式(2): 发送矩阵[src][dsfh发送矩阵[src][mid] ( 2 )
这里,计算接收矩阵的计算公式为如下所示的公式(3): 接收矩阵[dst][src]—妄收矩阵[dst][mid] ( 3 )
这里需要指出是,由于在通过计算和比较权重数组来获取最短路径时,要 遍历交换机堆叠系统中的所有交换机,但是交换机不能相同。比如交换机堆叠 系统中有三个交换机,编号分别为src、 mid和dst,三者不能相同的意思指 交换机src、交换机mid和交换机dst不能指代同一台交换机,即交换机src、交 换机mid和交换机dst指代交换机堆叠系统中的三个不同的交换机。步骤103、继续执行步骤102,直至循环遍历完交换机堆叠系统中的所有交 换机,来获取到交换机堆叠系统中每个交换机到其他交换机的最短路径;获取 到每个交换机到其他交换机的发送矩阵。
其中,步骤102中,进一步还包括步骤获取到每个交换机到其他交换机 的接收矩阵。
步骤104、将每个交换机到其他交换机的最短路径、每个交换机到其他交 换机的发送矩阵设置到报文路径转发表中并下发至芯片,根据芯片中的设置值 完成最短路径的报文转发。
其中,步骤104中,进一步还包括步骤将每个交换机到其他交换机的接 收矩阵也设置到报文路径转发表中并下发至芯片,那么,根据芯片中的设置值 完成最短路径的报文转发即为根据每个交换机到其他交换机的最短路径、每 个交换机到其他交换机的发送矩阵以及每个交换机到其他交换机的接收矩阵, 完成最短路径的报文转发。
以下以 一 实例阐述以遍历方式计算转发最短路径的具体实现过程。
以图2中的四台交换机堆叠为例,从上至下编号分别为A、 B、 C和D,即 如图2所示,本实例中交换机堆叠系统包括交换4几A、交换机B、交换机C 和交换机D。其中,交换机A与交换机B和交换机D相连;交换机B与交换 机A交换机和C相连;交换机C与交换机B和交换机D相连;交换机D与交 换机C和交换机A相连。每台交换机的堆叠端口都是x 口和y 口,图中未显示。
以针对交换机A进行递归遍历并计算当前交换机到其他交换机的权重数组 为例。具体来说,首先初始化各交换机的权重数组和发送矩阵。weight[A][B]=l, 发送矩阵[A][B^x, weight[A][D]=l,发送路径[A][D],。那么在计算最短路径 时,要遍历该交换机堆叠系统的所有交换机,也就是说,上述公式(l)和公式 (2 )中所涉及到的计算参数源交换机src、参照计算机mid和目的交换机dst 都要遍历到所有交换机,且源交换机src、参照交换机mid和目的交换机dst不 能相同。则首先从A开始进行递归遍历并计算当前交换机到其他交换机的权重 数组的过程为a、 以交换机A为源交换机src,因为源交换机src、参照交换机mid和目的 交换机dst不能相同,则参照交换机mid从交换机B开始,即此时取参照交换 机mid为交换机B ,此时目的交换机dst从交换机C开始。
这里,weight[A][C]未知,则weight[A〗[C]=weight[A][B]+weight[B][C]=2, 发送矩阵[A][Cp发送矩阵[A][B^x。接下来,目的交换机dst要选为交换机D, 但是,weight[B][D]未知,目的交换机dst继续往下遍历。由于交换机D是最后 一个,停止对目的交换才几dst的遍历。
b、 接下来,参照交换机mid要往下遍历,此时取交换机mid为交换机C, 重新开始从A遍历,则此时目的交换机dst可以取为交换机B和交换机D。
这里,weight[A][B]已知且weight[A][B]〈weight[A][C]+weight[C][B],所以 weight[A][B]保持不变,同理,发送矩阵[A][B]也保持不变。
接下来,目的交换机dst要选为交换才几D , weight[A][D]已知,且 weight[AJ[D]〈weight[A][C]+weight[C][D],所以weight[A][D]保持不变,同理, 发送矩阵[A][D]也保持不变,目的交换机dst为交换机D时已是最后一个。由 于交换机D是最后一个,停止对目的交换机dst的遍历。
c、 接下来,参照交换机mid继续往下遍历,此时取参照交换机mid为交换 机D,目的交换机dst可以取为交换机B和交换机C,分别按照上述方法进行 计算,这样交换机A到其他各交换机的最短路径就都确定了 。
执行为以交换机A为源交换机src的递归遍历后,接下来源交换机src往下 遍历,依照上述从A开始进行递归遍历并计算当前交换机到其他交换机的权重 数组的a c过程的原理进行权重数组和发送矩阵的计算,直至循环遍历完交换 机堆叠系统中的所有交换机,从而最终获取到交换机堆叠系统中每个交换机到 其他交换机的最短路径和获取到每个交换机到其他交换机的发送矩阵。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1、一种计算转发最短路径的方法,其特征在于,该方法包括以下步骤A、创建权重数组;根据预先设置的端口属性初始化所述创建的权重数组,以获取交换机到其邻居交换机的权重数组;B、递归遍历并计算当前交换机到其他交换机的权重数组;比较并获取所述当前交换机到其他交换机的权重数组中的最小值,来获取到交换机堆叠系统中当前交换机到其他交换机的最短路径。
2、 根据权利要求1所述的方法,其特征在于,步骤A中还包括根据所 述预先设置的端口属性初始化发送矩阵;步骤B中还包括计算所述发送矩阵, 以完成所述当前交换机到其他交换机的报文发送。
3、 根据权利要求2所述的方法,其特征在于,步骤B之后还包括C、 继续执行步骤B,直至循环遍历完所有交换机,来获取到所述交换机堆 叠系统中每个交换机到其他交换机的最短路径;获取到所述每个交换机到其他 交换机的发送矩阵;D、 根据每个交换机到其他交换机的最短路径、每个交换机到其他交换机 的发送矩阵,完成最短路径的报文转发。
4、 根据权利要求2或3所述的方法,其特征在于,所述计算当前交换机到 其他交换机的权重数组具体为在所述当前交换机到目的交换机的转发路径未 知条件下;或者当前交换机到目的交换机的转发路径已知,且当前交换机到目 的交换机的权重数组〉当前交换机到参照交换机的权重数组+所述参照交换机 到目的交换机的权重数组条件下,计算当前交换机到其他交换机的权重数组的 公式为weight[src] [dst]=weight[src] [mid]+weight[mid] [dst];其中,src为所述当前交换机的编号,mid为所述参照交换机的编号,dst 为所述目的交换机的编号;weight[src][dst]为当前交换机到其他交换机的权重数 组,weight[src][mid]为当前交换机到参照交换机的权重数组,weight[mid][dst] 为参照交换机到目的交换机的权重数组。
5、根据权利要求4的方法,其特征在于,所述计算发送矩阵的计算公式为发送矩阵[src] [dst]=发送矩阵[src] [mid]。
全文摘要
本发明公开了一种计算转发最短路径的方法,该方法包括以下步骤创建权重数组;根据预先设置的端口属性初始化所述创建的权重数组,以获取交换机到其邻居交换机的权重数组;递归遍历并计算当前交换机到其他交换机的权重数组;比较并获取所述当前交换机到其他交换机的权重数组中的最小值,来获取到交换机堆叠系统中当前交换机到其他交换机的最短路径。采用本发明,能在交换机堆叠系统实现报文的最短路径转发,使报文的转发效率得到提升;降低带宽占用率,且使链路上的带宽使用更合理。
文档编号H04L12/56GK101299726SQ200810129129
公开日2008年11月5日 申请日期2008年6月30日 优先权日2008年6月30日
发明者陈建光 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1