您的位置: 网界网 > 周报全文 > 正文

[周报全文]二层数据网络802.1d的自愈

2002年07月01日 00:00:00 | 作者:佚名 | 来源:$page.getBroMedia() | 查看本文手机版

摘要:二层数据网络802.1d的自愈

标签
二层数据网络802.1d的自愈
网捷网络公司  沈之千

为什么需要802.1d的自愈

    二层数据网的自愈需求由来已久,早期的以太网 Bridge 采用了基于 MAC 地址在不同端口之间的转发,而每一个端口对应的是一个以太网的网段,也就是一个以太网的广播域,通过学习每个端口的 MAC 地址表的方式,以太网 Bridge 只转发不同端口间的通信。但是由于Bridge 依赖的是运行网络中存在的MAC 地址和端口的对应表,所以一旦收到目的地址未知的数据包,它将利用广播的形式来寻址,这种方法使得它天生不能隔离广播包和组播包的通信,其后果就是在一个环形网络中造成数据流量以指数形式的增长,从而导致网络的瘫痪,这种现象也称为“广播风暴”。

    可以说“广播风暴”的现象只存在于两点之间存在冗余链路的网络之中,而冗余链路的存在正是网络设计中大量存在的,这种设计的目的是当某一条链路失效时,另一条冗余的链路能够马上接管所有的工作。为了解决“广播风暴”这一在二层数据网络中存在弊端,IEEE(电机和电子工程师学会)制定了 802.1d 的生成树协议(Spanning Tree),这种协议的本质就是消除网络拓扑中任意两点之间可能存在的重复路径,利用这种算法将两点之间存在的多条路经划分为“通信路径”和“备份链路”,数据的转发在“通信路径”上进行,而“备份链路”只用于链路的侦听,一旦发现“通信路径”失效时,将自动地将通信切换到“备份链路”上。

    现代的二层以太网交换机和三层以太网交换机采用了硬件电路的设计,保证了每个端口的独享带宽,用户可以将它的每一个端口看作是一个独立的 Bridge 端口,其二层的工作原理同 Bridge 类似。为了实现在用户接入层、汇聚层甚至城域网络范围内的高可靠性,网络中关键的拓扑设计往往采用冗余链路的设计,虽然也有其他的技术可以实现高效的网络收敛,但是大多数网络设计者还是采用了 802.1d 的方法,原因是 Spanning Tree是一项简单而成熟的网络自愈技术。

Spanning Tree的工作方式

    Spanning Tree 的工作方式可以从它的字面上理解为“生成树”,它的所有的工作都是为了生成一颗倒装的树形,这棵树的根就称为“bridge root”,每个设备会定义一个优先级,称为“bridge priority”,它的数值越小代表它成为树根的可能性越大,而每个叶结点通往树根的路径称为“root path”,衡量这一路径的权值称为“path cost”,通常它代表了链路的带宽,一个千兆端口的权值会小于一个百兆端口的权值。所有参与生成树算法的网络设备都交换它们的报文信息(BPDU),通过这些信息它们知道哪个路径更为快捷、哪个设备成为树根的可能性最高,然后它首先选出整个网络的树根,其次计算每个叶结点到树根的路径,选择代价最小的成为通信的路径,而另外的路径成为备份的路径。在每个节点的生成树算法完毕以前,所有的设备端口都只发送和接收报文信息,端口的状态处于初始化的阶段(listening & learning),一旦完成初始化,那么成为通信的路径的端口转变为“Forwarding”的状态,用于数据的收发,而备份链路的端口成为“Blocking”的状态(或对端成为“Blocking”的状态),只侦听 BPDU 的数据。一旦通信的路径失效(+微信关注网络世界),根据 BPDU 的报文,备份链路的端口将重新一轮计算的过程而成为“Forwarding”的状态。

Spanning Tree的弊端和增强技术

    Spanning Tree 的算法广泛运用于二层以太网的收敛和自愈,但是由于它的出现是在局域网的初期所开发的技术,所以它也存在着一些弊端, 主要有以下几个不足。

    1、二层数据网的收敛时间过长

    根据 802.1d的算法,每个叶结点的初始化时间约为 30 秒钟,整个拓扑的收敛将会在 45 秒左右,即使是一个以太网端口由于插入计算机也需要这个过程。而我们知道一旦在关键网络如主机核心机房的连接,用户期望的值往往要短的多。

    2、网络拓扑容易引起全局波动

    由于 802.1d 的理论没有域的概念,网络中用户增加或减少设备、设备配置的改变往往会引起全局不必要的波动,用户如果改变其设备参数甚至能引起bridge root 的改变,出现通信网络的中断。这造成用户在大规模的数据网络中不敢轻易使用 802.1d 的算法。

    3、缺乏对现有多 VLAN 环境的支持

    802.1d 没有阐明在一个存在多个 VLAN 情况下如何处理 Spanning Tree 的算法,造成一个以太网交换机只支持单个 STP运算,从而使得双光纤链路的资源只能利用到一半。

    针对这些802.1d 所带来的弊端,网络设备制造商开发了许多增强的技术,以使以太网用于现代高速的宽带网络,这些技术主要有:

    1、修改 Spanning Tree 的算法,大大提高其收敛时间。

    2、提出 Spanning Tree 划分域的概念,将核心网络与用户接入网络的 STP 域分开,保护核心网络的稳定性。

    3、针对以太网交换机开发的多 STP 协议,就是在每个 VLAN 上运行独立的 STP 算法,互不干扰。

    需要指出的是以上几种技术现在尚未存在开放的标准,不同厂商的互连需要依情况不同而定。当然二层数据网络的自愈技术不光是 802.1d 一种,针对 STP 的不足,尤其是收敛时间过长这一点,许多知名的网络厂商甚至开发出不需要 STP 的子秒级收敛技术,这种收敛有些是依赖于特殊的光纤端口上,也有一些是建立在光纤以太网技术上的。
[责任编辑:程永来 cheng_yonglai@cnw.com.cn]