資料鏈結層#
資料鏈結層(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:xxARP 的精髓就是「吼」:不知道對方 MAC 地址時,向整個局域網廣播詢問,對方收到後回覆。
ARP 快取#
為了避免每次都廣播,設備會維護 ARP 快取:
# Linux 查看 ARP 快取
arp -a
ip neigh show
# Windows 查看 ARP 快取
arp -aARP 快取特性
- 有過期時間:通常幾分鐘到幾小時
- 動態更新:設備上下線或 IP 變化時更新
- 可手動清除:
arp -d或ip 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 生成樹協定#
環路問題#
當多個交換機互聯形成環路時,會導致:
- 廣播風暴:廣播包無限循環
- MAC 表震盪:同一 MAC 地址在不同端口間跳動
- 網路癱瘓:資源被耗盡
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 | 虛擬隔離,解決廣播和安全問題 |