计算机网络3——数据链路层4 扩展的以太网

在许多情况下,我们希望把以太网的覆盖范围扩展。本节先讨论在物理层把以太网扩展,然后讨论在数据链路层把以太网扩展。这种扩展的以太网在网络层看来仍然是一个网络。

一、在物理层扩展以太网

1、介绍

以太网上的主机之间的距离不能太远(例如,10BASE-T以太网的两台主机之间的距离不超过200m),否则主机发送的信号经过铜线的传输就会衰减到使CSMA/CD协议无法正常工作。在过去广泛使用粗缆或细缆以太网时,常使用工作在物理层的转发器来扩展以太网的地理覆盖范围。那时,两个网段可用一个转发器连接起来。IEEE802.3标准还规定,任意两个站之间最多可以经过三个电缆网段。但随着双绞线以太网成为以太网的主流类型,扩展以太网的覆盖范围己很少使用转发器了。

2、使用

现在,扩展主机和集线器之间的距离的一种简单方法就是使用光纤(通常是一对光纤)和一对光纤调制解调器,如下图所示。
在这里插入图片描述
光纤调制解调器的作用就是进行电信号和光信号的转换。由于光纤带来的时延很小,并且带宽很宽,因此使用这种方法可以很容易地使主机和几公里以外的集线器相连接。

3、案例

如果使用多个集线器,就可以连接成覆盖更大范围的多级星形结构的以太网。例如,一个学院的三个系各有一个10BASE-T以太网(如(a)所示),可通过一个主干集线器把各系的以太网连接起来,成为一个更大的以太网(如图(b)所示)。
在这里插入图片描述
这样做可以有以下两个好处。第一,使这个学院不同系的以太网上的计算机能够进行跨系的通信。第二,扩大了以太网覆盖的地理范围。例如,在一个系的10BASE-T以太网中主机与集线器的最大距离是100m,因而两台主机之间的最大距离是200m。但在通过主干集线器相连接后,不同系的主机之间的距离就可扩展了,因为集线器之间的距离可以是100m(使用双绞线)或更远(如使用光纤)。

4、缺陷

  • 如(a)所示的例子,在三个系的以太网互连起来之前,每一个系的 10BASE-T以太网是一个独立的碰撞域(collision domain,又称为冲突域),即在任一时刻,在每一个碰撞域中只能有一个站在发送数据。每一个系的以太网的最大吞吐量是10Mbits,因此三个系总的最大吞吐量是30Mbits。在三个系的以太网通过集线器互连起来后就把三个碰撞域变成一个碰撞域(范围扩大到三个系),如图(b)所示,而这时的最大吞吐量仍然是一个系的吞吐量 10Mbit/s。这就是说,当某个系的两个站在通信时所传送的数据会通过所有的集线器进行转发,使得其他系的内部在这时都不能通信(一发送数据就会碰撞)。
  • 如果不同的系使用不同的以太网技术(如数据率不同),那么就不可能用集线器将它们互连起来。如果在上图中,一个系使用10Mbits的适配器,而另外两个系使用10/100 Mbits的适配器,那么用集线器连接起来后,大家都只能工作在10 Mbits 的速率。集线器基本上是个多端口(也称为接口)的转发器,它并不能把进行缓存。

二、在数据链路层扩展以太网

1、介绍

扩展以太网更常用的方法是在数据链路层进行的。最初人们使用的是网桥(bridge)

网桥对收到的帧根据其 MAC 帧的目的地址进行转发和过滤。当网桥收到一个帧时,并不是向所有的端口转发此帧,而是根据此帧的目的 MAC地址,查找网桥中的地址表,然后确定将该帧转发到哪一个端口,或者是把它丢弃(即过滤)。

1990 年问世的交换式集线器(switching hub),很快就淘汰了网桥。交换式集线器常称为以太网交换机(switch)或第二层交换机(L2 switch),强调这种交换机工作在数据链路层。

“交换机”并无准确的定义和明确的概念。著名网络专家Perlman 认为:“交换机”应当是一个市场名词,而交换机的出现的确使数据的转发更加快速了[PERL00]。本书也使用这个广泛被接受的名词–以太网交换机。下面简单地介绍以太网交换机的特点。

2、以太网交换机的特点

以太网交换机实质上就是一个多端口的网桥,通常都有十几个或更多的端口,和工作在物理层的转发器、集线器有很大的差别。以太网交换机的每个端口都直接与一个单台主机或另一个以太网交换机相连,并且一般都工作在全双工方式。以太网交换机还具有并行性,即能同时连通多对端口,使多对主机能同时通信(而网桥只能一次分析和转发一个帧)。

相互通信的主机都独占传输媒体,无碰撞地传输数据。换句话说,每一个端口和连接到端口的主机构成了一个碰撞域,具有N个端口的以太网交换机的碰撞域共有N个。

以太网交换机的端口还有存储器,能在输出端口繁忙时把到来的帧进行缓存。因此,如果连接在以太网交换机上的两台主机,同时向另一台主机发送帧,那么当这台主机的端口繁忙时,发送帧的这两台主机的端口会把收到的帧暂存一下,以后再发送出去。

以太网交换机是一种即插即用设备,其内部的帧交换表(又称为地址表)是通过自学习算法自动地逐渐建立起来的。实际上,这种交换表就是一个内容可寻址存储器CAM(Content Addressable Memory)。以太网交换机由于使用了专用的交换结构芯片,用硬件转发收到的帧,其转发速率要比使用软件转发的网桥快很多。

以太网交换机的性能远远超过普通的集线器,而且价格也不贵,这就使工作在物理层的集线器逐渐地退出了市场。

对于传统的10Mbits的共享式以太网,若共有10个用户,则每个用户占有的平均带宽只有1Mbits。若使用以太网交换机来连接这些主机,虽然在每个端口到主机的带宽还是10Mbits,但由于一个用户在通信时是独占而不是和其他网络用户共享传输媒体的带宽,因此对于拥有 10个端口的交换机的总容量则为100Mbits。这正是交换机的最大优点。

从共享总线以太网转到交换式以太网时,所有接入设备的软件和硬件、适配器等都不需要做任何改动。

以太网交换机一般都具有多种速率的端口,例如,可以具有10Mbits、100 Mbits和1Gbit/s的端口的各种组合,这就大大方便了各种不同情况的用户。

虽然许多以太网交换机对收到的帧采用存储转发方式进行转发,但也有一些交换机采用直通(cut-through)的交换方式。

直通交换不必把整个数据帧先缓存后再进行处理,而是在接收数据帧的同时就立即按数据帧的目的 MAC 地址决定该帧的转发端口,因而提高了帧的转发速度。如果在这种交换机的内部采用基于硬件的交叉矩阵,交换时延就非常小。

直通交换的一个缺点是它不检查差错就直接将帧转发出去,因此有可能也将一些无效帧转发给其他的站。在某些情况下,仍需要采用基于软件的存储转发方式进行交换,例如当需要进行线路速率匹配、协议转换或差错检测时。

现在有的厂商已生产出能支持两种交换方式的以太网交换机。以太网交换机的发展与建筑物结构化布线系统的普及应用密切相关。在结构化布线系统中,广泛地使用了以太网交换机。

4、以太网交换机的自学习功能

我们用一个简单例子来说明以太网交换机是怎样进行自学习的。假定在图 3-25中的以太网交换机有4个端口,各连接一台计算机,其MAC地址分别是 A,BC和D。交换表最重要的就是两个项目:目的MAC地址和转发端口。在一开始,以太网交换机里面的交换表是空的(如图(a)所示)。
在这里插入图片描述
假定 A先向 B发送一帧,从端口1进入到交换机。交换机收到帧后,先查找交换表。现在表中没有B的地址。于是,交换机把此的源地址A和端口1写入交换表中,并向除端口1以外的所有端口广播这个帧(从端口1收到的帧显然不应再从端口1转发出去)。

广播发送可以保证让B收到这个帧,而C和D在收到帧后,因目的地址不匹配将丢弃此帧。这一过程也称为过滤。

由于在交换表中写入了项目(A,1),因此以后不管从哪个端口收到帧,只要其目的地址是 A,就把收到的帧从端口1转发出去送交A。这样做的依据是:既然A发送的帧是从端口1进入交换机的,那么从端口1转发出的帧肯定到达A。

接下来假定B通过端口3向A发送一帧。交换机查找交换表,发现交换表中的MAC地址有 A,表明凡是发给A的帧(即目的地址为A的帧)都应从端口1转发。显然,现在应直接把收到的帧从端口1转发给A,而没有必要再广播收到的帧。交换表这时用源地址B写入一个项目(B,3),表明今后如有发送给B的帧,应从端口3转发。

经过一段时间后,只要主机C和D也向其他主机发送帧,以太网交换机中的交换表就会把转发到C或D应当经过的端口号(2或4)写入交换表中。这样,交换表中的项目就逐渐增多了,以后再转发帧时就可以直接从交换表中找到转发的端口,而不必使用发送广播帧的方法了。

