计算机软件水平考试《 络工程师》-第3章 数据链路层-03

3.3.4 以太 帧格式

常用的以太 有两个标准:Ethernet V2IEEE 802.3,使用最多的是Ethernet V2的MAC帧格式

图3.18 MAC帧格式

在传输媒体上实际传送的要比MAC帧多8字节。这是因为当一个站刚开始接收MAC帧时,由于适配器的时钟尚未与到达的比特流达成同步,因此MAC帧的最前面的若干位就无法接收,结果使整个MAC帧成为无用的帧。为了使接收端迅速实现位同步,从数据链路层向下传到物理层时还要在帧的前面插入8字节(由硬件生成)。它由两个字段构成:前导字段(前同步码)和帧起始符字段(帧开始定界符)。

前导字段(前同步码):形为1010……1010(1和0交替码),共7个字节。其作用是使接收端的适配器在接收MAC帧时能够迅速调整其时钟频率,使之和发送端的时钟同步,也就是实现“位同步”(即比特同步)。

帧起始符(帧开始定界符):固定格式的10101011,共1个字节。它的前六位的作用和前同步码一样,最后两个连续的1是告诉接收端适配器“MAC帧的信息马上就要来了,请适配器注意接收”。

目的地址:目的MAC地址,共6个字节。

源地址:源MAC地址,共6个字节。

类型:标识上一层使用什么协议,以便把收到的MAC帧数据上交给上一层协议,共2个字节。2个字节即16个比特,那么可以标识0~65535(2的16次方=65535)。

0~1500用于表示长度值,1536~65535(0x0600~0xFFFF)用于描述类型值。

数据:上一层的协议数据,长度为0~1500字节。

填充:确保最小帧长为64个字节,长度为0~46字节。

校验和(FCS):4个字节共32位的循环冗余码,检验范围不包括前导字段和帧起始符字段。

上面的帧格式中没有“帧结束定界符”,那么接收端是如何判定帧结束呢?

以太 使用曼彻斯特编码,曼彻斯特编码的每一个码元(无论码元是1或0)的正中间一定有一次跳变(电压从低到高或从高到低)。当发送端把一个以太 帧发送完毕后,就不在发送其它码元了。因此,发送端 络适配器的接口上的电压也就不再变化了,这样,接收端就可以很容易地找到以太 帧的结束位置。从这个位置往前数4字节(FCS字段长度为4字节),就能确定数据字段的结束位置。

以太 最小帧长为64字节,是指从目的地址到校验和(FCS)的长度。

当数据字段的长度小于46字节时,数据链路层会在数据字段的后面加入一个整数字节的填充字段,以保证以太 的MAC帧长不小于64字节。

有效的MAC帧长度为64~1518字节。

3.3.5 交换式以太

集线器(hub)的功能和 线一样只是将数字信 发送到其它端口,它并不能识别哪些数字信 是前同步码、哪些是帧定界符、哪些是 络层数据首部。集线器只是把接收到的数据信 进行放大以达到增加传输距离的目的,所以集线器和 线一样工作在物理层。

图3.19 多个集线器组建的以太

如图3.19多个集线器组建的以太 形成了一个大的“冲突域”,随着以太 中计算机数量的增加, 络利用率就会大大降低。

为了把冲突控制在一个小的范围,便出现了“ 桥”这样的设备。 桥的接口对数据帧进行存储,然后根据帧的目标MAC地址进行转发。“ 桥”工作在数据链路层,可以隔绝“冲突域”。

图3.20 桥隔绝冲突域

随着技术的发展, 桥的接口越来越多, 桥逐渐取代了集线器, 桥的接口直接连接到了计算机,最后进而发展成现在的交换机(交换机实质上就是一个多接口的 桥)。

集线器(工作在物理层)— 桥(工作在数据链路层)—交换机(二层交换机工作在数据链路层)

交换机根据MAC地址进行转发和过滤收到的帧,当收到一个帧时,并不向所有的接口转发该帧,而是根据该帧的目的MAC地址,查找交换机中的MAC地址表,然后确定将该帧转发到哪一个接口,或者丢弃(过滤)。

交换机刚接入以太 时,其MAC地址表是空的,交换机会在计算机通信过程中自动构建MAC地址表(自学习)。

假设交换机的接口1、2、3、4分别连着计算机A、B、C、D,计算机A、B、C、D的MAC地址分别为MA、MB、MC、MD。

图3.21 交换机组

A向B发送一帧,从接口1接入到交换机,交换机收到帧后,先查找MAC地址表,由于此时的MAC地址表是空的,没有查到应从哪个接口转发该帧。此时,交换机把该帧的源地址MA和接口1写入MAC地址表中,并向接口1以外的所有接口广播这个帧。

当计算机B、C、D收到广播的这个帧时,C、D将丢弃这个帧(因为目的地址表面不是给自己的),只有计算机B收下这个目的地址正确的帧。

此时,MAC地址表中新写入了(接口1,地址MA)的项目,那么以后不管从哪一个接口收到帧,只要其目的地址是MA,就应当把收到的帧从接口1转发出去。

接着计算机B通过接口2向A发送一帧,交换机收到帧后,查找MAC地址表,发现MAC地址表中有计算机A的地址MA,表面要发送给A的帧(即目的地址为MA的帧)应从接口1转发。于是就把这个帧传送到接口1转发给计算机A。交换机把该帧的源地址MB和接口2写入MAC地址表中,由于地址表中已经有了A的地址MA,此时就没有必要广播收到的帧了。

计算机C或D只要向其它主机发送帧,交换机中的MAC地址表就会把转发到C或D的帧应当经过接口3或4写入到MAC地址表中。

为了适应 络中计算机发生的调整,MAC地址表中的每个项目都有一定的有效时间,过期会被自动删除。

使用交换机组 与集线器组 相比有以下特点:

(1)端口独享带宽

交换机的每个端口独享端口。例如10M交换机的每个端口带宽是10M,24口的10M交换机,其总的交换能力是240M。而集线器还是10M。

(2)安全

使用交换机组 比集线器组 安全。

(3)全双工通信

(4)不再使用CSMA/CD协议

由于使用全双工通信,数据链路层就不再需要使用CSMA/CD协议了,但是我们还是把交换机组建的 络称为以太 ,是因为帧格式和以太 一样。

(5)接口可以工作在不同的速率

交换机使用存储转发,也就是交换机的每一个接口都可以存储帧,从其它接口转发出去时,可以使用不同的速率。

(6)转发广播帧

广播帧会转发到除了发送端口以外的全部端口。广播帧就是指MAC地址48位二进制全是1。

交换机组建的以太 就是一个“广播域”。

图3.22 交换机隔绝冲突域

3.3.6 虚拟局域 (VLAN)

IEEE 802.1Q中,对虚拟局域 VLAN是这样定义的:

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

图3.23 虚拟局域 VLAN

虚拟局域 协议允许在以太 的帧格式中插入一个4字节的标示符,称为VLAN标记(tag),用来指明发送该帧的计算机属于哪一个虚拟局域 。插入VLAN标记得出的帧称为802.1Q帧。显然,如果还使用原来的以太 帧格式,那么就无法区分是否划分了虚拟局域 。如图3.22 所示在红色粗线链路上传输的帧是802.1Q帧,在其它链路上传输的仍然是普通的以太 帧。

图3.24 802.1Q帧格式

VLAN标记的前2个字节总是设置为0x8100(即二进制的10000001 00000000),称为IEEE 802.1Q标记类型。

当数据链路层检测到MAC帧的源地址字段后面的2个字节的值是0x8100时,就知道现在插入了4字节的VLAN标记。于是接着检查后面2个字节的内容。在后面的2个字节中,前3位是用户优先级字段,接着的1位是规范格式指示符CFI,最后的12位是该虚拟局域 VLAN标示符,它唯一地标示了这个以太 帧属于哪一个VLAN。

由于用于VLAN的以太 帧的首部增加了4个字节,因此以太 的最大帧长从原来的1518字节变为1522字节。

3.3.7 生成树协议(STP)

我们常见的企业局域 如图3.25所示,这样组建的局域 有一个弊端就是当汇聚层交换机一旦发生故障,那所有连接汇聚层交换机的设备将无法工作。或者当接入层交换机出现故障,那么连接到接入层交换机的计算机将无法访问服务器。

图3.25 单汇聚层局域

为了让交换机组建的 络更加可靠,通常会在 络中部署两台汇聚层交换机,这样即便有一台汇聚层交换机发生故障或者有一条链路出现问题,接入层交换机也可以通过另一台汇聚层交换机访问服务器。

图3.26 双汇聚层局域

但是像这样组建的 络又带来了新的问题“形成环路”。如果 络中计算机A发送广播帧,广播帧会在环路中一直转发,占用交换机的接口带宽,消耗交换机的资源, 络中的计算机会一直重复收到该帧,影响计算机接收正常通信的帧,这就是广播风暴

图3.27 广播风暴

为了解决双汇聚层交换机产生环路的问题,就有了生成树协议(因为树形结构是没有环路问题的)。生成树协议是IEE802.1D中定义的数据链路层协议,可应用于计算机 络中树形拓扑结构建立,主要作用是防止交换机 络中的冗余链路形成环路工作。

生成树协议将交换机的某些端口设置成阻断状态,这些端口就不再转发计算机发送的任何数据,一旦链路发生变化,生成树协议将重新设置端口的阻断或转发状态。

注:虚拟局域 (VLAN)和生成树协议(STP)在后续章节会详细讲述。

(未完待续)

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年10月5日
下一篇 2021年10月5日

相关推荐