这里,我们讲一下STP。
STP协议,设计这个协议的目的:
在二层网络环境中,为了防止单点故障,我们要做出冗余的链路,这样,当有链路出现故障的时候,能够起到仍然保持通信畅通。
但是,冗余的链路也可能造成环路,在二层网络环境中,由于没有TTL,所以会导致数据帧一直在不停的转发,直到网络的转发能力到极限为止。
为了防止这种现象的出现,我们需要提出一种方法,去防止这种现象的出现。
从逻辑上剪断这些冗余链路造成的环路,注意,不是剪断所有的逻辑链路,而是剪断逻辑链路造成的环路。
方法就是:从逻辑上使某些端口失效,从而剪断逻辑环路。
说到端口了,我们就要谈谈端口在STP中所定义的几种角色。
blocking状态 listening状态 learning状态 forwarding状态 disabled状态
1. blocking状态:这个状态是交换机刚刚开始启动的时候,进入的状态,只要交换机开启了STP功能,那么所有的端口一开始都是这个状态,在这个状态下的端口,
能够:接受BPDU报文,但是不能转发BPDU报文;丢弃接收来的数据帧,也不转发数据帧(或者说不收也不转发数据帧);不学习MAC地址;这个状态主要就是接收BPDU报文,并给STP算法进行处理。
2.listening状态:在这个状态下的端口,能够接收并转发BPDU报文,但是不接收也不转发数据;不学习MAC地址;
在这个状态,将完成几个工作:选举根桥;为非根桥指派根端口;为每个网段指派指定端口;被选举为根端口、指定端口的端口将进入Learning状态,其他端口将回到blocking状态。
3.learning状态:这个状态:能够学习MAC地址了,但是不转发数据帧;接收并转发BPDU;
4.forwarding状态:这个状态,能够学习MAC地址,接收并转发数据帧;接收并转发BPDU。
在讲述几个有关的概念:
1. 根桥:具有最小桥ID的交换机是根桥。请将环路中所有交换机当中最好的一台设置为根桥交换机,以保证能够提供最好的网络性能和可靠性。
2. 根端口:非根桥的交换机上离根桥最近的端口,负责与根桥进行通信,这个端口到根桥的路径开销最低。当多个端口具有相同的到根桥的路径开销时,具有最高端口优先级的端口会成为根端口。
3.指定桥:在每个网段中,到根桥的路径开销最低的桥将成为指定桥,数据包将通过它转发到该网段。当所有的交换机具有相同的根路径开销时,具有最低的桥ID的交换机会被选为指定桥。
4. 指定端口:指定桥上向本交换机转发数据的端口。
















