第 3 課

每部裝置都有名牌MAC Address(硬體位址)

網絡上有數以十億計的裝置,怎樣分得出誰是誰?

帶路角色:阿麥閱讀時間約 10 分鐘

1. 漫畫開場

也可以直接點擊任何一格
漫畫文字版(畫面及對白)
格 畫面 對白
1 小比拿著一封信站在屋外,信封寫著 00:00:5E:00:53:01;屋裡有阿麥、手機和電視。 字幕:「小比來到一個 LAN(區域網絡)送信。」
小比:「信封上只寫著一串號碼……屋裡這麼多裝置,該交給誰?」
2 阿麥指著胸前名牌,名牌上的號碼和信封上的一模一樣,中間有一個剔號。 阿麥:「看看我的名牌!」
小比:「號碼一模一樣……就是你!」
字幕:「每部裝置接上網絡的部件,出廠時都有一個 MAC Address(硬體位址)。」
3 名牌放大,分成前後兩半,分別標示 OUI(製造商識別碼)和製造商編的號碼。 字幕:「名牌上有 12 個十六進制數字,共 48 位元。」
阿麥:「前半是製造商的代號,後半是製造商給我的號碼。」
小比:「好像校徽加學生編號!」
4 小比拿著擴音器,信封寫著 FF:FF:FF:FF:FF:FF;屋裡所有裝置都舉起「收到!」牌子。 字幕:「收件人寫 FF:FF:FF:FF:FF:FF,就是 Broadcast Address(廣播位址)。」
小比:「各位注意!這封信人人有份!」
阿麥:「同一個 LAN 裡,大家都收到!」

2. 重點概念

每部會上網的裝置,出廠時身上已經縫好一個名牌。

這個名牌叫 MAC Address(硬體位址),是一個 48 位元的識別碼,寫成六組十六進制數字,例如 00:00:5E:00:53:01。在同一個 LAN(區域網絡)裡,裝置就是靠它認出「這封信是寄給我的」。

名牌的前半部是 OUI(製造商識別碼),代表製造商;後半部由製造商自己編號。

3. 看深一點

MAC 是什麼意思?

MAC 是 Media Access Control(媒體存取控制)的縮寫,跟某個品牌的「Mac」電腦完全無關。任何品牌的手機、電腦、電視、遊戲機,甚至智能燈泡,只要會上網,就有 MAC Address。

名牌掛在哪裡?Network Interface(網絡介面)

嚴格來說,MAC Address 不是屬於「整部裝置」,而是屬於裝置上的每一個 Network Interface(網絡介面)。Network Interface 就是裝置用來接上網絡的部件,例如 Wi-Fi(無線網絡)晶片,或者 Ethernet(以太網)網線插口。在舊式電腦中,它通常是一張插在主機板上的卡,所以又叫 NIC(網絡介面卡)。

所以:

  • 一部手提電腦同時有 Wi-Fi 和網線插口,就有兩個 MAC Address。
  • 一部只有 Wi-Fi 的手機,通常只有一個 Wi-Fi 用的 MAC Address。

讀懂名牌:48 位元與 Hexadecimal(十六進制)

電腦裡所有資料,最終都是一連串 0 和 1。

  • Bit(位元):電腦最小的資料單位,只可以是 0 或 1。
  • Byte(位元組):8 個 Bit 組成 1 個 Byte。
  • MAC Address:共 48 個 Bit,即 6 個 Byte。

如果直接寫 48 個 0 和 1,實在太長,也很容易抄錯。所以我們改用 Hexadecimal(十六進制):用 0 至 9,再加上 A 至 F 共 16 個符號來表示數字(A=10、B=11……F=15)。

十進制 十六進制 二進制(4 個 Bit)
5 5 0101
9 9 1001
10 A 1010
14 E 1110
15 F 1111

一個十六進制數字剛好代表 4 個 Bit,兩個十六進制數字就是 1 個 Byte。例如 5E = 0101 1110。

所以一個 MAC Address 就是 12 個十六進制數字,每兩個一組,共六組。48 個 Bit 一共可以組合出 281,474,976,710,656 個(約 281 萬億個)不同的名牌。

圖解:MAC Address 00:00:5E:00:53:01 的結構,前 3 個 Byte 是 OUI,後 3 個 Byte 是製造商編的號碼

圖解:一個 MAC Address 有 6 個 Byte。前 3 個 Byte 是 OUI(製造商識別碼),後 3 個 Byte 由製造商自己編號。每個 Byte 用兩個十六進制數字表示。

名牌的兩半:OUI(製造商識別碼)

部分 位置 由誰決定 例子
OUI(製造商識別碼) 前 3 個 Byte(24 位元) IEEE(電機電子工程師學會)分配給製造商 00:00:5E
製造商編的號碼 後 3 個 Byte(24 位元) 製造商自己編號 00:53:01

