茹新宇1,劉淵2,陳偉2
(1. 江蘇聯合職業技術學院 無錫交通分院,江蘇 無錫 214151;2. 江南大學 數字媒體學院,江蘇 無錫 214122)
摘要:互聯網的穩定性和魯棒性離不開擁塞控制,然而目前TCP傳輸中廣泛使用的AIMD算法因窗口波動劇烈,致使丟包明顯、系統吞吐量及帶寬利用率偏低。為此提出了一種新的TCP擁塞窗口調整策略ACwnd。該策略依據RTT采樣值構建正態分布函數式,動態更新下一擁塞窗口值,能較好地適應網絡實時變化特點,具有不錯的響應性。從數學角度對新策略的合理性與可行性進行了分析證明。NS3仿真結果表明新策略可有效穩定窗口波動、增大發送速率、降低丟包率,同時對系統吞吐量及帶寬利用率的提高也有一定貢獻。
關鍵詞:擁塞窗口;策略;算法;機制;慢啟動門限閾值;NS3仿真
中圖分類號:TP393文獻標識碼:ADOI: 10.19358/j.issn.1674-7720.2017.10.022
引用格式:茹新宇,劉淵,陳偉.新TCP擁塞窗口調整策略[J].微型機與應用,2017,36(10):77-80.
0引言
*基金項目:國家自然科學基金(61602213);江蘇省自然科學基金(BK20151131)
1986年10月,因發生擁塞,LBL到UC Berkeley的吞吐量從32 kb/s 斷崖式下跌至40 b/s[1],自此人們對擁塞控制展開了大量研究,先后提出了多種策略及算法,其中以TCP Tahoe和New Reno兩者影響較大。伴隨著“互聯網+”的到來,網絡結構類型差異化、表現形式深入化,傳統的擁塞控制已略顯不足,原機制采用AIMD(Additive Increase Multiple Decrease)算法,易導致帶寬利用率低、流量波動大等[2]。而且根據接收端反饋信息判斷擁塞程度后采取相應策略的方式具有一定的時間延遲,將導致源端不能及時準確地判斷擁塞狀況,加劇了網絡的不穩定性。
由文獻[3]可知,無論有線還是無線網絡,往返延遲RTT(Round Trip Time)的變化能客觀反映當前網絡負載狀況,其變化適合作為擁塞反饋信息。為提升網絡性能,本文提出一種新的TCP擁塞窗口調整策略,它基于RTT的正態分布統計模型[4],依據其采樣值的變化特點判斷負載趨勢,運用正態分布概率函數,在擁塞避免(Congestion Avoidance)階段動態調整擁塞窗口值,改進了TCP擁塞控制的效果。
1擁塞控制的基本概念
1.1開環和閉環
由控制論觀點,擁塞控制可分為開環和閉環兩類。開環通過良好的設計規避問題出現,確保擁塞不發生,而閉環則建立在反饋環路上。閉環按反饋方式可分為顯式反饋和隱式反饋。顯式反饋由擁塞點將擁塞信號反饋給源端。而隱式反饋中,源端通過局部觀測推斷是否存在擁塞。對于互聯網這類復雜系統,閉環控制較合適。TCP擁塞控制采用基于窗口的端到端閉環控制,它通過反饋確認信號ACK來控制分組的發送。具體過程可分為擁塞檢測、信號反饋和窗口調整三個階段,其原理如圖1所示[5]。本文結合顯式反饋和隱式反饋之優點,使用閉環控制實現擁塞窗口的動態調整。
1.2擁塞控制的四個階段
(1)慢啟動:cwnd<ssthresh,每一RTT cwnd(x)=2x;
(2)擁塞避免:cwnd≥ssthresh,每RTT cwnd=cwnd+1;
(3)快速重傳與恢復:收到三重復應答(TD)ACK,重傳ACK指示數據包并重賦值,ssthresh=cwnd2,cwnd=ssthresh+3,而后繼續執行步驟(2);
(4)超時重傳:若重傳定時器RTO超時,源端再次進入慢啟動并重賦值,ssthresh=cwnd2,cwnd=1。
2新策略的基本思路與算法流程
2.1基本思路
據文獻[4],在不同負載下,RTT采樣可被近似修正為正態分布。據此設想用當前窗口的RTT樣本值作為網絡擁塞狀態的反饋信號,預估即將發生的擁塞,從而達到主動調整擁塞窗口的目的。
新策略的基本思路為:當系統進入擁塞避免階段后,由樣本值構建正態分布密度函數φ(x),同時計算出μ±3σ作為后續運算上下限。積分求得正態分布函數F(x)值后代入新算法,即可預估下一擁塞窗口值。依次重復上述步驟,即可實現發送窗口的動態更新。
慢啟動及快速重傳與恢復階段后繼續執行上述新算
法。超時重傳雖是小概率事件,但此時RTT較大,判斷為擁塞嚴重,立即執行原超時重傳程序,直至再次進入擁塞避免階段后仍執行上述新算法。
2.2算法流程
新TCP擁塞窗口調整策略的具體算法流程如圖2所示。
3新策略的具體實現與性能分析
3.1具體實現
設RTT=x,x∈(0,+∞)。進入擁塞避免階段后,以新算法取代原AIMD,具體實現細節如下:
(1)依據采樣值,計算樣本均值μ和樣本均方差σ:μ=1n·∑ni=1xi,σ=1n-1∑ni=1(xi-μ)2,(μ>3σ);
(2)由μ和σ計算正態分布密度函數φ(x),表達式為:φ(x)=12πσe-(x-μ)22σ2(即確定密度函數φ(x)的圖像位置及形狀);
(3)據μ、σ和φ(x)積分求得正態分布函數F(x),表達式為:F(x)=Φx-μσ=∫x0φ(t)dt≈∫μ+3σμ-3σφ(x)dx;
(4)由公式cwndn+1=cwndn·log21F(x)預估下一擁塞窗口值。
以上式中μ和σ為擁塞狀態因子,由RTT來調節,用以反映當前網絡擁塞狀況。
3.2性能分析
3.2.1算法分析
(1)當x=μ時,F(x)=Φx-μσ=Φ(0)=0.5,log21F(x)=1,cwndn+1=cwndn·log21F(x)=cwndn,表示當前的RTT值與本次窗口的樣本均值完全相同,預估擁塞程度不變,無需調整擁塞窗口值;
(2)當x<μ時,F(x)=Φx-μσ<Φ(0)=0.5,log21F(x)>1,cwndn+1=cwndn·log21F(x)>cwndn,表示當前的RTT值比本次窗口的樣本均值有所減小,預估擁塞程度可能緩解了,可謹慎地適當增大擁塞窗口值;
(3)當x>μ時,F(x)=Φx-μσ>Φ(0)=0.5,log21F(x)<1,
cwndn+1=cwndn·log21F(x)<cwndn,表示當前的RTT值比本次窗口的樣本均值有所增大,預估擁塞程度可能加劇了,應適度地嘗試減小擁塞窗口值。
綜上所述,x越小意味著此刻網絡越順暢,資源越空閑,為增加系統吞吐量、提高帶寬的有效利用率,可適當地加大擁塞窗口值,提高數據發送速率。反之,x越大則意味著網絡越遲滯,此刻發生擁塞的概率劇增,為保持系統穩定運行,有必要嘗試減小擁塞窗口值,合理控制數據發送速率。
3.2.2區間分析
當一分布服從正態分布規律時,根據分布函數性質,對總體N(μ,σ2)在區間(-∞,+∞)取值概率查表知:
∵F(μ+σ)=Φμ+σ-μσ=Φ(1)=0.841 3
F(μ-σ)=Φ(μ-σ-μσ)=Φ(-1)=1-Φ(1)=1-0.841 3=0.158 7
∴F(μ-σ, μ+σ)=F(μ+σ)-F(μ-σ)
=0.841 3-0.158 7=0.682 6
同理可得:
F(μ-2σ,μ+2σ)=F(μ+2σ)-F(μ-2σ)=0.954 4
F(μ-3σ,μ+3σ)=F(μ+3σ)-F(μ-3σ)=0.997 4
往返延遲RTT分布區間的頻數如圖3所示。故在區間[μ-σ,μ+σ]、[μ-2σ,μ+2σ]和[μ-3σ,μ+3σ]內取值的概率分別為68.26%、95.44%和99.74%。RTT采樣值落在(-∞,μ-3σ)∪(μ+3σ,+∞)區間內是小概率事件,而它出現在[μ-3σ,μ+3σ]之間概率極大。因此研究樣本在[μ-3σ,μ+3σ]內的正態分布情況是合理的,新算法的積分區間選擇[μ-3σ,μ+3σ]具有可行性。
4仿真與驗證
本文采用NS3.24[6]網絡仿真器,在Ubuntu16.04平臺下搭建了一高度可調節、可多次使用的實驗環境,用以驗證新策略的有效性。拓撲結構如圖4所示,S1~Sn、D1~Dn分別為發送端和接收端,接入帶寬6 Mb/s,延時4 ms,瓶頸鏈路帶寬為1.5 Mb/s,延時60 ms,門限閾值取系統推薦值64 KB。另設節點緩存為50個分組,源端以每分組1 KB大小連續發送10 Mb/s FTP單向數據流,路由R1、R2則采用FIFO隊列管理算法。這里從不同時間段的多組擁塞窗口值、丟包率、吞吐量及鏈路帶寬四個方面,采用圖表形式分別對新ACwnd、原New Reno及TCP Tahoe三種策略進行實驗比對,具體討論如下。
如表1所示,從擁塞避免階段開始,新策略由返回的RTT樣本值建立正態分布統計概型,計算得到正態分布函數值,據此主動預估下一擁塞窗口開啟值。故其具有良好的動態響應能力,并極大地減輕了原AIMD算法的窗口抖動“癥狀”,改善和平滑了突發流量沖擊,使數據包可平緩“適度”地進入網絡,也間接提升了TCP流整個生命期的擁塞窗口平均值,可同時實現更多的服務類型與更好的服務質量。
從圖5可明顯看出,由于新策略的擁塞窗口均值較大,有效地緩解了異常流量波動,其丟包率理應降低,這點也符合公式p=0.76w2[7](其中p為平均丟包率,w為平均擁塞窗口值)。
圖5不同策略下,丟包數隨發送量變化比較
新策略通過提前預估并合理開啟發送窗口值,使源端的數據發送速率基本滿足系統可用資源,從而有效減少了不必要的丟包,平緩了窗口速率抖動。限制“適度”的流量進入網絡,避免了不必要的分組丟失及“盲目”重傳。由圖5可見,隨著源端發送數據包的增加,ACwnd的丟包數略少于原New Reno和TCP Tahoe。新策略丟包率更低,比原策略優化明顯。可見新策略對丟包率的降低也起了積極作用。
表2顯示,采樣初期,新策略ACwnd吞吐量穩步上升且波動不大,并最終趨于穩定,數據略好于原New Reno策略。而TCP Tahoe則在吞吐量方面劣勢明顯,且抖動頻繁。可見新策略還對系統吞吐量的提高與穩定也有一定貢獻。
不同策略下,帶寬大小比較如圖6所示。
從圖6可看出,新策略的鏈路帶寬增長明顯。這歸咎于新算法具有較大的發送窗口,較低的丟包率,使得丟包或超時重傳明顯減少,鏈路帶寬被充分利用,故新策略有效提升了網絡資源利用率。不同時間段不同策略下,鏈路帶寬值的比較見表3。
由于新策略ACwnd在帶寬資源的分配處理上遠優于New Reno,也略高于TCP Tahoe,故其可滿足更多的服務作業需求,實現共享網絡資源的目的。
綜上所述,新策略在擁塞窗口平均值、丟包率、系統吞吐量及帶寬利用率四個方面對系統性能均有一定程度的改善,圖表數據也表明新策略效果明顯優于原策略,能較好地實現高效穩定的擁塞避免過程。
5結論
本文針對目前TCP協議中廣泛使用的AIMD算法的缺陷,提出了一種新的TCP擁塞窗口調整策略ACwnd。新策略依據RTT正態分布特性構建函數關系式,并主動預測下一擁塞窗口值,可實現發送速率的自動更新,具有不錯的實時響應性。文中還通過數學方式證明了新策略的可行性與合理性。文末的NS3仿真也驗證了新策略可有效增加擁塞窗口平均值、減少丟包率,對系統吞吐量及帶寬利用率也有一定貢獻。但該策略對于無線傳輸中的誤碼及信道衰減丟包適應性較差,系統吞吐量和帶寬利用率下降明顯。因此后期將增加丟包區分策略,使之具有更好的適應性,以期進一步提高網絡性能。
參考文獻
[1] JACOBSON V. Congestion avoidance and control[J]. ACM Computer Communication Review, 1988,18(4):314-329.
[2] CHIU D M,JAIN R. Analysis of the increase and decrease algorithms for congestion avoidance in computer networks[J]. Computer Networks and ISDN Systems,1989,17(1):1-14.
[3] 趙偉豐.基于RTT的端到端網絡擁塞控制研究[D].天津:天津大學,2014.
[4] ELTETO T, MOLNAR S.On the distribution of roundtrip delays in TCP/IP networks[C].Proceedings of the 24th Annual IEEE Conference on Local Computer Networks, 1999:102-105.
[5] 李學淵.基于TCP/IP擁塞控制的算法研究[J]. 艦船電子工程,2005,25(6):88-89.
[6] 張登銀,張保峰.新型網絡模擬器NS-3研究[J].計算機技術與發展,2009,19(11):80-84.
[7] MORRIS R. Scalable TCP congestion control[J].Proceedings of IEEE INFOCOM 2000, IEEE Computer Society, 1970,3(5):1176-1183.