# Switch 交換器 ###### tags: `Technology` `Communication` ## 簡介 是一種擴大網路的器材,接收到來的 **[連結層(Data Link Layer)](https://hackmd.io/s/rkWO_oKGm)** Frame,然後轉送出去。 ![switch](https://i.imgur.com/UIRW3Eb.png) 交換器在**乙太網路**中扮演重要的角色,他不像過去的集線器(hub)只能廣播傳送所有的frame,再讓各個device決定是否要接收,Switch會利用**MAC address**來決定要傳輸的目標。 此外,他有**transparent**的性質,對於主機和路由器來說,他們會將Frame定址到一個主機或路由器(而非定址到交換器),完全不知道有一個交換器會轉送此Frame。 ## Packet switching - store and forward 交換器會透過一個**交換表(switch table)** 來完成轉送Packet的功能,交換表會包含LAN中某些主機或路由器的 (1)MAC address (2)前往該MAC位址的交換器介面 (3)該條目放入交換表的時間。 * **交換表範例** | MAC位址 | 介面 | 時間 | | :-----------: | :----: | :-----: | | 62-FE-F7-11-89-A3 | 1 | 11:14 | | 7C-BA-B2-B4-91-10 | 0 | 11:07 | | ... | ... | ... | * **交換表運作方式** 1. 交換表一開始是空的 2. 從介面A收到MAC位址為X的電腦發給MAC位址為Y的電腦的封包,交換器會記下了MAC位址X在介面A。 3. 檢查交換表中是否有MAC位址為Y的條目 * 若沒有則向介面A以外的介面廣播該封包,MAC位址Y的電腦收到封包,就像MAC位址X回傳確認包,交換器即可記下MAC位址Y所對應的介面。 * 若有則向MAC位址X轉發確認包,這稱為**轉發(forwarding)**。 * 查表後發現該封包的**來源位址與目的位址屬於同一網段**。交換器將不處理該封包。這稱為**過濾(filtering)**。 4. 交換表會記下MAC位址的最後一次存取時間,若在一段時間 "**老化時間(aging time)**" 都沒有收到來源端位址為表格中某個位址的frame時,交換器便會將此紀錄清除。:tada: ## 交換器特性 * **隨插即用裝置(plug-and-play device)** 不需要使用者的介入,在安裝交換器時,只需要將LAN區段連接到交換器介面上即可,不需要另外設定交換表 * **消除碰撞** 交換器不會同時傳輸多份Frame,會先將Frame暫存起來。 * **Port是個別區隔的** 這是與集線器(Hub)的最大不同處,集線器的各個port都是互通的,因此每收到封包都會廣播出去,交給PC端決定要不要接收。 * **不同種類的連結** 交換器將連結**各自獨立**開來,所以一台交換器可以在各個介面同時連結不同的LAN標準。因此,交換器十分適合舊設備與新設備混用的狀況下。 ## 交換器汙染(Switch Poisoning): 竊聽交換式LAN 這是一種網路攻擊,他會送出大量具有假造來源端位址的封包到交換器,而這些條目會塞滿交換表,將正確的交換表條目擠出去,這樣子當有合法的封包傳進來時,Switch會將此封包廣播出去,讓竊聽者有竊聽的機會。 ## 交換器(Switch) v.s. [路由器(Router)](https://hackmd.io/s/Hy7P8cp47) * 兩者皆為Store and Foward封包的設備 * 交換器是在**連結層**利用**MAC位址**轉送封包,而路由器則是在**網路層**利用**IP位址**轉送封包。 * 交換器的處理時間較短,因為他只需要處理到第二層,而路由器需要處理到第三層。 * 交換器可以**隨插即用**,而路由器在使用時,本身即連接到的主機都需要設定IP位址。 * 交換器的運作topology一定要是**spanning tree**,因為他無法避免循環傳遞的狀況,而路由器則不在此受限,且可以得到來源端與目的端的最佳路徑。 * 路由器具有防火牆保護。:100: | | 集線器 | 交換器 | 路由器 | | :------: | :---: | :---: | :---: | | <i class="fa fa-leaf fa-fw"></i> 流量區隔 | ✖ | ✔ | ✔ | | <i class="fa fa-tag fa-fw"></i> 隨插即用 | ✔ | ✔ | ✖ | | <i class="fa fa-send fa-fw"></i> 最佳化繞送 | ✖ | ✖ | ✔ | ## Reference 1. Computer Networking: A Top-Down Approach 6/E 2. https://zh.wikipedia.org/wiki/%E7%B6%B2%E8%B7%AF%E4%BA%A4%E6%8F%9B%E5%99%A8 3. https://en.wikipedia.org/wiki/Network_switch 4. https://mdaileyis406.wordpress.com/tag/switch-poisoning/ 5. http://peso.pixnet.net/blog/post/30552186-router-%3B-switch-%3B-hub-%E5%B7%AE%E7%95%B0