计算机网络——网桥路由选择算法

第一部分:为什么需要数据链路层互连?

在学习具体技术之前,我们先要明白为什么要互连。想象一个局域网(比如一个部门的办公室网络),如果人越来越多,设备也越来越多,会遇到几个问题:

冲突增多:如果使用集线器(Hub)这样的设备,所有设备共享一条“马路”,同时“说话”的设备多了,就会产生冲突,导致网络效率急剧下降。这整个容易产生冲突的范围,我们称之为冲突域 (Collision Domain)
广播泛滥:网络中有些消息是需要发送给所有人的,比如ARP请求(“谁是xxx.xxx.xxx.xxx,请告诉我你的MAC地址”)。在一个大的网络里,这种“广播”消息会非常多,传遍网络的每一个角落,消耗大量的网络带宽和设备处理资源。我们把广播消息能够传播到的范围,称为广播域 (Broadcast Domain)
物理范围受限:网线有长度限制,一个局域网的覆盖范围是有限的。

为了解决这些问题,我们引入了数据链路层的互连设备,最经典的就是网桥 (Bridge) 和后来发展出的交换机 (Switch)。它们的核心目标是:

隔离冲突域:将一个大的冲突域分割成多个小的冲突域,减少冲突,提高效率。
过滤通信量:智能地决定哪些数据需要被转发,哪些不需要,避免不必要的数据泛滥。


第二部分:网桥 (Bridge) 的工作原理

网桥是一个工作在数据链路层的设备。你可以把它想象成一个有两个或多个“门”(端口)的智能中继器。每个门连接一个局域网段。

它的核心功能是 “存储-转发”

接收帧:从一个端口完整地接收一个数据帧(MAC帧)。
检查地址:查看帧中的目的MAC地址
做出决策:根据目的MAC地址,决定是将这个帧转发 (Forward) 到另一个端口,还是丢弃 (Discard/Filter)

网桥通过隔离冲突域,显著提升了网络性能。连接在网桥不同端口的设备可以同时通信而互不干扰。

关键点:网桥隔离了冲突域,但默认情况下,所有连接在网桥上的网段仍然属于同一个广播域。这意味着一个广播帧还是会被转发到所有其他端口。

第三部分:网桥路由选择算法(考试重点)

“路由选择”这个词在这里指的是网桥如何决定一个帧的去向(即转发到哪个端口)。网桥内部有一张转发表(或叫站表、MAC地址表),记录着“某个MAC地址的主机在哪个端口”的对应关系。网桥正是依据这张表来做决策的。

这张表是如何建立和维护的呢?这就引出了三种不同的路由算法。

1. 固定路由算法 (Fixed Routing)

工作方式:这种方式最原始,需要网络管理员手动配置转发表。管理员需要告诉网桥,“要去A主机,走1号端口;要去B主机,走2号端口……”。
优点:简单、确定。
缺点:非常不灵活。如果网络拓扑发生变化(比如一台电脑换了位置),管理员必须手动修改所有相关网桥的配置,维护工作量巨大。因此,这种方式现在基本不用了。

2. 透明网桥与逆向学习算法 (Transparent Bridge & Backward Learning)

这是目前最主流、也是考试最重要的算法。它实现了即插即用,对网络中的主机来说是“透明”的,主机根本不知道网桥的存在。

其核心是逆向学习算法 (Backward/Reverse Learning Algorithm),网桥通过这个算法自动地学习和建立转发表。

学习过程如下(非常重要!):

监听与学习源地址:网桥会监听其所有端口收到的每一个数据帧。当一个帧从某个端口(比如端口1)进来时,网桥会查看这个帧的源MAC地址(例如MAC_A)。它就在自己的转发表里记下一条:“主机MAC_A,在端口1”。如果表里已有该条目,则更新该条目的计时器。
查找与处理目的地址:学习完源地址后,网桥会查看帧的目的MAC地址(例如MAC_B),并查询自己的转发表:

情况一:找到了,且目的端口与源端口相同。这说明目的主机和源主机在同一个网段,网桥无需转发。网桥会丢弃(过滤) 这个帧,从而实现了通信隔离。
情况二:找到了,且目的端口与源端口不同。这说明目的主机在另一个网段,网桥会将这个帧从对应的目的端口转发出去。
情况三:没找到(或目的地址是广播地址)。这说明网桥还不知道目的主机在哪。它会采取扩散(泛洪/Flooding)策略:将这个帧复制并转发到除了来源端口之外的所有其他端口

