網絡小故事 1 · 入門

八爪上班第一天Switch(交換器)怎樣送貨

三部電腦想互相傳相片,每兩部拉一條線行不行?

主角:八爪、阿麥、小比閱讀時間約 10 分鐘

建議先讀:第 3 課

1. 故事

按「下一步」一步一步看。每一步都有一位角色出場,解釋自己正在做什麼。

第一幕:三部電腦怎樣連起來?

第 1 步/共 10 步

三部電腦,還未連起來

我、桌面電腦和電視都在同一間屋裡,想互相傳相片。可是我們之間一條線也沒有,怎樣連起來呢?

動畫文字版(全部步驟)
  1. 第一幕:三部電腦怎樣連起來?
  2. 三部電腦,還未連起來 阿麥:我、桌面電腦和電視都在同一間屋裡,想互相傳相片。可是我們之間一條線也沒有,怎樣連起來呢?
  3. 每兩部拉一條線? 阿麥:最直接的方法,是每兩部電腦之間拉一條網線。三部電腦要三條線,好像還可以……但電腦一多就麻煩了。
    • 3 部電腦:3 條線
    • 10 部電腦:45 條線
    • 100 部電腦:4,950 條線!
    • 而且每部電腦都要有很多個網線插口
  4. 請八爪來幫忙 八爪:不用那麼麻煩!把我放在中間,每部電腦只要一條網線接到我身上。我是 Switch(交換器),負責在 LAN(區域網絡)裡把資料送到正確的電腦。
    • 每部電腦:只要 1 條網線
    • 多一部電腦:只多 1 條網線
    • 八爪身上的網線插口叫 Port(連接埠):P1、P2、P3
  5. 第二幕:八爪怎樣送貨?
  6. 小比穿上 Frame 小比:阿麥要傳相片給桌面電腦。出發前,我背上寫著收件人和寄件人 MAC Address(硬體位址)的背包。在 LAN 裡,這個包裝叫 Frame(訊框)。背包執好,出發囉!
    • 收件人:00:00:5E:00:53:04(桌面電腦)
    • 寄件人:00:00:5E:00:53:01(阿麥)
  7. 第一次:八爪不認識收件人 八爪:我先記下:寄件人阿麥在 P1。可是我還不知道桌面電腦在哪個 Port,只好把小比複製,送到其他所有 Port。這個動作叫 Flooding(泛洪)。
    • 八爪的筆記簿叫 MAC Address Table(MAC 位址表)
    • P1 → …:01(阿麥) ← 新記下
    • 電視收到後,發現不是寄給自己,就會把它丟掉
  8. 桌面電腦回覆,八爪學會了 八爪:桌面電腦回覆阿麥時,我又看一看寄件人:原來桌面電腦在 P2!這個動作叫 Learning(學習)。收件人阿麥我已經認識,所以直接送到 P1。
    • P1 → …:01(阿麥)
    • P2 → …:04(桌面電腦) ← 新記下
  9. 之後:只送到正確的 Port 八爪:收到!馬上送到正確的連接埠!筆記簿有齊資料了。阿麥再傳相片,我就只送到 P2,電視不會再收到與它無關的 Frame。這個動作叫 Forwarding(轉發)。
    • 八爪的三個動作:
    • ① Learning:看寄件人,記下它在哪個 Port
    • ② Flooding:不認識收件人,就送到所有其他 Port
    • ③ Forwarding:認識收件人,就只送到那一個 Port
  10. 人人有份的 Broadcast 小比:如果收件人寫 FF:FF:FF:FF:FF:FF,就是 Broadcast(廣播)。八爪一定會把我複製,送到除了來源以外的每一個 Port。記住這一點,後面很重要!
  11. 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 課再講
  12. 總結:八爪的工作 八爪:三部電腦只要各拉一條線到我身上,就可以互相傳資料。我一邊送貨、一邊記下誰在哪個 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 會做什麼?

  1. Learning(學習):看寄件人的 MAC Address 和 Frame 從哪個 Port 進來,記入 MAC Address Table。
  2. 再看收件人的 MAC Address:
    • 收件人是 Broadcast Address(廣播位址)FF:FF:FF:FF:FF:FF,或者表內找不到收件人 → Flooding(泛洪):複製並送到除了來源以外的所有 Port。
    • 表內找到收件人,而且在另一個 Port → Forwarding(轉發):只送到那一個 Port。
    • 表內找到收件人,但它和寄件人在同一個 Port → Filtering(過濾):不用送出去,直接丟棄。

留意: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

  1. 找出家中的 Router(路由器),數一數它背面有多少個網線插口(通常標示為 LAN 1、LAN 2……)。
  2. 這些 LAN 插口其實就是 Router 裡面內置的一部小 Switch!
  3. 想一想:如果插口不夠用,可以怎樣做?(提示:可以再接一部 Switch。)

小互動

八爪會怎樣做?

八爪的筆記簿記著:阿麥在 P1、桌面電腦在 P2、電視在 P3。以下每一個情況,八爪會怎樣處理?

  1. 1收件人是 FF:FF:FF:FF:FF:FF

  2. 2收件人是一部剛接上 P4 的新電腦,筆記簿裡還沒有它

  3. 3阿麥(P1)寄 Frame 給電視

  4. 4一個 Frame 由 P1 進來,收件人也在 P1

  5. 5電視(P3)寄 Frame 給桌面電腦

  6. 6收件人的 MAC Address 在 300 秒前已被清除

6. 比喻的極限

  • 八爪不會真的「複製」一個小比。 Switch 先把 Frame 暫存在記憶體,再從每個 Port 各送出一份,整個過程以微秒計算。
  • 八爪同時處理很多 Frame。 動畫中一次只送一個小比;真實的 Switch 可以在所有 Port 同時收發資料。
  • 八爪不看信的內容。 Switch 只看 Frame 標頭裡的 MAC Address,不會打開 Payload(資料內容)看看裡面是什麼相片。
  • 家中不一定看得見 Switch。 家用 Router 通常已經內置一部小 Switch;Wi-Fi(無線網絡)裝置則經 Access Point(無線基地台)加入同一個 LAN(小故事 4 會講)。
  • 電腦通常只有一個網線插口。 所以「每兩部拉一條線」在現實中幾乎不可能,動畫只是用來說明問題。

7. 小測驗

第 1 題,共 3 題Switch 收到一個 Frame,但 MAC Address Table 內找不到收件人,它會怎樣做?
第 2 題,共 3 題Switch 是怎樣知道「某部電腦在哪個 Port」的?
第 3 題,共 3 題如果 10 部電腦每兩部之間都直接拉一條網線,一共需要多少條?

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(集線器)。