为了防止环路的发生,所以采用stp协议‘
一般产生环路的情景有两个,一个是二层交换网路的冗余,另外一个是人为的失误。
产生的危害一般来说有两个:
一:是广播风暴,产生环路的交换机之间会进行交换机泛洪,来回反复,最终导致网络资源耗尽。
二:mac地址漂移:mac地址是携带端口信息的,产生mac飘移的情况下mac会在产生环路的端口来回切换。
而stp协议可以解决这种情况,他可以通过计算的方式选出最佳的方案,然后对另外的线路的接口进行阻塞。
计算方式:
每个交换机都有属于自己的桥ID(BID),桥ID是4096的倍数,桥ID越小,越能被选举为根桥
除了BID之外,还会比较Cost值。每一个接口都会有属于自己的Cost值,接口带宽越大,Cost值越小
计算出桥ID的时候,会在通过RPC(根路径开销):指的是当前线路的开销总和,是逐层累加的,,当BID相同的时候,下一步就会比较PRC,当RPC也相同时,就会接着比较端口的ID(默认128)
上面的数值计算出来会会放在BPDU(网桥协议数据单元)中
刚开始会进行无序的BPDU,选出根之后,其他的交换机不允许发送BPDU,只有根才能发送,按顺序接收BPDU,第一台收到BPDU后会修改路径开销,桥ID,接着修改接口,这样传下去(RP发,DP收)
RP:非根桥交换机接收到来自根桥的最好BPDU的端口
DP:是指链路上发送根桥最好的BPDU的端口
其实还有一个block状态的端口,在华为设备上,引用RSTP协议的AP角色(备份端口)来定义Block状态端口。标准的SPT协议中并没有AP的角色,只是华为的STP用AP端口表示端口状态Block
发送出来的端口越小越优秀。端口会有5种状态,切换状态会经过15秒
当网络拓扑发生变化的时候,会逐步发送报文: