資料鏈結層#

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

MAC 位址與 MAC 層#

MAC 位址是網卡出廠時燒入的物理識別碼,共 6 個位元組,以十六進制表示(如 fa:16:3e:c7:79:75)。前 3 位元組是廠商代碼(OUI),後 3 位元組是廠商自行分配的序號。

MAC 全名 Medium Access Control(媒體存取控制)。當多台電腦透過 Hub(集線器)連接時,會面臨三個關鍵問題:

問題解決方案
誰該接收MAC 位址標示
誰先發送多路存取控制
錯誤檢測CRC 循環冗餘檢測

多路存取控制方式#

  • 通道劃分:每個設備專用通道(類似多車道)
  • 輪流協定:輪流使用(類似單雙號限行)
  • 隨機接入:先發先佔,衝突後重試(乙太網路採用此方式)

乙太網路幀結構#

乙太網路(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 表
sequenceDiagram
    participant A as 設備A
    participant SW as 交換機
    participant B as 設備B
    participant ALL as 其他所有設備

    A->>SW: 發送資料幀(來源 MAC: A)
    Note over SW: 記錄 MAC-A 對應 Port 1
    SW->>SW: 查詢 MAC 位址表:目標 MAC 是否已知?
    alt 目標 MAC 已知
        SW->>B: 精確轉發至對應埠
    else 目標 MAC 未知
        SW->>ALL: 廣播(泛洪)至所有其他埠
        B->>SW: 回覆(來源 MAC: B)
        Note over SW: 記錄 MAC-B 對應 Port 3
    end

MAC 位址表範例:

MAC 位址
aa:bb:cc:11:22:33Port 1
aa:bb:cc:44:55:66Port 3
aa:bb:cc:77:88:99Port 5

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

STP 生成樹協定#

環路問題#

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

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

STP 解決方案#

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

有環路的網路:

flowchart LR
    A[交換機A] --- B[交換機B]
    B --- C[交換機C]
    C --- A

STP 處理後(樹狀):

flowchart LR
    A[交換機A] --- B[交換機B]
    A --- C[交換機C]
    C -. "阻塞" .- B
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虛擬隔離,解決廣播和安全問題