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