--- tags: [计算机网络, Switch, Hub, Router, VLAN] create time: 2026-05-17 23:20 --- # Switch vs Hub vs Router ## 概述 这三种设备是构建局域网的核心组件,但它们工作在完全不同的 OSI 层,转发决策的依据也不同。理解它们的差异是设计网络拓扑的基础。 | 特性 | Hub(集线器) | Switch(交换机) | Router(路由器) | |------|-------------|-----------------|-----------------| | OSI 层级 | 物理层 L1 | 数据链路层 L2 | 网络层 L3 | | 寻址依据 | 无(全量复制) | MAC 地址 | IP 地址 + 路由表 | | 冲突域 | 全部共享 | 每个端口独立 | 每个接口独立 | | 广播域 | 不隔离 | 不隔离(同 VLAN) | **天然隔离** | | 性能 | 极低(半双工) | 高(全双工并行) | 依赖 CPU/ASIC | | 现代使用 | ❌ 已淘汰 | ✅ 局域网核心 | ✅ 网关/边界 | ## Hub(集线器)——已淘汰的共享介质 ### 工作原理 Hub 本质上就是一个多端口的中继器(Repeater)。收到任何端口的电信号,放大后复制到所有其他端口。 ```mermaid flowchart LR A["PC-A 发送"] -->|"信号"| H[Hub] H -->|"原样复制"| B["PC-B (收到!)"] H -->|"原样复制"| C["PC-C (碰撞! 🔥)"] style H fill:#FF6B6B,color:#fff ``` ### 致命缺陷 1. **所有端口在同一冲突域**:两台同时发送 = 碰撞 → CSMA/CD 退避 2. **只能半双工**:同一时刻要么收要么发 3. **无法隔离故障**:一台 PC 中毒疯狂发包会影响所有人 4. **安全性差**:所有流量对所有端口可见 ## Switch(交换机)——现代 LAN 核心 ### 工作原理 Switch 为每个端口维护一张独立的 MAC 表,只将帧转发到目标端口,实现"点对点"通信。 ```mermaid flowchart TD S["Switch
MAC 表: mac_A→Port1, mac_B→Port2"] PC_A["PC-A → Port1"] -->|"发给 Mac_B"| S S -->|"仅从 Port2 发出"| PC_B["PC-B"] PC_D["PC-D → Port4"] -->|"未知目标"| S S -->|"泛洪到 Port1,2,3"| N["Port1~3 都收到
只有正确的会处理"] style S fill:#98FB98,color:#000 ``` ### MAC 表学习流程 ```mermaid sequenceDiagram participant SW as Switch participant A as PC-A (mac_A) participant B as PC-B (mac_B) A->>SW: Frame(mac_A→mac_B) from Port1 SW->>SW: Learn: mac_A on Port1 SW->>B: Flood (mac_B unknown) B->>SW: Reply Frame(mac_B→mac_A) from Port2 SW->>SW: Learn: mac_B on Port2 A->>SW: Next Frame(mac_A→mac_B) from Port1 SW->>SW: Forward directly → Port2 only ✅ ``` ### Switch 的关键优势 | 特性 | 说明 | |------|------| | **每个端口一个冲突域** | 端口间互不影响 | | **全双工通信** | 收发光纤分开,可同时对发对收 | | **硬件转发** | ASIC 芯片查 MAC 表,延迟 < 1ms | | **背板带宽** | 交换机内部总线,决定交换能力上限 | | **VLAN 支持** | 802.1Q 实现逻辑分割 | ### 常见 Switch 规格参数 | 参数 | 说明 | 典型值 | |------|------|-------| | 端口速率 | 千兆/万兆/25G/100G | 1/10 Gbps | | 端口数 | 24/48 口最常见 | — | | 背板带宽 | 内部交换容量 | 双向 ≥ 端口总数 × 速率 × 2 | | 包转发率 | PPS (packets per second) | 10G 端口满速 ≈ 14.88M PPS | | 缓存 | SRAM 缓冲丢包 | 几 MB ~ 几百 MB | ## Router(路由器)——跨网段互联 ### 工作原理 Router 运行在 OSI 第三层,根据 **IP 路由表**做出转发决策,不同接口属于不同的子网和广播域。 ```mermaid flowchart TD subgraph "LAN 1 — 192.168.1.0/24" A["PC-A 192.168.1.10"] S["Local Switch"] end subgraph "Router Gateway" R["Router eth0: .1 / eth1: .1"] end subgraph "LAN 2 — 192.168.2.0/24" B["PC-B 192.168.2.10"] S2["Local Switch"] end A --> S --> R R --> S2 --> B style A fill:#DDA0DD,color:#000 style B fill:#DDA0DD,color:#000 style R fill:#98FB98,color:#000 ``` ### Router 转发动作详解 当 PC-A(192.168.1.10)要发数据给 PC-B(192.168.2.10)时: ```mermaid sequenceDiagram participant A as PC-A participant R as Router participant B as PC-B Note over A: 判断:192.168.2.10 不在本地子网?
→ 走默认网关 A->>R: Frame{SrcMac=A, DstMac=Gateway}
IP(Src=192.168.1.10,
Dst=192.168.2.10) Note over R: Step 1: Strip Ethernet Header
Step 2: 校验 IP Checksum
Step 3: 查路由表 → 下一跳 via eth1
Step 4: ARP 找 B 的 MAC
Step 5: Rebuild Ethernet Header R->>B: Frame{SrcMac=Gateway, DstMac=B}
IP(Src=192.168.1.10,
Dst=192.168.2.10) Note over R: ← MAC 改了 ← IP 没变 ``` ### 关键规则:IP 不变,MAC 逐跳改 ```mermaid flowchart LR A["原始帧
SrcMAC=A DstMAC=R1-E0
SrcIP=A DstIP=B"] -->|"通过 Router1"| M1["帧改写
SrcMAC=R1-E1 DstMAC=R2-E0
SrcIP=A DstIP=B ← 不变!"] M1 -->|"通过 Router2"| M2["帧改写
SrcMAC=R2-E1 DstMAC=B
SrcIP=A DstIP=B"] style A fill:#DDA0DD,color:#000 style M2 fill:#98FB98,color:#000 ``` > [!tip] 一句话记住区别 > **Switch 看 MAC 转发,Router 看 IP 转发。** Switch 是"同城快递",Router 是"跨省物流"。 ## 三者的协作关系 现实网络中,三者通常协同工作: ``` PC ──┬── Hub(旧时代遗留) ← 冲突域大,已淘汰 ├── Switch(局域网核心) ← MAC 转发表驱动,全双工 │ │ │ └── Router(网关) ← IP 路由表驱动,隔离广播域 │ │ │ └── ISP Router → Internet │ └── Wireless AP → Switch (AP 本身不转发) ``` ## 关联笔记 - [[hhs/NETWORK/MAC地址与广播域]] — Switch 如何管理 MAC 表和广播 - [[hhs/NETWORK/VLAN与Trunk]] — 三层交换机如何实现 VLAN 间路由 - [[hhs/NETWORK/静态路由与默认网关]] — Router 的路由表配置