交换机

交换机有两大基本的功能:

  • 生成和维护switch table,即可达Mac地址和端口之间的对应关系
  • 把帧从接收端口转发到目的端口

简介

交换机一般在硬件层面除了有端口、网卡还会有交换机缓存。其中缓存分为两种形式,一种是每个端口都有缓冲区,另一种是所有端口复用一个大的缓冲区。

交换机的帧交换方法主要分为两种:

  • store and forward:交换机将整个帧读取,然后校验之后转发。
  • cut-through:这种情况交换机只会看到目的Mac地址的位置,然后基于Mac地址马上转发。有的也会读到帧的前64个字节,减少错误。

交换机不同于网桥,交换机大多是基于硬件完成帧的转发,所以速度上会相对较快。

另外还有三层和四层交换机。

生成树协议

简介

交换机的连接中也时常有冗余电路,一旦构成回路,就会出现广播风暴,导致网络资源耗尽,而且还可能引起Mac地址表震荡导致Mac地址表破坏。

为了避免回路中产生回路,交换机和网桥可以采用数据链路层的STP生成树协议,把一些端口阻塞掉,消除回路。

相关概念

根桥

为了形成树形的网络,STP需要最开始先在所有交换机和网桥中间选举一个根,叫做根桥,作为整个网络的逻辑中心。

说是根桥,并不一定是网桥,当然可以是交换机设备。

BID

Bridge ID,桥ID。是一个8字节的数字。BID(8字节)=桥优先级(2字节)+桥Mac地址(6字节)。这个号码在选举根桥的时候被用来作为选举的标准,BID最小的设备才会被选为根桥。桥优先级可以手动配置。

二层交换机只有一个Mac地址。

PID

Port ID,端口ID。共16位。PID(16位)=端口优先级(4位)+端口号(12位)。只有在选举指定端口的时候被用到。PID小的会被选举为一条线路两端端口之间的指定端口。

RPC

根路径开销。某个端口到根桥的路径的开销。根桥上的端口的路径开销均为0。其他交换机的端口到根桥的路径开销就是中途经过的所有端口的开销。

PC

Port cost,端口开销,依据端口的带宽来计算。

BPDU

STP协议中交换机之间交换数据的数据单位。BPDU报文大致分为两种,一种是定时发送的,一种是只有当网络有变化时才发送的。

根端口RP

即其他交换机去往根桥路径最近的端口。是根据RPC根路径开销来决定的,最低的端口会被选为根端口,一个交换机上只有一个。根桥上没有根端口。根端口读者向根桥方向转发数据,同时还负责接受上游设备的BPDU报文和用户流量转发。

指定端口DP

每一条物理网段(连线)两端的端口都要有一个指定端口,负责向下游的路由器转发报文,以及发送BPDU报文给相邻的路由器。不是根端口而且不是指定端口的端口不能转发数据和发送BPDU报文。

选举的时候首先会比较端口的RPC,如果相同再比较BID。如果比较不出来再比较PID。小的会被选举成为指定端口。根桥上的端口均为指定端口

替代端口AP

暂时阻塞的端口,作为备用的端口。

端口状态表

端口状态 目的 说明
Forwarding(转发) 端口既转发用户流量也处理BPDU报文。 只有根端口或指定端口才能进入Forwarding状态。
Learning (学习) 设备会根据收到的用户流量构建MAC地址表,但不转发用户流量。 过渡状态,增加Learning状态防止临时环路。(15s)
Listening(监听) 确定端口角色,将选举出根桥、根端口和指定端口。 过渡状态。(15s)
Blocking(阻塞) 端口仅仅接收并处理BPDU报文,不转发用户流量 阻塞端口的最终状态。
Disabled(禁用) 端口既不处理BPDU报文,也不转发用户流量。 端口状态为Down。

三种计时器

  • Hello Time 控制配置BPDU的发送时间间隔。
  • Forward Delay Timer 控制端口在Listenning 和Learning 状态的持续时间。这两个状态是临时的。
  • Max Age控制的BPDU的超时时间,超时就认为根桥连接失败。

STP过程

  1. 选出根桥
  2. 选出根端口
  3. 选出指定端口
  4. 非根端口和非指定端口将被Block掉,可以作为替代端口。