一、什么是网桥?
网桥工作在数拟链路层.将两个LAN连起来,根据MAC地址来转发帧可以石作一个“低层的路由煞”(路111器工作在网络层,根据网络地址如IP地址进行转发).
远程网桥通过一个通常较慢的链路(如电话线)连接两个远程LAN,对本地网桥而言,性能比较重要.而对远程网桥而言,在长距离L可正常运行是更重要的.
网桥与路由器的比较
网桥并不了解其转发帧中高层协议的信息.这使它可以同时以同种方式处理IP、IPX等协议,它还提供了将无路由协议的网络(如NetBEUI)分段的功能。
由于路山a处理网络层的数据.因此它们更容易互连不同的数据链路层.如令牌环网段和以太网段。网桥通常比路由器难控制。像IP等协议有交杂的路山协议,使网竹易于竹理路山;IP等协议还提供了较多的网络如何分段的信息(即使其地址也提供了此类信息)。而网桥则只用MAC地址和物理拓扑进行工作。因此网桥一般适于小型较简单的网络。
二、使用原因
许多单位都有多个局域网,并且希望能够将它们连接起来。之所以一个单位有多个局域网,有以下6个原因:
第1,许多大学的系或公司的部门都有各自的局域网.主要用于连接他们自己的个人计算机、工作站以及服务器。由于各系(或部门)的工作性质不同,因此选用了不同的局域网.这些系(或部门)之间旱晚需相互交往,因而需要网桥。
第2,一个单位在地理位置上较分散,并且相距较远与其安装一个遍布所有地点的同轴电缆网.不如在各个地点建立一个局域网.并用网桥连接起来.这样费用可能会低一些。
第3,可能有必要将一个逻辑上单一的LAN分成多个局域网.以调节载荷。例如采用由网桥连接的多个局域网.每个局域网有一组工作站.并且有自己的文件服务器.因此大部分通信限于单个局域网内。减轻了主千网的负担。
第4,在有些情况下,从载荷上着单个局域网是毫无问题的,但是相距最远的机器之间的物理距离太远(比如超过802.3所规定的2.5km)。即使电缆铺设不成问题,们由于来回时延过长,网络仍将不能正常工作。唯一的办法越将局域网分段,在各段之间放置网桥。通过使川网桥,可以增加工作的总物理距离。
第5.可靠性问题。在一个单独的局域网中,一个有缺陷的节点不断地输出无)日的信息流会严重地破坏局域网的运行。网桥可以设置在局域网中的关键部位.就像建筑物内的防火门一样,防止因单个竹点失常而破坏整个系统。
第6.网桥有助于安全保密。人多数LAN接口都有一种规杂工作方式(promiscuous mode).在这种方式下.计算机接收所有的帧,包括那些并不是编址发送给它的帧。如果网中多处设置网桥并谨慎地拦截无须转发的重要信息.那么就可以把网络分隔以防止信息被窃。
三、兼容性问题
有人可能会天真地认为从一个802局城网到另一个802局域网的网侨非常简单.似实际上并非如此.在802.x到802.y的九种组合中,每一种都有它自己的特殊问题要解决。在讨论这些特殊问题之前,先来看一看这些网桥共同面临的一般性问题。
首先,各种局域网采用了不同的帧格式。这种不兼容性并不是由技术上的原因造成的.而仅仅是由于支持三种标准的公司(Xerox, GM和IBM).没有一家愿意改变自己所支持的标准。其结果是:在不同的局域网间复制帧要重排格式,这需要占用CPU时间,重新计算校验和.而且还有可能产生因网桥存储错误而造成的无法检测的错误。
第二个问题是互联的局域网并非必须按相同的数据传输速率运行。当快速的局域网向慢速的局域网发送一长串连续帧时,网桥处理帧的速度要比顿进入的速度慢。网桥必须用缓冲区存储来不及处理的顿,同时还得提防耗尽存储器。即使是10Mb/s的802.4到10Mb/s的802.3的网桥,在某种程度上也存在这样的问题。因为802.3的部分带宽耗费于冲突。802.3实际上并不是真的10Mb/s,而802.4 (几乎)确实为10Mb/s。
与网桥瓶颈问题相关的一个细微而重要的问题是其上各层的计时器值。假如802.4局域网上的网络层想发送一段很一长的报文(帧序列)。在发出最后一帕之后,它开启一个计时器,等待确认。如果此报文必须通过网桥转到慢速的802.5网络.那么在最后一顿被转发到低速局域网之前,计时器就有可能时间到。网络层可能会以为帧丢失而重新发送招个报文。几次传送失败后,网络层就会放弃传输并告诉传输层目的站点己经关机。
第三,在所有的问题中,可能最为严重的问题是三种802 LAN有不同的最大帧长度。对于802.3.最大帧长度取决于配置参数,但对标准的10M/bs系统城大有效载荷为1500字节。802.4的最大帧长度固定为8191字节。802.5没有上限,只要站点的传输时间不超过令牌持有时间。如果令牌时间缺省为1Oms.则最人帧一长度为5000字一协。一个显而易见的问题出现了:当必须把一个长顿转发给不能接收长帧的局域网时.将会怎么样?在本层中不考虑把顿分成小段。所有的协议都假定帧要么到达要么没有到达,没有条款规定把更小的单位重组成帧。这井不是说不能设计这样的协议.可以设计并己有这种协议,只是802不提供这种功能。这个问题基本上无法解决.必须丢弃因太长而无法转发的帧。其透明程度也就这样了。
由于各种802 LAN的特殊性,如:802.4帧带有优先权位、802.5帧字节中有A和C位等,九种网桥都有其特殊的问题.见下表:
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)算法。
例如.有一个目的地不明的帧F.每个网桥按照处理目的地不明帧的规则进行扩散,假设在此例中的网桥1看见目的地不明的F,将其复制后产生F1紧接着,网桥2看见目的地不明的F1,将其复制后产生F2;类似的,网桥1又产生F3等形成循环。
生成树网桥
解决上而所说的无限循环问题的方法是让网桥扣互通信,并用一棵到达句个LAN的生成树覆盖实际的拓扑结构。使用生成树,可以确保任两个LAN之间只有唯一一条路径。一旦网桥商定好生成树,LAN间的所有传送都遵从此生成树。由于从行个源到句个目的地只有唯一的路径,故不可能再有循环。
为了建造生成树,首先必须选出一个网桥作为生成树的根。实现的方法是每个网桥广播其序列号(该序列号由厂家设置并保证全球唯一).选序列号最小的网桥作为根。接着,按根到每个网桥的最短路径来构造生成树。如果某个网桥或LAN故障.则重新计算。网桥通过BIPDU(Dridge Protocol Data Unit)互相通信,在网桥做出配置自己的决定前.每个网桥和气个端口需要下列配置数据:
网桥:网桥ID(唯一的标识)
端口:端口ID(唯一的标识,端口相对优先权各端口的花费(高带宽=低花费)
配置好各个网桥后,网桥将根据配置参数自动确定生成树,这一过程有三个阶段:
1、选择根网桥
具有址小网桥ID的网桥被选作根网桥。网桥ID应为唯一的,们若两个网桥具有相同的址小ID,则MAC地址小的网桥被选作根。
2.在其它所有网桥上选择根端口
除根网桥外的各个网桥需要选一个根端口.这应该是最适合与根网桥通信的端口。通过计算各个端口到根网桥的花费,取最小者作为根端口。
3、选择每个LAN的“指定(designated)网桥”和“指定端口”
如果只有一个网桥连到某LAN.它必然是该LAN的指定网桥,如果多于一个.则到根网桥花费最小的被选为该LAN的指定网桥。指定端口连接指定网桥和相应的LAN(如果这样的端目多于一个。则低优先权的被选)。
一个端口必须为下列之一:
1、根端口
2、某LAN的指定端口
3、阻塞端口
当一个网桥加电后,它假定自己是根网桥,发送出一个CBPDU(Configuration BridgeProtocol Data Unit),告知它认为的根网桥ID。一个网桥收到一个根网桥ID小于其所知ID的CBPDU,它将更新自己的表.如果该顿从根端口(上传)到达.则向所有指定端口(下传)分发。当一个网桥收到一个根网桥ID大于其所知ID的CBPDC.该信息被丢弃.如果该顿从指定端口到达.则回送一个帧告知真实根网桥的较低ID.
当有意地或由于线路故障引起网络重新配置,上述过程将重复。产生一个新的生成树。
2、源路山选择网桥
透明网桥的优点是易于安装,只需插进电缆即大功告成。但是从另一方面来说,这种网桥并没有最佳地利用带宽,因为它们仅仅用到了拓扑结构的一个子集(生成树)。这两个(或其他) 因素的相对重要性导致了802委员会内部的分裂。支持CSMA/CD和令牌总线的人选择了透明网桥,而令牌环的支持者则偏爱一种称为源路山选择(source routing)的网桥(受到IBM的鼓励)。
源路由选择的核心思想是假定每个顿的发送者都知道接收者是否在同一LAN上。当发送一帧到另外的LAN时,源机器将目的地址的高位设置成1作为标记。另外,它还在帧头加进此帧应走的实际路径。
源路由选择网桥只关心那些目的地址高位为1的帧,当见到这样的帧时,它扫描帧头中的路由,寻找发来此帧的那个LAN的编号。如果发来此帧的那个LAN编号后跟的是本网桥的编号,则将此帧转发到路由表中自己后面的那个LAN。如果该LAN编号后跟的不是本网桥,则不转发此帧。这一法有3种可能的具体实现:软件、硬件、混合。这三种具体实现的价格和性能各不相同。第一种没有接口硬件开销,但需要速度很快的CPU处理所有到来的帧。最后一种实现需要特殊的VISI芯片,该芯片分担了网桥的许多工作,因此,网桥可以采用速度较馒的CPU.或者可以连接更多的LAN.
源路由选择的前提是互联网中的每台机器都知道所有其他机器的最佳路径。如何得到这些路由是源路由选择算法的重要部分。获取路由算法的基本思想是:如果不知道目的地地址的位置。源机器就发布一广播帧,询问它在哪里。每个网桥都转发该查找帧(discovery frame),这样该顿就可到达互联网的每一个LAN.当答复回来时,途经的网桥将它们自己的标识记录在答复帧中,于是,广一播帧的发送者就可以得到确切的路由,并可从中选取最佳路由。
虽然此算法可以找到最佳路由(它找到了所有的路由》.但同时也而临着帧爆炸的问题。透明网桥也会发生有点类似的状况,但是没有这么严重。其扩散是按生成树进行.所以传送的总帧数是网络大小的线性函数,而不象源路山选择是指数函数。一旦主机找到至某日的地的一条路由,它就将其存入到高速缓冲器之中,无需再作查找。虽然这种方法人大遏制了帧爆炸,但它给所有的主机增加了事务性负担,而且整个算法肯定是不透明的。
3、两种网桥的比较
特点 | 透明网桥 | 源路山选择网桥 | 注解 |
连接方式 | 无连接 | 而向连接 |
|
透明性 | 完全透明 | 不透明 | 透明网桥对主机来说是完全不可见 的,而且它与所有现在的802产品完全兼容。 源路由选择网桥既不透明又不兼容。如果要用源路山选择网桥,主机必须知道桥接模式,必须主动地参与工作。 |
配置方式 | 自动 | 手工 |
|
路由 | 次优化 | 优化 | 源路由选择网侨的几个不多的优点之一是:从理论上讲,它可使用最佳路由.而透明网桥则只限于生成树,另外.源路由选择网桥还可以很好地利用网间的并行网桥来分散载荷。不过在实际中.网桥能否利用这些理论上的优点是令人怀疑的。 |
定位 | 逆向学习 | 发现顿 | 逆向学习的缺点是:网桥必须一直等到碰巧有一特别的械到来,才能知道目的地在何处。查找帧的缺点是:在有并行网桥的人型互联网中,会发生指数级的帧爆炸。 |
失效处理 | 由网桥处理 | 由主机处理 |
|
复杂性 | 在网侨中 | 在主机中 | 由于主机数量通常比网桥大一两个数量级,因此,最好把额外的开销和复杂性放到少量的完全中而不是全部的主机中。 |
透明网桥一般用于连接以太网段,而源路由选择网桥则一般用于连接令牌环网段。
五、远程网桥
网桥有时也被用来连接两个或多个相距较远的LAN.比如.某个公司分布在多个城市中.该公司在每个城市中均有一个本地的LAN,最理想的情况就是所有的LAN均连接起来,整个系统就像一个人型的LAN一样。
该目标可通过下述方法实现:每个LAN中均设置一个网桥.并且用点到点的连接(比如租用电话公司的电话线)将它们两个两个地连接起来。点到点连线可采用各种不同的协议。办法之一就是选用某种标准的点到点数据链路协议,将完整的MAC帧加到有效载荷中。如果所有的LAN均相同,这种办法的效果最好,它的唯一问题就是必须将顿送到正确的LAN中。另一种办法是在源网桥中去掉MAC的头部和尾部,并把剩下的部分加到点到点协议的有效载荷中,然后在目的网桥中产生新的头部和尾部。它的缺点是到达目的主机的校验和并非是源主机所计算的校骏和,因此网桥存储器中某位损坏所产生的错误可能不会被检侧到。
总结:
网桥:转换网桥(透明网桥(生成树网桥)、源路由选择网桥).远程网桥。
网桥用来连接两个或多个相同或不同的LAN,
网桥是数据链路层的设备。
网桥的工作原理是,收到一个帧后,查看其目的MAC地址和源MAC地址:
1、如果源LAN和目的LAN相同,则丢弃该帧。
2、如果源LAN和目的LAN不同,则查找地址表,转发该帧。
3、如果目的LAN未知,则进行扩散。
网桥的地址表是通过“逆向学习法”学习到的。
在转发时,若两个LAN不同,则要进行帧格式的转换,若速率不同,则要进行缓存。
为避免数据帧在有回路的网络中无限循环,网桥采用了生成树协议。