以太网-网桥 [2]
1、重新格式化帧,并计算新的校验和。
2、反转比特顺序。
3、复制优先权值,不管有无意义。
4、产生一个假想的优先权。
5、丢弃优先权。
6、流向环(某种程度上)。
7、设置A位和C位。
8、担心拥塞(快速LAN至慢速LAN)。
9、担心令牌因为交换ACK延迟或不可能而脱手。
10、如果帧对目的LAN太长,则将其丢弃。

设定的参数:
802.3:1500字节帧 10Mb/s(减去碰撞次数)
802.4:8191字节帧 10Mb/s
802.5:5000字节帧 4Mb/s

当IEEE802委员会开始制订LAN标准时,未能商定一个统一的标准,却产生了3个互不兼容的标准,这一失策已受到了严厉的抨击。后来,在制定互联这3种LAN的网桥的标准时,该委员会决心干得好一些。这一次确实较为成功,他们提出了2种互不兼容的网桥方案。直到目前为止,还无人要求该委员会制订连接它的2个不兼容网桥的网关标准。

四、两种网桥

1、透明网桥

第一种802网桥是透明网桥(transparent bridge)或生成树网桥(spanning tree bridge)。支持这种设计的人首要关心的是完全透明。按照他们的观点,装有多个LAN的单位在买回IEEE标准网桥之后,只需把连接插头插入网桥,就万事大吉。不需要改动硬件和软件,无需设置地址开关,无需装入路由表或参数。总之什么也不干,只须插入电缆就完事,现有LAN的运行完全不受网桥的任何影响。这真是不可思议,他们最终成功了。

透明网桥以混杂方式工作,它接收与之连接的所有LAN传送的每一帧。当一帧到达时,网桥必须决定将其丢弃还是转发。如果要转发,则必须决定发往哪个LAN。这需要通过查询网桥中一张大型散列表里的目的地址而作出决定。该表可列出每个可能的目的地,以及它属于哪一条输出线路(LAN)。在插入网桥之初,所有的散列表均为空。由于网桥不知道任何目的地的位置,因而采用扩散算法(flooding algorithm):把每个到来的、目的地不明的帧输出到连在此网桥的所有LAN中(除了发送该帧的LAN)。随着时间的推移,网桥将了解每个目的地的位置。一旦知道了目的地位置,发往该处的帧就只放到适当的LAN上,而不再散发。

透明网桥采用的算法是逆向学习法(backward learning)。网桥按混杂的方式工作,故它能看见所连接的任一LAN上传送的帧。查看源地址即可知道在哪个LAN上可访问哪台机器,于是在散列表中添上一项。

当计算机和网桥加电、断电或迁移时,网络的拓扑结构会随之改变。为了处理动态拓扑问题,每当增加散列表项时,均在该项中注明帧的到达时间。每当目的地已在表中的帧到达时,将以当前时间更新该项。这样,从表中每项的时间即可知道该机器最后帧到来的时间。网桥中有一个进程定期地扫描散列表,清除时间早于当前时间若干分钟的全部表项。于是,如果从LAN上取下一台计算机,并在别处重新连到LAN上的话,那么在几分钟内,它即可重新开始正常工作而无须人工干预。这个算法同时也意味着,如果机器在几分钟内无动作,那么发给它的帧将不得不散发,一直到它自己发送出一帧为止。

到达帧的路由选择过程取决于发送的LAN(源LAN)和目的地所在的LAN(目的LAN),如下所示:

1、如果源LAN和目的LAN相同,则丢弃该帧。
2、如果源LAN和目的LAN不同,则转发该帧。
3、如果目的LAN未知,则进行扩散。

为了提高可靠性,有人在LAN之间设置了并行的两个或多个网桥,但是,这种配置引起了另外一些问题,因为在拓扑结构中产生了回路,可能引发无限循环。其解决方法就是下面要讲的生成树(spanning tree)算法。

  • 生成树网桥

    解决上面所说的无限循环问题的方法是让网桥相互通信,并用一棵到达每个LAN的生成树覆盖实际的拓扑结构。使用生成树,可以确保任两个LAN之间只有唯一一条路径。一旦网桥商定好生成树,LAN间的所有传送都遵从此生成树。由于从每个源到每个目的地只有唯一的路径,故不可能再有循环。

    为了建造生成树,首先必须选出一个网桥作为生成树的根。实现的方法是每个网桥广播其序列号(该序列号由厂家设置并保证全球唯一),选序列号最小的网桥作为根。接着,按根到每个网桥的最短路径来构造生成树。如果某个网桥或LAN故障,则重新计算。

    网桥通过BPDU(Bridge Protocol Data Unit)互相通信,在网桥做出配置自己的决定前,每个网桥和每个端口需要下列配置数据:

    网桥:网桥ID(唯一的标识)
    端口:端口ID(唯一的标识)
         端口相对优先权
         各端口的花费(高带宽 = 低花费)

    配置好各个网桥后,网桥将根据配置参数自动确定生成树,这一过程有三个阶段:

    1、选择根网桥
      具有最小网桥ID的网桥被选作根网桥。网桥ID应为唯一的,但若两个网桥具有相同的最小ID,则MAC地址小的网桥被选作根。

    2、在其它所有网桥上选择根端口
      除根网桥外的各个网桥需要选一个根端口,这应该是最适合与根网桥通信的端口。通过计算各个端口到根网桥的花费,取最小者作为根端口。

    3、选择每个LAN的“指定(designated)网桥”和“指定端口”
      如果只有一个网桥连到某LAN,它必然是该LAN的指定网桥,如果多于一个,则到根网桥花费最小的被选为该LAN的指定网桥。指定端口连接指定网桥和相应的LAN(如果这样的端口多于一个,则低优先权的被选)。

    一个端口必须为下列之一:

    1、根端口
    2、某LAN的指定端口
    3、阻塞端口

    当一个网桥加电后,它假定自己是根网桥,发送出一个CBPDU(Configuration Bridge Protocol Data Unit),告知它认为的根网桥ID。一个网桥收到一个根网桥ID小于其所知ID的CBPDU,它将更新自己的表,如果该帧从根端口(上传)到达,则向所有指定端口(下传)分发。当一个网桥收到一个根网桥ID大于其所知ID的CBPDU,该信息被丢弃,如果该帧从指定端口到达,则回送一个帧告知真实根网桥的较低ID。

    当有意地或由于线路故障引起网络重新配置,上述过程将重复,产生一个新的生成树。

    2、源路由选择网桥
  • 首 页 | 关于我们 | 系列产品 | 方案文档 | 合作伙伴 | 客服中心