# Switching(交換技術) [TOC] Hello Guys, I'm LukeTseng. 本篇將來介紹什麼是路由器,若本篇文章有誤,歡迎各位指正,若你也喜歡這篇文章,不妨按下愛心跟追蹤我的個人頁面吧! 另外本篇文章主要針對上課內容製作筆記,斟酌參考~ ## 簡介(Introduction) > 交換技術(Switching)是指兩個節點透過網路中繼站進行資料傳輸的方式,主要目的是將資料正確且快速地從發送端(Sender)傳送到接收端(Receiver)。在網路通訊中,由於存在數種甚至數千萬種可能的傳輸路徑,交換技術就是為了管理這些傳輸路徑而制定的方法。 其中呢,網路中繼站是指在資料從發送端傳送到接收端的路徑上,負責接收、處理並轉發資料的中間節點設備。這個網路中繼站也有可能是以下這些設備: - 路由器(Router) - 交換器(Switch) - 中繼器(Repeater) - 集線器(Hub) 以傳統上來說,Switching 會分成兩種方法: - Circuit switching(電路交換) - Packet switching(封包交換) ## Circuit switching ![image](https://hackmd.io/_uploads/SkwKRMkG-g.png) Image Source:https://www.geeksforgeeks.org/computer-networks/circuit-switching-in-computer-network/ 電路交換是最古老的交換方式,源自早期的電話網絡(PSTN)。 這個技術要求通訊雙方在開始傳輸資料之前,必須先建立一條專用的實際連接線路。這條路徑在通訊結束前,資源(頻寬)是獨佔的,其他人無法使用。 電路交換的運作方式大致上有這以下三個階段: - 建立連線(Circuit Establishment):發送端(Sender)發出連線請求訊號,該訊號在網路上一站一站地尋找可到達目的地的可用路徑,找到後就把它佔為己有,直到建立完整的連線路徑。 - 資料傳輸(Data Exchange):連線建立後,雙方沿著這條專用路徑進行資料傳輸。 - 切斷連線(Circuit Clearing):通訊結束後,釋放整條連線供其他人使用。 優點: - 效能很好:連線建立後頻寬是固定的,不會因為網路其他人變多而變慢。 - 無延遲抖動:資料傳輸速率穩定,適合即時語音通話。 缺點: - 效率極低:如果兩個人在講電話時都不講話,占著茅坑不拉屎,那條線路依然被佔用,頻寬被浪費(Silent periods)。 - 建立時間長:開始傳輸前需要時間撥號建立連線。 - 超難用:如果路徑中間某個交換機壞了,連線就會中斷,必須重新撥號。 ## Packet switching ![image](https://hackmd.io/_uploads/SJFj0M1Mbl.png) Image Source:https://www.geeksforgeeks.org/computer-networks/packet-switching-and-delays-in-computer-network/ 這是現代網際網路的基礎。 會限制每則訊息的單位大小,將資料切割成一個個封包(Packet)進行傳輸。 這個技術也需要建立連線,但用的是虛擬電路而非實體專用線路。 封包交換主要有兩種模式,最常用的是 Datagram(資料包 or 數據報)模式(即 IP 網路的運作方式)。 封包交換的運作流程如下: * 工作站將訊息分割成若干個固定大小的封包並依序編號。 * 發送端發出連線請求,沿途的節點會記錄虛擬路徑資訊。 * 每個封包獨立傳輸,可能經過不同的網路節點和路徑到達目的地 * 封包在節點會被接收(Receive)、緩衝(Buffer)、等待(Queue)和重新傳送(Retransmit)。 * 到達目的地後重新組裝成完整訊息。 其實可以主要概括成以下三點: 1. 無須建立連線:發送端可直接將封包送出。 2. 獨立路由:每個封包獨立選擇最佳路徑。像封包 A 可能走這條路,封包 B 可能因為那條路塞車而走另一條路。 3. 資源共享:頻寬是動態分配的。誰有資料要傳,誰就佔用頻寬;沒資料時,頻寬就讓給別人用。 優點: - 效率極高:頻寬由所有人共享,不會因為某人沈默而浪費資源。 - 自動導向:如果中間某條路斷了,路由器會自動將封包導向另一條路,通訊不斷。 - 成本低:不需要為每個用戶預留專屬硬體資源。 缺點: - 不可預測的延遲:如果網路塞車,封包需要排隊,導致速度變慢。 - 會丟包:如果路由器緩衝區(Buffer)滿了,新來的封包會直接被蛋雕。 - 順序不一:封包可能因為走不同路徑,導致晚發的封包可能會先到,接收端需要重新重組。 ## Datagram(資料包) Datagram 是一種無連線式(Connectionless)的服務,類似於傳輸層(Transport Layer)的 UDP 協定 。 無連線就是不用跟接收端、網路中繼站那些東西有交流,想傳封包就傳封包。 Datagram 有獨立的路由(Independent Routing),這邊假設要送 3 個封包(A、B、C)給同一個目的地。 - 封包 A 可能走「路由器 1 -> 2 -> 5」。 - 封包 B 可能因為路由器 2 塞車,改走「路由器 1 -> 3 -> 5」。 - ***每個封包都是獨立的個體,路由器看到封包時,只看封包的目的地 IP,然後查路由表決定當下最好就往哪送。*** 因為每個封包都要自己找路,所以每個封包的標頭(Header)裡都必須包含完整的來源與目的地 IP 位址。 總之 Datagram 就可以想像是一個郵差,自己要對好每一封信的地址,然後送上門來,就醬。 優點: * 非常的靈活~:如果中間非常不幸的,有個路由器炸了,後面的封包會自動繞路,通訊不會中斷(這也是 Internet 當初為了軍事用途設計的初衷)。 * 建立速度快:不需要等待連線建立的時間。 缺點: * 不保證順序:先發出的封包可能後到(因為繞遠路了),接收端勢必要把這些封包給重組。 * 標頭負擔大:每個封包都要背著長長的 IP 位址。 ## Virtual Circuit(虛擬電路) ![image](https://hackmd.io/_uploads/rkvez71MWl.png) Image Source:https://www.geeksforgeeks.org/computer-networks/virtual-circuit-in-computer-network/ Virtual Circuit 是一種從主機源頭(Source)到目的主機建立類似電路的邏輯連接路徑。 雖然是虛擬電路,但這個東東依然是屬於 Packet Switching 哦。 之所以叫「虛擬」,是因為它用軟體和邏輯的方式,模擬出像打電話一樣的連線感。 運作模式大致上有三種: 1. 連線導向 (Connection-oriented): 跟電路交換一樣,必須經過三個階段:建立連線(Setup)->傳輸資料->拆除連線(Teardown)。 在傳資料前,封包會先發送一個探路的請求,確定一條路徑,並告訴沿途的路由器說:有封包要過,幫我記住這條路。 2. 固定路徑: 一旦連線建立,這條虛擬電路就固定了。後續所有的封包(A, B, C)都會走同一條路,不會亂跑。 3. 使用 VCI (虛擬電路識別碼): 因為路徑已經講好了,所以封包不需要揹上那又臭又長的 IP 位址。 封包 header 只需要一個短短的號碼,稱為 VCI(Virtual Circuit Identifier)。 優點: - 保證順序:因為走同一條路,所以先發先到。 - 轉發速度快:路由器只需要看精簡的 VCI 標籤,處理速度通常比查 IP 路由表快。 - 服務品質(QoS):比較容易保留頻寬或控制延遲(因為路徑固定好管)。 缺點: - 非常脆弱:如果路徑中某台路由器壞了,整條虛擬電路就斷了,必須重新建立連線(不像 Datagram 可以自動繞路)。 - 路由器負擔重:路由器必須記住每一條正在進行的虛擬電路狀態。如果是 Datagram,路由器不需要記住任何狀態,轉發完就不管它了。 ## 總結 交換技術是為了在複雜多變的網路路徑中,讓資料能夠快速、準確地從發送端傳到接收端。資料在途中會經過多個中繼設備,例如 Router、Switch、Repeater、Hub。 交換方式主要分為兩大類: * 電路交換(Circuit Switching) * 封包交換(Packet Switching) ### Circuit Switching(電路交換) 源自早期電話網路,特色是先建立專屬路徑,再開始傳輸。 運作流程: 1. 建立連線(撥號、尋找可用路徑) 2. 專線傳輸資料(線路獨佔) 3. 結束後釋放資源 優點: 1. 連線品質穩定、無延遲抖動 2. 頻寬固定,適合語音等即時應用 缺點: 1. 資源利用差(不講話也佔頻寬) 2. 建立連線需要時間 3. 中途某設備故障會導致整條線路中斷 ### Packet Switching(封包交換) 現代網路的核心技術。資料會被切成多個封包,每個封包依情況選擇路徑。 特性: 1. 無須建立實體專線 2. 每個封包獨立路由 3. 頻寬由所有使用者共享 優點: 1. 資源利用高 2. 可自動繞路不中斷 3. 成本低 缺點: 1. 延遲可能不穩定(排隊、塞車) 2. 封包可能掉落(Buffer 滿) 3. 抵達順序可能錯亂 ### Datagram(資料包) 屬於封包交換的一種,無連線(Connectionless),類似 UDP。 特色: 1. 每個封包獨立傳輸 2. 每個封包 Header 需包含完整的來源與目的地 IP 3. 封包可能走不同路徑 優點: 1. 高彈性,可自動繞路 2. 不需建立連線,速度快 缺點: 1. 封包順序不保證 2. 每個封包 Header 較大 ### Virtual Circuit(虛擬電路) 屬於封包交換,但具有像電話一樣的連線導向行為。 特性: 1. 需建立連線(Setup → 傳輸 → Teardown) 2. 固定路徑(所有封包走同一路) 3. 使用 VCI(Virtual Circuit Identifier) 4. Header 精簡,不需完整 IP 優點: 1. 封包順序固定 2. 轉發速度較快(查 VCI 速度勝過查 IP) 3. 可較容易維持 QoS 缺點: 1. 某節點壞掉會導致整條虛擬電路失效 2. 路由器需維護虛擬電路狀態,增加負擔 ## 參考資料 [Virtual Circuit in Computer Network - GeeksforGeeks](https://www.geeksforgeeks.org/computer-networks/virtual-circuit-in-computer-network/) [Circuit Switching in Computer Network - GeeksforGeeks](https://www.geeksforgeeks.org/computer-networks/circuit-switching-in-computer-network/) [Packet Switching and Delays in Computer Network - GeeksforGeeks](https://www.geeksforgeeks.org/computer-networks/packet-switching-and-delays-in-computer-network/) [User Datagram Protocol - UDP - GeeksforGeeks](https://www.geeksforgeeks.org/computer-networks/user-datagram-protocol-udp/) [【資通】CH2. 交換(Switching)](https://vocus.cc/article/680d8a2ffd89780001a4c3d9) [電路交換 - 維基百科,自由的百科全書](https://zh.wikipedia.org/zh-tw/%E7%94%B5%E8%B7%AF%E4%BA%A4%E6%8D%A2) [電路交換技術](https://www.tsnien.idv.tw/Network_WebBook/chap4/4-2%20%E9%9B%BB%E8%B7%AF%E4%BA%A4%E6%8F%9B%E6%8A%80%E8%A1%93.html) [a cai 雜記: Circuit Switching V.S. Packet switching](https://acai-hsieh.blogspot.com/2013/07/circuit-switching-vs-packet-switching.html) [中繼器、集線器、橋接器、交換器 原理與介紹 - NotFalse 技術客](https://notfalse.net/66/repeater-hub-bridge-switch) [網際網路架構 - HackMD](https://hackmd.io/@DpuBXDwLSDCIE6cNJSjUlg/S1N1Mwqmp) [数据报(datagram)网络与虚电路(virtual-circuit)网络是典型两类分组交换网络。_compare datagram network and virtual-circuit netwo-CSDN博客](https://blog.csdn.net/qq_38998213/article/details/123984691)