Skip to content

Instantly share code, notes, and snippets.

@ChenBlue
Created August 21, 2018 08:08
Show Gist options
  • Save ChenBlue/c329b51492f68366457f89c26e13dc19 to your computer and use it in GitHub Desktop.
Save ChenBlue/c329b51492f68366457f89c26e13dc19 to your computer and use it in GitHub Desktop.

Switch 交換器

tags: Technology Communication

簡介

是一種擴大網路的器材,接收到來的連結層(Data Link Layer) Frame,然後轉送出去。 switch 交換器在乙太網路中扮演重要的角色,他不像過去的集線器(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)

  • 兩者皆為Store and Foward封包的設備
  • 交換器是在連結層利用MAC位址轉送封包,而路由器則是在網路層利用IP位址轉送封包。
  • 交換器的處理時間較短,因為他只需要處理到第二層,而路由器需要處理到第三層。
  • 交換器可以隨插即用,而路由器在使用時,本身即連接到的主機都需要設定IP位址。
  • 交換器的運作topology一定要是spanning tree,因為他無法避免循環傳遞的狀況,而路由器則不在此受限,且可以得到來源端與目的端的最佳路徑。
  • 路由器具有防火牆保護。:100:
集線器 交換器 路由器
流量區隔
隨插即用
最佳化繞送

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment