TCP加速機制是如何加速的?


一、什么是TCP加速?
 
TCP加速就是在高時延鏈路提高吞吐量的一系列解決方案。
 
二、為什么需要對TCP進行加速?
 
1、傳統的TCP擁塞控制算法並不適用於高時延、高誤碼的鏈路。
2、隨着web元素的豐富,用戶量的增加對交互時延和處理能力的要求越來越高。
3、對資源和合理配置,提高網絡帶寬利用率的需求。
 
以同步衛星通信場景為例講解1
衛星通信的傳輸時延是因為衛星在36000公里的高空,電波的從地面到衛星再回到地面的時間大約是0.27秒(30萬公里/秒)。這就是所謂的衛星通信的傳輸延時。
實測來講:衛星的傳輸時延遠大於理論值,同步衛星天地往返時延在500ms以上,鏈路較差是在600ms-800ms之間波動。
實際測試:在時延500ms、時延抖動較小的情況下,TCP連接不做加速時傳輸速率為空口帶寬(衛星口最大傳輸能力)的30%-40%。例:10Mbps的帶寬最大只能利用3Mbps-4Mbps,其余資源被浪費。
 
三、如何對TCP加速?
 
如何對TCP進行加速業界並沒有一個標准,但有一系列的推薦方法。詳細可閱讀 RFC 3135
 
現在最常用的方法是: TCP透明代理 + 算法優化 
 
TCP透明代理(TCP加速的核心思想
原理:就是利用一些手段在內核或者協議棧捕獲TCP報文,將TCP報文送入TCP加速器中處理並在處理完成后將報文頭部還原並繼續轉發。
好處:1、透明代理可以把端到端的TCP分割為幾個部分,這樣就可以根據每個部分的丟包、時延情況進行不同的優化,從而提高TCP的性能。
           2、TCP加速器將一端的連接終結,然后重新發起一個連接到另一端。這樣兩端的數據包都被緩存在兩端的TCP加速器上,TCP加速器之間的數據發送由加速器自行控制。
 
算法優化
原理:利用透明代理機制,在加速器之間或加速器與Server端之間修改或優化算法,使用更適用鏈路特點的算法可以事倍功半!
    單邊加速:只需要在tcp的一端部署的加速技術(絕大多數都是優化tcp的擁塞控制算法)
        優點:部署容易,變動較小,應用范圍廣,研發廠商多算法豐富多樣。
        缺點:必須兼容標准的TCP協議,優化調整點不如雙邊多。
    雙邊加速:雙端部署
        優點:可以采用更高效的傳輸協議,數據緩存,流量壓縮,多路徑轉發
        缺點:部署較為麻煩,必須雙端部署;如果是客戶端需要安裝相應軟件工具
 
注意!!!
上述所說的TCP加速方法只能提高TCP連接的帶寬利用率不能提高TCP連接的建鏈速度等;簡單來說就是不能提高你訪問網頁的速度,只能提高你下載文件的速度!
 
如果想提高HTTP的訪問速度請選擇壓縮等方法
 
------------------------------------------------------------------------
注:如果想進一步研究TCP加速的優化方案建議研究RFC3135
 
衛星通信行業的大佬 休斯的TCP加速就是按照RFC 3135做的
 
之前和小伙伴們研究了一下
RFC 3135 大致有這幾塊(PEP就是TCP透明代理)
1、TCP ACK處理:  TCP PEP 基於TCP ACK操作
2、TCP ACK間距:  ACK間隔用於平滑遍歷鏈路的TCP確認流
3、本地TCP確認:   PEP接收的TCP數據段由PEP本地確認
4、本地TCP重傳:本地重傳在TCP PEP和接收端系統之間的路徑上丟失的數據段
5、TCP ACK過濾和重建:通過過濾鏈路一側ACK,並在鏈路的另一側重建已刪除的ACK來解決由於不對稱鏈路產生的擁塞問題
6、隧道:封裝消息以跨特定鏈路傳送消息或強制消息遍歷特定路徑,封裝隧道另一端的PEP在最終傳送到接收端系統之前移除隧道封裝器 (中間鏈路使用UDP傳輸就是這種)
7、壓縮:壓縮各部分簡要需要通過鏈路的字節數
8、處理與TCP斷開鏈路的周期:TCP發送方未收到預期的確認,在重傳定時器到期時會導致TCP關閉其連接
9、基於優先級的附庸:通過緩慢且昂貴的鏈路實現基於優先級的數據復用,可以顯著提高所選應用或連接的鏈路性能和可用性
10、協議助推器機制:如UDP錯誤檢測、奇偶校驗分組數據包、發送PEP添加時間戳來延遲分組一邊接收端重現正確的間隔


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM