交換器基本介紹

March 28, 2016

Switch 在網路設備中負責轉發網路封包。但,轉發這動作之前,Switch 也必須知道封包轉發的目的地以及要從哪一個埠轉發出去。

Switch 主要功能

MAC 位址學習

Switch 會從它們的埠上監聽所傳進來的 Frame(經過交換器的網路封包稱之為 Frame),檢測這些資料的來源端 MAC 位址,並且把 MAC 位址與埠號的對應關係記錄下來,儲存在本地端的 MAC Address Table 或是 Content-addressable Memory (CAM) Table。 當 Switch 再次收到 Frame,會先至 MAC Address Table 中察看哪個埠可以轉發至目的地 MAC 位址,如果有在 MAC Address Table,則這 Frame 會從學習到的埠轉發出去,否則這 Frame 會從除了來源埠之外的埠轉發出去。

當 Switch 收到 Frame 之後,一定會從所有其他的埠轉發出去,除了來源埠之外。這種轉發到除來源埠以外的其他埠的動作,稱為「Flooding」。用這種 Flooding 的動作來轉送Frame 很沒有效率,因為會浪費很多網路頻寬。

Switch 傳送 Frame 的模式

Store and Forward

Cut-Though

雖然有些交換器在這種模式下只想讀取 MAC 位址,但還是有某些交換器會讀取 CRC 值並記錄下錯誤數目。

Fragment-Free

乙太網路中碰撞幾乎發生在前 64 個 bytes 中,一旦發生碰撞,就會產生小於 64 個 bytes 的 Frame 資料。Switch 經由讀取前 64 個 bytes 資料,可初步篩選經由碰撞所產生的 Frame 資料

Switch 學習來源端 MAC 位址過程

範例拓譜

假設 FTP 發送一個 Frame 要給 WWW,這 Frame 會經由 E0 介面傳送 Switch 並使用 Store and Forward 模式,則此 Frame 會先暫存在緩衝區。 因為這台 Switch 還沒學到這個 MAC 位址應要轉發至哪個埠,會以 Flooding,經由其它的埠把這 Frame 轉發出去,然而接收到此 Frame 同時,Switch 也學到從 E0 這個埠出去可以到達 FTP 這 Server(因 Switch 能經由 E0 介面收到由 FTP Server 的 MAC 位址發送的 Frame)。

這學習到的資訊成為 MAC Address Table 一筆資料

PortMAC address
E057:A4:67:37:22:90

MAC Address Table 中的資訊並非永遠存在,會依據 Switch 的設定而影響。

此學習有助於 Frame 的篩選動作,因為 Frame 只會發送到真正需要送往的埠而已,這樣就可以節省整體的網路頻寬,這種篩選動作稱為「Frame Filtering」

Broadcast 與 Multicast 的轉發過程

BroadcastMulticast 所代表的 MAC 位址,根本不可能存在於真正的網路中。

Switch 在 VLAN 中的傳輸封包方式

前面所提到的範例是因為預設上所有的埠都是屬於預設的 VLAN 中,因此 Flooding 動作不會有什麼問題

Trunk

VLAN 資料要跨越多個 Switch 轉發至其它 Switch 所連接的同一 VLAN,須使用Trunk 技術在資料中增加一個 Tag,來表示目前這份資料是屬於哪一個 VLAN。傳遞資料都透過一條網路線連接起來,這條網路線必須要能傳遞承載所有 VLAN 的資料。

貼上 tag 後,封包會變成:

  1. 目的端位址資訊,占封包的 6 個位元組。
  2. 來源端位址資訊,占封包的 6 個位元組。
  3. 802.1Q 協定專用 tag,占封包的 4 個位元組。
  4. 用來指明資料長度或是乙太網路種類的資訊,占封包的 2 個位元組。
  5. 資料本身,占封包的 46∼1,500 個位元組。
  6. FCS,占封包的 4 個位元組。

802.1Q

native VLAN

只有 802.1Q 才有 native VLANISL 並沒有 native VLAN

ISL

ISL 協定所使用的資料封包長度超過乙太網路所能接受的長度,一旦不支援 ISL 協定的設備收到這樣的封包,會認為是錯誤的封包而直接遺棄。乙太網路的正確封包大小是 64 到 1,518 個位元組。

Switch 可能造成的問題

範例拓譜

同一個網路中使用多個交換器
  1. 廣播風暴(Broadcast Storm)
  2. 發送多個重複資料(Multiple Frame Copies)
  3. MAC 位址資料庫不一致(MAC Address Table Instability)

廣播風暴不只會造成網路癱瘓,也會耗盡網路上各個設備的資源,因為這種廣播封包的處理過程需要CPU來處理。解決這個問題的方法就是避免迴圈的產生(Loop Avoidance)

而 STP(Spanning Tree Protocol)就是用來避免網路迴圈的問題發生。