1. 程式人生 > >為什麽TCP在高時延和丟包的網絡中傳輸效率差?

為什麽TCP在高時延和丟包的網絡中傳輸效率差?

TCP 協議 丟包

說明:有同學私信問到,為什麽TCP在高時延和丟包的網絡中傳輸效率差? Google可以搜到很多的信息,這裏轉譯了部分IBM Aspera fasp技術白皮書的第一章節內容,作為參考。


-
在這個數字世界中,數字數據的快速和可靠移動,包括全球範圍內的大規模數據傳送,對於幾乎所有行業的業務成功都變得至關重要。

-
然而,傳統的TCP協議具有固有的性能瓶頸,特別是對於具有高往返時間(RTT)和丟包的高帶寬網絡上最為顯著。

TCP固有的傳輸性能瓶頸主要是由TCP的加性增/乘性減(AIMD)擁塞避免算法引起的,TCP擁塞算法緩慢地探測網絡的可用帶寬,增加傳輸速率直到檢測到分組丟失,然後指數地降低傳輸速率。

-

TCP的這種擁塞算法是為了避免Internet整體擁塞而設計的,因為在互聯網的早期,數據傳送網絡都是基於電纜固定網絡,傳輸中出現丟包就可以100%的認為是傳輸通道出現了擁塞。然而在今天的網絡情況下,WIFI/移動蜂窩網絡等無線傳輸網絡本身就具有天然的丟包可能性,這些與網絡擁塞無關的其它分組丟失同樣降低了傳輸速率。

-

事實上,TCP AIMD算法本身也會造成丟包,導致網絡出現瓶頸。在提高傳輸速率直到發生丟失時,AIMD過於激進地探測可用帶寬導致丟包。在某些情況下,這種由於激進探測帶寬引發的丟包損耗實際上超過了來自其它原因(例如物理介質或交叉業務突發)的損耗,並且以不可預測的損耗比將"無損耗通信信道"變為"不可靠的信道"。

-

TCP AIMD中基於丟包的擁塞控制對網絡端到端傳輸吞吐量具有致命的影響:當一個分組丟失需要重傳時,TCP大幅降低發送數據甚至停止發送數據到接收應用,直到重傳確認。所有的網絡應用傳輸性能都會受到TCP這種擁塞算法的影響,但是對於大批量數據的傳輸而言,尤其致命。

-

TCP中可靠性(重傳)與擁塞控制的這種耦合對文件傳輸造成嚴重的人為吞吐量損失,這從基於TCP的傳統文件傳輸協議(如廣域網上的FTP、HTTP、CIFS、NFS )的性能較差可見一斑。

-

下面條形圖顯示了在使用TCP (×××顯示)的文件傳輸技術的OC-1 (51 Mbps)鏈路上,在各種數據包丟失和網絡延遲條件下可實現的最大吞吐量。TCP連接吞吐量有一個嚴格的理論限制,它僅取決於網絡RTT和數據包丟失。請註意,增加更多帶寬不會改變TCP有效吞吐量。文件傳輸速度沒有提高,昂貴的帶寬也沒有得到充分利用。

技術分享圖片

為什麽TCP在高時延和丟包的網絡中傳輸效率差?