网桥

1.什么是网桥[1]

网桥是一种在链路层实现申继,常用于连接两个或更多个局域网的网络互联设备。网桥像一个“聪明”的中继器。中继器从一个网络电缆里接收信号,放大它们,将其送人下一个电缆。相比较而言,网桥对从关卡上传下来的信息更敏锐一些。网桥是一种对帧进行转发的技术,根据MAC分区块,可隔离碰撞。网桥将网络的多个网段在数据链路层连接起来。

网桥将两个相似的网络连接起来,并对网络数据的流通进行管理。它工作于数据链路层,不但能扩展网络的距离或范围,而且可提高网络的性能、可靠性和安全性。如图1所示,网络1和网络2通过网桥连接后,网桥接收网络1发送的数据包,检查数据包中的地址,如果地址属于网络l,它就将其放弃;相反,如果是网络2的地址,它就继续发送给网络2。这样可利用网桥隔离信息,将网络划分成多个网段,隔离出安全网段,防止其他网段内的用户非法访问。由于网络的分段,各网段相对独立,一个网段的故障不会影响到另一个网段的运行。

Image:网桥的工作过程.jpg

图1网桥的工作过程

网桥可以是专门硬件设备,也可以由计算机加装的网桥软件来实现,这时计算机上会安装多个网络适配器(网卡)。

2.网桥的功能[1]

网桥的功能在延长网络跨度上类似于中继器,然而它能提供智能化连接服务,即根据帧的终点地址处于哪一网段来进行转发和滤除。网桥对站点所处网段的了解是靠“自学习”实现的。

当使用网桥连接两个网段时,网桥对来自网段1的MAC帧,首先要检查其终点地址。如果该帧是发往网段1上某一站的,网桥则不将帧转发到网段2,而将其滤除;如果该帧是发往网段2上某一站的,网桥则将它转发到网段2。这表明,如果网段1和网段2上各有一对用户在本网段上同时进行通信,显然是可以实现的。因为网桥起到了隔离作用。可以看出,网桥在一定条件下具有增加网络带宽的作用。

网桥的存储和转发功能与中继器相比有优点也有缺点,其优点如下。

(1)使用网桥进行互连克服了物理限制,这意味着网络内的数据站总数和网段数很容易扩充。

(2)网桥纳入存储和转发功能可使其适应于连接使用不同MAC协议的两个网络,因而构成一个不同网络混连在一起的混合网络环境。

(3)网桥的中继功能仅仅依赖于MAC帧的地址,因而对高层协议完全透明。

(4)网桥将一个较大的网络分成若干网段,有利于改善可靠性、可用性和安全性。

网桥的主要缺点是:由于网桥在执行转发前先接收帧并进行缓冲,与中继器相比会引入更多时延。由于网桥不提供流控功能,因此在流量较大时有可能使其过载,从而造成帧的丢失。

3.网桥的分类[1]

所有网桥都是在数据链路层提供连接服务,根据其路由算法不同,可将网桥分为透明网桥和源路由选择网桥。

1.透明网桥

所谓“透明网桥”是指,它对任何数据站都完全透明,用户感觉不到它的存在,也无法对网桥寻址。所有的路由判决全部由网桥自己确定。当网桥连入网络时,它能自动初始化并对自身进行配置。用户不需要改动硬件和软件,无须设置地址开关,无须装入路由表或参数。只需插入电缆就可以,现有的局域网的运行完全不受网桥的任何影响。

2.源路由选择网桥源路

由选择网桥规定,发送帧的源工作站负责路由选择。为此,在每个工作站中都配置一张路由选择表,在表中为本站所能到达的工作站都建立一个表目,其中列出了由本站到达目的站沿途所有工作站和网桥的站址。由本站发往该目的站的所有帧,都将沿着这条路径传输。

源路由选择网桥能按用户要求寻找最佳路由,这对保密性很强的信息传输来说是很重要的。但网络工作站的实现较复杂,因为要在工作站中设置路由选择表,采用某种算法的路由选择程序,特别是当互联网络规模很大时,广播帧的数目会剧增,引起拥塞。因此,市场上透明网桥居多。

4.网桥的常用场合[2]

网桥工作在数据链路层,进行相似的网络问的帧的转发,实现MAC子层的连接。遵循IEEE802标准的局域网对网桥是透明的,它不需要对连接在这些网络上的站点的通信软件进行修改。

网桥的常用场合非常多,只要是相同网络或两个网络仅在物理层和数据链路层实现上有差别,都可以通过网桥来百连。不同的场合,网桥执行的协议不同,例如:

(1)以太网与以太网用网桥互连,因为互连的是相同网络,此时的网桥非常简单,只执行一种协议。

(2)以太网与FDDI网络之间的互连(不同网络的互连),如图2所示。此时的网桥执行两种协议,一种是以太网协议,一种是FDDI协议。实现以太网数据帧与FDDI数据帧之间的相互转换。

Image:网桥应用实例1.jpg

图2网桥的应用实例1

(3)以太网一令牌环网之间的互连,网桥既执行以太网协议,又执行令牌环网协议。

(4)以太网一ATM网络之间的互连,如图3所示,此时的网桥执行以太网协议和ATM协议,实现以太网数据帧到ATM信元之间的转换。

Image:网桥的应用实例2.jpg

图3网桥的应用实例2

(5)以太网与无线网之间的互连等。

5.网桥的特点[2]

网桥具有以下特点:

(1)地址过滤:利用网桥互连的网络应当可以容纳不同数据链路层的编址格式(如各种MAC地址),因此,网桥应能够识别各种地址,并根据数据帧的宿地址,有选择地让数据帧穿越网桥。实际上,目前很多网桥产品都添加了各种过滤功能,允许用户进行设置,以滤去不希望被转发的帧。例如:单向地禁止对某个子网的访问,以确保该子网的安全性。

(2)帧限制:网桥不对帧进行分段,只进行必要的帧格式转换,以适应不同的子网。超过信宿结点所在子网帧长限制的帧将被网桥丢弃。因此,当采用网桥支持不同LAN之间的互连时,更高层的协议应当保证被传送的信息长度的一致性。帧限制的另一方面是为了维护各个子网的独立性,不允许控制帧和要求应答的信息帧穿越网桥。

(3)监控功能:网桥作为单个子网的一部分,参与对子网的监控和对信息帧的校验。网桥区别于转发器的关键之一是它具有“存储一转发”的能力。“存储”有利于网桥对被转发的帧进行差错校验,网桥不应将有差错的帧转发到其他子网上。同一网络内的处理则根据该子网的约定。网桥的工作过程包括接收帧、检查帧和转发帧三个部分。

(4)缓冲能力:网桥应当具有一定的缓冲(存储一转发)能力,以解决穿越网桥的信息量l瞄时超载的问题,即:网桥应当可以解决数据传输不匹配的子网之间的互连。事实上即使是速率相同的网络进行互连,这种缓冲能力也是必需的。

(5)透明性:网桥的引入不应影响原有子网的通信能力,不应产生信宿结点无法检测的差错。

一个企业局域网,为什么不简单地采用一个大的局域网,而要分成多个子网,再用网桥等互连设备进行网络互连呢?主要基于以下几方面的因素:

(1)无序性:一个组织内部有许多不同的部门,由于各部门的工作性质不同,因此,可能选用了不同的局域网。当这些部门的局域网之间需要相互连接时,就可能需要网桥。

(2)可靠性:通过使用网桥,网络可以被分成一些自适应的实体,可以对网桥进行编程以决定接收到的内容是否转发。

(3)性能考虑:一般来说,LAN或MAN的性能将随着连在其上的设备数量或介质长度的增加而降低。将这些没备分别集中起来,使得在LAN内部的通信大大超过跨越LAN间的通信,这时采用多个更小的LAN往往可以获得更好的性能。

(4)地理考虑:一个组织在地理位置上较分散,无法将它们连在同一个局域网内,唯一的办法是将局域网分段,在各段之间放置网桥。通过使用网桥,可以增加工作的物理距离。

(5)安全考虑:建立多个LAN可以提供通信的安全性。可以把那些不同类型的具有不同安全性要求的信息分别在不同的分隔的物理介质上传输。同时,具有不同安全级别的不同用户必须通过集中控制和监控机制来进行通信。

6.网桥的路径选择[2]

如前所述,网桥直接连接两个或者多个子网,一方面,作为这些子网上的结点,参与子网的运行,另一方面根据数据帧中的地址进行本网或者跨网的帧转发。帧的转发过程实质上也是帧的路径选择过程。经过路由选择后网桥将帧发往适当的端口。目前常用的路径选择方法有两种,对应为两种类型的网桥:透明桥和指定路径桥。

1.透明桥

透明桥也称学习桥或自适应桥,内部动态地维护地址映射表,根据该地址映射表,网桥决定收到的帧的转发。透明桥适合于总线型(如:以太网、令牌总线)或者树状的网络互连结构。

透明桥的原理十分简单,当网桥收到每一个帧时,都执行地址表扩充和帧转发两项工作。地址表扩充是指从帧中取出信源结点地址,查地址表,如果没有,将该地址添加到地址表中。从而使网桥“了解”哪些结点来自于哪个子网(属于哪个子网网段)。帧的转发过程大致如下:

(1)如果帧中的信源结点与信宿结点是在同一个子网中,网桥则丢弃该帧,不作转发;

(2)否则,在地址表中查找信宿结点地址,如果表中有对应的地址,则网桥就将帧转发到该地址对应的子网端口;

(3)如果地址表中没有信宿结点地址,则表示信宿结点地址未知,网桥就将帧转发到(或称广播到)其他所有与本网桥连接的子网中;

(4)当收到信宿结点给信源结点的“应答帧”后,网桥将该信宿结点地址添加到地址表中。

如图4所示,有一网桥连接了4个子网,假设结点A与结点H通信,当网桥接收到结点A的数据帧后,从数据帧中取出信源地址(00123456),查地址映射表,地址表中已有,属于子网l;再取出信宿地址(50873EA6),查地址映射表,表中已有,属于子网4,则网桥仅将数据帧转发到子网4对应的端口。

Image:透明桥帧的转发过程举例l.jpg

图4透明桥帧的转发过程举例l

地址映射表MAC地址端门00123456子网150873EA6了网410173856子网2如图5所示,假设结点A与结点D通信,当网桥接收到结点A的数据帧后,从数据帧中取出信源地址(00123456),查地址映射表,地址表中已有.属于子网1;再取出信宿地址(1017385A),查地址映射表,表中没有,则网桥就将数据帧转发到它所连接的所有子网对应

的端口(数据帧广播),这样子网l、2、3、4上的所有结点都能收到该数据帧+除结点D以外的结点都丢弃该帧,结点D接收该帧,并给予确认。当网桥收到结点D给结点—\的‘‘应答帧”后,将结点L)的MAC地址添加到地址表中,并把“应答帧,,转发到结点A所在的子网端口。

Image:透明桥帧的转发过程举例2.jpg

图5透明桥帧的转发过程举例2
2.“广播风暴”产生

当网桥收到地址映射表中没有的地址时,它就向其端口所连接的所有网段转发数据帧,进行数据帧广播。当网络中结点很多,通过许多网桥进行互联时,有许多信宿地址不明的帧被广播到所有结点,结点不停地忙于接收这些数据帧,使得结点不能正常地进行数据发送,这样极易产生所谓的“广播风暴”,使得网络性能下降。因此,在设计网络时要避免一个大的网络全部由网桥互联而成,那样会容易产生“广播风暴”。

在设计网桥时有两个重要因素要加以考虑:

(1)地址映射表的大小

网桥的地址映射表应该适中,太大会影响查询速度;太小存储的地址太少,会产生较多的数据帧“广播”,影响整个网络的性能。

(2)地址表的维护和构造方法

由于网桥的地址映射表的大小是有限的,地址表中保留哪些地址,也会影响到网络的性能。一般有两种方法,一种是“最近使用的保留”,保留最近使用的那些地址;另一种是“根据使用频率保留”,根据地址的使用频率,保留使用频率高的那些地址。地址表的维护通常采用及时刷新的方法,即将新加入的地址放在表的首部;如果该地址已在表中,删除原有的地址信息;在表中地址增加的过程中,超出表体积的后部地址自动丢弃。

3.支撑树(SpanTree)

透明桥得以实现的关键是假定了任意两个局域网之间只有一条惟一的通路。为了提高可靠性,有时人们在局域网之间设置并行的两个或多个网桥(即冗余网桥),由多个网桥构成的局域网,如果形成环路,会出现数据帧在网络中循环传输的现象。

例如,当用两个网桥B1、B2连接两个局域网LANl、LAN2时(如图6所示),如果结点A希望发送帧给结点B,由于最初结点B并未记录在网桥B1和网桥B2的地址表中,根据透明桥的约定,该原始帧将由网桥B1和网桥B2转发到局域网LAN2上,于是出现了问题。首先是结点B会同时收到网桥B1和B2转发的2个帧,其次是网桥B1和网桥B2转发的数据帧在局域网LAN2kY.分别被网桥B2和网桥B1收到,于是两个桥在记载了结点A属于局域网1之后,又会认为结点A属于局域网2。结果不仅该帧在两个局域网上循环地广播,而结点B的应答信息(假设高层协议要求结点B予以应答)可能无法转发到局域网1,或者也在两个局域网中循环传输。

Image:冗余网桥引起的循环.jpg

图6冗余网桥引起的循环

