什么是网桥?
网桥工作在数据链路层,将两个LAN连起来,根据MAC地址来转发帧, 可以看作一个低层的路由器(路由器工作在网络层,根据网络地址如IP地址进行转发)。
本文引用地址:http://www.amcfsurvey.com/article/155531.htm
远程网桥通过一个通常较慢的链路(如电话线)连接两个远程LAN,对本地网桥而言,性能比较重要, 而对远程网桥而言,在长距离上可正常运行是更重要的。
网桥与路由器的比较
网桥并不了解其转发帧中高层协议的信息,这使它可以同时以同种凡是处理IP、IPX等协议, 它还提供了将无路由协议的网络(如NetBEUI)分段的功能。
由于路由器处理网络层的数据,因此它们更容易互连不同的数据链路层,如令牌环网段和以太网段。 网桥通常比路由器难控制。象IP等协议有复杂的路由协议,使网管易于管理路由; IP等协议还提供了较多的网络如何分段的信息(即使其地址也提供了此类信息)。 而网桥则只用MAC地址和物理拓扑进行工作。因此网桥一般适于小型较简单的网络
二、使用原因
许多单位都有多个局域网,并且希望能够将它们连接起来。之所以一个单位有多个局域网,有以下6个原因:
首先,许多大学的系或公司的部门都有各自的局域网,主要用于连接他们自己的个人计算机、工作站以及服务器。 由于各系(或部门)的工作性质不同,因此选用了不同的局域网,这些系(或部门)之间早晚需相互交往,因而需要网桥。
其次,一个单位在地理位置上较分散,并且相距较远,与其安装一个遍布所有地点的同轴电缆网, 不如在各个地点建立一个局域网,并用网桥和红外链路连接起来,这样费用可能会低一些。
第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没有上限,只要站点的传输时间不超过令牌持有时间。如果令牌时间缺省为10ms, 则最大帧长度为5000字节。一个显而易见的问题出现了:当必须把一个长帧转发给不能接收长帧的局域网时,将会怎么样? 在本层中不考虑把帧分成小段。所有的协议都假定帧要么到达要么没有到达,没有条款规定把更小的单位重组成帧。 这并不是说不能设计这样的协议,可以设计并已有这种协议,只是802不提供这种功能。这个问题基本上无法解决, 必须丢弃因太长而无法转发的帧。其透明程度也就这样了。
由于各种802 LAN的特殊性,如:802.4帧带有优先权位、802.5帧字节中有A和C位等,九种网桥都有其特殊的问题,见下表:
目的LAN
802.3(CSMA/CD 802.4(令牌总线) 802.5(令牌环)
源LAN 802.3 1,4 1,2,4,8
802.4 1,5,8,9,10 9 1,2,3,8,9,10
802.5 1,2,5,6,7,10 1,2,3,6,7 6,7
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)算法。
评论