IEEE 是一個制定 Ethernet、Wi-Fi 等技術標準的國際組織,它會把不同的 OUI 分配給不同的製造商。每個 OUI 之後有 24 位元,可以編出 16,777,216 個號碼;大型製造商用完了,就會再申請新的 OUI。

這樣分工,就算兩間公司各自編號,也不會編出同一個名牌。

本課的範例位址 本課所有範例都來自一段專門保留給教材和文件使用的位址(00:00:5E:00:53:00 至 00:00:5E:00:53:FF),不屬於任何真實產品。00:00:5E 這個 OUI 其實是 IEEE 分配給一個互聯網標準機構的,並不是真的製造商;本課借用它來示範而已。

三種寫法,同一個名牌

不同系統顯示 MAC Address 的方式略有不同,但意思完全一樣。英文字母大楷或細楷也沒有分別。

寫法 例子 常見於
冒號分隔 00:00:5E:00:53:01 macOS、iPhone、Android、Linux
連字號分隔 00-00-5E-00-53-01 Windows
點號分隔(每 4 個數字一組) 0000.5e00.5301 部分企業級網絡設備

在 LAN(區域網絡)裡送信:Frame(訊框)的收件人和寄件人

在同一個 LAN 裡傳送資料時,資料會被放進一個 Frame(訊框)。Frame 就是資料在 LAN 內傳送時的「送貨包裝」,前面貼著一張送貨標籤,寫著:

欄位 內容 例子
收件人 MAC Address 要送給哪個 Network Interface 00:00:5E:00:53:01
寄件人 MAC Address 從哪個 Network Interface 送出 00:00:5E:00:53:02

每部裝置收到 Frame 時,都會先看收件人:

  • 是我的名牌 → 收下,打開來看。
  • 不是我的名牌 → 不理會,直接丟掉。

有線的 Ethernet 和無線的 Wi-Fi,都是用 MAC Address 來寫收件人和寄件人。Frame 和 Packet(封包)的關係,會在第 5 課詳細介紹。

Unicast(單播)與 Broadcast(廣播)

  • Unicast(單播):收件人是一個普通的 MAC Address,信只寄給一部裝置。平日大部分的 Frame 都是 Unicast。
  • Broadcast(廣播):收件人寫成 FF:FF:FF:FF:FF:FF,也就是 48 個 Bit 全部是 1。這個特別的 Broadcast Address(廣播位址)代表「同一個 LAN 裡的每一部裝置」。它只會寫在收件人一欄,不會是任何一部裝置自己的名牌。

什麼時候要廣播?通常是裝置想找人,卻不知道對方的名牌。例如:

  • 手機剛接上 Wi-Fi,還沒有 IP Address(網絡位址),就會廣播問:「有沒有人可以給我一個位址?」這是第 8 課的 DHCP(動態主機設定協定)。
  • 電腦知道對方的 IP Address,但不知道對方的 MAC Address,就會廣播問:「誰是這個位址?」這是第 6 課的 ARP(位址解析協定)。

廣播只會留在自己的 LAN 裡。Router(路由器)不會把它轉送到其他網絡,否則全世界的廣播都會湧進你家,網絡就塞爆了。

圖解:Unicast 與 Broadcast 的比較

圖解:上半部是 Unicast,只有名牌相符的裝置收下 Frame,其他裝置不理會;下半部是 Broadcast,同一個 LAN 內所有裝置都會收下,但廣播不會越過 Router 去到其他網絡。

名牌只在 LAN(區域網絡)裡有用

MAC Address 只負責「在同一個 LAN 裡送到正確的裝置」。當資料要離開你家、經過 Router 去到其他網絡時,Router 會拆掉舊的送貨標籤,再貼上一張新的,寄件人和收件人的 MAC Address 都會改變。

所以,你打開 example.com 時,遠方的 Server(伺服器)一般看不到你手機的 MAC Address。負責「跨越網絡找路」的,是下一課的 IP Address(網絡位址)。

名牌可以換嗎?Random MAC Address(隨機 MAC 位址)

原本的名牌寫在網絡介面的晶片裡,但作業系統可以選擇用另一個位址代替它。

為什麼要這樣做?為了私隱。如果手機每到一個地方都用同一個名牌,商場、車站的 Wi-Fi 就有機會記錄「這部手機去過哪裡」。所以現在很多系統會為每個 Wi-Fi 網絡改用一個 Random MAC Address(隨機 MAC 位址):

系統 功能名稱(以你的系統畫面為準)
iPhone/iPad(iOS 14 起) 私人 Wi-Fi 位址
Android(Android 10 起預設開啟) 隨機 MAC/使用隨機 MAC 位址
Windows 10/11 隨機硬體位址(預設關閉,要自行開啟)

