计算机网络:P3.3-数据链路层(下)

本系列文章为湖南科技大学高军老师的计算机网络微课堂学习笔记,前面的系列文章链接如下:
计算机网络:P1-概述
计算机网络:P2-物理层
计算机网络:P3.1-数据链路层(上)
计算机网络:P3.2-数据链路层(中)

文章目录

  • 八、集线器与交换机的区别
  • 九、以太网交换机自学习和转发帧的流程
  • 十、以太网交换机的生成树STP协议
  • 十一、虚拟局域网VLAN
    • 11.1 虚拟局域网VLAN概述
    • 11.2 虚拟局域网VLAN的实现机制


八、集线器与交换机的区别

早期的总线型以太网

这是我们之前课程中经常用来举例的总线型以太网,它最初使用粗同轴电缆作为传输媒体,后来演进到使用价格相对便宜的细同轴电缆。当初认为这种连接方法既简单又可靠,因为在那个时代普遍认为有源器件不可靠,而无缘的电缆线才是最可靠的。然而,这种使用无源电缆和大量机械接头的总线型以太网并不像人们想象的那么可靠。
计算机网络:P3.3-数据链路层(下)_第1张图片

集线器

后来以太网发展出来了一种使用大规模集成电路可靠性非常高的设备,叫做集线器。并且使用更便宜、更灵活的双绞线作为传输媒体。如图所示,这是一个使用集线器和双绞线电缆互连了四台主机的新型拓朴的以太网。
计算机网络:P3.3-数据链路层(下)_第2张图片
主机中的以太网卡以及集线器各接口使用RJ-45插座,它们之间通过双绞线电缆进行连接。在双绞线电缆的两端是RJ-45插头,也就是我们俗称的水晶头。实践证明,使用双绞线和集线器比使用具有大量机械接头的无源电缆要可靠得多,并且价格便宜,使用方便。因此,粗缆和细缆以太网早已成为了历史,从市场上消失了。
注:
①使用集线器的以太网虽然物理拓朴是星形的,但在逻辑上仍然是一个总线网,各站共享逻辑上的总线资源,使用的还是CSMA/CD协议。
②集线器只工作在物理层,它的每个接口仅简单的转发比特,不进行碰撞检测(碰撞检测的任务由各站的网卡负责)。
③在分析问题时,我们可将集线器简单看作是一条总线。集线器一般都有少量的容错能力和网络管理功能。例如,若网络中某个网卡出现了故障,不停的发送帧。此时集线器可以检测到这个问题,在内部断开与出故障网卡的连线,使整个以太网仍然能正常工作。


使用集线器HUB在物理层扩展以太网

使用集线器可以对以太网进行扩展。由于集线器只工作在物理层,所以更具体的说法是使用集线器在物理层扩展以太网。
例子:
假设某学院下设三个系部,每个系部都有一个使用集线器作为互连设备的以太网。这三个以太网相互独立,各自共享自己的总线资源,是三个独立的碰撞域,或称冲突域。
计算机网络:P3.3-数据链路层(下)_第3张图片
假设,当一系中的某台主机给另一台主机发送数据帧,由于总线特性,表示该数据帧的信号会传输到一系中的其他各主机。
假设,当二系中的多台主机同时发送数据帧。由于总线特性,这必然会产生信号碰撞。碰撞后的信号会传输到二系中的各个主机。
计算机网络:P3.3-数据链路层(下)_第4张图片
为了使各系部的以太网能够相互通信,可再使用一个集线器将它们互联起来。这样,原来三个独立的以太网就互联成为了一个更大的以太网。而原来三个独立的碰撞域就合并成了一个更大的碰撞预。换句话说,形成了一个更大的总线型以太网。例如,一系中的某台主机给二系中的某台主机发送数据帧。由于总线特性,表示该数据帧的信号会传输到整个网络中的其他各主机。
计算机网络:P3.3-数据链路层(下)_第5张图片


以太网交换机与集线器的区别

在集线器之后,发展出了更先进的网络互连设备,也就是以太网交换机。我们先从一个典型的例子来看看以太网交换机与集线器的区别。
计算机网络:P3.3-数据链路层(下)_第6张图片
----使用集线器互联而成的共享总线式以太网上的某个主机要给另一个主机发送单播帧。该单播帧会通过共享总线传输到总线上的其他各个主机。
----使用交换机互连而成的交换式以太网上的某个主机要给另一个主机发送单播帧。该单播帧进入交换机后,交换机会将该单播帧转发给目的主机,而不是网络中的其它各个主机。
结论:很显然,交换机具有明显的优势。需要说明的是,为了简单起见,本节课所有举例的前提条件是忽略ARP过程,并假设交换机的帧交换表已经学习或配置好了。


以太网交换机的特点

①以太网交换机通常都有多个接口,每个接口都可以通过双绞线电缆与一台主机或另一个以太网交换机相连,一般都工作在全双工方式,也就是发送帧和接收帧可以同时进行。注意,使用集线器的以太网在逻辑上是共享总线的,需要使用CSMA/CD协议来协调各主机争用总线,只能工作在半双工模式,也就是收发帧不能同时进行。
②以太网交换机具有并行性,能同时连通多对接口,使多对主机能同时通信而无碰撞。
计算机网络:P3.3-数据链路层(下)_第7张图片
③以太网交换机的接口一般都支持多种速率。例如,10Mb/s、100Mb/s、1Gb/s、10Gb/s等。
④以太网交换机工作在数据链路层(也包括物理层)。它收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。
假设下图该交换机的帧交换表。主机A给主机B发送数据帧,交换机收到该帧后,在帧交换表中查找该帧的目的MAC地址,也就是主机B的MAC地址。发现应该从接口2转发,于是就从接口2将该帧转发出去。
计算机网络:P3.3-数据链路层(下)_第8张图片
⑤以太网交换机是一种即插即用的设备,上电即可工作。其内部的帧交换表是通过自学习算法自动的逐渐建立起来的。
⑥许多以太网交换机对收到的帧采用存储转发方式进行转发。但也有一些交换机采用直通交换方式。直通交换不必把整个帧先缓存后再进行处理,而是在接收帧的同时就立即按帧的目的MAC地址决定该帧的转发接口,因而提高了帧的转发速率(一般采用基于硬件的交叉矩阵,这样交换时延就非常小)。但直通交换的一个缺点就是它不检查帧是否有差错就直接将帧转发出去。


