03.《交换的底层逻辑:从基础到应用》

交换基础

文章目录

  • 交换基础
    • [MAC 地址:设备的 "全球唯一身份证"](#MAC 地址:设备的 “全球唯一身份证”)
      • [MAC 地址的基本属性](#MAC 地址的基本属性)
      • [MAC 地址的三类类型(按通信范围划分)](#MAC 地址的三类类型(按通信范围划分))
    • 以太帧
    • 交换机的核心工作机制
      • 交换机的三个核心动作
      • [MAC 地址表的生成与使用](#MAC 地址表的生成与使用)
        • [学习源 MAC 地址(建表)](#学习源 MAC 地址(建表))
        • [查询 MAC 地址表(查表)](#查询 MAC 地址表(查表))
        • [维护 MAC 地址表(老化)](#维护 MAC 地址表(老化))
      • [实验:通过 PC 间 ping 测试理解交换机转发](#实验:通过 PC 间 ping 测试理解交换机转发)
        • 实验环境
        • 实验流程
        • 操作步骤
          • [配置 PC1 的 IP 地址(以ENSP模拟器 PC 为例)](#配置 PC1 的 IP 地址(以ENSP模拟器 PC 为例))
          • [PC1 ping PC2(触发数据帧传输)](#PC1 ping PC2(触发数据帧传输))
          • [查看交换机的 MAC 地址表](#查看交换机的 MAC 地址表)
          • [(可选)手动修改 MAC 地址表老化时间](#(可选)手动修改 MAC 地址表老化时间)
    • 总结

在局域网中,交换机是连接终端设备(如电脑、打印机)的核心设备,它能高效转发数据,让不同设备之间实现通信。要理解交换机的工作原理,首先需要掌握两个关键概念: MAC 地址 (设备的 "身份证")和 以太帧 (数据的 "包装盒"),再结合交换机的转发逻辑,就能清晰理解局域网内数据的传递过程。

MAC 地址:设备的 "全球唯一身份证"

MAC 地址又称 "物理地址" 或 "硬件地址",是网卡出厂时固化的唯一标识 ------ 就像每个人的身份证号,全球不会有两块网卡的 MAC 地址完全相同。

MAC 地址的基本属性

  1. 格式与长度
    • 长度:48 比特(bit),换算为 6 字节(Byte),用 16 进制表示(0-9、A-F)。
    • 书写格式:通常用 "-" 或 ":" 分隔,比如54-89-98-A0-56-5654:89:98:A0:56:56
  2. 地址结构
    • 前 24 比特(前 3 字节):OUI(厂商识别码),由国际组织分配给网卡厂商,比如54-89-98代表某一厂商。
    • 后 24 比特(后 3 字节):设备识别码,由厂商自行分配给每一块网卡,确保同厂商内不重复。

MAC 地址的三类类型(按通信范围划分)

MAC 地址分为单播、组播、广播三类,对应不同的 "通信场景",核心区别在第 8 个比特(从左数第 2 个字符的第 1 位)。

类型 核心特征 通信场景(通俗理解) 举例
单播 MAC 地址 第 8 比特为 0(比如地址第 2 个字符是 0、2、4 等偶数,或 A、C、E 等) 一对一通信("点对点聊天"),比如 PC1 给 PC2 发文件 00-1E-10-DD-DD-02(第 2 个字符是 0,第 8 比特为 0)
组播 MAC 地址 第 8 比特为 1(比如地址第 2 个字符是 1、3、5 等奇数,或 B、D、F 等) 一对多通信("拉群聊"),比如给局域网内所有视频设备发直播流 01-80-C2-00-00-01(第 2 个字符是 1,第 8 比特为 1)
广播 MAC 地址 所有 48 比特全为 1,固定格式为FF-FF-FF-FF-FF-FF 一对所有通信("在大厅喊口号"),比如 PC1 查询局域网内的打印机 FF-FF-FF-FF-FF-FF(所有字符都是 F,对应比特全为 1)

参考华为文档图例:

以太帧

在数据链路层,数据不是 "裸奔" 传输的,而是会被包装成 "以太帧"(简称 "数据帧")------ 就像寄快递时要把物品装进带地址的盒子,以太帧也包含 "收件地址""寄件地址" 和 "包裹内容"。

以太帧的两个标准格式

目前主流的以太帧格式有两种:Ethernet_II(常用,比如我们日常上网、传文件用的就是这种)和 IEEE 802.3(多用于工业控制等特殊场景),两者的区别主要在 "中间字段"。参考华为文档图例:

1. Ethernet_II 格式(常用)
字段 长度 作用(通俗理解)
D.MAC(目的 MAC 地址) 6 字节 收件地址:数据要发给哪个设备的网卡
S.MAC(源 MAC 地址) 6 字节 寄件地址:数据来自哪个设备的网卡
Type(类型字段) 2 字节 说明 "盒子里装的是什么类型的数据",比如0800代表 IP 数据(日常上网数据)
用户数据 46-1500 字节 真正要传递的内容(比如微信消息、文件数据),最少 46 字节(不够会补零),最多 1500 字节
FCS(帧校验序列) 4 字节 校验数据是否损坏:接收方会计算校验值,若与 FCS 不一致,说明数据传丢了,会丢弃该帧
2. IEEE 802.3 格式(少用)

比 Ethernet_II 多了 "LLC" 和 "SNAP" 字段,用于兼容早期设备,核心字段作用类似:

字段 长度 作用
D.MAC 6 字节 目的 MAC 地址
S.MAC 6 字节 源 MAC 地址
Length(长度字段) 2 字节 说明 "用户数据的长度"(区别于 Ethernet_II 的 Type 字段)
LLC(逻辑链路控制) 3 字节 兼容早期局域网协议
SNAP(子网访问协议) 5 字节 包含 Org Code(3 字节,厂商码)和 Type(2 字节,数据类型),相当于把 Ethernet_II 的 Type 字段拆到这里
用户数据 38-1492 字节 核心数据(因多了 LLC 和 SNAP,比 Ethernet_II 少 8 字节)
FCS 4 字节 帧校验

以太帧的长度要求

无论哪种格式,整个以太帧的总长度必须在 64-1518 字节之间

  • 小于 64 字节:"短帧",可能是干扰或错误数据,交换机会直接丢弃。
  • 大于 1518 字节:"长帧",可能是异常数据包,交换机会同样丢弃。

数据帧的分类

和 MAC 地址对应,数据帧也分为三类,直接决定交换机的转发方式:

  1. 单播数据帧:目的 MAC 是单播地址(比如 PC1→PC2 的帧)。
  2. 组播数据帧:目的 MAC 是组播地址(比如给多台设备发直播的帧)。
  3. 广播数据帧:目的 MAC 是FF-FF-FF-FF-FF-FF(比如查询局域网设备的帧)。

交换机的核心工作机制

交换机的核心功能是 "高效转发数据帧",它靠一张 "MAC 地址表" 实现 ------ 这张表记录了 "MAC 地址→交换机接口→VLAN" 的对应关系,就像 "小区快递柜对照表"(哪个快递对应哪个柜子)。

交换机的三个核心动作

交换机收到数据帧后,会根据帧的类型和 MAC 地址表,执行三种动作之一:

动作 适用场景 通俗理解
单播转发 已知单播数据帧(MAC 地址表中有目的 MAC 的对应接口) "精准投递":根据地址表,把帧从对应接口发给目标设备,不打扰其他设备
泛洪 1. 未知单播数据帧(地址表中没有目的 MAC) 2. 组播数据帧 3. 广播数据帧 "群发找人":除了接收帧的接口,把帧从所有其他接口发出去,直到目标设备响应
丢弃 1. 帧长度小于 64 字节或大于 1518 字节 2. FCS 校验失败(数据损坏) "拒收垃圾":直接扔掉无效或错误的帧,避免占用网络资源

MAC 地址表的生成与使用

默认情况下,交换机的 MAC 地址表是空的,它会通过 "学习→查表→转发→老化" 四个步骤,动态维护地址表并实现转发:

学习源 MAC 地址(建表)

当交换机收到一个数据帧时,首先会 "记住" 帧的源 MAC 地址和 "接收该帧的接口",并把这对关系写入 MAC 地址表。

  • 例:PC1(MAC:54-89-98-A0-56-56)通过交换机的 GE0/0/1 接口发帧,交换机就会在地址表中添加一条记录:5489-98a0-5656 → GE0/0/1
查询 MAC 地址表(查表)

接着,交换机会查看帧的目的 MAC 地址,并在地址表中查找是否有对应的接口记录:

  • 若有记录(已知单播帧):执行 "单播转发",从对应接口发出去。
  • 若没有记录(未知单播帧):执行 "泛洪",从所有其他接口发出去。
维护 MAC 地址表(老化)

为了避免地址表过大(浪费设备资源),交换机对动态学习的 MAC 地址表项设置了 "老化时间"------ 默认 300 秒(5 分钟)。

  • 如果 5 分钟内,某条表项对应的设备没有再发数据,交换机会自动删除这条记录。
  • 若设备继续发数据,老化时间会 "重置"(重新从 5 分钟开始倒计时)。

实验:通过 PC 间 ping 测试理解交换机转发

通过实际操作,我们可以观察交换机如何学习 MAC 地址、生成地址表,以及如何转发数据帧。

实验环境

实验拓扑

设备 接口 IP 地址 MAC 地址
PC1 Ethernet 0/0/1 10.1.1.1/24 54-89-98-A0-56-56
PC2 Ethernet 0/0/1 10.1.1.2/24 54-89-98-C9-64-22
交换机(SW1) GE0/0/1(连 PC1)、GE0/0/2(连 PC2) 无(二层交换机无需配置 IP)
实验流程
  1. 配置 PC1 和 PC2 的 IP 地址(静态配置,确保同网段)。
  2. 用 PC1 ping PC2,触发数据帧传输,让交换机学习 MAC 地址。
  3. 查看交换机的 MAC 地址表,验证表项是否生成。
  4. (可选)等待 5 分钟后,再次查看地址表,验证老化功能。
操作步骤
配置 PC1 的 IP 地址(以ENSP模拟器 PC 为例)
  1. 打开 PC1 的 "基础配置" 界面,选择 "IPv4 配置" 为 "静态"。
  2. 填写参数:
    • IP 地址:10.1.1.1
    • 子网掩码:255.255.255.0
    • 网关:0.0.0.0(同网段通信无需网关)
  3. 点击 "应用",完成 PC1 配置。
  4. 重复上述步骤,配置 PC2 的 IP 为 10.1.1.2,子网掩码 255.255.255.0。如图:
PC1 ping PC2(触发数据帧传输)

在 PC1 的 "命令行" 界面输入 ping 命令,测试连通性:

bash 复制代码
PC1>ping 10.1.1.2  # 向PC2发送ping请求(ICMP协议数据包)
Ping 10.1.1.2: 32 data bytes, Press Ctrl_C to stop
Reply from 10.1.1.2: bytes=32 seq=1 ttl=128 time=1ms  # 收到PC2的回复,连通成功
Reply from 10.1.1.2: bytes=32 seq=2 ttl=128 time=1ms
  • 此时,PC1 和 PC2 之间会互发数据帧,交换机会自动学习两者的 MAC 地址。
查看交换机的 MAC 地址表

登录交换机(通过 Console 或远程登录),输入命令查看 MAC 地址表:

bash 复制代码
# 1. 进入交换机的用户视图(默认登录后就是用户视图)
<SW1>

# 2. 查看MAC地址表(命令:display mac-address,简写dis mac-address)
<SW1>display mac-address
MAC address table of slot 0:  # 插槽0的MAC地址表
-------------------------------------------------------------------------------
MAC Address       VLAN/VSI/SI   PEVLAN CEVLAN Port          Type      LSP/LSR-ID
-------------------------------------------------------------------------------
5489-98a0-5656    1             -      -      GE0/0/1       dynamic   -  # PC1的MAC,对应接口GE0/0/1,动态学习
5489-98c9-6422    1             -      -      GE0/0/2       dynamic   -  # PC2的MAC,对应接口GE0/0/2,动态学习
-------------------------------------------------------------------------------
Total matching items on slot 0 displayed = 2  # 共2条表项
  • 结果说明:交换机已通过 ping 测试,学习到 PC1 和 PC2 的 MAC 地址,并记录了对应的接口(GE0/0/1 和 GE0/0/2),类型为 "dynamic"(动态学习)。
(可选)手动修改 MAC 地址表老化时间

默认老化时间是 300 秒,若需修改(不推荐,除非特殊需求),可在交换机的系统视图中执行命令:

bash 复制代码
# 1. 进入系统视图
<SW1>system-view
[SW1]

# 2. 修改老化时间(单位:秒,范围10-1000000,0表示不老化)
[SW1]mac-address aging-time 600  # 将老化时间改为600秒(10分钟)
[SW1]quit  # 退出系统视图

# 3. 验证修改结果(查看系统配置)
<SW1>display current-configuration | include aging-time  # 查看老化时间配置
mac-address aging-time 600  # 确认已修改为600秒

总结

  1. MAC 地址:48 比特全球唯一,分单播(第 8 比特 0)、组播(第 8 比特 1)、广播(全 1)三类。

  2. 以太帧:数据链路层的传输单元,总长度 64-1518 字节,有 Ethernet_II 和 IEEE 802.3 两种格式。

  3. 交换机转发 :靠 MAC 地址表工作,核心动作是 "单播转发(已知单播)、泛洪(未知单播 / 组播 / 广播)、丢弃(无效帧)"。

    总结

  4. MAC 地址:48 比特全球唯一,分单播(第 8 比特 0)、组播(第 8 比特 1)、广播(全 1)三类。

  5. 以太帧:数据链路层的传输单元,总长度 64-1518 字节,有 Ethernet_II 和 IEEE 802.3 两种格式。

  6. 交换机转发:靠 MAC 地址表工作,核心动作是 "单播转发(已知单播)、泛洪(未知单播 / 组播 / 广播)、丢弃(无效帧)"。

  7. MAC 地址表:动态学习源 MAC 生成,默认老化时间 300 秒,确保地址表精简高效。

如涉及版权问题,请联系作者处理!!!!

相关推荐
VVVVWeiYee3 小时前
IP v 6
网络·网络协议·tcp/ip
‍。。。3 小时前
ubuntu 安装 vllm
linux·运维·ubuntu
forestqq4 小时前
华为L420国产笔记本(统信UOS桌面专业版1070)安装openEuler2403虚拟机
运维·虚拟化·统信
zzz100664 小时前
Shell 编程基础(续):流程控制与实践
linux·运维·服务器
leon_teacher5 小时前
HarmonyOS权限管理应用
android·服务器·前端·javascript·华为·harmonyos
三坛海会大神5556 小时前
《Shell 大道:筑基篇(下)—— 流控筑根基,数据任驱驰》
linux·运维·服务器·bash
奥特曼狂扁小怪兽6 小时前
Qt图片上传系统的设计与实现:从客户端到服务器的完整方案
服务器·开发语言·qt
蟾宫曲6 小时前
网络编程 04:TCP连接,客户端与服务器的区别,实现 TCP 聊天及文件上传,Tomcat 的简单使用
java·服务器·网络·tcp/ip·tomcat·端口
武汉格发Gofartlic8 小时前
HFSS许可证状态查询与管理
大数据·运维·人工智能·数据分析·自动化