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