现在的位置: 首页 > 综合 > 正文

IEEE 802.1d协议

2018年04月16日 ⁄ 综合 ⁄ 共 3896字 ⁄ 字号 评论关闭

本节从IEEE 802.1d协议谈起,介绍几个主要的IEEE 802.1系列协议。后面将要介绍的IEEE 802.1w协议,由IEEE 802.1d协议改进而来的,因此想搞懂IEEE 802.1w协议,也得先了解什么是IEEE 802.1d协议。
1.IEEE 802.1d协议简介
早期的以太网Bridge(网桥)采用了基于MAC地址在不同端口之间转发,而每一个端口对应的是一个以太网的网段,是也就是一个以太网的广播域。通过学习每个端口的MAC地址表的方式,以太网Bridge只转发不同端口间的通信。但是由于Bridge依赖的是运行网络中存在的MAC地址和端口的对应表,所以一旦收到目的地址未知的数据包,还得利用广播的形式来寻址,这种方法使得它天生不能隔离广播包和组播包的通信,其后果就是在一个环型网络中造成数据流量以指数形式的增长,从而导致网络的瘫痪,这种现象也称为“广播风暴”。“广播风暴”的现象只存在于两点之间存在冗余链路的网络之中,而冗余链路又正是网络设计中客观上大量存在的,这种设计的目的是当某一条链路失效时,另一条冗余的链路能够马上接管所有的工作。
为了解决“广播风暴”这一在二层数据网络中存在的弊端,IEEE(电机和电子工程师学会)制定了IEEE 802.1d的生成树(Spanning Tree)协议。生成树协议是一种链路管理协议,为网络提供路径冗余,同时防止产生环路。为使以太网更好地工作,两个工作站之间只能有一条活动路径。
STP(生成树协议)允许网桥之间相互通信以发现网络物理环路。该协议定义了一种算法,网桥能够使用它创建无环路(loop-free)的逻辑拓朴结构。换句话说,STP创建了一个由无环路树叶和树枝构成的树结构,其跨越了整个第二层网络。
生成树协议操作对终端站透明,也就是说,终端站点并不知道它们自己是否连接在单个局域网段或多网段中。当有两个网桥同时连接相同的计算机网段时,生成树协议可以允许两网桥之间相互交换信息,这样只需要其中一个网桥处理两台计算机之间发送的信息。网桥之间通过桥接协议数据单元(Bridge
Protocol Data Unit,BPDU)交换各自状态信息。生成树协议通过发送BPDU信息选出网络中根交换机和根节点端口,并为每个网段(switched segment)选出根节点端口和指定端口。

生成树协议的本质就是消除网络拓扑中任意两点之间可能存在的重复路径,利用这种算法将两点之间存在的多条路经划分为“通信路径”和“备份链路”。数据的转发在“通信路径”上进行,而“备份链路”只用于链路的侦听,一旦发现“通信路径”失效时,将自动地将通信切换到“备份链路”上。
现在的二层以太网交换机和三层以太网交换机采用了硬件电路的设计,保证了每个端口的独享带宽,用户可以将它的每一个端口看做是一个独立的Bridge端口,其中二层交换机的工作原理同Bridge类似。为了实现在用户接入层、汇聚层甚至城域网络范围内的高可靠性,网络中关键的拓扑设计往往采用冗余链路的设计。虽然也有其他的技术可以实现高效的网络收敛,但是大多数网络设计者还是采用了IEEE
802.1d的方法,原因是Spanning Tree是一项简单而成熟的网络自愈技术。

2.生成树协议工作原理
STP协议的基本思想十分简单。大家知道,自然界中生长的树是不会出现环路的,如果网络也能够像一棵树一样生长就不会出现环路。于是,STP协议中定义了根桥(Root Bridge)、根端口(Root Port)、指定端口(Designated Port)、路径开销(Path
Cost)等概念,目的就在于通过构造一棵自然树的方法达到裁剪冗余环路的目的,同时实现链路备份和路径最优化。用于构造这棵树的算法称为生成树算法STA(Spanning Tree Algorithm)。

要实现这些功能,网桥之间必须要进行一些信息的交流,这些信息交流单元就称为配置消息BPDU(Bridge Protocol Data Unit,网桥协议数据单元)。STP BPDU是一种二层报文,目的MAC是多播地址01-80-C2-00-00-00,所有支持STP协议的网桥都会接收并处理收到的BPDU报文。该报文的数据区里携带了用于生成树计算的所有有用信息。
解生成树协议的工作过程也不难,首先进行根桥的选举。选举的依据是网桥优先级和网桥MAC地址组合成的桥ID(Bridge ID),桥ID最小的网桥将成为网络中的根桥。在图6-6所示的网络中,网桥都以默认配置启动,在网桥优先级都一样(默认优先级是32768)的情况下,MAC地址最小的网桥成为根桥(如图中的交换机1),它的所有端口的角色都成为指定端口(Designated
port),进入转发状态。接下来,其他网桥将各自选择一条“最粗壮”的树枝作为到根桥的路径,相应端口的角色就成为根端口。假设图6-15中交换机2和交换机1、交换机3之间的链路都是千兆GE链路,交换机1和交换机3之间的链路是百兆FE链路,交换机3从端口1到根桥的路径开销的默认值是19,而从端口2经过交换机2到根桥的路径开销是4+4=8(千兆位链路的默认开销为4,百兆位链路的默认开销为19),因为后者的开销要远小于前者,所以端口2就成为根端口(Root Port),进入转发状态。根据同样的计算道理可以得出,交换机2的端口2成为根端口,端口1成为指定端口,进入转发状态。


