透明网桥是一种即插即用设备,只要把网桥接入局域网,不需要改动硬件和软件,无需设置地址开关,无需装入路由表或参数,网桥就能工作。
透明网桥以混杂方式工作,它接收与之连接的所有LAN传送的每一帧。当一帧到达时,网桥必须决定将其丢弃还是转发。如果要转发,则必须决定发往哪个LAN。这需要通过查询网桥中一张大型散列表里的目的地址而作出决定。该表可列出每个可能的目的地,以及它属于哪一条输出线路(LAN)。在插入网桥之初,所有的散列表均为空。这时若网桥受到一个帧,会采用自学习(self-learning)算法处理收到的帧(这样就逐渐建立起转发表),并且按照转发表把帧转发出去。这种自学习算法的原理并不复杂,若从某个站A发出的帧从接口x进入了某网桥,那么从这个接口出发沿相反方向一定可把一个帧传送到A。所以网桥只要每收到一个帧,就记下其源地址和进入网桥的接口,作为转发表中的一个项目。在建立转发表时是把帧首部中的源地址写在“地址”这一栏的下面。在转发帧时,则是根据收到的帧首部中的目的地址来转发的。这时就把在“地址”栏下面已经记下的源地址当作目的地址,而把记下的进入接口当作转发接口。
如果网络上的每一个站都发送过帧,那么每一个帧的地址最终都会记录在两个网桥的转发表上。
实际上,在网桥的转发表中写入的信息除了地址和接口外,还有帧进入该网桥的时间要登记进入网桥的时间是因为以太网的拓扑可能会经常发生变化,站点也会更换适配器。另外,以太网上的工作站并非总是接通电源的。把每个帧到达网桥的时间登记下来,就可以在转发表中只保留网络拓扑的最新状态信息。具体方法是,网桥中的接口管理软件周期性地扫描转发表中的项目。只要在一定时间以前登记的都要删除。这样就使得网桥中的转发表能反映当前网络的最新拓扑状态。
由此可见,网桥中的转发信息表并非总是包含所有站点的信息。只要某个站点从来都不发送数据,那么在网桥的转发表中就没有这个站点的项目。如果站点A在一段时间内不发送数据,那么在转发表中地址为A的项目就被删除了。
下面是网桥的自学习和转发帧的一般步骤。
网桥收到一帧后先进行自学习。查找转发表中与收到帧的源地址有无相匹配的项目。如果没有,就在转发表中增加一个项目。如果有,则把原有的项目进行更新。
转发帧。查找转发表中与收到帧的源地址有无相匹配的项目。如果没有,则通过所有其他接口进行转发。如果有,则按转发表中给出的接口进行转发。但应注意,若转发表中给出的接口就是该帧进入网桥的接口,则应丢弃这个帧。
逆向学习法
透明网桥采用的算法是逆向学习法(backward learning)。网桥按混杂的方式工作,故它能看见所连接的任一LAN上传送的帧。查看源地址即可知道在哪个LAN上可访问哪台机器,于是在散列表中添上一项。
当计算机和网桥加电、断电或迁移时,网络的拓扑结构会随之改变。为了处理动态拓扑问题,每当增加散列表项时,均在该项中注明帧的到达时间。每当目的地已在表中的帧到达时,将以当前时间更新该项。这样,从表中每项的时间即可知道该机器最后帧到来的时间。网桥中有一个进程定期地扫描散列表,清除时间早于当前时间若干分钟的全部表项。于是,如果从LAN上取下一台计算机,并在别处重新连到LAN上的话,那么在几分钟内,它即可重新开始正常工作而无须人工干预。这个算法同时也意味着,如果机器在几分钟内无动作,那么发给它的帧将不得不散发,一直到它自己发送出一帧为止。
到达帧的路由选择过程取决于发送的LAN(源LAN)和目的地所在的LAN(目的LAN),如下所示:
1、如果源LAN和目的LAN相同,则丢弃该帧。
2、如果源LAN和目的LAN不同,则转发该帧。
3、如果目的LAN未知,则进行扩散。
为了提高可靠性,有人在LAN之间设置了并行的两个或多个网桥,但是,这种配置引起了另外一些问题,因为在拓扑结构中产生了回路,可能引发无限循环。
生成树算法
透明网桥还使用了一个生成树(spanning tree)算法,即互连在一起的网桥在进行彼此通信后,就能找出原来的网络拓扑的一个子集。在这个子集里,整个连通的网络中不存在回路,即在任何两个站之间只有一条路径。
为了得能够反映网络拓扑发生变化时的生成树,在生成树上的根网桥每隔一段时间还要对生成树的拓扑进行更新。
透明网桥的路径选择算法归纳
(1)若目的局域网和源局域网一样,则网桥将该帧删除。
(2)若源局域网和目的局域网是不同的网,则将该帧转发到目的局域网。
(3)若目的局域网不知道,则采用扩散法处理。