ITN网络课程笔记(七)


七、以太网交换

以太网和无线局域网是当前使用最广泛的两种LAN技术。以太网支持高达 100 Gbps 的带宽,这就是其受欢迎的原因。

模块目标: 说明以太网如何在交换网络中运行。

主题标题 主题目标
以太网帧 说明以太网子层与帧字段之间的关系。
以太网 MAC 地址 描述以太网 MAC 地址。
MAC 地址表 说明交换机如何构建 MAC 地址表和转发帧。
交换机速率和转发方法 阐述第 2 层交换机端口上可用的交换机转发方法 和端口设置。

1、以太网帧

1.1、以太网封装

本模块首先讨论以太网技术,包括解释 MAC 子层和以太网帧字段。

以太网是如今广泛使用的两种局域网技术之一,另一种是无线局域网(WLAN)。它使用有线通信,包括双绞线、光纤链路和同轴电缆。

以太网在数据链路层和物理层运行,是 IEEE 802.2 和 802.3 标准中定义的一系列网络技术。以太网支持的数据带宽为:

  • 10 Mbps
  • 100 Mbps
  • 1000 Mbps (1 Gbps)
  • 10,000 Mbps (10 Gbps)
  • 40,000 Mbps (40 Gbps)
  • 100,000 Mbps (100 Gbps)

以太网由数据链路层和物理层的协议定义

1.2、数据链路子层

IEEE 802 LAN/MAN 协议,包括以太网,使用以下两个单独的数据链路层子层进行操作。它们是**逻辑链路控制 (LLC) 和介质访问控制 (MAC)**,如图所示。

1.3、MAC子层

MAC 子层负责数据封装和访问介质。

数据封装

IEEE 802.3 数据封装包括以下内容:

  • 以太网帧 - 这是以太网帧的内部结构。
  • 以太网寻址 - 以太网帧中包含源和目的MAC 地址,用于将该以太网帧从以太网网卡传送到同一LAN上的以太网网卡。
  • 以太网错误检测 - 以太网帧中包含用于错误检测的帧校验序列 (FCS) 帧尾。

访问介质

如图所示,IEEE 802.3 MAC 子层包含了在各种介质(包括铜和光纤)上不同类型的以太网通信标准的规格。

回想一下,使用总线拓扑或集线器的传统以太网是一种共享的半双工介质。半双工介质上的以太网使用争用访问方法,即载波侦听多路访问/冲突检测 (CSMA/CD),这确保一次只有一个设备进行传输。CSMA/CD 允许多个设备共享相同的半双工介质,如果多台设备同时传输,则会发生冲突。它还提供了一种回退重传算法。

如今的以太网 LANs 使用的交换机是全双工的。在全双工模式下运行的以太网交换机不需要通过 CSMA/CD 进行访问控制。

1.4、以太网帧字段

以太网帧大小的最小值为 64 个字节,最大值为 1518 个字节。这包括从“目的 MAC 地址”字段到“帧校验序列 (FCS)”字段的所有字节。在描述帧的大小时,不包含“前导码”字段。

任何长度小于 64 个字节的帧都被接收站点视为“冲突碎片”或“残帧”而自动丢弃。超过 1500 个字节的数据帧被视为“巨帧”或“小型巨型帧”。

如果发送的帧小于最小值或者大于最大值,接收设备将会丢弃该帧。帧之所以被丢弃,可能是因为冲突或其他多余信号。它们被视为无效。大多数快速以太网和千兆以太网交换机和网卡通常都支持巨帧。

这张图显示了以太网帧中的每个字段。有关每个字段功能的详细信息,请参阅表格。

Ethernet Frame Fields

Ethernet Frame Fields Detail

字段 说明
前导码和帧首定界符字段 前导码(7 字节)和帧首定界符(SFD),也称为 帧首(1 字节),该字段用于发送设备 与接收设备之间的同步。帧开头的八个字节 用于引起接收节点的注意。基本上,前几个字节的 作用是告诉接收方准备接收新帧。
目的 MAC 地址字段 该 6 字节字段是预期接收方的标识符。读者应该还记得, 此地址被第2层用来协助设备 确定帧是否发送到目的地。帧中的地址将会与设备中的 MAC 地址进行比对。如果匹配, 设备就接受该帧。可以是单播、组播或广播 地址。
源 MAC 地址字段 该 6 字节字段标识发出帧的网卡 或接口。
类型/长度 该字段包含两个字节,标识封装于以太网帧中的 上层协议。常见值为十六进制,0x800 用于 IPv4, 0x86DD 用于 IPv6,0x806 用于 ARP。 注意:您也可能会看到此字段称为 EtherType、类型或长度。
数据字段 该字段(46-1500 字节)包含来自 较高层的封装数据,一般是第3层PDU或更常见的IPv4 数据包。所有帧至少必须有 64 个字节。如果封装的是小数据包, 则使用填充位将帧 增大到最小值
帧校验序列字段 “帧校验序列 (FCS)”字段(4 个字节)用于检测帧中 的错误。它使用循环冗余校验 (CRC)。发送设备 在帧的 FCS 字段中包含 CRC 的结果。接收设备 接收帧并生成 CRC 以查找 错误。如果计算匹配,就不会发生错误。计算 不匹配则表明数据已经改变。因此, 帧会被丢弃。数据的变化可能是 由于代表比特位的电信号受到干扰所致。

1.5、检测

1、LLC数据链路子层通过软件驱动程序控制网络接口

2、MAC子层的功能:控制对介质的访问,检查接收位中的错误,使用CSMA/CD或CSMA/CA来支持以太网技术

2、以太网MAC地址

2.1、MAC地址和十六进制

在网络中,IPv4 地址使用十进制以10为基数的数制系统和二进制以2为基数的数制系统来表示。IPv6 地址和以太网地址使用十六进制 以16为基数的数制系统表示。

2.2、以太网MAC地址

在以太网中,每台网络设备都连接到同一个共享介质。MAC 地址用于标识本地网段上的物理源和目的设备。MAC 编址为 OSI 模型的数据链路层提供了设备识别方法。

以太网 MAC 地址是使用 12个十六进制数字表示的 48 位地址,因为一个字节等于 8 位,我们也可以说 一个MAC 地址长度为 6 个字节。

当供应商为设备或以太网接口分配 MAC 地址时,供应商必须执行以下操作:

  • 使用其分配的 OUI 作为前 6 个十六进制数字。
  • 为后 6 个十六进制数字分配唯一值。

因此,以太网 MAC 地址由6个十六进制供应商 OUI 代码和6个十六进制供应商分配的值组成

供应商有责任确保其设备不被分配相同的 MAC 地址。但是,由于制造过程中出现的错误、某些虚拟机部署方式中的错误或使用多种软件工具之一进行的修改,可能存在重复的 MAC 地址。若出现以上任一情况,必须在新网卡或软件中修改 MAC 地址。

2.3、帧处理

MAC 地址通常称为烧录地址 (BIA),因为传统上该地址被烧录到网卡的只读存储器(ROM)中。这意味着该地址会永久编码到 ROM 芯片中。

注意: 在现代 PC 操作系统和网卡中,可以在软件中更改MAC 地址。当试图访问基于 BIA 进行过滤的网络时,这一点非常有用。因此,根据 MAC 地址来过滤或控制流量就不再安全了。

当计算机启动时,网卡将 MAC 地址从 ROM 复制到 RAM 中。设备在向以太网络转发消息时,以太网报头包含这些:

  • 源 MAC 地址 – 这是源设备网卡的 MAC 地址。
  • 目的 MAC 地址 -这是目标设备网卡的 MAC 地址。

收到以太网帧时,网卡会查看帧中的目的 MAC 地址是否与设备 RAM 中存储的物理 MAC 地址匹配。如果不匹配,设备就会丢弃帧。如果与帧中的目的 MAC 匹配,则网卡会将帧向上传送到 OSI 层进行解封处理。

**注意:**如果目的 MAC 地址是主机为其成员的广播或组播组时,以太网网卡也会接收帧。

任何作为以太网帧的源或目的设备都有一个以太网网卡,因此也有一个MAC地址。这些设备包括工作站、服务器、打印机、移动设备和路由器。

2.4、单播MAC地址

在以太网中,第 2 层单播、组播和广播通信会使用不同的 MAC 地址。

单播 MAC 地址是帧从一台发送设备去往一台目的设备时使用的唯一地址。

在动画中的示例中,IPv4 地址为 192.168.1.5 的主机(源)向 IPv4 单播地址为 192.168.1.200 的服务器请求网页。要传送和接收单播数据包,目的 IP 地址必须包含于 IP 包报头中。相应的目的 MAC 地址也必须出现于以太网帧报头中。只有 IP 地址和 MAC 地址相结合才能将数据传送到特定的目的主机。

源主机用来确定目的IPv4地址所对应的目的 MAC 地址的流程称为地址解析协议 (ARP)。源主机用来确定目的IPv6地址所对应的目的 MAC 地址的流程称为邻居发现 (ND)。

注意: 源 MAC 地址必须始终为单播地址。

2.5、广播MAC地址

以太网广播帧由以太网LAN上的每个设备接收和处理。以太网广播的功能如下:

  • 它有一个十六进制(在二进制中是 48 个 1)FF-FF-FF-FF-FF-FF的目的 MAC 地址。
  • 它向除输入端口以外的所有以太网交换机端口泛洪。
  • 路由器不会转发该帧。

如果封装的数据是IPv4广播包,这意味着该数据包包含一个目的IPv4地址,该地址的主机部分全部为一(1)。这种地址值表示本地网络(广播域)中的所有主机都将接收和处理该数据包。

如动画所示,源主机向其网络中的所有设备发送 IPv4 广播数据包。IPv4 目的地址为广播地址 192.168.1.255。如果 IPv4 广播数据包被封装在以太网帧内,则目的 MAC 地址为十六进制(在二进制中是 48 个 1)的 FF-FF-FF-FF-FF-FF 广播 MAC 地址。

IPv4 的 DHCP 是使用以太网和 IPv4 广播地址的一个协议示例。

但是,并非所有以太网广播都带有 IPv4 广播数据包。例如,ARP 请求不使用 IPv4,但 ARP 消息却作为以太网广播发送。

2.6、组播MAC地址

以太网组播帧由属于同一组多播组的以太网LAN上的一组设备接收和处理。以太网组播的功能如下:

  • 当封装数据为IPv4组播包时,目的MAC地址为01-00-5E;当封装数据为IPv6组播包时,目的MAC地址为33-33
  • 当封装的数据不是IP时,还有其他预留的组播目的MAC地址,如生成树协议(STP)和链路层发现协议(LLDP)。
  • 除非交换机被配置为用于组播窥探,否则它将向除传入端口之外的所有以太网交换机端口泛洪。
  • 它不会由路由器转发,除非路由器配置为路由组播数据包。

如果封装的数据是一个IP组播包,则属于组播组的设备都分配有该组播组IP地址。IPv4 组播地址的范围为 224.0.0.0 到 239.255.255.255。IPv6 组播地址的范围以 ff00::/8 开头。由于组播地址代表一组地址(有时称为主机组),因此只能用作数据包的目的地址。源地址始终应为单播地址。

如同单播和广播地址一样,组播 IP 地址也需要相应的组播 MAC 地址才能在本地网络中传送帧。组播MAC地址与IPv4或IPv6组播地址相关联,并使用来自IPv4或IPv6的编址信息。

单击动画中的 “播放” 以查看如何处理组播帧。在此示例中,目的 MAC 地址和目的 IP 地址都是广播。

路由协议和其他网络协议会使用组播地址。视频和图像软件等应用程序也可能使用组播地址,尽管组播应用程序并不常见。

3、MAC地址表

3.1、交换机基础知识

既然您已经了解了所有关于以太网MAC地址的知识,现在就该讨论交换机如何使用这些地址将帧转发(或丢弃)到网络上的其他设备。如果交换机只是转发出它接收到的每一帧到所有端口,您的网络将会非常拥挤,以至于它可能会完全停止工作。