解决数据帧在网络中循环的方法是构造基于网桥的“支撑树”(SpanTree,也称“生成树”)。构造支撑树的基本思想是首先选择网络中的某个网桥作为支撑树的根,原理上该网桥可以任意指定,但实际中通常选择位于相对中心的某个网桥。由于多个子网的互联使得至少需要一个或多个网桥,所以这种选择是可行的。再从与该支撑树(最初只有支撑树的根)相邻(指可以通过某个子网直接访问)的网桥集合中选择一个加入支撑树,选择的条件是加入该网桥不会形成环路;这种选择的过程继续进行,直至支撑树已经可以互联所有的子网。剩下的网桥留作备用。构造支撑树的过程发生在新的网桥加入网络时,或者支撑树中的某个网桥发生故障的时候。

图7示意了构造支撑树的过程。图7(a)中的子网A至C分别用粗线表示,网桥编号为l-5,即用5个网桥互联7个子网,显然在整个网络中出现了多个环路。构造支撑树的过程描述如下:

Image:支撑树的构造过程.jpg

图7支撑树的构造过程

(1)首先任意选择一个网桥作为根,此处假设选择网桥2作为根,于是支撑树集合为|2|;

(2)根据算法及设定的条件,从与2相邻的网桥(1,3,4)中选择一个,假设为l,即支撑树集合成为{2,1};

(3)再在与支撑树{2,1}相邻的网桥中进行选择,与2相邻的有(3,4),与]相邻的有(3),由于网桥3会形成环路,不能加入支撑树中,则形成的支撑树为{2,1,4};

(4)再在与支撑树{2,1,4}相邻的网桥中进行选择,则形成的支撑树为{2,1,4,5}。对应的无环网络如图7(b)所示,网桥3为冗余网桥,以虚线连接。

透明桥具有很高的效率,特别适合总线型或树形的网络互联结构,因此被IEEE的802.3和802.4工作组推荐采用,也是目前网桥中应用最为广泛的技术。

4.指定路径桥

指定路径桥也称源路径选择桥,这种桥的原理来源于IBM的令牌环。由发送的源结点判断所发送的帧是送往本地子网,还是送给其他网络,选择帧传输的确切路径,并把它放在要传输的帧中。

如果发送的源结点知道所发送的帧传输的确切路径,可以直接传输。如果源结点不知道路径,则发送一个具有测试功能的广播帧。接到广播帧的网桥检查广播帧中的nI字段,如果本网桥号已经在RI中,不做任何处理;否则,向RI中增加段号,并将该帧转发到与之连接且网号未在帧中出现的其他子网。当信宿结点接到该测试帧后,向源发结点返回一个应答帧。应答帧中包含了所需的路径信息,并沿着测试帧途径的路径反向传递。由于广播的缘故,源发结点可能会收到多个应答帧,通常是通过某种算法从中选择一条(最佳)路径。

指定路径桥可以获得最佳的路径,其缺点是测试帧的发送增加了网络的信息流量,可能形成“广播风暴”,甚至可能导致网络拥塞现象。

7.网桥的应用——以太网交换机[2]

利用网桥互联子网的应用十分广泛,例如:一个企业的各个部门可能根据不同的需要形成各种局域网络,当部门之间希望互联时,网桥是较佳的互联部件。同样,由于网桥具有分隔子网的功能,如果一个企业拥有很多的计算机和服务器,而仅组成一个共享网络,则对网络的带宽要求很高,并且难以实现。采用网桥来划分子网,使得大部分访问集中在子网内部,从而可以获得较高的响应速度。目前,组建局域网常用的以太网交换机,就是一种简化的网桥,用于以太网之间的互联。以太网交换机具有如下特点:

(1)提供一定的存储能力。为避免转发帧在输出端口的冲突,交换机往往配置一定的缓存,用于缓存输入或待输出的帧;

(2)交换机具有少量的地址表,以提高交换机的查表速度;

(3)交换机处理相同的帧格式,交换速度快。一般的网桥,由于互联的是两个或两个以上不同类型的网络,在数据帧转发时,需要进行数据帧的协议转换,这种协议转换是通过软件实现的,因此网桥的帧转发的速度比较慢。而交换机互联的是相同类型的网络,在数据帧转发时无需进行帧格式转换,大大提高了交换机的数据交换速度;

(4)交换机具有分割子网的功能,与一般的网桥一样,交换机可以用来进行子网分割;

(5)交换机的每个端口独享指定的带宽;如10M/100M/1000M的交换机,每个端口可独享10Mb/s/100Mb/s/1000Mb/s的网络带宽;

(6)支持多个独立的数据流,具有较高的吞吐量;一般的网桥同一时刻只有一对端口通信,而交换机同一时刻可有多对端口通信;

(7)交换机内部采用硬件交换,交换速度快。