随着交换网络环路的产生和对网络的危害,STP协议为之诞生,它是通过将物理上存在的交换网络,通过一种特定的算法,进而堵塞一个Port,由此从逻辑上形成一个树状结构的网络。
工作原理:1),生成树算法(STA): 归纳为三个步骤: A,选取根网桥(root bridge)--------选取依据是8byte的网桥ID,由2byte的网桥priority和网桥MAC地址组成 ,其中,网桥priority的范围为0~65535,缺省值为32768,值越小优先级越高;MAC 地址比较大小时,从厂商编号依次往后进行比较,同样,其值越小priority越高,但是,前提是网桥priority必须相同。
B,选取根端口(Root Port)------选取依据顺序为:a,比较端口所在SW到root bridge的路径成本。根路径成本是普通网桥到root bridge的成本总和,可能是一条链路,也可能是多条链路之和;路径成本代表一条链路的带宽大小,带宽值越大,传输路径成本越小,这里的成本可想象为传输数据所花费的时间。常用链路带宽10Mb/s 和100Mb/s对应的路径成本分别为19和100。
b,比较直连网桥ID,同选取root bridge的方法一样。
c,比较端口ID。其由端口priority和端口编号两部分组成,前者的优先级范围为0~255,缺省为128。而在比较端口编号时,Switch的端口编号默认按1~256计算,如:f0/1 的编号值为1 ,f0/2的编号值为 2 ''''''''等0槽接口完了后,继而是1槽2槽以此向下排列。
C,选取指定端口(Designated Port)-----选取依据同根端口一样,唯一值的注意是,这里所比较的网桥ID和端口ID是网桥自身的,而非直连的。由于根网桥的端口到根网桥的路径成本为0,所以根网桥的端口全部属于指定端口。
总结如下:
角色<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> |
|
|
|
|
|
|
|
|
|
|
|
所以, 最后剩余的那一个或多个端口就是应阻塞的端口。
生成树的端口状态如下:
禁用---强制关闭;
侦听---不可发/接数据帧,只能发/接BPDU报文;
转发---发/接数据帧和BPDU报文,学习MAC地址。
(注:BPDU即桥协议数据单元,switch通过发送和接收BPDU报文来stp的算法。其分为两种类型:其一是用于生成树计算的配置BPDU;其二是用于通告网络拓扑变化的拓扑变更报告即TCN.该报文包含根路径成本,根网桥ID,发送网桥ID,端口ID,还有一些计时器等。
上面各种状态间的时间间隔如下:
阻塞到侦听-----20s;侦听到学习-------15s; 学习到转发------15s;
STP的计时器和时间间隔:
STP和vlan的关系:A,CST(IEEE的同用STP),其以switch为单位运行STP。
B,PVST(Cisco的每vlanSTP)-----私有协议,顾名思义,它为每个vlan运行一个STP.如果vlan数量多的话,由于SW软件和硬件利用率无疑会提高,可能使switch宕机,由于公有CST和私有PVST无法一起运行,就使厂家间的交换机无法进行互操作,所以PVST+协议产生.
C,PVST+ = CST + PVST.这是交换机默认运行的协议,主要由两个好处:a.可以实现网络的负载均衡;b,速端口的好处,当一个连接终端客户机的端口从关闭变为打开时,就会跳过侦听和学习的状态,直接成为转发状态,节省30秒的时间。相关命令:
config#spanning vlan * root primary secondary
config#spanning vlan * priority * ( 默认为32768,0~65535)
config-if#spanning vlan * cost * (defaule 19)
config-if# spanning vlan * port-priority *
config-if#spanning portfast
enable#show spanning (vlan * detail)
转载于:https://blog.51cto.com/pengjiezhang/307496