表的维护:转发表中的每一个条目都有一个“保鲜期”(老化时间)。如果一个条目在一定时间内没有被更新(即没有再收到该源地址发来的帧),就会被自动删除。这使得网桥能够适应网络拓扑的变化。

3. 帧循环问题与生成树协议 (STP)

透明网桥虽然智能,但也带来了一个严重的问题:帧循环。如果在网络中为了冗余备份,连接出了环路(比如两台网桥之间有多条链路),就会发生灾难。

一个目的地址未知的帧(尤其是广播帧)会被网桥们在环路里永无休止地来回转发,不断复制,最终形成“广播风暴”,占满所有带宽,导致网络瘫痪。

解决方案:生成树协议 (Spanning Tree Protocol, STP)

STP的目标是在一个有物理环路的网络上,通过逻辑上阻塞(Block) 某些端口,构造出一棵没有环路的“树”,同时保留物理上的冗余链路作为备份。当主链路故障时,STP会自动激活备份链路,恢复网络通信。

STP工作过程(简化版,应对考试):

选举一个“根网桥” (Root Bridge):所有网桥通过交换一种叫做BPDU (Bridge Protocol Data Unit) 的特殊信息帧,选举出网络中唯一的根网桥。选举标准通常是拥有最小的网桥ID(ID由优先级和MAC地址组成)。
在非根网桥上选举“根端口” (Root Port):每个非根网桥上,要选出一个距离根网桥“最近”(路径开销最小)的端口作为根端口,这个端口是它去往根网桥的唯一通道。
在每个网段上选举“指定端口” (Designated Port):对于每一个局域网段,连接到该网段的所有网桥端口中,要选出一个“指定端口”。这个端口负责这个网段与网络其余部分的通信。通常是该网段上距离根网桥最近的那个网桥的端口。
阻塞其余端口:所有既不是根端口,也不是指定端口的端口,都会被置于阻塞状态。这些端口不转发普通数据帧,只接收BPDU,从而打破了环路。

通过这个过程,整个网络形成了一个逻辑上的无环树状拓扑,保证了数据帧的唯一路径。

4. 源路由网桥 (Source Routing Bridge)

工作方式:这种网桥比较“傻”,它自己不做路由决策。而是由发送帧的源主机来决定路径。源主机会在帧里插入一个路由信息字段 (RIF),明确地写明这个帧应该经过哪些局域网和哪些网桥。
网桥的角色:网桥收到帧后,只需查看RIF字段,然后像“按图索骥”一样,将帧转发到RIF指定的下一个网桥或局域网即可。
应用:这种方式主要用于早期的令牌环网(Token Ring),在以太网中非常罕见,了解即可。


第四部分:二层交换机 (Layer 2 Switch)

你可以简单地把二层交换机理解为一个 “高速、多端口的网桥” 。它使用硬件(ASIC芯片)来实现网桥的功能,速度极快。

交换机相比网桥和集线器的巨大优势:

独享带宽:交换机的每个端口都是一个独立的冲突域。连接在端口上的主机可以独享该端口的全部带宽(例如100Mbps或1000Mbps),而不是像集线器那样大家共享。
并行通信:交换机内部有高速的交换矩阵(交换引擎),可以同时建立多对端口之间的连接,实现多组主机间的并行通信,网络总吞吐量极大提升。
全双工:交换机的端口可以工作在全双工模式,即同时发送和接收数据,不再需要CSMA/CD这种冲突检测机制。

交换机转发模式:

存储转发 (Store and Forward):接收完整的帧,进行CRC差错校验,无误后再转发。可靠性高,但延迟稍大。可以连接不同速率的端口。
直通式 (Cut Through):只接收帧的前几个字节(包含目的MAC地址),一知道目的地就立刻转发。延迟极低,但不会检查错误,可能转发坏帧。
无碎片模式 (Fragment Free):是前两者的折中。接收帧的前64字节(以太网最小帧长),确保不是冲突碎片后再转发。比直通可靠,比存储转发延迟低。


总结与应试技巧

核心设备:理解网桥/交换机的核心功能是隔离冲突域,而VLAN/路由器是用来隔离广播域的。这是最重要的区别。
核心算法:必须熟练掌握透明网桥的逆向学习算法(学习源地址,查找目的地址,未知则泛洪)。这是二层交换的基础。
防环机制:一定要理解STP(生成树协议) 为什么存在(为了防止环路),以及它的基本工作逻辑(选举根网桥,确定端口角色,阻塞冗余端口)。
对比记忆

集线器:物理层,共享冲突域和广播域。
交换机(网桥):链路层,每个端口一个冲突域,但默认整个设备一个广播域。
路由器:网络层,每个接口一个广播域。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容