接下来,我们再通过几个例子进一步对比集线器和交换机。前提条件:忽略ARP过程、假设交换机的帧交换表已经学习好了。

①我们首先来对比主机发送单播帧的情况。
----对于使用集线器的共享总线型以太网,单播帧会传播到总线上的其他各主机,各个主机中的网卡根据帧的目的MAC地址决定是否接受该帧。
计算机网络:P3.3-数据链路层(下)_第9张图片
----对于使用交换机的交换式以太网。交换机收到单播帧后,根据帧的目的MAC地址和自身的帧交换表将帧转发给目的主机,而不是网络中的其他各主机。
计算机网络:P3.3-数据链路层(下)_第10张图片
②我们再来对比发送广播帧的情况。
----对于使用集线器的共享总线型以太网,广播帧会传播到总线上的其他各主机,各主机中的网卡检测到帧的目的MAC地址是广播地址就接受该帧。
计算机网络:P3.3-数据链路层(下)_第11张图片
----对于使用交换机的交换式以太网,交换机收到广播帧后检测到帧的目的MAC地址是广播地址,于是从除该帧进入交换机接口外的其他各接口转发该帧。网络中除源主机外的其它各主机收到广播帧后接受该广播帧。
计算机网络:P3.3-数据链路层(下)_第12张图片
结论:从本例可以看出,使用集线器的共享总线型以太网中的各主机属于同一个广播域。而使用交换机的交换式以太网中的各主机也属于同一个广播域。因此,对于广播帧的情况,从效果上看没有什么区别。
③我们再来对比网络中的多台主机同时给另一台主机发送单播帧的情况。
----对于使用集线器的共享总线型以太网,这必然会产生碰撞。遭遇碰撞的帧会传播到总线上的各个主机。
计算机网络:P3.3-数据链路层(下)_第13张图片
----对于使用交换机的交换式以太网。交换机收到多个帧时,会将它们缓存起来,然后逐个转发给目的主机,不会产生碰撞。
计算机网络:P3.3-数据链路层(下)_第14张图片
④接下来我们来对比使用集线器扩展以太网和使用交换机扩展以太网有什么区别。
----首先对比发送单播帧的情况。
--------这是仅使用集线器扩展以太网后发送单播帧的情况。
计算机网络:P3.3-数据链路层(下)_第15张图片
--------这是仅使用交换机扩展以太网后发送单播帧的情况。
计算机网络:P3.3-数据链路层(下)_第16张图片
很显然,交换机具有非常明显的优势。
----再来对比发送广播帧的情况。
--------这是仅使用集线器扩展以太网后发送广播帧的情况。
计算机网络:P3.3-数据链路层(下)_第17张图片
--------这是仅使用交换机扩展以太网后发送广播帧的情况。
计算机网络:P3.3-数据链路层(下)_第18张图片
从效果上看是一样的。可见,不管使用集线器还是交换机来扩展以太网,扩展后的以太网中的各主机都属于同一个广播域
原因分析:
仅使用集线器扩展的以太网在逻辑上仍然是共享总线的,并且形成为一个更大的碰撞域。换句话说,参与竞争总线的主机比扩展前的更多了。下面是竞争总线并产生碰撞的一个例子,同样的传输任务在仅使用交换机扩展的以太网上就不会产生碰撞。
计算机网络:P3.3-数据链路层(下)_第19张图片
因此,如果仅仅使用集线器来扩展以太网,不仅会扩大广播域,还同时扩大了碰撞预。但是如果使用交换机将原来各自独立的碰撞域连接起来,只会扩大广播域,而不会扩大碰撞预。也就是说,交换机可以隔离碰撞域。
计算机网络:P3.3-数据链路层(下)_第20张图片


小结

集线器HUB
①早期以太网的互连设备
②工作在OSI体系结构的物理层
③对接收到的信号进行放大、转发
④使用集线器作为互连设备的以太网仍然属于共享总线式以太网。集线器互连起来的所有主机共享总线带宽,属于同一个碰撞域和广播域。
⑤已经被市场淘汰
交换机SWITCH
①目前以太网中使用最广泛的互连设备
②工作在OSI体系结构的数据链路层(也包括物理层)
③根据MAC地址对帧进行转发
④使用交换机作为互连设备的以太网,称为交换式以太网。交换机可以根据MAC地址过滤帧,即隔离碰撞域。
⑤交换机的每个接口是一个独立的碰撞域
⑥交换机隔离碰撞域但不隔离广播域(VLAN除外)


小测验

1、下列网络连接设备工作在数据链路层的是
A. 中继器
B. 集线器
C. 交换机
D. 路由器
答案:C

2、下列不能隔离碰撞域的设备是
A. 网桥
B. 集线器
C. 交换机
D. 路由器
答案:B

3、10台用户主机通过一台交换机连接成10Mb/s的交换式以太网,每个用户能够占有的带宽是
A. 1Mb/s
B. 2Mb/s
C. 10Mb/s
D. 100Mb/s
答案:C

4、通过集线器连接的一组主机
A. 组成一个冲突域,但不是一个广播域
B. 组成一个广播域,但不是一个冲突域
C. 既是一个冲突域,又是一个广播域
D. 既不是冲突域,也不是广播域
答案:C

5、通过交换机连接的一组主机
A. 组成一个冲突域,但不是一个广播域
B. 组成一个广播域,但不是一个冲突域
C. 既是一个冲突域,又是一个广播域
D. 既不是冲突域,也不是广播域
答案:B


九、以太网交换机自学习和转发帧的流程

知识回顾

①以太网交换机工作在数据链路层(当然也包括物理层)。需要说明的是,目前市场上也有包含网络层部分功能的交换机,称为三层交换机。
②以太网交换机收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。
③以太网交换机是一种即插即用的设备。刚上电启动时,其内部的帧交换表是空的。随着网络中各主机间的通信,以太网交换机通过自学习算法自动逐渐建立起帧交换表。


下面我们来举例说明以太网交换机自学习和转发帧的流程。

如图所示,相互连接的两台以太网交换机各自连接了三台主机,构成了一个交换式以太网。为了简单起见,各主机中网卡上固化的MAC地址仅用一个大写字母表示,各主机互不相同。为了将重点放在以太网交换机自学习和转发帧的流程上,我们假设各主机已经知道了网络中其各主机的MAC地址。换句话说,不需要首先通过ARP来获取目的主机的MAC地址。
计算机网络:P3.3-数据链路层(下)_第21张图片
①假设主机A给主机B发送帧
----该帧从交换机1的接口1进入交换机1。交换机1首先进行登记的工作,将该帧的源MAC地址A记录到自己的帧交换表中,将该帧进入自己的接口的接口号1相应的也记录到帧交换表中。上述登记工作就称为交换机的自学习
计算机网络:P3.3-数据链路层(下)_第22张图片
----之后交换机1对该帧进行转发。该帧的目的Mac地址是B,在帧交换表中查找MAC地址B。找不到,于是对该帧进行盲目的转发(也称为泛洪),也就是从除该帧进入交换机接口外的其它所有接口转发该帧。可以看出,交换机一开始还是比较笨的,它还没有足够的知识来明确转发帧,只能进行盲目地转发。
计算机网络:P3.3-数据链路层(下)_第23张图片
----主机B的网卡收到该帧后,根据帧的目的MAC地址B就知道这是发送给自己的帧,于是就接受该帧。主机C的网卡收到该帧后,根据帧的目的MAC地址B就知道这不是发送给自己的帧,于是就丢弃该帧。
计算机网络:P3.3-数据链路层(下)_第24张图片
----该帧从交换机2的接口2进入交换机2。交换机2首先进行登记的工作,将该帧的源MAC地址A记录到自己的帧交换表中,将该帧进入自己的接口的接口号2相应的也记录到帧交换表中。之后交换机2对该帧进行转发,该帧的目的MAC地址是B,在帧交换表中查找MAC地址B。找不到,于是对该帧进行盲目的转发。主机DEF都会收到该帧,根据帧的目的MAC地址B,就知道这不是发送给自己的帧,于是丢弃该帧。
计算机网络:P3.3-数据链路层(下)_第25张图片
②接下来主机B给主机A发送帧。
----该帧从交换机1的接口3进入交换机1。交换机1首先进行登记的工作,将该帧的源MAC地址B记录到自己的帧交换表中,将该帧进入自己的接口的接口号3相应的也记录到帧交换表中。
计算机网络:P3.3-数据链路层(下)_第26张图片
----之后,交换机1对该帧进行转发,该帧的目的MAC地址是A。在帧交换表中查找MAC地址A,可以找到。于是按照MAC地址A所对应的接口号1从接口1转发该帧,这是明确的转发。主机A的网卡收到该帧后,根据帧的目的MAC地址A就知道这是发送给自己的帧,于是接受该帧。很显然,交换机2不会收到该帧。
计算机网络:P3.3-数据链路层(下)_第27张图片
③接下来,主机E给主机A发送帧。
----该帧从交换机2的接口3进入交换机2。交换机2首先进行登记的工作,将该帧的源MAC地址E记录到自己的帧交换表中,将该帧进入自己的接口的接口号3相应的也记录到帧交换表中。
计算机网络:P3.3-数据链路层(下)_第28张图片
----之后交换机2对该帧进行转发。该帧的目的MAC地址是A,在帧交换表中查找MAC地址A,可以找到。于是按照MAC地址A所对应的接口号2从接口2转发该帧,这是明确的转发。
计算机网络:P3.3-数据链路层(下)_第29张图片
----该帧从交换机1的接口4进入交换机1。交换机1首先进行登记的工作,将该帧的源MAC地址E记录到自己的帧交换表中,将该帧进入自己的接口的接口号4相应的也记录到帧交换表中。
计算机网络:P3.3-数据链路层(下)_第30张图片
之后交换机1对该帧进行转发。该帧的目的MAC地址是A,在帧交换表中查找MAC地址A。可以找到,于是按照MAC地址A所对应的接口号1从接口1转发该帧,这是明确的转发。主机A的网卡收到该帧后,根据帧的目的MAC地址A就知道这是发送给自己的帧,于是接受该帧。
计算机网络:P3.3-数据链路层(下)_第31张图片


我们再来看看以太网交换机丢弃帧的情况。

为了演示该情况,我们给交换机1的接口1再连接一台主机G,为了简单起见没有画出集线器。这样,主机A、主机G、交换机1的接口1就共享同一条总线。
计算机网络:P3.3-数据链路层(下)_第32张图片
假设主机G给主机A发送帧,该帧通过总线进行传输,主机A和交换机1的接口1都可以收到。主机A的网卡收到该帧后,根据帧的目的MAC地址A就知道这是发送给自己的帧,于是接受该帧。
计算机网络:P3.3-数据链路层(下)_第33张图片
交换机1收到该帧后,首先进行登记工作,之后交换机1对该帧进行转发。该帧的目的MAC地址是A,在帧交换表中查找MAC地址A,可以找到。
计算机网络:P3.3-数据链路层(下)_第34张图片
MAC地址A所对应的接口号是1,但是该帧正是从接口1进入交换机1的。交换机1不会再从该接口将该帧转发出去,因为这是没有必要的,于是丢弃该帧。很显然,交换机2也就不会收到该帧。
计算机网络:P3.3-数据链路层(下)_第35张图片
随着网络中各主机都发送了帧后,网络中的各交换机就可以学习到各主机的MAC地址以及它们与自己各接口的对应关系。
计算机网络:P3.3-数据链路层(下)_第36张图片
问题: 帧交换表中的每条记录都有自己的有效时间,到期自动删除,这是为什么呢?好不容易学习来的记录,为什么要到期自动删除呢?这不是多此一举吗?
回答: 这是因为MAC地址与交换机接口的对应关系并不是永久性的。例如,交换机某接口所连接的主机更换成了另一台主机。又或者主机中的网卡坏了,更换了新的网卡。这些情况都会导致MAC地址与交换机接口的对应关系的改变。相信大家还记得我们曾经介绍过的ARP高速缓存表,表中的IP地址与MAC地址的对应关系记录也是会定期自动删除的。这是因为IP地址与MAC地址的对应关系也并不是永久性的。


练习

参照刚刚所举的例子,为简单起见,主机A,B,C,D,E,F,G,H的MAC地址与其主机名称相同。主机间依次如下通信:
①B→C
②D→A
③G→D
④E→H
⑤C→B
⑥F→G
请给出以太网交换机1,2,3的自学习过程以及各自最终的帧交换表的内容。
解析:
计算机网络:P3.3-数据链路层(下)_第37张图片


例题

【2009年题36】以太网交换机进行转发决策时使用的PDU地址是 (A)
A. 目的物理地址
B. 目的IP地址
C. 源物理地址
D. 源IP地址
解析: PDU(Protocol Data Unit)的意思是协议数据单元,它是计算机网络体系结构中对等实体间逻辑通信的对象。以太网交换机工作在数据链路层,也包括物理层。它接收并转发的PDU通常称为帧。以太网交换机收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。MAC地址又称为硬件地址或物理地址。请注意,不要被物理二字误导,认为物理地址属于物理层范畴。实际上,物理地址属于数据链路层范畴。

例题

【2014年题34】某以太网拓扑及交换机当前转发表如下图所示,主机00-e1-d5-00-23-a1向主机00-31-d5-00-23-c1发送1个数据帧,主机00-31-d5-00-23-c1收到该帧后,向主机00-e1-d5-00-23-a1发送1个确认帧,交换机对这两个帧的转发端口分别是 (B)
计算机网络:P3.3-数据链路层(下)_第38张图片
A. {3}和{1}
B. {2,3}和{1}
C. {2,3}和{1,2}
D. {1,2,3}和{1}
解析:
根据题意,左侧主机给右侧主机发送数据帧,该帧从交换机的接口1进入交换机。交换机首先进行登记的工作,将该帧的源MAC地址记录到自己的帧交换表中,将该帧进入自己的接口的接口号相应的也记录到帧交换表中。
计算机网络:P3.3-数据链路层(下)_第39张图片
之后交换机对该帧进行转发,在帧交换表中查找该帧的目的MAC地址。找不到,于是对该帧进行盲目的转发。因此,交换机转发数据帧的端口为2和3。
计算机网络:P3.3-数据链路层(下)_第40张图片
根据题意,右侧主机收到左侧主机发送的数据帧后,给左侧主机发送确认帧,该帧从交换机的接口3进入交换机。交换机首先进行登记的工作,将该帧的源MAC地址记录到自己的帧交换表中,将该帧进入自己的接口的接口号相应的也记录到帧交换表中。
计算机网络:P3.3-数据链路层(下)_第41张图片
之后交换机对该帧进行转发,在帧交换表中查找该帧的目的MAC地址。可以找到,于是按照MAC地址所对应的接口号1从接口1明确转发该帧。因此,交换机转发确认帧的端口为1。
计算机网络:P3.3-数据链路层(下)_第42张图片


小测验

1、以太网交换机的自学习是指
A. 记录帧的源MAC地址与该帧进入交换机的端口号
B. 记录帧的目的MAC地址与该帧进入交换机的端口号
C. 记录数据包的源IP地址与该数据包进入交换机的端口号
D. 记录数据包的目的IP地址与该数据包进入交换机的端口号
答案:A

2、假设交换机的转发表是空的,当交换机收到某个单播帧后,会将该帧
A. 丢弃
B. 泛洪
C. 从接收该帧的端口再转发该帧
D. 从另外的某个端口转发该帧
答案:B

3、在下图中,假设交换机的转发表是空的,主机H2给H3发送一个单播帧,则能收到该单播帧的主机有
计算机网络:P3.3-数据链路层(下)_第43张图片
A. 仅H3
B. 仅H1和H3
C. 仅H4和H3
D. H1、H3、H4
答案:D


十、以太网交换机的生成树STP协议

思考:

应该如何提高以太网的可靠性呢?例如,如图所示的以太网由三台交换机互连而成,每个交换机上都连接有一些主机。为了简单起见,我们只画出了每个交换机上连接的一台主机。
计算机网络:P3.3-数据链路层(下)_第44张图片
如果交换机A与B之间的电路出现了故障,则交换机B上连接的所有主机即无法与交换机A上连接的所有主机进行通信,也无法与交换机C上连接的所有主机进行通信。
计算机网络:P3.3-数据链路层(下)_第45张图片
如果交换机A与交换机B和C之间的链路都出现了故障,则原来的以太网变成了三个独立的较小的以太网,它们之间无法通信。
计算机网络:P3.3-数据链路层(下)_第46张图片


解决方案

相信很多同学已经想到了,可以通过添加冗余链路的方法来提高以太网的可靠性。例如,在本例中,我们给交换机B和C之间添加一条冗余链路后,即使交换机A和B之间的电路出现了故障,整个网络还是连通的。
计算机网络:P3.3-数据链路层(下)_第47张图片


问题:

但是,冗余链路也会带来负面效应,那就是形成网络环路。网络环路会带来一些问题,例如广播风暴,我们来举例说明。
假设主机H1发送一个广播帧。交换机B收到该帧后,将其从自己的其它所有接口转发出去。
计算机网络:P3.3-数据链路层(下)_第48张图片
交换机A收到交换机B转发来的该帧后,将其从自己的其它所有接口转发出去。
计算机网络:P3.3-数据链路层(下)_第49张图片
同样的,交换机C收到交换机B转发来的该帧后,将其从自己的其它所有接口转发出去。
计算机网络:P3.3-数据链路层(下)_第50张图片
交换机C收到交换机A转发来的该帧后,将其从自己的其它所有接口转发出去。
计算机网络:P3.3-数据链路层(下)_第51张图片
同样的,交换机A收到交换机C转发来的该帧后,将其从自己的其它所有接口转发出去。
计算机网络:P3.3-数据链路层(下)_第52张图片
交换机B收到交换机C转发来的该帧后,将其从自己的其它所有接口转发出去。
计算机网络:P3.3-数据链路层(下)_第53张图片
同样的,交换机B收到交换机A转发来的该帧后,将其从自己的其它所有接口转发出去。
计算机网络:P3.3-数据链路层(下)_第54张图片
结论: 很显然,该广播帧将在各交换机之间反复转发,分别按顺时针和逆时针方向同时兜圈,这就是所谓的广播风暴。
①广播风暴会大量消耗网络资源,使得网络无法正常转发其他数据帧,
②也会使主机反复收到广播帧,大量消耗主机资源。
③还会使交换机的帧交换表震荡。
帧交换表震荡:
例如,下图是交换机B的帧交换表及其各接口的接口号。为了简单起见,假设各主机的名称也可作为其MAC地址。
计算机网络:P3.3-数据链路层(下)_第55张图片
当交换机B收到主机H1发送的广播帧后,进行登记工作,将帧的源MAC地址H1和帧进入交换机B的接口号1登记到帧交换表中。这条记录是正确的。
计算机网络:P3.3-数据链路层(下)_第56张图片
当交换机B再次收到交换机C转发来的该广播帧后,进行登记工作。将帧的源MAC地址H1和帧进入交换机B的接口号2这条错误记录登记到帧交换表中,并删除原先正确的记录。
计算机网络:P3.3-数据链路层(下)_第57张图片
当交换机B再次收到交换机A转发来的该广播帧后,进行登记工作。将帧的源MAC地址H1和帧进入交换机B的接口号3这条错误记录登记到帧交换表中,并删除原先错误的记录。
计算机网络:P3.3-数据链路层(下)_第58张图片
当交换机B再次收到交换机C转发来的该广播帧后,进行登记工作。将帧的源MAC地址H1和帧进入交换机B的接口号2这条错误记录登记到帧交换表中,并删除原先错误的记录。
计算机网络:P3.3-数据链路层(下)_第59张图片
很显然,有关MAC地址H1的记录将在这两个错误记录之间反复震荡。


生成树协议

原理: 为了可以在增加冗余链路来提高网络可靠性的同时,又避免网络环路带来的各种问题。以太网交换机使用生成树协议(Spanning Tree Protocol, STP)。不论交换机之间采用怎样的物理连接,使用生成树协议的交换机都能够自动计算并构建出一个逻辑上没有环路的网络,其逻辑拓扑结构必须是竖形的,也就是没有逻辑环路。
例子:
如图所示,为了提高可靠性,五台交换机之间进行了冗余连接。冗余链路不止一条,网络环路也不止一个。为了简单起见,各交换机上连接的主机没有画出。我们用绿色的小圆圈表示交换机的接口状态为正常状态、用橙色的小方块儿表示交换机的接口状态为阻塞状态、用红色的X表示出现了故障。如果个交换机的各接口都处于正常状态,则会存在多个网络环路。
计算机网络:P3.3-数据链路层(下)_第60张图片
实际上,各交换机之间按照生成树协议中规定的生成树算法交互一些参数后,就可以判断出自己应该阻塞自己的哪些接口。例如图中所示,这样就会形成一个逻辑上没有环路的网络。当然这个逻辑上没有环路的网络,一定要确保连通整个网络,否则就没有意义了。
计算机网络:P3.3-数据链路层(下)_第61张图片
当首次连接交换机或网络物理拓扑发生变化时,这有可能是人为改变造成的,也有可能是出现故障造成的,交换机都将进行生成树的重新计算。例如,假设这段电路出现了故障,相关交换机检测到该故障后,重新计算生成树,决定将自己之前阻塞的接口恢复为正常状态。这样就会形成一个新的逻辑上没有环路的网络。
计算机网络:P3.3-数据链路层(下)_第62张图片
需要说明的是,生成树协议所使用的生成树算法已超出本系列课程的教学大纲,可以自己下来了解


小测验

1、以太网交换机使用生成树协议STP的目的是
A. 提高网络带宽
B. 消除网络环路
C. 形成网络环路
D. 提高网络可靠性
答案:B


十一、虚拟局域网VLAN

11.1 虚拟局域网VLAN概述

问题引出

前面我们提过,以太网交换机工作在数据链路层(也包括物理层)。使用一个或多个以太网交换机互连起来的交换式以太网,其所有站点都属于同一个广播域。随着交换式以太网规模的扩大,广播域相应扩大。如图所示,这是一个由多个以太网交换机互连而成的交换式以太网。每个以太网交换机上都连接了多个主机。形成了一个巨大的广播域。
计算机网络:P3.3-数据链路层(下)_第63张图片
巨大的广播域会带来很多弊端,例如广播风暴、难以管理和维护、潜在的安全问题等。我们来举例说明广播风暴的问题。假设网络中的某个主机要给另一个主机发送一个数据帧。但是在自己的ARP高速缓存表中无法查到目的主机的MAC地址,于是首先要发送ARP广播请求来获取目的主机的MAC地址。该ARP广播请求会传遍整个网络,网络中的其他所有主机都可以收到该广播。这种情况就是所谓的广播风暴。广播风暴会浪费网络资源和网络中各主机的CPU资源。因此,除非应用需求必须要使用广播,否则网络中的主机应尽量不使用广播。
计算机网络:P3.3-数据链路层(下)_第64张图片
也许有的同学会有这样的想法,如果网络中只是偶尔出现广播,那还是可以接受的。但事实上,网络中会频繁出现广播信息。目前使用最广泛的TCP/IP协议栈中的很多协议都会使用广播,如地址解析协议ARP、路由信息协议RIP、动态主机配置协议DHCP等。除此之外,其他一些协议栈也会频繁使用广播,如NetBEUI(Widnows下使用的广播型协议)、IPX/SPX(Novell网络的协议栈)、Apple Talk(Apple公司的网络协议栈)。那么,如何才能将较大的广播域分割成更小的广播域呢?


解决方案:

使用路由器就可以隔离广播域。如图所示,这是由两台以太网交换机互连而成的交换式以太网,网络中的各主机同属于一个广播域。
计算机网络:P3.3-数据链路层(下)_第65张图片
使用路由器可以将该广播域分割成两个较小的广播域。路由器工作在网络体系结构的第三层,也就是网络层。由于路由器默认情况下不对广播数据包进行转发。因此,路由器很自然的就可以隔离广播域。
计算机网络:P3.3-数据链路层(下)_第66张图片
然而,路由器的成本较高,局域网内部全部使用路由器来隔离广播域是不现实的。在这种情况下,==虚拟局域网(Virtual Local Area Network, VLAN)==技术应运而生。它是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术,这些逻辑组具有某些共同的需求。
例子:
如图所示,一楼、二楼、三楼分别有一个局域网。
计算机网络:P3.3-数据链路层(下)_第67张图片
可将它们通过另外一个交换机互联成一个更大的局域网,那么原来每一个局域网成为现在这个局域网的一个网段。网络中的各主机属于同一个广播域,某个主机发送的广播数据包,其他所有主机都可以收到。
计算机网络:P3.3-数据链路层(下)_第68张图片
根据应用需求,我们将该局域网划分成两个VLAN,即VLAN1和VLAN2。此后,VLAN1中的广播数据包不会传送到VLAN2。VLAN2中的广播数据包也不会传送到VLAN1。也就是说,同一个VLAN,内部可以广播通信。不同VLAN之间不能广播通信。
计算机网络:P3.3-数据链路层(下)_第69张图片


小测验

1、以下有关虚拟局域网VLAN的说法中,错误的是
A. 虚拟局域网是一种新型结构的局域网
B. 虚拟局域网技术可以用来分割广播域
C. 虚拟局域网是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术
D. 不同虚拟局域网中的主机之间不能直接通信
答案:A


11.2 虚拟局域网VLAN的实现机制

虚拟局域网VLAN技术是在交换机上实现的,需要交换机能够实现以下两大功能。

①能够处理带有VLAN标记的帧,也就是IEEE 802.1Q帧。
②交换机的各端口可以支持不同的端口类型。不同端口类型的端口对帧的处理方式有所不同。

IEEE802.1Q帧

IEEE802.1Q帧也称为Dot One 帧。它对以太网的MAC帧格式进行了扩展,插入了四字节的VLAN标记。
计算机网络:P3.3-数据链路层(下)_第70张图片
----VLAN标记的最后12个比特称为VLAN标识符VID,它唯一的标识了以太网帧属于哪一个VLAN。VID的取值范围是 0 − 4095 0-4095 04095。其中 0 0 0 4095 4095 4095 都不用来表示VLAN。因此,用于表示VLAN的VID的有效取值范围是 1 1 1 4094 4094 4094
----需要注意的是,802.1Q帧是由交换机来处理的,而不是用户主机来处理的。当交换机收到普通的以太网帧时。会将其插入四字节的VLAN标记,将其转变为802.1Q帧,简称为打标签。当交换机转发802.1Q帧时候,可能会删除其四字节vlan标记,将其转变为普通以太网帧,简称为去标签。
----Vlan标记字段的其他内容对我们理解VLAN划分机制来说并没有什么帮助,因此就不再赘述了。


缺省VLAN ID

接下来我们介绍交换机的端口类型,交换机的端口类型一般有以下三种,分别是Access、Trunk、Hybrid。需要说明的是,思科交换机没有Hybrid端口。在介绍这三种交换机端口类型之前,我们首先需要了解一下端口的缺省VLAN ID这个概念。在思科交换机上将其称为本征VLAN。例如,思科交换机在用户未配置VLAN时,所有端口都默认属于VLAN1。即所有端口的本征VLAN都是VLAN1。而在华为交换机上,将其称为端口VLAN ID,简记为PVID。在我们接下来的介绍中,为了描述方便,我们采用PVID,而不是本征VLAN。需要注意的是,交换机的每个端口有且仅有一个PVID。


Access端口

接下来我们首先介绍Access端口。Access端口一般用于连接用户计算机,只能属于一个VLAN。因此,Access端口的PVID值与端口所属VLAN的ID相同。如图所示,主机A、B、C、D分别连接在交换机的一个端口上。交换机首次上电时默认配置各端口属于VLAN1,也就是各端口的PVID值等于1。默认配置各端口的类型为Access,我们用大写字母A来表示。
计算机网络:P3.3-数据链路层(下)_第71张图片
Access端口的接收处理方法: 一般只接受未打标签的普通以太网MAC帧。根据接收帧的端口的PVID给帧打标签,即插入四字节VLAN标记字段,字段中的VID取值与端口的PVID取值相等。
例子: 假设主机A发送了一个广播帧,该帧从交换机的端口1进入交换机。由于端口1的类型是Access,它会对接收到的未打标签的普通以太网MAC帧打标签。也就是插入四字节的Vlan标记字段。由于端口1的PVID值等于1,因此所插入的四字节VLAN标记字段中的VID的值也等于1
计算机网络:P3.3-数据链路层(下)_第72张图片
Access端口的发送处理方法: 若帧中的VID与端口的PVID相等,则去标签后转发该帧,否则不转发。
对于本例,广播帧中的VID的取值与端口2、3、4的PVID取值都等于1。因此,交换机会从这三个端口对帧进行去标签转发。
计算机网络:P3.3-数据链路层(下)_第73张图片

例子

我们的应用需求是将主机A和B划归到VLAN2,将主机C和D划归到VLAN3。这样,VLAN2中的广播帧不会传送到VLAN3,VLAN3中的广播帧也不会传送到VLAN2。
计算机网络:P3.3-数据链路层(下)_第74张图片
解决方案: 为了实现这种应用,可以在交换机上创建VLAN2和VLAN3,然后将交换机的端口1和2划归到VLAN2,因此端口1和2的PVID值等于2。将交换机的端口3和4划归到VLAN3,因此端口3和4的PVID值等于3。
计算机网络:P3.3-数据链路层(下)_第75张图片
主机A发送广播帧的情况: 该帧从交换机的端口1进入交换机。由于端口1的类型是Access,它会对接收到的未打标签的普通以太网Mac帧打标签,也就是插入四字节的VLAN标记字段。由于端口1的PVID值等于2,因此所插入的四字节VLAN标记字段中的VID的值也等于2。广播帧中的VID的取值与端口2的PVID取值都等于2。因此,交换机会从端口2对帧进行去标签转发。
计算机网络:P3.3-数据链路层(下)_第76张图片
主机C发送广播帧的情况: 该帧从交换机的端口3进入交换机。由于端口3的类型是Access,它会对接收到的未打标签的普通以太网MAC帧打标签,也就是插入四字节的VLAN标记字段。由于端口3的PVID值等于3,因此所插入的四字节VLAN标记字段中的VID的值也等于3。广播帧中的VID的取值与端口4的PVID取值都等于3。因此,交换机会从端口4对帧进行去标签转发。
计算机网络:P3.3-数据链路层(下)_第77张图片


Trunk端口

Trunk端口一般用于交换机之间或交换机与路由器之间的互连。Trunk端口可以属于多个VLAN。也就是说,Trunk端口可以接收和发送多个VLAN的帧。用户可以设置3个端口的PVID值。默认情况下,Trunk端口的PVID值为1。我们来举例说明Trunk端口的功能。
例子: 两台交换机互连而成了一个交换式以太网。我们的应用需求是将主机ABEF划归到VLAN1,将主机C、D、G、H划归到VLAN2。由于交换机首次上电时默认配置各端口属于VLAN1,其相应的PVID值等于1,并且端口的类型为Access。因此,我们需要对交换机进行相应的配置,才能满足应用需求。分别在两个交换机上创建VLAN2,并将它们的端口3和4都划归到VLAN2,其相应的PVID值等于2,而两个交换机的端口1和2保持默认配置即可,也就是属于VLAN1,其相应的PVID值等于1。特别需要注意的是,两个交换机互连的端口5,需要将它们的类型更改为Trunk类型,而他们的PVID值保持默认的1即可。
计算机网络:P3.3-数据链路层(下)_第78张图片
①Trunk端口的发送处理方法: 对VID等于PVID的帧去标签再转发。
例: 假设主机A发送一个广播帧,该帧从交换机的端口1进入交换机。由于端口1的类型是Access。它会对接收到的未打标签的普通以太网MAC帧打标签,也就是插入四字节的vlan标记字段。由于端口1的PVID值等于1,因此所插入的四字节VLAN标记字段中的VID的值也等于1。该广播帧中的VID的取值与端口2的PVID值都等于1,端口2的类型是Access。因此,交换机1会从端口2对帧进行去标签转发。
计算机网络:P3.3-数据链路层(下)_第79张图片
该广播帧中的VID的取值与端口5的PVID值都等于1。端口五的类型是Trunk,因此交换1会从端口5对帧进行去标签转发。很显然,该广播帧会从交换机2的端口5进入交换机2。
计算机网络:P3.3-数据链路层(下)_第80张图片
②Trunk端口的接收处理方法: 接收未打标签的帧。根据接收帧的端口的PVID给帧打标签,即插入四字节VLAN标记字段,字段中的VID取值与端口的PVID取值相等。对于本例,交换机2会对接收到的未打标签的普通以太网MAC帧打标签。也就是插入四字节的VLAN标记字段。由于端口5的PVID值等于1,因此所插入的四字节VLAN标记字段中的VID的值也等于1。该广播帧中的VID的取值与端口1和2的PVID值都等于1。端口1和2的类型都是Access,因此交换机2会从端口1和2对帧进行去标签转发。
计算机网络:P3.3-数据链路层(下)_第81张图片
计算机网络:P3.3-数据链路层(下)_第82张图片
再来看主机C发送广播帧的情况: 该帧从交换机1的端口3进入交换机,由于端口3的类型是Access,它会对接收到的未打标签的普通以太网MAC帧打标签,也就是插入四字节的VLAN标记字段。由于端口3的PVID值等于2,因此所插入的四字节VLAN标记字段中的VID的值也等于2。该广播帧中的VID的取值与端口4的PVID值都等于2,端口4的类型是Access,因此交换机1会从端口4对帧进行去标签转发。
计算机网络:P3.3-数据链路层(下)_第83张图片
该广播帧中的VID的取值与端口5的PVID值不相等。由于Trunk端口对VID不等于PVID的帧是直接转发的。因此,交换机1会从端口5对帧直接转发,也就是不去掉标签,带着标签直接转发。很显然,该802.1Q广播帧会从交换机2的端口5进入交换机2。Trunk端口接收已打标签的802.1Q帧。该广播帧中的VID的取值与端口3和4的PVID值都等于2,端口3和4的类型都是Access类型,因此交换机2会从端口3和4对帧进行去标签转发。
在这里插入图片描述
计算机网络:P3.3-数据链路层(下)_第84张图片
总结: 通过本例可以看出。在由多个交换机互连而成的交换式以太网中划分VLAN时,连接主机的交换机端口应设置为Access类型,交换机之间互连的端口应设置为Trunk类型。

练习

上图给出了用于交换机互连的Trunk端口的PVID值的组合,试回答以下问题
(1)主机A发送广播帧,则帧的传递过程是什么?
(2)主机C发送广播帧,则帧的传递过程是什么?
(3)从上述过程可以得出什么结论?
解析:
计算机网络:P3.3-数据链路层(下)_第85张图片


Hybrid端口

Hybrid端口即可用于交换机之间或交换机与路由器之间的互连,这一点与Trunk端口相同。也可用于交换机与用户计算机之间的互连,这一点又与Access端口相同。除此之外,Hybrid端口的绝大部分功能与Trunk端口相同,不同点在于Hybrid端口的发送处理方法。Hybrid端口会查看帧的VID是否在端口的去标签列表中。若存在,则去标签后再转发。若不存在,则直接转发。接下来,我们通过一个简单的应用实例来说明Hybrid端口的功能。
例子: 主机A、B、C连接在同一个交换机的不同接口上。请利用Hybrid端口的功能实现以下应用需求:A和B都能与C相互通信,但A与B不能相互通信。
解决方案: 我们可以将这三台主机所连接的交换机的三个端口划分到不同的VLAN,并且端口类型设置为Hybrid。假设这三个VLAN分别是VLAN10、VLAN20、VLAN30,相应的PVID分别为10、20、30。在端口1的去标签列表中配置VLAN10和VLAN30。在端口2的去标签列表中配置VLAN20和VLAN30。在端口3的去标签列表中配置VLAN10、VLAN20、VLAN30。
计算机网络:P3.3-数据链路层(下)_第86张图片
主机A给C发送数据帧。该帧从交换机的端口1进入交换机。由于端口1的类型是Hybrid的,它会对接收到的未打标签的普通以太网MAC帧打标签,也就是插入四字节的VLAN标记字段。由于端口1的PVID值等于10,因此所插入的四字节VLAN标记字段中的VID的值也等于10。该帧将从端口3转发,由于帧中的VID的取值在端口3的去标签列表中,因此该帧会被去标签转发。这样主机C就可以收到主机A发送的数据帧。同理,主机C给A发送数据帧主机A同样可以收到,我们就不再演示了。
计算机网络:P3.3-数据链路层(下)_第87张图片
主机B给C发送数据帧。该帧从交换机的端口2进入交换机。由于端口2的类型是Hybrid的,它会对接收到的未打标签的普通以太网MAC帧打标签,也就是插入四字节的VLAN标记字段。由于端口2的PVID值等于20,因此所插入的四字节VLAN标记字段中的VID的值也等于20。该帧将从端口3转发,由于帧中的VID的取值在端口3的去标签列表中,因此该帧会被去标签转发。这样主机C就可以收到主机B发送的数据帧。
计算机网络:P3.3-数据链路层(下)_第88张图片
主机A给B发送数据帧的。该帧从交换机的端口1进入交换机,给该帧打标签,其中VID取值为10。该帧将从端口2转发,由于帧中的VID的取值不在端口2的去标签列表中,因此,该帧被直接转发。这样主机B就会收到一个带有VLAN标记的802.1Q帧。但是主机B可以识别普通以太网MAC帧,而不能识别802.1Q帧只能丢弃该帧。同理,主机B给A发送的普通以太网MAC帧。主机A收到的却是802.1Q帧无法识别而丢弃。
计算机网络:P3.3-数据链路层(下)_第89张图片


小测验

1、以下这些说法中,错误的是
A. IEEE 802.1Q帧对以太网的MAC帧格式进行了扩展,插入了4字节的VLAN标记
B. 从交换机Access端口进入交换机的普通以太网帧会被交换机插入4字节VLAN标记
C. 交换机之间传送的帧可能是IEEE 802.1Q帧,也可能是普通以太网帧
D. 交换机的Trunk类型端口转发IEEE 802.1Q帧时,必须删除其4字节VLAN标记
答案:D

你可能感兴趣的:(计算机网络,http,https,网络安全,网络协议,tcp/ip)