最短路径桥中对称树的生成方法转让专利

申请号 : CN200610127776.5

文献号 : CN101141384B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨发明管红光

申请人 : 华为技术有限公司

摘要 :

本发明提供了一种最短路径桥中对称树的生成方法,该方法主要包括:非根网桥接收到来自根网桥的携带路径Path向量的长度信息的配置消息后,根据其位置值信息重新确定所述Path向量的长度,并重新构造相应的所述Path向量;当所述非根网桥存在到根网桥的多个最短等价路径时,所述非根网桥通过比较所述多个最短等价路径对应的所述重新构造的Path向量的大小来确定所述根网桥对应的根路径。利用本发明所述方法,从而可以在最短路径桥的多生成树环境里,使以入口桥为根的最短路径桥网络突破64个网桥的限制,为不同的根网桥生成对称路径。并且解决了当两个等价路径跨越了完全相同的网桥时,现有技术仍可能导致路径不对称的问题。

权利要求 :

1.一种最短路径桥中对称树的生成方法,其特征在于,包括步骤:

A、给每个网桥配置一个域内唯一的位置值,根网桥在优先权向量中设置其网桥标识信息和路径Path向量的长度信息,向非根网桥发送携带所述优先权向量的配置消息;

B、非根网桥接收到来自根网桥的配置消息后,根据其位置值信息重新确定所述Path向量的长度,并重新构造相应的所述Path向量;

C、当所述非根网桥存在到根网桥的多个最短等价路径时,所述非根网桥通过比较所述多个最短等价路径对应的所述重新构造的Path向量的大小来确定所述根网桥对应的根路径;

所述非根网桥在优先权向量中设置其网桥标识信息、所述重新确定的Path向量的长度信息和所述重新构造的Path向量,从非根路径上发送携带所述优先权向量的配置消息。

2.根据权利要求1所述的方法,其特征在于,所述的步骤A具体包括:

A1、如果根网桥的位置值对所述Path向量的基数取模后的余数是整数,则根网桥设置的Path向量的长度等于根网桥的位置值除以所述Path向量的基数;否则,所述根网桥设置的Path向量的长度等于根网桥的位置值对所述Path向量的基数取模后获得的数值再加上所述Path向量的基数;

A2、所述根网桥根据所述设置的Path向量的长度信息,构造相应的Path向量,并将该Path向量设置为全0,或者,将该Path向量中所述根网桥的位置值相应的位置为1,其余位都置为0。

3.根据权利要求2所述的方法,其特征在于,所述的步骤A2具体包括:

所述根网桥设置Path向量的长度为0,将所述Path向量置为空。

4.根据权利要求1所述的方法,其特征在于,所述的步骤B具体包括:

B1、所述非根网桥接收到所述配置消息后,将其位置值信息和所述配置消息中包含的Path向量的长度信息进行比较,重新确定所述Path向量的长度,并重新构造相应的所述Path向量。

5.根据权利要求4所述的方法,其特征在于,所述的步骤B1具体包括:

B11、当所述非根网桥的位置值小于接收到的配置消息中包含的Path向量的长度时,则所述非根网桥确定所述Path向量的长度不变,将接收到的配置消息中包含的Path向量中所述非根网桥的位置值相应的位置为1,其余位不变。

6.根据权利要求4所述的方法,其特征在于,所述的步骤B1具体包括:

B12、当所述非根网桥的位置值不小于接收到的配置消息中包含的Path向量的长度时,如果所述非根网桥的位置值对所述Path向量的基数取模后的余数是整数,则所述非根网桥设置的Path向量的长度等于所述非根网桥的位置值除以所述Path向量的基数;否则,所述非根网桥设置的Path向量的长度等于非根网桥的位置值对所述Path向量的基数取模后获得的数值再加上所述Path向量的基数;

B13、所述非根网桥根据所述设置的Path向量的长度信息,对所述接收到的配置消息中包含的Path向量进行扩展,并将该Path向量中所述非根网桥的位置值相应的位置为1,其余位不变。

7.根据权利要求2或6所述的方法,其特征在于,所述的Path向量的基数是一个字节的整数倍。

