MAC 位址與乙太網路訊框
每張網卡出廠就刻著一組全世界唯一的號碼。這節告訴你它長什麼樣、怎麼用。
約 10 分鐘
MAC 位址(Media Access Control address)是燒在網卡上的實體位址,長度 48 位元,寫成 12 個十六進位數字。Cisco 慣用點分格式:001a.2b3c.4d5e,其他廠商常寫成 00:1A:2B:3C:4D:5E。
00:1A:2B : 3C:4D:5E
───────── ─────────
前 24 位元 後 24 位元
OUI 廠商自行編號
廠商識別碼 (每張卡不同)
OUI = Organizationally Unique Identifier
向 IEEE 申請,可反查是哪家廠商三種目的地 MAC
| 類型 | 中文 | 目的 MAC 長相 | 意思 |
|---|---|---|---|
| Unicast | 單播 | 對方那張卡的位址 | 只給某一台 |
| Broadcast | 廣播 | FFFF.FFFF.FFFF | 給這個網段上所有人 |
| Multicast | 多播 | 0100.5Exx.xxxx 等 | 給有訂閱的那一群 |
乙太網路訊框的欄位
┌────────┬────────┬────────┬──────┬──────────────┬─────┐
│ 前導碼 │ 目的 │ 來源 │ 類型 │ 資料負載 │ FCS │
│ 8 B │ MAC 6B │ MAC 6B │ 2 B │ 46~1500 B │ 4 B │
└────────┴────────┴────────┴──────┴──────────────┴─────┘
▲ ▲ ▲
先寫目的再寫來源 最小 46 最大 1500 錯誤檢查- 目的 MAC 排在來源 MAC 前面:因為交換器只要讀到目的位址就能開始轉送,不必等整個訊框讀完。這叫 cut-through 轉送。
- 類型(Type)欄位:告訴接收方「裡面包的是什麼」。0x0800 = IPv4,0x0806 = ARP,0x86DD = IPv6。
- FCS(Frame Check Sequence):錯誤檢查碼。算出來對不上就直接丟掉,不會要求重傳 —— 重傳是第 4 層 TCP 的工作。
- 最小 64 位元組:整個訊框(含標頭)不足 64 位元組會被填充(padding)。小於 64 的殘缺訊框叫 runt,是實體層有問題的徵兆。
每一層各用什麼「識別碼」認出上層協定
這是一個很好用的統整框架:封包一層層被拆開時,每一層都需要知道「裡面包的是哪種上層協定」,而三個層級各自用不同的欄位來標示。
| 所在層 | 欄位 | 例子 |
|---|---|---|
| 第 2 層(訊框) | EtherType(類型) | 0x0800 = IPv4、0x0806 = ARP、0x86DD = IPv6 |
| 第 3 層(IP 標頭) | Protocol Number(協定號) | 6 = TCP、17 = UDP、1 = ICMP、89 = OSPF |
| 第 4 層(TCP/UDP) | Port Number(連接埠) | 80 = HTTP、443 = HTTPS、22 = SSH |
立即測驗這一節(3 題)