图6-15  STP协议工作原理

根桥和根端口都确定之后一棵树就生成了,如图6-15中的网桥就是从交换机1→交换机2的2号端口→交换机3的2号端口。下面的任务是裁剪冗余的环路。这个工作是通过阻塞非根桥上相应端口来实现的,例如交换机3的端口1的角色成为禁用端口,进入阻塞状态(图中用“×”表示)。生成树经过一段时间(默认值是30秒左右)稳定之后,所有端口要么进入转发状态,要么进入阻塞状态。STP
BPDU仍然会定时从各个网桥的指定端口发出,以维护链路的状态。如果网络拓扑发生变化,生成树就会重新计算,端口状态也会随之改变。

STP协议给透明网桥带来了新生。但是,随着应用的深入和网络技术的发展,它的缺点在应用中也被暴露出来。STP协议的缺陷主要表现在收敛速度上。当拓扑发生变化,新的配置消息要经过一定的时延才能传播到整个网络,这个时延称为Forward Delay(转发延时),协议默认值是15秒。在所有网桥收到这个变化的消息之前,若旧拓扑结构中处于转发的端口还没有发现自己应该在新的拓扑中停止转发,则可能存在临时环路。为了解决临时环路的问题,生成树使用了一种定时器策略,即在端口从阻塞状态到转发状态中间加上一个只学习MAC地址,但不参与转发的中间状态,两次状态切换的时间长度都是Forward
Delay,这样就可以保证在拓扑变化的时候不会产生临时环路。但是,这个看似良好的解决方案实际上带来的却是至少两倍Forward Delay的收敛时间!

3.STP的弊端和增强技术
STP协议的算法广泛运用于二层以太网的收敛和自愈,但是由于它的出现是在局域网的初期所开发的技术,所以它也存在着一些弊端,主要有以下几个不足。
“收敛”是指如果网络上拓扑结构有了变化,从这个时刻开始到整个网络设备中的信息重新一致。这个时间间隔就是收敛时间。交换机有交换机的收敛时间,路由器有路由器的收敛时间。“自愈”是指当业务信道损坏导致业务中断时,网络会自动将业务切换到备用业务信道,使业务能在较短的时间(ITU-T规定为50ms以内)得以恢复正常传输。注意,这里仅是指业务得以恢复,而发生故障的设备和发生故障的信道则还是要人工去修复。
(1)二层数据网的收敛时间过长
根据IEEE 802.1d协议的算法,每个叶节点的初始化时间约为30秒钟,整个拓扑的收敛将会在45秒左右,即使是一个以太网端口由于插入计算机也需要这个过程。而我们知道一旦在关键网络如主机核心机房的连接,用户期望的值往往要短得多。
(2)网络拓扑容易引起全局波动
由于IEEE 802.1d协议中没有域的概念,网络中用户增加或减少设备、设备配置的改变往往会引起全局不必要的波动。用户如果改变其设备参数甚至能引起Bridge Root的改变,出现通信网络的中断,这造成用户在大规模的数据网络中不敢轻易使用IEEE 802.1d协议的算法。
(3)缺乏对现有多VLAN环境的支持
IEEE 802.1d协议没有阐明在一个存在多个VLAN情况下如何处理Spanning Tree 的算法,造成一个以太网交换机只支持单个STP运算,从而使得双光纤链路的资源只能利用到一半。
针对以上这些IEEE 802.1d协议自身的不足,网络设备制造商开发了许多增强的技术,以使以太网用于现代高速的宽带网络,这些技术主要有:
 修改Spanning
Tree的算法,大大提高其收敛时间。

 提出Spanning
Tree划分域的概念,将核心网络与用户接入网络的 STP 域分开,保护核心网络的稳定性。这就是目前在VLAN中的VTP域的概念。

 针对以太网交换机开发的多STP协议,就是在每个VLAN上运行独立的STP算法,互不干扰。也就是后来开发的多生成树协议——IEEE
802.1s协议。

以上几种技术目前仍存在开放标准问题,还没有一个统一的标准被各网络设备商所接受,所以不同厂商的互连需要依情况不同而定。当然二层数据网络的自愈技术不仅是 IEEE 802.1d协议,针对STP的不足,尤其是收敛时间过长这一点,许多知名的网络厂商甚至开发出不需要STP的收敛技术,这种收敛有些是依赖于特殊的光纤端口上,也有一些是建立在光纤以太网技术上的。

抱歉!评论已关闭.