Chinaunix首页 | 论坛 | 博客
  • 博客访问: 396927
  • 博文数量: 115
  • 博客积分: 2501
  • 博客等级: 少校
  • 技术积分: 1009
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-23 17:05
文章分类

全部博文(115)

文章存档

2011年(2)

2010年(86)

2009年(27)

我的朋友

分类: 系统运维

2010-11-08 20:17:32

bridge

网桥

在通信网络中,网桥是一种以同种协议连接两个局域网的产品。可以把它看成是一个决定发送的包是到自己的局域网还是到另一个局域网的设备。网桥检查局域网上所有的包,在同一个局域网中传送它,如果不是同一个网中的,就将它发到别的网上。

在使用网桥的网络中,计算机或结点的地址与地点没有特定的联系,因此,数据将被广播到网络上,仅由相关的结点接收,网桥支持一张学习表,通过更新这张表在下一次网络传输的时候就可以直接发送到正确的位置。

使用网桥的网络一般与多个局域网相连,因为要广播消息,所以对网络造成了很大的通信量,也更是因为这个原因,在路由网中(如在Internet中),消息仅向比较确定的方向发送,而不是向所有可能的方向发送。网桥工作在数据链路层,将一个网络的数据沿通信线路复制到另一个网络中去。

网桥功能简介

以太网是共享介质的,物理层接收帧,如果地址和自己的地址一致(或者是广播消息),就留下;反之则转发。因此当主机的数量增加时,网络就会变得十分嘈杂,传送效率明显降低。而网桥是工作在数据链路层的设备,它将一个大型的以太网分为几个小网段,可以取得减少通信量的作用。我们可以把100台主机分为四段,如下图所示:从左到右,从上到下分别是网段1,网段2,网段3和网段4

网桥结构示意图

刚开始的时候,网桥不知道网络上的主机在什么地方,因此它只有把收到的帧向所有网段广播。这里我们要注意,当网桥接收到第一个帧时它就知道了发送此帧的主机的地址,因为这个地址就包括在帧中。只有一个地址,网桥只有向其它网段广播这个帧(当然不向包括源主机的网段广播了)。我们假设计算机1向计算机76发送一个帧,网桥在接收到这个帧之后就知道计算机1在第1段了,网桥现在还不知道计算机76在什么地方,于是向网段2-4发送此帧。如果计算机76又向计算机1发送消息时,网桥就知道计算机1在第1段,于是不再向网段2和3发送消息。而且此时因为计算机76发送的帧中也包括计算机76所在的网段,所以网桥已经知道了计算机76在网段4,最终网桥就知道了所有的计算机所处的位置。

那么如果一台计算机换位置了怎么办呢?如计算机2从网段1到了网段3,在计算机2没有发送消息之前,谁也不可能和它通信,因为网桥觉得它还在网段1呢,于是消息都发到网段1,计算机2当然什么也收不到,但是当计算机2发送消息后,网桥查询自己的学习表,知道有台计算机出了问题,于是它更新它学习表的相应表项,这时计算机2就可以和其它计算机通信了。

网桥的种类

所有网桥都是在数据链路层提供连接服务,要所其连接LAN的类型,网桥有透明网桥、转换网桥、封装网桥、源路由选择网桥等4种类型,下面分别简要说明:

  1. 透明网桥
    所谓“透明网桥”是指,它对任何数据站都完全透明,用户感觉不到它的存在,也无法对网桥寻址。所有的路由判决全部由网桥自己确定。当网桥连入网络时,它能自动初始化并对自身进行配置。图(a)是网桥的原理示意图,图(b)是网桥连接LAN时转发数据其(FDB)的内容。LAN网段与网桥相连的口称为网桥端口。基本网桥只有两个口, 而多口网桥可有多个连接LAN的端口。每个网桥端口都是由与特定LAN类型相应的MAC集成电路芯片以及相关端口管理软件组成。端口管理软件在加电时负责对该芯片进行初始化,并对缓冲器进行管理。一般情况下,可供使用的存储器在逻辑上分成若干固定尺寸和单位,称为缓冲器。缓冲管理涉及将空闲缓冲器指针传递到集成电路芯片,以便准备好接收帧。同样也将帧缓冲器批针传递给芯片,经便转发帧。

    图一     (a)

    图二  (b)

    所有网桥都以不加选择的方式来操作,这意味着网桥在其每个端口都将外入的帧接收下来,并进行缓冲。当帧由MAC 芯片在一个端口接收并置入分配的缓冲器时,端口管理软件便使芯片准备好接收新帧,随后便将包括接收帧的缓冲器的指针传递给网桥协议实体进行处理。如果网桥在其端口同时到达2个或多个帧,并需要将这些帧从同一端口转发,端口管理软件和网桥协议实体软件间的缓冲器指针的传递则通过一组队列实现。网桥的转发和滤除可通过图(b)来说明。图中连接LAN1和LAN2的网桥1具有两个端口,连接LAN2 和 LAN3的网桥也有两个端口。 两个网桥内的转发数据基标明了从哪个端口转发可达到的站。当网桥收到一个帧时,便可通过查找转发数据基来确定是将帧滤除还是转发。由于网桥操作在数据链路层的MAC子层,通过对MAC帧中站地址的检查便可建立起这种转发数据基。根据MAC 帧地址建立转发数据基的过程称“自学习”过程。

  2. 转换网换
    转换网桥是透明网桥的一种特殊形式。它在物理层和数据链路层使用不同协议的LAN提供网络连接服务。图4示出了连接令牌环网和Ethernet的转换网桥。转换网桥通过处理与每种LAN类型相关的的信封来提供连接服务。转换网桥提供的处理由于令牌环和Ethernet信封类似而比较简单。但是,这两种LAN 的帧长不同,转换网桥又不能将长帧分段,所以在使用这种网桥时,所互连的LAN 所发送的帧长要能被两种LAN接受。

    图三  图4

    以图4为例,网桥使用LAN1(令牌环网)的物理层和数据链路层协议读取LAN1工作站发送的所有帧的终点地址。网桥对寻址到LAN1工作站的帧不予过问并进行滤除。网桥将发往LAN2工作站的帧加以接受,并使用LAN2所用的物理层和数据链路层协议将这些帧转发到LAN2。网桥对LAN2工作站发送的帧进行同样的处理。

  3. 封装网桥
    封装网桥通常用于连接FDDI骨干网。图5示出了这种连接结构, 封装网桥用来将4个Ethernet连到FDDI骨干网上。与转换网桥不同,封装网桥是将接收的帧置于FDDI骨干网使用的信封内,并将封装的帧转发到FDDI骨干网,进而传递到其它封装网桥,拆除信封,送到预定的工作站。  为解释其工作过程,假定LAN1上的工作站要将报文发往LAN3上的某一设备,其过程如下:

    图五   图5

    封装网桥1使用LAN1所用的物理层和数据链路层协议来读取LAN1上设备发送的所有帧的MAC终点地址;封装网桥1接受寻址到其它LAN上的帧,并将这些帧置于FDDI的信封内,将此信封发送到FDDI骨干网上;封装网桥1对寻址到LAN1上设备的帧全都滤除;封装网桥2接收所有帧,去掉信封,检查MAC帧地址,由于MAC 帧地址不在本地LAN2上,于是将这些帧滤除;封装网桥3接收所有帧,去掉信封,检查MAC帧地址,由于MAC 帧地址处于本地LAN3,封装网桥3便使用LAN3的物理层和数据链路层协议将帧发给LAN3 的预定设备;封装网桥4的操作与封装网桥2相同;封装网桥1将来自FDDI骨干网的帧从FDDI双环上撤离。

  4. 源路由选择网桥
    源路由选择网桥主要用于互连令牌环网, 但在理论上可用于连接任何类型的LAN。图6是使用路由选择网桥互连5个令牌环网的结构。源路由选择网桥与上述3种桥的一个基本区别是,源路由选择网桥要求信息源(不是网桥本身)提供传递帧到终点所需的路由信息。  使用源路由选择网桥时,网桥不需要保存转发数据基,它对帧实施转发和滤除的依据是帧信封内包括的数据。信源要想在发送数据时写入到达终点的路由,必须先通过“路由探询过程”来获得。路由探询可用几个方法来实现,其中一种将在下面说明。参看图6的结构,5个令牌环网由3个源路由选择网桥连接。假定LAN1站有报文向LAn5上的站发送。 LAN1上的站通过发送“探询”包来启动路径发现过程。探询包使用独一无二的信封,只有源路由选择网桥才能识别。每个源路由选择网桥一旦收到探询包,便打入接收该探询包的连接和自身的名字到路由选择信息字段。随后网桥便将包四处扩散到接收包的连接之外的所有连接上。因此,同一探询报文的多个拷贝可能出现在LAN上, 探询帧接收者也将收到多个拷贝,从源点到终点每一可能的通路便有一个拷贝。每个接收到的帧都包括由连接网桥名字构成的系列表,该系列表列出了从源到终点的可能路径。LAN5的接收者可能收到多个探询报文,于是根据最快最直接的原则选择一个路径,并向LAN1的发信者发回一个响应。该响应列出源和终点间的由中间桥和LAN连接组成的特定路径。

    图六   图6

    LAN1的信源发现此路径后,将其存储在存储器中,供其随后使用。这些报文包括在由源路由选择桥可以识别的不同类型的信封中。网桥接收到这种信封,只需对连接和网桥组成的表进行扫描才可获得转发信息。

路由器和网桥的区别

路由器在网络层提供连接服务,用路由器连接的网络可以使用在数据链路层和物理层完全不同的协议。由于路由器操作的OSI层次比网桥高,所以,路由器提供的服务更为完善。路由器可根据传输费用、转接时延、网络拥塞或信源和终点间的距离来选择最佳 路径。路由器的服务通常要由端用户设备明确地请求,它处理的仅仅是由其它端用户设备要求寻址的报文。路由器与网桥的另一个重要差别是,路由器了解整个网络,维持互连网络的拓扑,了解网络的状态,因而可使用最有效的路径发送包。

 
转自:
阅读(1088) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-11-09 16:36:00

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com