8.根据权利要求1至6任一项所述的方法,其特征在于,所述的所述非根网桥通过比较所述多个最短等价路径对应的所述重新构造的Path向量的大小来确定所述根网桥对应的根路径具体包括:当所述非根网桥根据接收到的所述配置消息,确定存在到根网桥的路径开销总和相等、网桥标识信息不相等的多个最短等价路径时,所述非根网桥获取各个配置消息中包含的所述Path向量的长度信息,将该长度信息对应的Path向量的大小进行比较,选择Path向量最大/最小的路径作为所述根网桥对应的根路径。

9.根据权利要求8所述的方法,其特征在于,所述的步骤C还包括:

当所述非根网桥根据接收到的所述配置消息,确定存在到根网桥的路径开销总和相等、网桥标识信息相等的多个最短等价路径时,所述非根网桥选择所述多个等价路径的两端端点中网桥标识最大/小的端点上最大/小的相关端口号对应的路径,作为所述根网桥对应的根路径。

说明书 :

最短路径桥中对称树的生成方法

技术领域

[0001] 本发明涉及网络通信领域,尤其涉及一种最短路径桥中对称树的生成方法。

背景技术

[0002] 在传统的通过以太网网桥互联的网络中,由于在同一个广播域中采用相同的且唯一的生成树来进行数据转发,因此,通常并不能保证数据包按最短路径转发,从而会导致数据包集中在某些链路上传送。
[0003] 为了使网桥能够按最短路径转发数据,目前有国际标准组织IEEE(电子电气工程师协会)的最短路径桥项目组和国际标准组织IETF(Internet工程任务组)的TRILL(多链路中的透明互连)工作组在分别按照两个不同方法进行研究。
[0004] IEEE最短路径桥项目组的方法是:仍使用生成树来转发所有数据包,但整个网络中的每个网桥都作为根网桥生成一个树,分别建立自己的转发树。并且为了实现按最短路径转发数据包,不论是广播包、组播包、未知包或者单播包,在数据包的转发过程中,都以数据包到达的第一个网桥为根,根据该网桥自己建立的转发树进行数据转发。即以入口为根进行数据转发。因此,在该方法中,在同一个广播域中采用多个生成树进行数据转发。802.1aq协议采用了上述IEEE最短路径桥项目组的方法。
[0005] IETF TRILL工作组的方法是:网桥具有类似路由器的路由计算和转发功能,因此,在该方法中也称网桥为路由桥。每个路由桥能基于链路状态协议形成“路由桥网络拓扑”并能以此计算出到任何其它的一个目的路由桥的最短路径。对单播包,它能根据数据包对应的出口路由桥地址按最短路径进行转发(而不是基于最终的目的节点地址,即不基于目的主机的MAC地址)。另外,包含路由桥的网络可以根据网络拓扑计算出生成树,广播包、组播包、未知包都按照该生成树进行转发。
[0006] 上述IETF TRILL工作组的方法为了避免环路增加了TTL(生存时间)等处理,从而导致硬件改动比较大,而只在生成树上进行改造对硬件的改动影响比较小。因此,目前IEEE在最短路径桥研究中,围绕着生成树提出了两个方案:
[0007] 1、使用原来的生成树协议来建立生成树:RSTP/MSTP(快速生成树协议/多生成树协议),该方案是IEEE目前的研究重点。
[0008] 2、使用IS-IS(中间系统-中间系统)或OSPF(开放最短路径优先)协议来建立生成树。
[0009] 在上述方案2中,当利用IS-IS建立了生成树后,由于每个网桥知道整个网络的拓扑情况,每个网桥创建的生成树包括了整个网络的生成树,因此,每个网桥知道任何节点所在的树分支,知道如何根据建立的生成树进行数据转发。
[0010] 在上述方案1中,当利用生成树协议建立了生成树后,每个网桥只能知道一个树经过该网桥的根端口和指定端口,它不知道整个树的信息,因此若以入口为根进行单播包转发时,每个网桥不知道目的地址所接入的树分支,需要通过地址学习获得转发路径。
[0011] 但是,由于每个网桥的生成树独立生成,当出现两个以上(包括两个)等价路径时,不同的树独立生成时对等价路径采用不同的阻塞方法造成路径选择的不一致,将会导致从一个网桥到另一个网桥之间的来回路径不一致。因此,上述以入口为根的转发机制由于路径不对称会造成地址学习的困难,会导致无法采用通常的源地址学习方法获得正常的转发路径。
[0012] 在上述以入口根最短路径转发系统中,为了克服路径不对称造成的学习障碍,在现有技术中,IEEE提出了Path向量对称路径生成方法。
[0013] Path向量对称路径生成方法的基本原理是:确保从一端边沿桥到另一端边沿桥的路径同从所述另一端边沿桥到所述一端边沿桥的路径的一致。为了实施该方法,预先确定在利用MSTP建立桥的过程中使用N位Path向量,N不能小于网络内网桥的数量,并且给每个网桥分配一个固定bit位。
[0014] 为了兼容MSTP原有的MSTP协议,将优先权向量(priority vector)中的{Root ID,Root Path Cost,Bridge ID,Port ID}中的Bridge ID换成了Path向量,所以该向量的位数是64。另外预先采用一个算法(或静态配置)确保链路正反向的代价是一致的。
[0015] 在上述Path向量对称路径生成方法中,在多个生成树的建立过程中,按下述过程来创立和传播Path向量:
[0016] 在多个生成树的建立过程中,按如下步骤创立和传播Path向量:
[0017] 1、Path向量是一个64位向量。对每个网桥,管理系统将64位Path向量中的一个特定位分配给它,该特定位的位值在1-64之间,不同网桥的位值不同。在一个树的生成过程当中,当一个网桥需要通过树的一个指定端口发送一个配置BPDU(Bridge Protocol Data Unit,桥接协议数据单元)消息时,需要将BPDU中Path向量的分配给本网桥的位置1。
[0018] 2、当一个网桥根据收到的优先权向量发现存在两个最短等价路径时,可根据两个等价路径的Path向量的大小确定使用哪个等价路径,此时,需要将其中一个需要使用的等价路径对应的本地端口设置为树的根端口,并阻塞另外一个不被使用的等价路径所对应的本地端口。
[0019] 通过上述方法可保证不同的树在其生成过程中,当出现等价路径时,不同的生成树的协议过程能根据等价路径相应的Path向量,采取相同的阻塞准则来确定被阻塞的路径,从而保证在使用不同的树进行转发数据时保证两个点之间的正反路径的一致性,即保证生成对称路径树。使传统以太网的源地址学习方法继续应用在最短路径桥接网络中。
[0020] 对于图1所示的桥接网络,上述方法具体实现举例如下:
[0021] 在图1所示的网络中,我们只考虑以网桥A为根的树的生成和以网桥F为根的树的生成,并且路径A-B-C-F和路径A-D-E-F的路径代价相同(包括两个方向),这样不论是在网桥A或是在网桥F都会从邻居网桥传送的BPDU消息中得到如下两个Path向量a和b(根网桥初始化64位向量为全0,为了简化说明问题,假定根网桥不对此向量关于根桥本身的相应向量位置1。说明:根网桥是否将本网桥位值插入path向量不影响算法结果。):
[0022] 向量a:
[0023]A B C D E F
... 1 1 0 0 .... ......
[0024] 向量b:
[0025]A B C D E F
... 0 0 1 1 .... ......
[0026] 于是,网桥A和网桥B就可根据上述向量a和向量b两个向量值的大小,选取向量值小/大的向量对应的端口作为根端口,结果关于树A和树F,在网桥A和网桥F上都会选择相同的路径A-D-E-F,即保证了两个不同树的路径对称。
[0027] 上述现有技术中的Path向量对称路径生成方法的缺点为:由于Path向量的位数与网络规模成正比关系,Path向量的位数与网络的扩展性的关联非常大,因此,该方法不利于网络的扩展。为了协议的兼容性,目前Path向量的位数是64,显然已不满足桥接网络扩展性需求。
[0028] 该方法采用64位Path向量导致了一个最短路径桥接网络区内的网桥个数不能超过64。当然MSTP要求在一个MST(多生成树)区内,生成树实例的个数不能超过64,所以MSTP也要求最短路径桥接网络内的树的个数不能超过64。但是。当一个桥接网络的节点个数大于64,但边沿节点个数不超过64时,那么根据MSTP的限制规则,仍然可生成以每个边沿桥为根的树,可是64位path向量却限制了桥接网络内的所有节点个数不能大于64,所以,该方法对网络规模的限制性更强,从而限制了该方法的适用范围。
[0029] 在特殊情况下,当两个等价路径跨越了完全相同的网桥时,此时两个等价路径必然穿过了两个相邻网桥间的等价链路。比如,图2所示的桥接网络中的路径a1和路径a2,在这种情况下,如果单纯用该方法中的Path向量来确定根路径,还是会出现路径可能不对称的问题。
[0030] 该方法只能用于点对点链路的情形,对多点接入的链路,仍然会导致路径的不对称性。