第 2 层以太网交换机使用 MAC 地址做出转发决策。它完全忽视帧的数据部分的协议,例如 IPv4 数据包,一个ARP消息或一个IPv6 ND数据包。交换机仅根据第 2 层以太网 MAC 地址做出转发决策。

一个以太网交换机检查它的MAC地址表,为每个帧做出一个转发决策,不像传统的以太网集线器,向除了传入端口以外的所有端口重复发出比特位。如图所示,四端口交换机已启动。如表所示,MAC地址表还未获知四台连接的 PC 的 MAC 地址。

注意: 缩短 MAC 地址是为了便于演示。

交换机MAC地址表示空的

注意: MAC 地址表有时也称为内容可寻址内存 (CAM) 表。虽然 CAM 表这一术语相当常见,但在本课程中,我们将称其为 MAC 地址表。

3.2、交换机学习和转发

交换机通过检查端口传入帧的源 MAC 地址来动态构建 MAC 地址表。交换机通过匹配帧中的目的 MAC 地址与 MAC 地址表中的条目来转发帧。

学习

检查源MAC地址

进入交换机的每个帧被检查,以确定其中是否有可被学习的新信息。它是通过检查帧的源 MAC 地址和帧进入交换机的端口号来完成这一步的。如果源 MAC 地址不存在,会将其和传入端口号一并添加到表中。如果源 MAC 地址已存在于表中,则交换机会更新该条目的刷新计时器。默认情况下,大多数以太网交换机将条目在表中保留 5 分钟。

如图所示,PC-A 正在向 PC-D 发送以太网帧。如表所示该交换机将 PC-A 的 MAC 地址添加到MAC地址表中。

注意: 如果源 MAC 地址已经保存在表中,但是对应的是不同的端口,那么交换机会将其视为一个新的条目。使用相同的 MAC 地址和最新的端口号来替换该条目。

  1. PC-A 发送一个以太网帧。
  2. 交换机会把PC-A 的端口号和 MAC 地址添加到 MAC 地址表中。

转发

查找目的MAC地址

如果目的 MAC 地址为单播地址,该交换机会看帧中的目的 MAC 地址与 MAC 地址表中的条目是否匹配。如果表中存在该目的MAC地址,交换机会从指定端口转发帧。如果表中不存在该目的MAC地址,交换机会从除传入端口外的所有端口转发帧。这称为未知单播。

如图所示,交换机的表中没有目的主机 PC-D 的 MAC 地址,因此交换机会从除端口 1 外的所有端口转发帧。

注意: 如果目的 MAC 地址为广播或组播,该帧也将被泛洪到除传入端口外的所有端口。

  1. 目的 MAC 地址不在表中
  2. 交换机将该帧转发到所有端口。

3.3、过滤帧

交换机是从不同的设备接收帧,因此它可以通过检查每个帧的源 MAC 地址来填充它的 MAC 地址表。如果MAC 地址表包含目的MAC 地址,则交换机将“滤过”该帧并将其从单个端口转发出去。

PC-D 到转换机

在图中,PC-D 正在回复 PC-A。 交换机在端口 4 上的传入帧中看到 PC-D 的 MAC 地址。然后,交换机将 PC-D 的 MAC 地址放入与端口 4 关联的 MAC 地址表中。

交换机会把PC-D 的端口号和 MAC 地址添加到 MAC 地址表中。

交换机到PC-A

下一步,因为该交换机的MAC地址表中存在 PC-A 的目的 MAC 地址,它将仅从端口 1 将该帧发出去,如图所示。

  1. 该交换机有目的MAC地址条目。
  2. 交换机过滤帧,仅将其从端口1发出。

PC-A到交换机再到PC-D

下一步,PC-A 向 PC-D 发送另一帧,如图所示。MAC 地址表中已包含 PC-A 的 MAC 地址,因此该条目的五分钟刷新计时器被重置。下一步,因为该交换机的表中存在 PC-D 的目的 MAC 地址,它将仅从端口 4 将该帧发出去。

  1. 交换机从 PC-A 接收另一帧,并刷新端口 1 的 MAC 地址条目的计时器。
  2. 该交换机具有目的MAC 地址的最近条目,并过滤帧,只将其从端口4转发出去。

3.4、视频-相连交换机上的MAC地址表

交换机的单个端口可以与多个 MAC 地址关联。这种情况在交换机与另一个交换机连接时很常见。交换机为每个收到的帧中的源 MAC 地址创建一条有单独的 MAC 地址表条目。

3.5、视频-将帧发送到默认网关

如果一台设备的 IP 地址在远程网络上,则不能将以太网帧直接发送到目的设备。而是将以太网帧发送到默认网关(路由器)的 MAC 地址。

3.6、练习交换(重要)

4、交换机速率和转发方法

4.1、思科交换机上的帧转发方法

正如您在上一主题中了解到的那样,交换机使用其 MAC 地址表来确定用于转发帧的端口。对于思科交换机,实际上有两种帧转发的方法,根据具体情况,有充分的理由使用其中一种来代替另一种。

在过去,交换机使用下面的两种转发方法之一来进行网络端口间的数据交换:

  • 存储转发交换 - 这个帧转发的方法接收整个帧并计算CRC。CRC 根据帧中的比特位为 1 的位数量,使用数学公式来确定收到的帧是否有错。如果 CRC 有效,则交换机查找目的地址,目的地址决定了转发接口。帧然后从正确的端口转发出去。
  • 直通交换 - 这种帧转发的方法在收到整个帧之前即转发帧。在可以转发帧之前,至少必须读取帧的目的地址。

存储转发交换的一大优点是,它可以在传播帧之前确定帧是否有错误。当在帧中检测到错误时,交换机丢弃该帧。丢弃有错的帧可减少损坏的数据所耗用的带宽量。存储转发交换对于融合网络中的服务质量 (QoS) 分析是必需的,在融合网络中,必须对帧进行分类以划分流量优先级。例如,IP 语音数据流的优先级需要高于 Web 浏览流量。

4.2、直通交换

在直通交换中,交换机在收到数据时立即处理数据,即使传输尚未完成。交换机只缓冲帧的一部分,缓冲的量仅足以读取目的 MAC 地址,以便确定转发数据时应使用的端口。目的 MAC 地址位于帧中前导码后面的前 6 个字节。交换机在其交换表中查找目的 MAC 地址,确定转发端口,然后通过指定的交换机端口将帧转发到其目的地。交换机对该帧不执行任何错误检查

直通交换有两种变体:

  • 快速转发交换 - 快速转发交换提供最低程度的延时。快速转发交换在读取目的地址之后立即转发数据包。由于快速转发交换在收到整个数据包之前就开始转发,因此有时候中继数据包时会出错。这种情况并不经常发生,而且目的网络适配器在收到含错数据包时会将其丢弃。在快速转发模式下,延时是指从收到第一个位到传出第一个位之间的时间差。快速转发交换是典型的直通交换方法。
  • 免分片交换 - 在免分片交换中,交换机在转发之前存储帧的前 64 个字节。可以将免分片交换视为存储转发交换和直通交换之间的折衷。免分片交换只存储帧的前 64 个字节的原因是,大部分网络错误和冲突都发生在前 64 个字节。免分片交换在转发帧之前对帧的前 64 个字节执行小错误检查以确保没有发生过冲突,并且尝试通过这种方法来增强快速转发交换功能。免分片交换是存储转发交换的高延时和高完整性与快速转发交换的低延时和弱完整性之间的折衷。

某些交换机可配置为按端口执行直通交换,当达到用户定义的错误阈值时,这些端口自动切换为存储转发。当错误率低于该阈值时,端口自动恢复到直通切换。

4.3、交换机上的内存缓冲

以太网交换机在转发帧之前,可以使用缓冲技术存储帧。当目的端口由于拥塞而繁忙时,也可以使用缓冲。交换机将帧存储起来,直到可以传输。

如表所示,有两种内存缓冲方法:

Memory Buffering Methods

