National Central University
Uedu Main Site
Explore Uedu
Student Console
Register as Member/Login
Research Informed Consent Center
Survey Center
Educational Big Data Challenge
Claim or create a course
Try an AI Scenario Task
Support & Messages
Uptime Data

UeduGPTs

--

Jupyters

3

Local AI

--

Uedu Code

--

中央大學 AQI 80 24°C PM2.5 21
AI Reply Desktop Notifications

Show a desktop notification when the AI TA finishes replying

Chat Message Notifications

Notify me when classmates post messages in the forum

Sound notification

Play an alert sound whenever there is a new notification

Unit 03

乙太網路與交換器

訊框、MAC 位址,交換器怎麼學習 MAC 表
Interaction 25 minute(s)

Learning Objectives

  • 說出乙太網路訊框的欄位與大小,以及最小 64、最大 1,518 位元組的由來
  • 讀懂 MAC 位址:48 位元、前 24 位元的 OUI、廣播位址,以及本機管理的位址
  • 比較集線器與交換器,說明交換器怎麼從來源 MAC 學出 MAC 表
  • 說明交換器遇到廣播與未知單播時為什麼要泛洪
  • 分辨碰撞網域與廣播網域,並數出一個拓撲有幾個

區域網路裡的最後一段路

上一課看到,封包在每一段連線上都會被包進一個訊框(frame)。不管封包要跨越多少個網路, 每一段實際的傳送都是連結層的工作:從你的電腦到交換器、從交換器到路由器,都是在同一個區域網路(LAN)裡把訊框送到下一站。

今天幾乎所有有線的區域網路都用乙太網路(Ethernet,標準是 IEEE 802.3),宿舍牆上的網路孔、機房裡成排的交換器都是。 這一課回答兩個問題:訊框裡寫了什麼?交換器怎麼知道要把訊框往哪個埠送?計算機概論的「區域網路」那一課看過整體的樣子,這裡看細節。

訊框的結構:

欄位 位元組 用途
前置碼與起始符號 7 + 1 讓接收端對準時脈;通常不算在訊框長度裡
目的 MAC 6 要給誰
來源 MAC 6 誰送的
類型(EtherType) 2 裡面裝的是什麼:0x0800 是 IPv4、0x0806 是 ARP、0x86DD 是 IPv6
資料 46~1,500 上一層的封包;不到 46 就補 0
FCS 4 CRC-32 檢查碼;接收端重算對不上,就把訊框丟掉

所以一個訊框(從目的 MAC 算到 FCS)最小 6 + 6 + 2 + 46 + 4 = 64 位元組,最大 6 + 6 + 2 + 1,500 + 4 = 1,518 位元組。 資料部分最多 1,500 位元組,這個上限叫 MTU。注意乙太網路只檢查錯誤、不負責重送:壞掉的訊框直接丟掉,要不要重送由上面的層決定。

MAC 位址

MAC 位址是網路介面的硬體位址,長 48 位元(6 位元組),通常寫成 12 個十六進位數字,例如 3c:22:fb:5a:10:07。

部分 長度 意思
前 3 位元組 24 位元 OUI(組織唯一識別碼):IEEE 分配給製造商的編號
後 3 位元組 24 位元 製造商自己編給每張網路卡的序號

第一個位元組裡有兩個特別的位元:

  • 最低位元(I/G):0 表示單播(給一個介面),1 表示群播(給一群介面)。
  • 次低位元(U/L):0 表示廠商燒在網路卡裡、全球唯一的位址;1 表示本機管理的位址,由軟體或管理者設定。 手機為了隱私,連 Wi-Fi 時常用隨機產生的 MAC,就屬於這一種。

這一軌的模擬網路裡,MAC 都長得像 02:00:00:00:01:01:第一個位元組 0x02 = 二進位 0000 0010,次低位元是 1,是本機管理的位址,不屬於任何真實廠商。

全部是 1 的 ff:ff:ff:ff:ff:ff 是廣播位址:同一個區域網路裡的每一台都要收下。ARP 問「誰是 192.168.1.20?」就是用廣播送的。

MAC 位址只在同一個區域網路裡有意義。封包跨過路由器時,路由器會換上新的訊框,來源與目的 MAC 都會換掉(上一課看過);IP 位址才是一路不變的。

集線器與交換器

早期的區域網路用集線器(hub)。集線器只是第 1 層的訊號放大器:從一個埠進來的訊號,原封不動送到所有其他埠。 所有電腦共用同一條「線」,同一時間只能有一台在送,兩台同時送就會碰撞,雙方都要等一下再重送(這套規則叫 CSMA/CD)。

