複製鏈接
請複製以下鏈接發送給好友

Zeta-TCP

鎖定
Zeta-TCP由一組提高TCP性能的算法組成,由 AppEx NetworksCorporation 開發並商業化。Zeta-TCP 與已存在的 TCP 協議完全兼容。
外文名
Zeta-TCP
開發企業
AppEx NetworksCorporation

Zeta-TCP基本信息

Zeta-TCP 在以下三個方面對 TCP 核心算法進行了大幅改進:
(1) 更適宜現代互聯網狀況的擁塞避免 (Congestionavoidance) 機制
(2) 及時精準的丟包預測
(3) 反向控制發送方流量

Zeta-TCP擁塞避免

今天,絕大多數的TCP實現都是基於TCP New Reno 及其變種(例如 TCP SACK, RFC 3517)作為其擁塞避免算法。 New Reno 的擁塞避免算法是基於丟包統計的算法。基於丟包的算法,將丟包作為網絡發生擁塞的標誌。但是,隨着Internet的發展,這個假設在網絡環境下,很多時候並不符合實際情況,特別是在無線網絡中,丟包的原因通常不是鏈路擁塞,而是由於信道衰減、無線的噪聲等原因導致。New Reno 算法一旦發現網絡上發生丟包,就會將擁塞窗口 (CWND) 迅速縮小,導致數據發送量急劇下降。
TCP Vegas以及其變種(特別是 FastTCP ),將延時作為網絡擁塞的標誌。基於延時的擁塞控制算法克服了基於丟包的擁塞控制算法的缺陷,在今天的網絡中,更容易反應網絡的實際情況。
Zeta-TCP 將延時和丟包的因素組合作為網絡擁塞的衡量標準。Zeta-TCP 不斷測量丟包和延時的變化幅度並根據該 TCP 連接歷史數據分析判斷當前所經歷的丟包,延時及其變化是否由擁塞引起,並據此來調整擁塞窗口,從而讓 TCP 的發送方流量最貼近 TCP 連接整條路徑的可用帶寬,從而減少擁塞,提高整條路徑帶寬利用率,最終達到提高 TCP 傳輸穩定性和吞吐率的目的。

Zeta-TCP丟包預測

在實際的網絡環境中,丟包通常不是均勻發生的,而是經常在短時間內集中發生。TCP 改進相關的RFC (New Reno 和引進 SACK 機制等) ,已經明確定義了怎樣比較準確的預測到第一個丟包。但是當啓用SACK的TCP進入快速恢復階段後,丟包預測準確率顯著降低。
Zeta-TCP 引入了一種根據該連接傳輸歷史進行智能學習的算法來計算每一個沒有被 ACK 或 SACK 的數據包丟失的概率,當這個概率高於某一個閾值時,對應的數據包就被判斷為丟失並會被重發。通過更及時準確的判斷丟包並進行重傳,Zeta-TCP 可以有效的讓 TCP 滑動窗口更平滑的向前移動,並降低錯誤重發的概率,減少帶寬的浪費。

Zeta-TCP逆向控制

針對 TCP 的優化算法(如 FastTCP),一般用來優化出向流量。Zeta-TCP採用了逆向控制的方法,來優化入向流量。逆向控制通過監測每一個連接的質量,給 TCP 連接的對端以豐富的提示信息,讓TCP 的對端能更及時的感知擁塞,丟包,從而更及時地重傳並調整其擁塞窗口以適應網絡路徑的實際可用帶寬。

Zeta-TCP實現

Zeta-TCP在Linux上採用了Loadable Kernel Module(通過NetFilter Hook)的實現方式,在Windows上採用了IM Driver Filter的實現方式。Zeta-TCP實現並不修改系統原有的TCP協議棧,而是攔截TCP的數據包,然後應用其各種優化算法。這種實現方法的優勢是模塊化更清晰,更容易的在各種系統上實現,其缺陷是可能帶來額外的系統開銷