考虑到有时可能要在交换机的端口更换主机,或者主机要更换其网络适配器,这就需要及时更改交换表中的项目。为此,当交换表中写入一个项目时就记下当时的时间,只要超过预先设定的时间(例如300秒),该项目就自动被删除。用这样的方法保证交换表中的数据都符合当前网络的实际状况。这就是说,上图中的交换表实际上是有三列,即MAC地址、端口和写入时间。

以太网交换机的这种自学习方法使得以太网交换机能够即插即用,不必人工进行配置因此非常方便。

但有时为了增加网络的可靠性,在使用以太网交换机组网时,往往会增加一些余的链路。在这种情况下,自学习的过程就可能导致以太网帧在网络的某个环路中无限制地兜圈子。我们用下图的简单例子来说明这个问题。

在下图中,假定一开始主机A通过端口交换机#1 向主机 B发送一帧。

由于交换表目前是空的,因此交换机#1收到帧0后就向本交换机的所有其他端口进行广播发送。我们现在观察其中一个帧的走向:

离开交换机#1端口3的帧3到达交换机#2端口1,然后向交换机#2 所有其他端口广播发送;

广播发送的帧中有一个帧3到达交换机#2端口2;

上述过程就这样无限制地循环兜圈子(2→3→4→5)。显然,这就白白消耗了网络资源。
在这里插入图片描述
为了解决这种兜圈子问题,IEEE的802.1D标准制定了一个生成树协议STP(SpanningTree Protocol)。其要点就是不改变网络的实际拓扑,但在逻辑上则切断某些链路,使得从一台主机到所有其他主机的路径是无环路的树状结构,从而消除了兜圈子现象。

5、从总线以太网到星形以太网

大家知道,传统的电话网是星形结构,其中心就是电话交换机。那么在20世纪70年代中期出现的局域网,为什么不采用这种星形结构呢?这是因为在当时的技术条件下,还很难用廉价的方法制造出高可靠性的以太网交换机。所以那时的以太网就采用无源的总线结构这种总线式以太网一问世就受到广大用户的欢迎,并获得了很快的发展。

然而随着以太网上站点数目的增多,使得总线结构以太网的可靠性下降。与此同时,大规模集成电路以及专用芯片的发展,使得星形结构的以太网交换机可以做得既便宜又可靠。在这种情况下,采用以太网交换机的星形结构就成为以太网的首选拓扑,而传统的总线以太网也很快从市场上消失了。

总线以太网使用CSMACD协议,以半双工方式工作。但以太网交换机不使用共享总线,没有碰撞问题,因此不使用CSMA/CD协议,而是以全双工方式工作。既然连以太网的重要协议CSMACD都不使用了(相关的“争用期”也没有了),为什么还叫作以太网呢?原因就是它的帧结构未改变,仍然采用以太网的帧结构。

三、虚拟局域网

1、介绍

以太网交换机的问世,加速了以太网的普及应用。一个以太网交换机可以非常方便地连接几十台计算机,构成一个星形以太网。

但是,当一个以太网包含的计算机太多时,往往会带来两个缺点。

  • 首先,一个以太网是一个广播域。在以太网上经常会出现大量的广播帧。在交换机的交换表的建立过程中要使用许多广播帧。我们经常使用的ARP和DHCP协议(这将在后面两章中讲到),也都要在以太网中传送很多的广播帧。在一个主机数量很大的以太网上传播广播帧,必然会消耗很多的网络资源。如果网络的配置出了些差错,就有可能发生广播帧在网络中无限制地兜圈子(如图3-26所示那样),形成了“广播风暴”,使整个的网络瘫痪。
  • 其次,一个单位的以太网往往为好几个下属部门所共享。但有些部门的信息是需要保
    密的(例如,财务部门或人事部门)。许多部门共享一个局域网对信息安全不利。

如果使每一个小部门各拥有自己的较小的局域网,那么这不但可使局域网的广播域范围缩小,同时也提高了局域网的安全性。在以太网交换机出现后,我们可以很方便灵活地建立虚拟局域网 VLAN (Virual LAN)。这样就把一个较大的局域网,分割成为一些较小的局域网,而每一个局域网是一个较小的广播域。

2、定义

在IEEE 802.10标准中,对虚拟局域网VLAN 是这样定义的:虚拟局域网 VLAN 是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。每一个VLAN 的帧都有一个明确的标识符,指明发送这个帧的计算机属于哪一个 VLAN。

虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网。

1988年IEEE 批准了802.3ac 标准,这个标准定义了以太网的帧格式的扩展,以便支持虚拟局域网。虚拟局域网协议允许在以太网的帧格式中插入一个4字节的标识符(如图3-27所示),称为 VLAN 标签(tag),用来指明发送该帧的计算机属于哪一个虚拟局域网。插入VLAN 标签的帧称为 802.1Q 帧。
在这里插入图片描述
VLAN 标签字段的长度是4字节,插入在以太网 MAC 帧的源地址字段和类型字段之间VLAN 标签的前两个字节总是设置为0x8100(即二进制的1000000100000000),称为IEEE。

802.1Q标签类型。VLAN 标签的后两个字节中,前面4位实际上并没有什么作用,这里不讨论,后面的12位是该虚拟局域网VLAN标识符VID(VLAN ID),它唯一地标志了802.1Q帧属于哪一个 VLAN。12 位的 VID 可识别 4096 个不同的 VLAN。插入 VLAN 标签后,802.1Q帧最后的帧检验序列FCS必须重新计算。

3、工作原理

当数据链路层检测到 MAC帧的源地址字段后面的两个字节的值是 0x8100时,就知道现在插入了4字节的 VLAN 标签。由于用于 VLAN 的以太网帧的首部增加了4个字节,因此以太网的最大帧长从原来的1518字节(1500字节的数据加上18字节的首部和尾部)变为 1522 字节。

这样的 802.1Q帧在什么地方使用呢?我们可以用图 3-28 给出的简单例子来说明。交换机#1连接了7台计算机,组成了一个局域网(一个广播域)。现在把局域网划分为两个虚拟局域网 VLAN-10 和 VLAN-20。这里的 10和 20 是虚拟局域网的编号,由交换机管理人员设定。这个编号就是下图中的 VID 字段的值。
在这里插入图片描述
现在我们有了两个较小的广播域。每台计算机都是通过接入链路(accesslink)连接到以太网交换机的。管理人员划分虚拟局域网的方法有多种。例如,按交换机的端口划分,或按MAC 地址划分。每台主机并不知道自己的VID值(但交换机必须知道这些信息)。这些主机通过接入链路发送到交换机的帧都是标准的以太网帧。

在一个用多个交换机连接起来的较大的局域网中,可以灵活地划分虚拟局域网,不受地理位置的限制。一个虚拟局域网的范围可以跨越不同的交换机。当然,所使用的交换机必须要能够识别和处理虚拟局域网。在上图中,在另外一层楼的交换机#2连接了5台计算机,并与交换机#1相连接。交换机#2中的两台计算机加入到 VLAN-10,而另外3台加入到VLAN-20。这两个虚拟局域网虽然都跨越了两个交换机,但都各自是一个广播域。

连接两个交换机端口之间的链路称为汇聚链路(trunk link)或干线链路。

现在假定A向B发送帧。由于交换机#1能够根据帧首部的目的MAC 地址,识别B届于本交换机管理的 VLAN-10,因此就像在普通以太网中那样直接进行帧的转发,不需要使用 VLAN 标签。这是最简单的情况。

现在假定A向E发送帧。交换机#1查到E并没有连接到本交换机,因此必须从汇聚链路把帧转发到交换机#2,但在转发之前,要插入 VLAN 标签。不插入VLAN 标签,交换机#2 就不知道应把帧转发给哪一个 VLAN。因此在汇聚链路传送的帧是 802.1Q帧。交换机#2在向E转发帧之前,要拿走已插入的 VLAN 标签,因此E收到的帧就是A发送的标准以太网帧,而不是 802.1Q 帧。

如果A向C发送,情况又怎样呢?这种情况就复杂些了,因为这是在不同网络之间的通信。虽然A和C都连接到同一个交换机,但它们已经处在不同的网络中(VLAN-10和VLAN-20)。这问题是互连网络中的通信问题,已经超过了本章数据链路层的范围。这要由属于上面的网络层中的路由器来解决。

不过有的交换机中嵌入了一个用专用芯片构成的转发模块,用来在不同的VLAN 之间转发帧。这样就可以不必再使用另外的路由器,而就在交换机中实现了第3层的转发功能(由于使用硬件转发,转发帧的速率提高了,比使用路由器要快)。这种转发功能被称为第3 层交换,而这种交换机常称为L3/L2交换机。

有了这种第3层交换机,连接到不同交换机的A和F,都能不需要经过另外的路由器而相互通信。更详细的转发过程这里就不继续讨论了。

  • 36
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值