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 秒,确保地址表精简高效。

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

相关推荐
Logan Lie20 小时前
Web服务监听地址的取舍:0.0.0.0 vs 127.0.0.1
运维·后端
Y淑滢潇潇20 小时前
RHCE 防火墙实验
linux·运维·rhce
wadesir21 小时前
当前位置:首页 > 服务器技术 > 正文Linux网络HSRP协议(实现路由器热备份与高可用性的实用指南)
linux·服务器·网络
稻谷君W21 小时前
Ubuntu 远程访问 Win11 WSL2 并固定访问教程
linux·运维·ubuntu
泡沫·21 小时前
4.iSCSI 服务器
运维·服务器·数据库
胡八一21 小时前
解决PHP未检测到您服务器环境的sqlite3数据库扩展报错
服务器·数据库·php
不解不惑21 小时前
OpenAI whisper 语音识别服务器搭建
服务器·whisper·语音识别
gaize121321 小时前
适合业务规模较大的场景的服务器测评
服务器
带土121 小时前
4. 两台win11 笔记本局域网内文件传输
网络
悠悠121381 天前
告别Zabbix?我用Netdata只花10分钟就搞定了50台服务器的秒级监控(保姆级实战)
运维·服务器·zabbix