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

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