1. 故事
按「下一步」一步一步看。每一步都有一位角色出場,解釋自己正在做什麼。
第一幕:三部電腦怎樣連起來?
第 1 步/共 10 步
三部電腦,還未連起來
我、桌面電腦和電視都在同一間屋裡,想互相傳相片。可是我們之間一條線也沒有,怎樣連起來呢?
動畫文字版(全部步驟)
- 第一幕:三部電腦怎樣連起來?
- 三部電腦,還未連起來 阿麥:我、桌面電腦和電視都在同一間屋裡,想互相傳相片。可是我們之間一條線也沒有,怎樣連起來呢?
- 每兩部拉一條線? 阿麥:最直接的方法,是每兩部電腦之間拉一條網線。三部電腦要三條線,好像還可以……但電腦一多就麻煩了。
- 3 部電腦:3 條線
- 10 部電腦:45 條線
- 100 部電腦:4,950 條線!
- 而且每部電腦都要有很多個網線插口
- 請八爪來幫忙 八爪:不用那麼麻煩!把我放在中間,每部電腦只要一條網線接到我身上。我是 Switch(交換器),負責在 LAN(區域網絡)裡把資料送到正確的電腦。
- 每部電腦:只要 1 條網線
- 多一部電腦:只多 1 條網線
- 八爪身上的網線插口叫 Port(連接埠):P1、P2、P3
- 第二幕:八爪怎樣送貨?
- 小比穿上 Frame 小比:阿麥要傳相片給桌面電腦。出發前,我背上寫著收件人和寄件人 MAC Address(硬體位址)的背包。在 LAN 裡,這個包裝叫 Frame(訊框)。背包執好,出發囉!
- 收件人:
00:00:5E:00:53:04(桌面電腦) - 寄件人:
00:00:5E:00:53:01(阿麥)
- 收件人:
- 第一次:八爪不認識收件人 八爪:我先記下:寄件人阿麥在 P1。可是我還不知道桌面電腦在哪個 Port,只好把小比複製,送到其他所有 Port。這個動作叫 Flooding(泛洪)。
- 八爪的筆記簿叫 MAC Address Table(MAC 位址表)
- P1 →
…:01(阿麥) ← 新記下 - 電視收到後,發現不是寄給自己,就會把它丟掉
- 桌面電腦回覆,八爪學會了 八爪:桌面電腦回覆阿麥時,我又看一看寄件人:原來桌面電腦在 P2!這個動作叫 Learning(學習)。收件人阿麥我已經認識,所以直接送到 P1。
- P1 →
…:01(阿麥) - P2 →
…:04(桌面電腦) ← 新記下
- P1 →
- 之後:只送到正確的 Port 八爪:收到!馬上送到正確的連接埠!筆記簿有齊資料了。阿麥再傳相片,我就只送到 P2,電視不會再收到與它無關的 Frame。這個動作叫 Forwarding(轉發)。
- 八爪的三個動作:
- ① Learning:看寄件人,記下它在哪個 Port
- ② Flooding:不認識收件人,就送到所有其他 Port
- ③ Forwarding:認識收件人,就只送到那一個 Port
- 人人有份的 Broadcast 小比:如果收件人寫
FF:FF:FF:FF:FF:FF,就是 Broadcast(廣播)。八爪一定會把我複製,送到除了來源以外的每一個 Port。記住這一點,後面很重要! - Layer 2 和 Layer 3 八爪:我只看 MAC Address,也只在同一個 LAN 裡送貨,所以我是 Layer 2(第二層) 的設備。要把資料送到其他網絡,就要靠看 IP Address(網絡位址)的 Router(路由器),它是 Layer 3(第三層) 的設備。
- Layer 2:MAC Address、Frame、Switch(本故事的主角)
- Layer 3:IP Address、Packet(封包)、Router
- 「Layer 2/Layer 3」是業界沿用 OSI Model(OSI 模型)的叫法;分層的詳細內容,第 5 課再講
- 總結:八爪的工作 八爪:三部電腦只要各拉一條線到我身上,就可以互相傳資料。我一邊送貨、一邊記下誰在哪個 Port,越送越快。下一個故事,我們會看看在我出現之前,大家是怎樣用 Hub(集線器)的!
- Learning:看寄件人,記下它在哪個 Port
- Flooding:不認識收件人,就送到所有其他 Port
- Forwarding:認識收件人,就只送到那一個 Port
- 筆記簿的資料會定時清理(很多 Switch 預設 300 秒沒再見到就刪除),裝置搬了位置也不怕記錯
2. 問題在哪裡
每兩部電腦之間拉一條網線,叫「全網狀連接」。電腦少的時候還可以,但數目一多,網線就會多得驚人:
| 電腦數目 | 需要的網線 | 每部電腦要有多少個網線插口 |
|---|---|---|
| 3 | 3 | 2 |
| 10 | 45 | 9 |
| 100 | 4,950 | 99 |
計算方法是 n × (n − 1) ÷ 2。每加一部電腦,就要替之前每一部電腦都多拉一條線,根本做不到。
3. 網絡怎樣解決
在中間放一部 Switch(交換器),每部電腦只要一條網線接到它身上。
Switch 好像一位聰明的送貨員:它看 Frame(訊框)上收件人的 MAC Address(硬體位址),把 Frame 只送到正確的 Port(連接埠)。它一邊送貨,一邊記下「誰在哪個 Port」,所以越送越準。
多一部電腦,只需要多一條網線。
4. 看深一點
八爪的筆記簿:MAC Address Table(MAC 位址表)
Switch 用一張表記住每個 MAC Address 在哪個 Port。故事完結時,八爪的筆記簿大約是這樣:
| Port | MAC Address | 裝置 |
|---|---|---|
| P1 | 00:00:5E:00:53:01 |
阿麥 |
| P2 | 00:00:5E:00:53:04 |
桌面電腦 |
| P3 | 00:00:5E:00:53:02 |
電視 |
這張表是 Switch 自己學回來的,不需要人手輸入。
每收到一個 Frame,Switch 會做什麼?
- Learning(學習):看寄件人的 MAC Address 和 Frame 從哪個 Port 進來,記入 MAC Address Table。
- 再看收件人的 MAC Address:
- 收件人是 Broadcast Address(廣播位址)
FF:FF:FF:FF:FF:FF,或者表內找不到收件人 → Flooding(泛洪):複製並送到除了來源以外的所有 Port。 - 表內找到收件人,而且在另一個 Port → Forwarding(轉發):只送到那一個 Port。
- 表內找到收件人,但它和寄件人在同一個 Port → Filtering(過濾):不用送出去,直接丟棄。
- 收件人是 Broadcast Address(廣播位址)
留意:Switch 學習時看的是寄件人,送貨時看的是收件人。
筆記簿會定時清理
如果一段時間沒有再見到某個 MAC Address,Switch 就會把它從表內刪除。這段時間叫 Aging Time(老化時間),很多 Switch 預設是 300 秒。這樣即使裝置換了 Port 或離開了 LAN,表內資料也不會長期出錯。
Switch 是 Layer 2(第二層)設備
Switch 只看 MAC Address,只在同一個 LAN(區域網絡)裡送 Frame,所以業界把它稱為 Layer 2(第二層)設備。要把資料送到其他網絡,就要靠看 IP Address(網絡位址)的 Router(路由器),它是 Layer 3(第三層)設備。
「Layer 2/Layer 3」是沿用 OSI Model(OSI 模型)的編號。分層的概念,入門課程第 5 課會詳細介紹。
5. 動手試試
任務:數一數你家的 Switch
- 找出家中的 Router(路由器),數一數它背面有多少個網線插口(通常標示為 LAN 1、LAN 2……)。
- 這些 LAN 插口其實就是 Router 裡面內置的一部小 Switch!
- 想一想:如果插口不夠用,可以怎樣做?(提示:可以再接一部 Switch。)
小互動
八爪會怎樣做?
八爪的筆記簿記著:阿麥在 P1、桌面電腦在 P2、電視在 P3。以下每一個情況,八爪會怎樣處理?
-
1收件人是 FF:FF:FF:FF:FF:FF
-
2收件人是一部剛接上 P4 的新電腦,筆記簿裡還沒有它
-
3阿麥(P1)寄 Frame 給電視
-
4一個 Frame 由 P1 進來,收件人也在 P1
-
5電視(P3)寄 Frame 給桌面電腦
-
6收件人的 MAC Address 在 300 秒前已被清除
全部分對了!不認識收件人或 Broadcast 就 Flooding;認識收件人就 Forwarding;收件人和寄件人在同一個 Port 就丟棄。
6. 比喻的極限
- 八爪不會真的「複製」一個小比。 Switch 先把 Frame 暫存在記憶體,再從每個 Port 各送出一份,整個過程以微秒計算。
- 八爪同時處理很多 Frame。 動畫中一次只送一個小比;真實的 Switch 可以在所有 Port 同時收發資料。
- 八爪不看信的內容。 Switch 只看 Frame 標頭裡的 MAC Address,不會打開 Payload(資料內容)看看裡面是什麼相片。
- 家中不一定看得見 Switch。 家用 Router 通常已經內置一部小 Switch;Wi-Fi(無線網絡)裝置則經 Access Point(無線基地台)加入同一個 LAN(小故事 4 會講)。
- 電腦通常只有一個網線插口。 所以「每兩部拉一條線」在現實中幾乎不可能,動畫只是用來說明問題。
7. 小測驗
8. 重點筆記
- 每兩部電腦直接拉線,線的數目會急速增加;在中間放一部 Switch(交換器),每部電腦只要一條線。
- Switch 用 MAC Address Table(MAC 位址表)記住每個 MAC Address 在哪個 Port,這張表是自動學回來的。
- 三個動作:Learning(看寄件人並記下)、Flooding(不認識收件人或 Broadcast 時送到所有其他 Port)、Forwarding(認識收件人就只送到那一個 Port)。
- Switch 只看 MAC Address,在同一個 LAN 內工作,是 Layer 2(第二層)設備;Router 看 IP Address,是 Layer 3(第三層)設備。
延伸閱讀
在 Switch 出現之前,大家用的是一種更簡單的設備。它會把每一個 Frame 都送給所有人,結果常常「撞車」。下一個故事,八爪會介紹他的前輩:Hub(集線器)。