top of page

【Tech Tip】網路性能測試為何使用UDP(而不是TCP)?

網路性能測試是 EtherScope nXG 一項非常受歡迎的功能,EtherScope 能夠同時向最多四個遠端端點 (endpoints) 傳送測試流量,這些端點可以被配置為遠端對等點(remote peers, 指的是配置在遠端的設備或主機,可以與EtherScope nXG進行通訊和交換資料,這些遠端對等點可以主動地向EtherScope發送資料流,且EtherScope可與它們進行雙向通訊;這種配置可以用來模擬真實網路中的對等點行為,以測試網路性能、連通性和其他相關指標)、或反射器(reflectors, 指配置在遠端的設備或主機,其主要功能是接收EtherScope nXG發送的流量,並將其完全反射回原始發送位置,而不對資料流進行任何修改或處理。反射器不主動地向EtherScope發送資料流,它們僅用於測量網路的往返時延、頻寬、和其他性能指標,而不涉及實際的資料交換。

網路性能測試使用的資料流是通過UDP傳輸協議傳輸的,但為什麼使用UDP而不是TCP呢?TCP不是關鍵任務應用程式使用的協議嗎?TCP不是更可靠嗎?讓我們討論一下。


UDP流量與TCP資料流的比較


UDP流量相較於TCP資料流而言,常被不公平地被認為是不可靠的,這種觀點可能源於UDP協議的無連接性 (connectionless, 不需要在發送端和接收端之間建立和維護連接) 、不會重新傳輸丟失的資料封包,以及在傳輸層上與同類協議TCP相比更簡單的協議開銷;儘管這些說法是正確的,但在作為性能測試協議時,UDP具有幾項優勢。

  1. 無連接傳輸 (Connectionless Transmission) UDP在開始傳輸資料時不需要建立連接;TCP連接需要在兩端分配內部資源來管理、傳輸、和接收資料流;雖然大多數操作系統都有高度調整的TCP協議堆疊 (Stack),以優化應用程式流量的負載,並減少延遲,但在傳輸量測試方面,UDP是一個更加"輕量級"的協議,UDP在傳輸資料時,不需要這種連接建立和維護的開銷,因此在一些特定的應用場景中更為適用,例如:需要低延遲和高傳輸量的情況下的性能測試;然而,由於無連接的特性,UDP在可靠性方面比TCP稍弱,因為它不提供重傳丟失資料封包的機制。

  2. 無需確認或重傳數據 在性能測試中,應用程式跟踪所有傳輸的流量,並知道資料到達端點的情況,以及網路中有哪些資料丟失,這在應用程式本身的第七層進行處理,在傳輸層不需要額外的可靠性和重傳機制。由於TCP協議需要等待確認和可能的重傳機制,使得在性能測試中,TCP的傳輸效率較低,因此TCP協議無法充分利用可用的網路頻寬,使得網路路徑無法被充分填滿;這就是為什麼TCP測試結果往往只能達到總利用率的95-98%甚至更少。

  3. 無壅塞演算法(流量控制) TCP不希望傳輸過於激進,以至於使網路、或可用頻寬超過負荷;為了實現這一目標,TCP使用一個相當複雜的壅塞算法,不斷調整資料流,甚至覆蓋應用程式層級的設置;如果出現壅塞或資料丟失,TCP可以迅速 "踩下刹車",以避免進一步的損失。在性能測試中,這些協議層面的調整會影響測試的質量,因為TCP在傳輸方面始終比沒有流量控制方法的UDP更保守。

  4. 接收窗口機制 TCP資料流的接收方有一個接收緩衝區,用於暫時儲存輸入的資料,由於目標端的內部資源擁塞,這個緩衝區可能會填滿,這會導致發送方減慢傳輸速率;在性能測試中,接收緩衝區與實際測量網路頻寬的關係很小,因此我們不希望擁塞的接收端無端地減慢測試速度,我們可能會錯誤地將測試結果的不佳歸咎於網路問題,而不是接收端的TCP接收緩衝區。

總結來說,UDP作為性能測試的傳輸層載體,具有簡單、有效和其已經足夠滿足需求,由於網路性能測試所需的各種智慧功能和控制機制,都已在應用程式的程式碼中實現,這些功能包括資料的追蹤、錯誤檢測、統計資料收集等,因此在傳輸層不需要可靠性、重傳、流量控制、或接收緩衝。UDP允許測試在不受協議干擾的情況下,對網路基礎結構路徑進行壓力測試、測量或驗證,這正是性能測試的目的所在。


相關產品

EtherScope nXG 便攜式網路專業智能測試工具是一款多技術、多合一的掌上型網路分析儀,使工程師和技術人員能夠更快完成更多工作,幫助他們部署不斷變化的 Wi-Fi 和乙太網接入網路,並進行維護和文檔記錄。憑藉 EtherScope nXG 簡單的操作、深入的可見性以及遠端存取和控制功能,工程師現在可以與現場技術人員進行深度合作,加快解決問題的速度。

延伸閱讀

838 次查看
歡迎 訂閱翔宇科技主題式電子報 >,您將可同步掌握最新的產業新訊以及技術文章。
bottom of page