发明内容

[0031] 鉴于上述现有技术所存在的问题,本发明的目的是提供一种最短路径桥中对称树的生成方法,从而可以在最短路径桥的多生成树环境中,使以入口桥为根的最短路径桥网络突破64个网桥的限制,为不同的根网桥生成相应的对称路径。
[0032] 本发明的目的是通过以下技术方案实现的:
[0033] 一种最短路径桥中对称树的生成方法,包括步骤:
[0034] A、给每个网桥配置一个域内唯一的位置值,根网桥在优先权向量中设置其网桥标识信息和路径Path向量的长度信息,向非根网桥发送携带所述优先权向量的配置消息;
[0035] B、非根网桥接收到来自根网桥的配置消息后,根据其位置值信息重新确定所述Path向量的长度,并重新构造相应的所述Path向量;
[0036] C、当所述非根网桥存在到根网桥的多个最短等价路径时,所述非根网桥通过比较所述多个最短等价路径对应的所述重新构造的Path向量的大小来确定所述根网桥对应的根路径;
[0037] 所述非根网桥在优先权向量中设置其网桥标识信息、所述重新确定的Path向量的长度信息和所述重新构造的Path向量,从非根路径上发送携带所述优先权向量的配置消息。
[0038] 所述的步骤A具体包括:
[0039] A1、如果根网桥的位置值对所述Path向量的基数取模后的余数是整数,则根网桥设置的Path向量的长度等于根网桥的位置值除以所述Path向量的基数;否则,所述根网桥设置的Path向量的长度等于根网桥的位置值对所述Path向量的基数取模后获得的数值再加上所述Path向量的基数;
[0040] A2、所述根网桥根据所述设置的Path向量的长度信息,构造相应的Path向量,并将该Path向量设置为全0,或者,将该Path向量中所述根网桥的位置值相应的位置为1,其余位都置为0。
[0041] 所述的步骤A2具体包括:
[0042] 所述根网桥设置Path向量的长度为0,将所述Path向量置为空。
[0043] 所述的步骤B具体包括:
[0044] B1、所述非根网桥接收到所述配置消息后,将其位置值信息和所述配置消息中包含的Path向量的长度信息进行比较,重新确定所述Path向量的长度,并重新构造相应的所述Path向量。
[0045] 所述的步骤B1具体包括:
[0046] B11、当所述非根网桥的位置值小于接收到的配置消息中包含的Path向量的长度时,则所述非根网桥确定所述Path向量的长度不变,将接收到的配置消息中包含的Path向量中所述非根网桥的位置值相应的位置为1,其余位不变。
[0047] 所述的步骤B1具体包括:
[0048] B12、当所述非根网桥的位置值不小于接收到的配置消息中包含的Path向量的长度时,如果所述非根网桥的位置值对所述Path向量的基数取模后的余数是整数,则所述非根网桥设置的Path向量的长度等于所述非根网桥的位置值除以所述Path向量的基数;否则,所述非根网桥设置的Path向量的长度等于非根网桥的位置值对所述Path向量的基数取模后获得的数值再加上所述Path向量的基数;
[0049] B13、所述非根网桥根据所述设置的Path向量的长度信息,对所述接收到的配置消息中包含的Path向量进行扩展,并将该Path向量中所述非根网桥的位置值相应的位置为1,其余位不变。
[0050] 所述的Path向量的基数是一个字节的整数倍。
[0051] 所述的所述非根网桥通过比较所述多个最短等价路径对应的所述重新构造的Path向量的大小来确定所述根网桥对应的根路径具体包括:
[0052] 当所述非根网桥根据接收到的所述配置消息,确定存在到根网桥的路径开销总和相等、网桥标识信息不相等的多个最短等价路径时,所述非根网桥获取各个配置消息中包含的所述Path向量的长度信息,将该长度信息对应的Path向量的大小进行比较,选择Path向量最大/最小的路径作为所述根网桥对应的根路径。
[0053] 所述的步骤C还包括:
[0054] 当所述非根网桥根据接收到的所述配置消息,确定存在到根网桥的路径开销总和相等、网桥标识信息相等的多个最短等价路径时,所述非根网桥选择所述多个等价路径的两端端点中网桥标识最大/小的端点上最大/小的相关端口号对应的路径,作为所述根网桥对应的根路径。
[0055] 由上述本发明提供的技术方案可以看出,本发明通过接收网桥根据自己的位置值来计算Path向量的长度,并重新构造相应的Path向量。当存在多个最短等价路径时,通过比较Path向量的大小来确定根网桥对应的根路径。和现有技术相比,具有如下优点:
[0056] 1、通过使用LV向量对Path向量进行扩充,由接收到配置消息的网桥通过计算确定Path向量的长度。在网络拓扑比较大的情况下,可以使以入口桥为根的最短路径桥网络突破64个网桥的限制。
[0057] 2、在网络拓扑比较小的情况下,通过LV向量可以减少配置消息字节的长度,节约资源。
[0058] 3、当两个等价路径跨越了完全相同的网桥时,解决了现有技术仍可能导致路径不对称问题。

