对生成树的理解
生成树 教程 stp mstp 
                    MSTP协议简介
概述
协议背景
在二层交换网络中,一旦网络中存在有环路,就会造成报文在环路中不断的增生循环,产生广播风暴占用所有的有效带宽,造成网络的瘫痪。STP协议根据网络中的拓扑结构,将网络中的节点按照一定的算法生成一个树形的拓扑结构,从而避免网络中环路的存在。当网络中拓扑结构发生变化时,STP算法会根据新的网络拓扑重新计算树,生成新的树形结构,这样既提供了环路保护的功能,同时可以提供链路冗余的功能。这是STP协议最初产生时提供的功能。
STP协议的发展
STP协议和其他网络协议一样,是随着网络的不断发展而不断更新换代的。最初被广泛应用
的是IEEE802.1D 1998版本,随后又出现了IEEE802.1W RSTP协议、IEEE802.1s MSTP协议。RSTP协议提供了端口状态的快速转换功能,使网络拓扑的收敛时间大为减少。MSTP协议在RSTP协议的基础上引入了域和实例的概念,首先将网络中不同的桥设备及其LAN划分为不同的域内,在域内设定各个VLAN到生成树实例的映射关系,这样既提供了快速收敛的能力,同时也在域内对网络冗余的网络带宽进行了有效应用。
相关文档
IEEE802.1D 1998版本                STP协议
IEEE802.1W 2001版本                RSTP协议
IEEE802.1s 2002版本                MSTP协议
IEEE802.1D 2004版本                STP+RSTP协议
IEEE协议于2004年将IEEE802.1D1998版本和IEEE802.1W2001版本合并为一个文档,是为IEEE802.1D2004版本。
缩写词汇
简写词
全拼
中文释义
备注
STP
Spanning Tree Protocol
生成树协议
这里的生成树协议特指IEEE802.1D 1998版本中的生成树协议
RSTP
Rapid spanning tree protocol
快速生成树协议
IEEE802.1w 2001
MSTP
Multi spanning tree protocol
多生成树协议
IEEE802.1s 2002
SST
Single spanning tree
单生成树协议
 
CST
Common spanning tree
公共生成树
用于连接不同域之间的生成树
端口被占用CIST
Common and Internal Spanning Tree
公共内部生成树
 
IST
Internal spanning tree
内部生成树
 
MSTI我只在乎你日语版
Multi spanning tree instance
多生成树实例
 
STA
Spanning tree algorithm
生成树算法
 
BID
Bridge Identifier
ID
BID是分配给每个bridge的唯一标识,用于确定bridge的优先等级。
VLAN
Virtual Local Area Network
虚拟局域网
从逻辑上将一段在物理上属于同一个局域网的网段划分为多个局域网,便于网络的管理和维护,同时可以将不同的业务进行隔离。
VID
VLAN identifier
VID
 
BPDU
Bridge Protocol Data Unit
桥协议数据单元
 
TCN
Topology change notification
拓扑更改通知
TCN BPDU
TCA
Topology change acknowledged
拓扑更改回复
TCA BPDU
UCT
 
无条件强制转换
RSTP状态机中有些状态在完成操作以后直接转换到下个状态,这种情况就称为UCT.
 