交換器(switch)是第 2 層設備,會讀訊框的 MAC 位址,只把訊框送到需要的那個埠。它靠一張 MAC 表(哪個 MAC 在哪個埠)決定,而這張表是自己學出來的:

  1. 學習:訊框從某個埠進來,就把「來源 MAC → 這個埠」記進 MAC 表。
  2. 查表:看目的 MAC。表裡有,就只從那個埠送出(同一個埠進出就不送)。
  3. 泛洪(flooding):目的是廣播位址,或目的 MAC 不在表裡(叫未知單播),就從進來的埠以外的所有埠各送一份。
  4. 老化:一筆紀錄太久沒被更新就刪掉(IEEE 802.1D 建議預設 300 秒),設備搬走時表才不會一直錯下去。
集線器 交換器
處理到 第 1 層(訊號) 第 2 層(MAC 位址)
收到訊框 送到所有埠 查 MAC 表,只送到對的埠
同時傳送 全部共用,會碰撞 每個埠各自獨立,可以全雙工同時收送
今天 幾乎已淘汰 所有區域網路的標準設備

交換器剛開機時 MAC 表是空的,所以一開始什麼都泛洪;等每台電腦都送過東西,就幾乎都能精準轉送。

互動練習:看交換器學習 MAC 表

四台電腦接在同一台交換器 SW1。點拓撲圖上的設備切換命令列;交換器可以用 show mac 看 MAC 表、clear mac 清空。 每次 ping 之後,封包紀錄裡灰色的說明會寫出 SW1 學到什麼、查表或泛洪。

互動練習:換成集線器

同樣四台電腦,中間換成集線器 HUB1。集線器不看位址,也沒有 MAC 表;做一樣的 ping,比較封包紀錄和剛才有什麼不同。

碰撞網域與廣播網域

兩個常被拿來比較的範圍:

  • 碰撞網域(collision domain):同時送訊號會互相干擾的範圍。集線器的所有埠是同一個碰撞網域; 交換器的每個埠各自是一個碰撞網域(全雙工的連線實際上不會碰撞)。
  • 廣播網域(broadcast domain):一個廣播訊框送得到的範圍。交換器會把廣播泛洪到所有埠,所以交換器不切割廣播網域; 路由器不轉送廣播,它的每個介面是一個廣播網域。
設備 切割碰撞網域 切割廣播網域
集線器 否 否
交換器 是,每個埠一個 否
路由器 是,每個介面一個 是,每個介面一個

一個廣播網域通常就是一個 IP 網段。下面的拓撲有兩台交換器和一台路由器,看看 ARP 廣播送得到哪裡、送不到哪裡。

互動練習:廣播走得到哪裡

PC1、PC2、PC3 和路由器 R1 的 g0 在同一個網段 192.168.1.0/24;PC4 在路由器另一邊的 10.0.2.0/24。路由器已經設定好。

小測驗:訊框與 MAC 位址

1.

乙太網路訊框的「類型」欄位是 0x0806,裡面裝的是什麼?

2.

一則 ARP 訊息只有 28 位元組,放進乙太網路訊框後,訊框(從目的 MAC 到 FCS)有多大?

3.

MAC 位址 00:1a:2b:3c:4d:5e 的前 3 個位元組 00:1a:2b 代表什麼?

4.

下列哪一個 MAC 位址是「本機管理」(不是廠商燒錄)的單播位址?

第 1 次作答

小測驗:交換器與網域

1.

交換器的 MAC 表是怎麼建立的?

2.

交換器收到一個單播訊框,目的 MAC 不在 MAC 表裡,它會怎麼做?

3.

一台 24 埠的集線器接了 20 台電腦。這 20 台電腦屬於幾個碰撞網域、幾個廣播網域?

第 1 次作答

重點整理

  • 乙太網路訊框:目的 MAC、來源 MAC、類型、資料(46~1,500)、FCS;最小 64、最大 1,518 位元組;壞掉的訊框直接丟掉。
  • MAC 位址 48 位元,前 24 位元是 OUI;ff:ff:ff:ff:ff:ff 是廣播;第一個位元組的次低位元是 1 表示本機管理的位址。MAC 只在同一個區域網路裡有意義。
  • 集線器把訊號送到所有埠;交換器從來源 MAC 學習、依目的 MAC 轉送,廣播與未知單播要泛洪,紀錄會老化。
  • 交換器的每個埠是一個碰撞網域;交換器不切割廣播網域,路由器才會。

廣播網域越大,每一台收到的廣播就越多,也越難管理。下一課用 VLAN 把一台交換器切成好幾個廣播網域,並處理備援線路造成的迴圈。

這一課完成了!
Next lesson:VLAN 與生成樹
你目前沒有登入,學習進度只存在這個瀏覽器。 Login 後,進度會跟著帳號,換電腦也看得到。