小秘訣: 如果 MAC Address 第一組兩個數字中的第二個數字是 2、6、A 或 E,它就是一個「自訂名牌」,很可能是 Random MAC Address。例如 ?2:…、?6:…、?A:…、?E:…。

4. 動手試試

任務一:找出你的 MAC Address(硬體位址)

裝置 步驟
iPhone/iPad 設定 → 一般 → 關於本機 → 找「Wi-Fi 位址」
Android 設定 → 關於手機 → 狀態(或「硬件資料」)→ 找「Wi-Fi MAC 位址」(不同品牌名稱略有不同)
Windows 在開始功能表搜尋「命令提示字元」並打開,輸入 ipconfig /all,在「Wi-Fi」那一段找「實體位址」
macOS 系統設定 → 網絡 → Wi-Fi → 按已連接網絡旁的「詳細資料」→ 硬件

看看你的 MAC Address:

  1. 是不是六組、每組兩個數字?
  2. 用了哪一種分隔符號:冒號、連字號,還是點號?
  3. 把前三組圈起來,那就是 OUI(製造商識別碼)。

私隱提示: MAC Address 不是密碼,但也不需要公開。做這個練習時,不用把真實的 MAC Address 貼到網上或發給別人。

任務二:名牌偵探

這個任務適合用手機做。

  1. 在 iPhone 的「設定 → Wi-Fi」,點一下已連接網絡旁的 ⓘ,找「Wi-Fi 位址」(有開啟私人位址時會顯示私人位址);Android 可在 Wi-Fi 網絡詳細資料中找「MAC 位址」。
  2. 把它和任務一找到的位址比較:兩個一樣嗎?
  3. 用本課的「小秘訣」檢查:第二個數字是不是 2、6、A 或 E?如果是,恭喜你,你的手機正在戴著一個隨機名牌保護你的私隱!

小互動

真名牌還是假名牌?

以下哪些是寫法正確的 MAC Address?

  1. 100:00:5E:00:53:2A

  2. 200:00:5E:00:53

  3. 300:00:5E:00:53:G7

  4. 4192.168.1.10

  5. 5FF:FF:FF:FF:FF:FF

  6. 60000.5e00.532a

5. 比喻的極限

  • 名牌不是真的縫死了。 原本的 MAC Address 寫在晶片裡,但作業系統可以改用另一個位址,例如 Random MAC Address。所以 MAC Address 不能用來證明「這一定是某部裝置」。
  • 名牌不保證全世界獨一無二。 在設計上,每個出廠名牌都應該不同;但隨機名牌、製造商出錯等情況,偶然會出現重複。其實只要同一個 LAN 裡沒有兩個相同的名牌,網絡就能正常運作。
  • 名牌屬於網絡介面,不屬於整部裝置。 漫畫中阿麥只掛著一個名牌,但一部有 Wi-Fi 又有網線插口的電腦,其實有兩個。
  • 名牌不能用來找路。 知道一個人的名牌,不代表知道他住在哪裡。MAC Address 只在同一個 LAN 裡有用,要跨越網絡找路,要靠 IP Address(第 4 課)。
  • 廣播不是真的「大叫」。 它只是一個收件人寫成 FF:FF:FF:FF:FF:FF 的 Frame,而且只會留在同一個 LAN 裡,不會傳遍全世界。
  • 不是每部裝置都會「看到」每封信。 漫畫為了簡單,畫成全屋裝置都看得到信封。現實中,Switch(交換器)通常只會把 Unicast 的 Frame 送到正確的裝置(第 6 課詳談)。

6. 小測驗

第 1 題,共 3 題一個 MAC Address 共有多少個位元?
第 2 題,共 3 題在 00:00:5E:00:53:01 之中,哪一部分是 OUI(製造商識別碼)?
第 3 題,共 3 題一個 Frame 的收件人 MAC Address 是 FF:FF:FF:FF:FF:FF,誰會收下它?

7. 重點筆記

  • MAC Address(硬體位址)是 Network Interface(網絡介面)出廠時的名牌,一部裝置可以有多個。
  • 它有 48 位元(6 個 Byte),寫成六組十六進制數字,例如 00:00:5E:00:53:01。
  • 前 3 個 Byte 是 OUI(製造商識別碼),後 3 個 Byte 由製造商自己編號。
  • FF:FF:FF:FF:FF:FF 是 Broadcast Address(廣播位址),同一個 LAN 內所有裝置都會收到。
  • MAC Address 只在同一個 LAN 內送信用;手機為保護私隱,常改用 Random MAC Address(隨機 MAC 位址)。

下一站

阿麥帶著電腦去咖啡店上網,名牌還是同一個,但地址卻變了。這個會跟著網絡改變的地址是什麼?