STP
协议介绍
STP协议是一个单生成树协议,所谓单生成树协议,就是在网络中将所有的桥设备放到单个生成树拓扑中,保证网络连接的全联通性和无循环链路。
STP协议首先会为生成树选定一个跟,然后根据每个桥设备到根的距离来确定该桥到根的路径,这样由根、桥设备以及各个桥到根的路径组成了一个全联通且无循环的生成树。
STP协议通过BPDU(桥协议数据单元)进行协议数据的交互。STP BPDU是一种二层报文,目的MAC是多播地址01-80-C2-00-00-00,所有支持STP协议的网桥都会接收并处理收到的BPDU报文,BPDU报文不会被转发。
STP协议中的基本概念
Bridge identifier(BID):每个桥有1identifier,该BID由两部分组成。前两个字节表示优先
级,默认为32768可取值范围在0-65535。后情人节语录6个字节由bridgeMAC地址组成。确保网络中每个bridgeBID具有唯一性。
Root Bridge(跟桥):网络中作为生成树树根的bridge,该bridge具有最小的BID
Root identifierRID):跟桥具有的identifier
Path cost:数据包在网络中传输所需的路径开销。该开销根据局域网类型(带宽+双工模式)来确定数据包在网络中的路径开销。该开销是用来确定最优生成树的关键参数。
Port identifierPID):每个桥的每个端口具有一个PID,该PID由两部分组成,共16bits。(前6bits表示优先级,后10bit表示端口名称,没看到官方文件说明)。
Root path cost:数据包到达跟桥的路径开销。
Root port(根端口):非跟桥上到达跟桥路径开销最小的端口。
Designated port(指定端口):连接到某局域网中的所有端口中具有最小根路径开销的端口。该端口被称为该局域网的指定端口。
Designated bridge:局域网的指定端口所在的四级听力技巧bridge被称为该局域网的指定端口。
Alternate port:备份端口。
STP协议中的端口状态
Blocking(阻塞状态):该端口处于使能状态,但根据STP算法的计算结果,该端口不属于生成树的有效组成端口。(既有其他路径可以生成生成树结构,同时比该端口所在的路径具有更优的结构)。处于阻塞状态的端口只接受STP BPDU报文,不转发STP BPDU报文;不接收和转发其他业务报文。
Listening(监听状态):该端口处于使能状态,同时该端口已经被选为生成树的有效组成端口,但为了防止网络拓扑结构的动荡变化造成生成树的不稳当,在blocking移动手机积分兑换商城forwarding状态之间添加了listening状态,该状态监听网络中的BPDU报文判断是否有更优的路径,同时该端口开始将FDB表中的相关表项进行清除,该状态接受转发STP BPDU报文,不接受和转发普通业务报文。
Learning(学习状态):该端口处于使能状态,同时该端口已经被选为生成树的有效组成
端口。但为了防止网络拓扑结构的动荡变化造成生成树的不稳当,在blockingforwarding状态之间添加了learning状态,在端口保持在listening状态一定时间(forward timer)之后,若没有发现其他更优路径,则该端口有listening状态转换到learning状态。该状态监听网络中的BPDU报文判断是否有更优的路径,同时端口接受和转发STP BPDU报文,接收普通业务报文,并学习报文MAC地址,不转发普通业务报文。
Forwarding烘托和衬托(转发状态):该端口处于使能状态,同时该端口已经被选为生成树的有效组成端口。在端口处于listening状态一定时间之后(forward timer),若没有发现其他更优路径,该端口有learning状态转换到forwarding状态。该状态接受和转发STP BPDU报文,同时接受和转发普通业务报文。
Disable(禁用状态):该状态可以认为是物理上没有联通的端口。
 
端口状态
地址学习能力
转发/接收报文能力
接收BPDU报文
发送BPDU报文
Disabled
NO
NO
NO
NO?????
Blocking
NO
NO
YES
NO
Listening
NO
NO
YES
YES
Learning
YES
NO
YES
YES
Forwarding
YES
YES
YES
YES
 
 
STP报文格式
STP协议使用BPDU报文承载协议所需的交互信息。STP协议报文共有两种,配置报文(configuration BPDU)和拓扑结构更改报文(topology change notification BPDU)。
BPDU报文格式如下图。
 
 
 
 
BPDU采用01-80-c2-00-00-00目标多播地址作为目标地址。
Configuration BPDU
 
Protocol identifier:占用1-2两个字节,STP协议的对应值为0000 0000 0000 0000
Protocol version identifier:占用第三个字节,STP协议的对应值是0000 0000
BPDU Type:占用第四个字节,configuration BPDU对应值是0000 0000
Flag:占用第五个字节,它的最高bit(bit 8)标识Topology Change Acknowledgment flag。最低bit(bit 1)标识Topology Change flag。其余bit位保留未定义。
Root Identifier:树的根桥ID,每个桥发送BPDU时都会将该桥当前认为的跟桥ID放在这里。占用6-13八个字节。前两个字节是优先级,后6个字节是跟桥对应的MAC地址。
Root Path Cost:发送BPDU的桥到跟桥的最短路径开销,占用14-17四个字节。
Bridge Identifier:发送BPDU的桥的桥ID。占用18-25八个字节。
Port Identifier:发送BPDU报文的指定端口的端口ID。占用26-27两个字节。
Message Age timer:消息年龄,用法还不清楚,占用28-29两个字节。
Max Age timer:消息寿命。占用30-31两个字节。
Hello Time:根hello时间,占用32-33两个字节,表示根发送BPDU报文的时间间隔。
Forward delay:转发延迟,端口进行状态转换的延迟时间(端口有listening-learning和有learningforwarding状态的转换都需要等待一个forward delay延迟的时间)。
topology change notification BPDU
 
如上图所示是TCN BPDU报文的格式。
Protocol identifier:占用1-2两个字节,STP协议的对应值为0000 0000 0000 0000
Protocol version identifier:占用第三个字节,STP协议的对应值是0000 0000

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。