資料鏈結層#

資料鏈結層(Data Link Layer)是 OSI 模型的第二層,負責在相鄰節點之間傳輸資料幀。本章涵蓋 MAC 層、ARP 協定、交換機學習機制和 VLAN 技術。

MAC 層的核心問題#

當多台電腦透過 Hub(集線器)連接時,會面臨三個關鍵問題:

問題描述解決方案
誰該接收封包發給誰?MAC 地址標識
誰先發送多人同時發送會混亂多路訪問控制
錯誤檢測傳輸過程出錯怎麼辦CRC 循環冗餘檢測

MAC 的全稱是 Medium Access Control(媒體存取控制),核心功能是控制誰先發、誰後發,防止混亂。

多路訪問控制方式#

┌─────────────────────────────────────────────────────────────┐
│  多路訪問控制方式                                             │
├─────────────────────────────────────────────────────────────┤
│  1. 信道劃分:每個設備專用通道(類似多車道)                    │
│  2. 輪流協定:輪流使用(類似單雙號限行)                        │
│  3. 隨機接入:先發先佔,衝突後重試(以太網採用此方式)           │
└─────────────────────────────────────────────────────────────┘

乙太網路幀結構#

乙太網路(Ethernet)是最常見的區域網技術,其幀結構如下:

 0                   15 16                  31
+----------------------+----------------------+
|    目標 MAC 地址(6 字節)                   |
+----------------------+----------------------+
|    源 MAC 地址(6 字節)                     |
+----------------------+----------------------+
| 類型(2字節)| 資料(46-1500 字節)          |
+----------------------+----------------------+
|               CRC(4 字節)                  |
+----------------------+----------------------+
  • 目標 MAC:標識接收方
  • 源 MAC:標識發送方
  • 類型:指明上層協定(如 0x0800 表示 IP)
  • CRC:用於錯誤檢測

ARP 協定#

工作原理#

ARP(Address Resolution Protocol) 用於將 IP 地址解析為 MAC 地址。

sequenceDiagram
    participant S as 發送方
    participant N as 所有設備
    participant R as 目標設備

    S->>N: ARP 廣播:誰是 192.168.1.2?
    Note over N: 只有目標設備回覆
    R->>S: ARP 回覆:我是,MAC 是 xx:xx

ARP 的精髓就是「吼」:不知道對方 MAC 地址時,向整個局域網廣播詢問,對方收到後回覆。

ARP 快取#

為了避免每次都廣播,設備會維護 ARP 快取:

# Linux 查看 ARP 快取
arp -a
ip neigh show

# Windows 查看 ARP 快取
arp -a
ARP 快取特性
  • 有過期時間:通常幾分鐘到幾小時
  • 動態更新:設備上下線或 IP 變化時更新
  • 可手動清除arp -dip neigh flush

交換機工作原理#

Hub vs 交換機#

設備工作層級轉發方式智能程度
Hub(集線器)物理層廣播到所有端口
交換機資料鏈結層根據 MAC 表精確轉發有學習能力

交換機學習機制#

交換機透過「學習」建立 MAC 地址表:

步驟 1:收到封包,記錄來源 MAC 和端口的對應關係
步驟 2:查找目標 MAC,若找到則精確轉發,否則廣播
步驟 3:重複以上過程,逐漸完善 MAC 表
┌─────────────────────────────────────────────┐
│  交換機 MAC 地址表(轉發表)                  │
├─────────────────┬───────────────────────────┤
│  MAC 地址       │  端口                      │
├─────────────────┼───────────────────────────┤
│  aa:bb:cc:11:22:33  │  Port 1                │
│  aa:bb:cc:44:55:66  │  Port 3                │
│  aa:bb:cc:77:88:99  │  Port 5                │
└─────────────────┴───────────────────────────┘

- 表項有過期時間,會定期刷新

STP 生成樹協定#

環路問題#

當多個交換機互聯形成環路時,會導致:

  1. 廣播風暴:廣播包無限循環
  2. MAC 表震盪:同一 MAC 地址在不同端口間跳動
  3. 網路癱瘓:資源被耗盡

STP 解決方案#

STP(Spanning Tree Protocol) 透過選舉和阻塞,將有環的圖變成無環的樹:

     有環路的網路                    STP 處理後(樹狀)

    [交換機A]──────[交換機B]       [交換機A]──────[交換機B]
        │              │               │              │
        │              │               │              │
        └──[交換機C]───┘               └──[交換機C]─ X ┘
                                              (阻塞)
STP 核心概念
  • Root Bridge(根橋):整個網路的「老大」,由優先級決定
  • Designated Bridge(指定橋):連接下游設備的橋
  • BPDU:橋協定資料單元,用於交換資訊
  • 優先級向量:決定誰當老大的依據

VLAN 虛擬區域網#

為什麼需要 VLAN#

當網路規模變大時會出現:

  • 廣播風暴:廣播包影響所有設備
  • 安全問題:敏感資訊可能被其他部門截獲

VLAN 工作原理#

VLAN 透過在二層頭部添加 802.1Q 標籤 實作虛擬隔離:

原始乙太網路幀:
┌──────────┬──────────┬──────┬───────┬─────┐
│ 目標MAC  │  源MAC   │ 類型 │  資料  │ CRC │
└──────────┴──────────┴──────┴───────┴─────┘

802.1Q 標籤幀:
┌──────────┬──────────┬────────────┬──────┬───────┬─────┐
│ 目標MAC  │  源MAC   │ VLAN TAG   │ 類型 │  資料  │ CRC │
└──────────┴──────────┴────────────┴──────┴───────┴─────┘
                           │
                           └── 包含 12 位 VLAN ID(可標識 4096 個 VLAN)

VLAN 組態要點#

端口類型功能應用場景
Access只屬於一個 VLAN連接終端設備
Trunk可傳輸多個 VLAN交換機之間連接

VLAN ID 限制:12 位只能支援 4096 個 VLAN,對於大規模雲計算場景不夠用,需要使用 VXLAN 等擴展技術。

實際應用場景#

場景一:宿舍組網#

# 兩台電腦直連需要交叉線(或現代網卡支援自動識別)
# 組態同一網段的 IP
電腦A: 192.168.1.1/24
電腦B: 192.168.1.2/24

場景二:辦公室網路#

                    ┌─────────┐
                    │ 核心交換機 │
                    └────┬────┘
           ┌─────────────┼─────────────┐
           │             │             │
    ┌──────┴──────┐ ┌────┴────┐ ┌──────┴──────┐
    │ VLAN10(研發) │ │VLAN20(HR)│ │VLAN30(財務) │
    └─────────────┘ └─────────┘ └─────────────┘

常用命令#

# Linux 查看網卡資訊
ip link show
ethtool eth0

# 查看 ARP 表
arp -a
ip neigh show

# 查看網橋/VLAN(若有組態)
bridge link show
cat /proc/net/vlan/config

本章小結#

概念關鍵點
MAC 層解決多路訪問問題,使用 MAC 地址標識設備
ARP透過廣播將 IP 地址解析為 MAC 地址,結果會快取
交換機二層設備,具有 MAC 學習能力,精確轉發
STP破除環路,將圖變成樹
VLAN虛擬隔離,解決廣播和安全問題