附图说明

[0059] 图1为一种桥接网络的结构示意图;
[0060] 图2为一种桥接网络的结构示意图;
[0061] 图3为本发明所述方法的实施例的处理流程图;
[0062] 图4为一种桥接网络的结构示意图;
[0063] 图5为一种桥接网络的结构示意图;
[0064] 图6为一种桥接网络的结构示意图。

具体实施方式

[0065] 本发明提供了一种最短路径桥中对称树的生成方法。本发明的核心为:接收网桥根据自己的位置值来计算Path向量的长度,重新构造相应的Path向量。当存在多个最短等价路径时,通过比较Path向量的大小来确定根网桥对应的根路径。
[0066] 下面结合附图来详细描述本发明,本发明所述方法适用于在最短路径桥中通过生成树协议、IS-IS协议和OSPF等协议来建立对称树。以生成树协议为例,本发明所述方法的实施例的处理流程如图3所示,包括如下步骤:
[0067] 步骤3-1、根据网桥的位置值信息来设置和构造LV向量。
[0068] 本发明需要根据网桥的位置值信息来设置和构造一个LV向量。在本发明中,需要由网络管理人员给每个网桥配置一个域内唯一的位置值,这个位置值可以对应Path域中一个唯一的特定位置,即对应每个网桥的Path向量位值。上述网桥的位置值信息最好是数字1,2,3....,或者是一种对应的算法,比如:8,16,32,等等。
[0069] 本发明中的LV向量的格式如下述表1所示。
[0070] 表1:
[0071]第一字段域(Length) 第二字段域(Path向量)
[0072] 上述LV向量包括:第一字段域(Length)和第二字段域(Path向量)。
[0073] 第一字段域可以用1个字节或者2个字节来表示,第一字段域内容表示Path向量字段长度。Path向量的基数为8,Path向量的位数是8bit(或者是16bit、32bit等等)的整数倍。
[0074] 第一字段域的实际值Length始终表示Path向量域的实际长度。如Path字段长度为8bit或16bit、32bit等时,相应的Length就为8、16和32等。第一个字段域的实际值也可以用其他方式来表示,如表示第二字段域的字节数,如:path向量为1个字节,则Length为1;path向量为两个字节,则Length为2。
[0075] 第二字段域表示具体的Path向量,该Path向量的长度为Length。第一字段域可以和第二字段域在不同的位置。
[0076] 步骤3-2、根网桥在优先权向量中设置初始LV向量,向非根网桥发送携带所述优先权向量的BPDU配置消息。
[0077] 在本发明中设置的新的优先权向量为{Root ID、Root Path Cost、Designed Bridge Information、LV Path Vector、Designed Port ID}。 其 中 Designed Bridge Information是表示网桥在本网络的唯一标识信息,可以是网桥的ID、MAC address,也可以是上述由网络管理人员配置的位置值等等。考虑节省配置信息的长度,本发明建议采用位置值信息。
[0078] 当一个根网桥构造BPDU配置消息时,首先需要确定Path向量的长度,即Length的值。Length的计算方法为:
[0079] 当V/B不是整数时,Length==[V/B]*B+B;当V/B是整数时,Length==[V/B]*B。其中,V是根网桥的位置值;B是Path向量的基数,是一个字节的整数倍。[V/B]=V/B的整数部分。
[0080] 然后,根网桥设置一个初始LV向量,该初始LV向量的第一字段域的值为上述Length。第二字段域的长度等于Length,第二字段域中的Path向量被初始化为全0(也可把向量的第V位置1)。
[0081] 当然,因为以自己为根的网桥不会参与路径选择,因此,根网桥构造BPDU配置消息的时候,也可以设置Length=0,Path向量为空。此时,后续收到该BPDU配置消息的网桥通过比较根网桥和指定网桥信息可以判断出发送该消息的是根网桥。
[0082] 步骤3-3、非根网桥根据其位置值信息重新构造所述BPDU消息中的LV向量,确定并保存根网桥对应的根路径信息,并从非根路径向其它网桥发送携带重新构造的LV向量的所述BPDU消息。
[0083] 当一个非根网桥(包括根网桥的直连网桥)接收到上述来自根网桥的BPDU消息后,需要根据其位置值信息重新计算所述Path向量的长度,并重新构造相应的Path向量。
[0084] 若非根网桥接收到的BPDU消息中的优先权向量中的LV向量中包含的Length值不小于本非根网桥的Path向量位值(即非根网桥的位置值),设本非根网桥Path向量位值为Vn,则只需要把接收到的BPDU消息中的优先权向量中的LV向量中包含的Path向量的第Vn位置为1。该LV向量中包含的Length值不变。
[0085] 若非根网桥接收到的BPDU消息中的优先权向量中的LV向量中包含的Length值小于本非根网桥的Path向量位值,设本非根网桥的位置值为Vn,则需要重新计算LV向量中包含的Length的值。计算方法如下:
[0086] 当Vn/B不是整数时,Length==[Vn/B]*B+B;当Vn/B是整数时,Length==[Vn/B]*B。上述[Vn/B]表示Vn/B的整数部分。
[0087] 于是,上述非根网桥将接收到的BPDU消息中的优先权向量中的LV向量中包含的Length值改为上述计算的Length值,将该LV向量中包含的Path向量的长度扩展到上述计算的Length值,将扩展后的Path向量的第Vn位置1,原来Path向量字段的内容保持不变。
[0088] 然后,上述非根网桥根据上述重新构造的LV向量构造新的优先权向量,按照多生成树的比较规则去比较,确定并保存根网桥对应的根端口和指定端口等信息。
[0089] 所述非根网桥在优先权向量中设置其网桥标识信息、上述重新确定的Path向量的长度信息、上述重新构造的Path向量,并从非根端口向其它网桥发送携带重新构造的所述优先权向量的所述BPDU消息。
[0090] 上述非根网桥确定根网桥对应的根端口的具体方法如下:
[0091] 当所述非根网桥根据收到的各个BPDU消息进行判断,确定有一个BPDU消息中的优先权向量包含最小路径开销总和,则所述非根网桥选择该包含最小路径开销总和的BPDU消息经过的端口为所述根网桥对应的根端口。
[0092] 当所述非根网桥根据收到的各个BPDU消息进行判断,确定有多个BPDU消息中的优先权向量包含相等的最小路径开销总和、不同的指定网桥信息(Designed Bridge infomation),则所述非根网桥根据该多个BPDU消息的中的优先权向量中的上述LV向量中包含的Path向量的大小来确定所述根网桥对应的根端口。比较Path向量大小时可以逐字节或逐多个字节去比较等等,选择最大或最小的Path向量对应的BPDU消息经过的端口为所述根网桥对应的根端口。
[0093] 上述本发明所述方法的处理流程,不受网桥个数不能大于64的限制,可灵活地由网桥自身确定Path域的长度,不需要由网管系统对每个网桥事先配置Path段的长度。若由网管系统对每个网桥事先配置Path段的长度,则每添加一个网桥,就可能需要网管系统对其它所有网桥进行重新配置。
[0094] 当所述非根网桥根据收到的各个BPDU消息进行判断,确定有多个BPDU消息中的优先权向量包含相等的最小路径开销总和、相同的指定网桥信息(Designed Bridge infomation)时,则通过比较本网桥和指定网桥的ID以及端口号的方法来确定根网桥对应的根端口。首先比较本地网桥信息和Designed Bridge infomation指定网桥信息,找出网桥ID较小的网桥(或者选取较大的网桥),再比较网桥ID较小者的和两个最短路径关联的两个端口号(Port ID),将连接较小端口号端口(或者是较大的)对应的最短路径作为到根网桥的路径。
[0095] 比如,在图4所示的桥接网络中,网桥A的ID小于网桥B的ID,网桥A的端口1的端口号小于端口2的端口号,网桥A和网桥B之间存在两个等价路径a1和a2。则按照上述选择方法,假设选择较小的网桥ID和端口号,则不论在网桥B或是在网桥A都选取连接网桥A上端口1的最短路径为A和B间的数据传送路径,而另外一个最短路径相关的两个端口都被阻塞。
[0096] 本发明还提供了一个本发明所述方法的两个实施例。实施例1中的桥接网络为图5所示的桥接网络,在图5所示的桥接网络中,圆圈中的数字分别表示网桥A、B、C、D、E、F、G、I的位置值(Path向量位值),路径上的数字分别表示路径的开销。
[0097] 当网桥A建立以自己为根的树时,网桥A首先构造初始LV向量,该初始LV向量为如下的表2所示。其中,Length为0,Path向量域为空。
[0098] 表2
[0099]0
[0100] 网桥A然后发送携带上述LV向量的BPDU信息给网桥B。网桥B收到该BPDU信息后,将BPDU信息中包含的上述LV向量中的Length值和自己的Length值进行比较,因为2大于0,所以网桥B构造的新的LV向量的Length=[2/8]+1=1,并且在新的Path向量域中加入自己的标志。网桥B构造的新的LV向量为如下的表2所示。
[0101] 表2
[0102]1 00000010
[0103] 同样网桥C收到上述以网桥A为根的BPDU信息后,构造的新的LV向量为如下的表3所示。
[0104] 表3
[0105]1 01000010
[0106] 网桥D收到上述以网桥A为根的BPDU信息后,构造的新的LV向量为如下的表4所示。
[0107] 表4
[0108]1 01001010
[0109] 网桥E收到上述以网桥A为根的BPDU信息后,构造的新的LV向量为如下的表5所示。
[0110] 表5
[0111]2 0000010001000010
[0112] 网桥F收到上述以网桥A为根的BPDU信息后,构造的新的LV向量为如下的表6所示。
[0113] 表6
[0114]2 0000010101000010
[0115] 网桥G收到了三个分别由网桥C、D和F发送过来的以网桥A为根的BPDU消息,并且BPDU消息中包含的路径开销分别为9、8、8。即从网桥D和网桥F发送过来的以网桥A为根的BPDU信息中包含了相等的最小路径开销,然后,网桥G比较从网桥D和网桥F发送过来的以网桥A为根的BPDU信息中包含的LV向量中的Path向量的长度信息,比较该长度信息对应的Path向量的大小,因为,向量0100 1010小于向量0000 0101 0100 0010,所以,如果按Path向量最小来选择路径,则网桥G选择ABCD的路径为以网桥A为根的根路径。
[0116] 实施例2中的桥接网络为图6所示的桥接网络,路径上的数字表示路径的开销,网桥A、B、C.....I对应的网桥位置值分别为1、2、3.....9,Path向量的基数为8,Length表示Path向量的位数。按照上述本发明所述方法的处理流程,网桥I建立以I为根的生成树的过程包括如下步骤:
[0117] 步骤1、网桥I设置初始LV向量的Length为0,初始LV向量的Path向量为空,然后,将上述初始LV向量设置在优先权向量中,构造携带上述优先权的BPDU信息,并且发送到网桥G。
[0118] 步骤2、网桥G接收到上述网桥I发送的BPDU信息后,首先根据BPDU的信息确定自己对于网桥I的根端口,G在转发上述以I为根的BPDU信息之前,构造新的LV向量。因为,网桥G的位置值7大于0(初始LV向量的Length),新的LV向量的Length=[Vn/B]*B+B=[7/8]*8+8=8,同时网桥G将新的Path向量域中属于自己的第七位置为1,将重新构造的LV向量设置在优先权向量中。并且将优先权向量中指定网桥信息(Designed Bridge infomation)更新为自己的网桥位置信息。然后,从非根端口转发携带构造的新的优先权向量的BPDU信息。
[0119] 后面的网桥都采用类似的处理。
[0120] 其中G、D、C、F、E都可以根据路径代价的大小判断出各自对于网桥I的根端口。
[0121] 步骤3、网桥B收到两个以I为根的BPDU配置消息,而且两个方向IGFEB和IGDCB的路径代价都相等,网桥B先去比较两个BPDU配置消息中的优先权向量中的指定网桥的信息,发现指定网桥的信息不相等,一个为C、一个为E。于是,网桥B通过比较两个BPDU配置消息中的LV向量中的Path向量的大小来选择一条路径作为网桥I的根路径。比如,选择Path向量较小的路径,则选择路径IGDCB。比较Path向量的大小之前,先要保证Length长度已经在整个Path域都已经被比较过。
[0122] 然后,网桥B转发上述以网桥I为根的BPDU配置信息,并且同样需要在LV向量中添加自己的标志。
[0123] 步骤4、网桥A也收到从两个相等路径上传来的以网桥I为根的BPDU配置消息,网桥A比较收到的两个BPDU消息中包含的指定网桥的信息,发现两个指定网桥都是网桥B,即该两个BPDU消息经历了相同的路径。
[0124] 因此,网桥A需要考虑比较本地网桥信息和BPDU消息中包含的指定网桥信息的大小,即比较网桥A和网桥B的ID大小,因为,网桥A的ID小于网桥B的ID,因此网桥A选择自己,然后,网桥A比较自己的两个端口ID的大小,选择其中ID小的一个端口作为以网桥I为根的根端口。
[0125] 当网桥H建立以H为根的树时,同样H首先构造BPDU配置消息并发给网桥A。
[0126] 网桥A可以确定自己以网桥H为根的根端口,并且构造新的LV向量并发送给网桥B。
[0127] 网桥B也收到从两个相等路径上传来的以H为根的BPDU配置消息,网桥B比较两个BPDU配置消息中包含的指定网桥的信息,发现两个指定网桥都是A,因此网桥B需要考虑比较本地网桥信息和指定网桥信息的大小,选择网桥ID小的网桥,因此网桥B选择了网桥A,然后比较网桥A的两个端口ID的大小,选择其中ID小的一个端口作为以H为根的根端口。
[0128] 网桥C、D、E、F同样可以根据路径代价的信息来确定自己以H为根的根端口。
[0129] 网桥G收到两个以网桥H为根的BPDU配置消息,而且两个方向HABCDG和HABEFG的路径代价都相等,网桥B先去比较两个BPDU配置消息中指定网桥的信息,两个BPDU配置消息中的指定网桥一个为网桥D、一个为网桥F,于是,网桥B通过比较BPDU配置消息中包含的Path向量的大小来选择一条路径,如果选择Path向量小的路径,则选择上面的一条路径HABCDG。网桥B比较Path向量的大小之前,先要保证Length长度已经在整个Path域都已经被比较过。网桥B转发以I为根的BPDU配置信息时,同样需要在LV向量中添加自己的标志。
[0130] 按照上面的流程可以看出从H→I,和I→H两个方面建立的路径都是对称的最短路径。
[0131] 以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。