方法 描述
基于端口的内存 帧存储在链接到特定传入端口和传出 端口的队列中。只有当队列前面的所有帧都成功传输后, 才会将帧传输到传出端口。由于目地端口繁忙, 单个帧可能会造成内存中所有帧的传输延迟。即使其他帧可以传送到开放的目的端口, 这种延迟仍然会发生。
共享内存 将所有帧存储到由所有交换端口共享的公共内存缓冲区中, 并且动态分配一个端口所需的 缓冲区内存量。缓冲区中的帧动态地链接到目的端口, 允许在一个端口上接收数据包,然后 在另一个端口上发送,而无需移动到另一个队列。

而且共享内存缓冲也意味着存储较大帧的能力,丢弃的帧可能较少。这对于非对称交换非常重要,因为它允许在不同端口上使用不同的数据速率,比如将服务器连接到 10 Gbps 的交换机端口,而pc连接到 1 Gbps 的端口。

而且共享内存缓冲也意味着存储较大帧的能力,丢弃的帧可能较少。这对于非对称交换非常重要,因为它允许在不同端口上使用不同的数据速率,比如将服务器连接到 10 Gbps 的交换机端口,而pc连接到 1 Gbps 的端口。

4.4、双工和速率设置

交换机上最基本的两个设置是带宽(有时称为“速率”)和每个交换机端口的双工设置。交换机端口和连接的设备(例如计算机或另一台交换机)的双工设置和带宽设置必须匹配。

用于以太网通信的双工设置有两种:

  • 全双工 – 连接的两端均可同时收发信息。
  • 半双工 – 一次只能是连接的两端中其中一端发送信息。

自动协商是大多数以太网交换机和网卡的一项可选功能。它使两个设备自动协商最佳速率和双工性能。如果两台设备具有最高常见带宽的功能,则会选择全双工。

在图中,PC-A 的以太网网卡可在全双工或半双工模式下,以及以 10 Mbps 或 100 Mb速率运行。

PC-A 连接到交换机 S1 的端口 1 上,可在全双工或半双工模式下运行以及以 10 Mbps、100 Mbps 或 1000 Mbps (1 Gbps) 的速率运行。如果两台设备使用自动协尚,则工作模式为全双工和 100 Mbps。

注意: 大多数思科交换机和以太网网卡默认采用自动协商功能,以提高速率和实现双工。千兆以太网端口仅以全双工模式运行。

双工不匹配是以太网链路出现性能问题的常见原因之一。当链路上的一个端口在半双工模式下运行,而另一个端口在全双工模式下运行时,就会发生双工不匹配

当链路上的一个或两个端口被重置时,会发生双工不匹配,自动协调过程并不会使链路上的两个端口的配置相同。当用户重新配置链路的一端而忘记重新配置另一端时,也会出现这样的情况。链路的两端均应都使用或都不使用自动协商。最佳实践是将两个以太网交换端口都配置为全双工。

4.5、Auto-MDIX

设备之间的连接曾经要求使用交叉线或直通线。所需的线缆类型取决于互连设备的类型。

交叉线用于连接相似的设备,而直通电缆主要用于连接不同的设备。

注意: 路由器和主机之间的直连需要使用交叉线。

现在,大多数交换机设备都支持自动介质相关接口交叉 (auto-MDIX) 功能。当该功能启用时,交换机可检测连接到端口的线缆类型,并相应地配置接口。因此,如果要连接到交换机上的铜缆 10/100/1000 端口,您既可以使用交叉线,也可以使用直通线,而无需考虑连接另一端的设备类型。

在运行思科 IOS Release 12.2(18)SE 或更高版本的交换机上,默认启用 auto-MDIX 功能。当然,该功能可以被禁用。因此,您应始终使用正确的线缆类型,而不是依赖auto-MDIX 功能。Auto-MDIX 可以使用接口配置命令 mdix auto 重新启用。

单元检测

1、MAC地址必须全球唯一

2、如果以太网网络上的主机接收到的帧的目的 MAC 地址与其自己的 MAC 地址不匹配,它会丢弃该帧,如果匹配,网卡会将帧传送至下一个 OSI 层。

3、以太网帧将控制信息添加到网络协议层数据中


文章作者: wck
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 wck !
评论
  目录