桥接相关概念

 中继器、网桥以及路由器

中继器通常配有两个端口,只是简单地把在一个端口所接收的东西复制到另一个端口,反之亦然。它复制数据时是按位复制,并且对协议毫不关心,因此它无法区分不同的帧或封包。

网桥和中继器不同,它了解链路层协议,因此可以按帧复制复制数据,而非按位复制。也就是说,网桥在每个端口上至少可以缓存一个帧。

路由器是了解l3网络层协议的设备,它可以根据路由表转发入口封包。

当网桥不知道该用哪个接口来连接特定的L2地址时,就会把帧复制到所有接口上(接收该帧的接口除外),这种行为就成为扩散。当网桥接收到一个目的地址是链路层广播地址或L2多播地址的帧时,会将该帧复制给每个端口(接收该帧的端口除外)。多播地址和广播地址不能在帧中作为源地址。网桥不关心主机究竟在何处,它只需知道该用哪个端口连接该主机。透明网桥不能用在环路拓扑上。网桥用于找出最佳无环路拓扑的算法是生成树协议。

网桥地址学习的老化

image

桥接:生成树协议

使用多台网桥有一下优点:有助于分离流量,出于同一子层的以太网帧只处于该子层中;很容易管理大量的主机。

STP协议是一种分布式协议,网络中所有网桥都必须执行这个协议。执行此协议后,网桥就可以开启他们的某些端口并关闭其他端口,此时得到的整体拓扑结构就是最佳有根生成树。根节点的选择也是该协议的一部分:主机都同意谁是根节点,然后决定要开启和关闭哪些链路。

STP通过让各个网桥之间交换称为网桥协议数据单元(BPDU)的特殊帧来达到其目标,用BPDU交换的信息可让:

  • 为每个网桥端口指定一个明确的状态,例如转发或阻塞,以定义该端口可否接收数据流量
  • 通过对端口状态的设定,从环路拓扑中选择或丢弃适当的链路,以这种方式最终生成无环路拓扑

根网桥:

指定网桥:

生成树端口:

端口状态:

image 网桥协议数据单元(BPDU):

配置BPDU:用于定义无环路拓扑。

TCN,当检测到拓扑变化时,网桥用于通知根网桥

传输配置BPDU的时机

根网桥会运行一个定时器(Hello定时器),该定时器到期后就触发配置BPDU的传输。同一个BPDU从根网桥的每一个指定端口传输出去。只有根网桥能产生新的BPDU,但是当一个网桥加电启动时,它会以为自己就是根网桥(因为没有其他优先级向量可以比较)。所以,该网桥会将其他所有端口都设定为指定角色。启动Hello定时器,然后开始产生BPDU。

非根网桥只有在应答其根端口收到的BPDU才会产生BPDU,也就是说,非根网桥会传递BPDU。由非根网桥传输的BPDU,其所携带的信息和他们所接受的BPDU出下列字段之外都是相同的,非根网桥会更新这些字段:

  • 传输者的网桥ID和端口ID会被该网桥自己的信息替换
  • 该网桥会把开销更新为其所接受的开销加上其本地网桥中接受BPDU的端口(根端口)的开销之和
  • 消息生存期会按照“BPDU老化”一节所讲述的逻辑进行更新。

无论网桥是否为根网桥,在下列情况下也会传输一个配置BPDU:

  • 当一台网桥接收到一个BPDU,如果其优先级向量低于该网桥在其端口上所用的,那么,网桥就会以其自己(较高级)的信息应答
  • 当一台网桥接收到一个TCN BPDU时,会立刻发出一个设有特殊标识的配置BPDU作为应答。

不管是因何种原因从某一给定的端口发送出一个配置BPDU,STP都会对其速率进行限制:网桥从其任何端口中每秒只能最多传输一个配置BPDU。

每台网桥按照本地配置信息和接收到的入口配置BPDU中的信息,可完成下列工作:

  • 选出根网桥
  • 从其几个端口中选出一个作为根端口
  • 对每个端口,为该端口所属的LAN分配指定的网桥和指定端口

每当网络发生变化时,就可产生配置更新:

  • 开启或关闭一个端口
  • 如果一个端口的Message Age定时器到期了。此端口会重新启动
  • 一台网桥的本地配置信息发生变化
  • 一个网桥端口接收的一个配置BPDU,其优先级向量比该端口先前收到的BPDU的优先级向量高级。

你可能感兴趣的:(桥接相关概念)