(西南科技大學(xué)信息工程學(xué)院,四川 綿陽(yáng) 621010)
TCP協(xié)議以其可靠性、端到端、定向的傳輸服務(wù)被廣泛應(yīng)用于各種網(wǎng)絡(luò)。它主要包括慢啟動(dòng)、擁塞避免、快速恢復(fù)和擁塞處理4個(gè)階段[1]。TCP采用擁塞窗口(cwnd)來(lái)解決網(wǎng)絡(luò)中的擁塞,以上4個(gè)階段根據(jù)不同的環(huán)境狀態(tài)改變cwnd值,以適應(yīng)網(wǎng)絡(luò)。雖然現(xiàn)有TCP協(xié)議應(yīng)用廣泛,但對(duì)于鏈路帶寬不對(duì)稱、節(jié)點(diǎn)運(yùn)動(dòng)不規(guī)則的無(wú)線網(wǎng)絡(luò)而言,其在擁塞判斷和決策處理上容易使網(wǎng)絡(luò)出現(xiàn)擁塞、傳播延遲過(guò)大等情況。主要原因是擁塞判斷方式單一以及不合理的cwnd變化方式。擁塞判斷方式單一指TCP在擁塞避免和快速恢復(fù)階段分別采用往返時(shí)延(round-trip time,RTT)和重復(fù)確認(rèn)(acknowledgement,ACK)決定cwnd值增長(zhǎng)和判斷擁塞狀態(tài),這種方式在無(wú)線網(wǎng)絡(luò)下易出現(xiàn)不能正確判斷丟包或擁塞的現(xiàn)象。因cwnd值表征此時(shí)網(wǎng)絡(luò)節(jié)點(diǎn)可以傳輸?shù)臄?shù)據(jù)包大小,不合理的cwnd變化方式易使網(wǎng)絡(luò)在不必要的時(shí)候減少網(wǎng)絡(luò)吞吐量。
針對(duì)TCP擁塞控制,文獻(xiàn)[2]對(duì)往返時(shí)延進(jìn)行壓擴(kuò),動(dòng)態(tài)改變加性因子大小。文獻(xiàn)[3]根據(jù)前向鏈路的轉(zhuǎn)發(fā)跳數(shù)對(duì)TCP擁塞窗口增長(zhǎng)速率進(jìn)行控制。文獻(xiàn)[4]采用一種類似學(xué)習(xí)的TCP思想,對(duì)網(wǎng)絡(luò)狀態(tài)進(jìn)行學(xué)習(xí),反饋動(dòng)作作用后結(jié)果,智能選擇加性因子大小。文獻(xiàn)[2]~[4]都忽略了擁塞控制協(xié)議中乘性因子對(duì)網(wǎng)絡(luò)擁塞產(chǎn)生的影響。文獻(xiàn)[5]對(duì)近年來(lái)多種AIMD擁塞控制算法進(jìn)行對(duì)比和分析,結(jié)果表明,針對(duì)無(wú)線網(wǎng)絡(luò)而言,99%的丟包來(lái)自于擁塞。文獻(xiàn)[6]在高速網(wǎng)絡(luò)應(yīng)用下給出了一種學(xué)習(xí)擁塞控制算法,有效提升了TCP協(xié)議在快速網(wǎng)絡(luò)下的性能,但該算法須對(duì)接收端、發(fā)送端以及路由進(jìn)行改進(jìn),實(shí)施性不強(qiáng)。
到目前為止,解決現(xiàn)有TCP擁塞控制協(xié)議在無(wú)線網(wǎng)絡(luò)中出現(xiàn)的性能問(wèn)題受到業(yè)界的廣泛關(guān)注。為使TCP在無(wú)線網(wǎng)絡(luò)下?lián)碛懈玫男阅?,本文提出一種基于AIMD的網(wǎng)絡(luò)動(dòng)態(tài)學(xué)習(xí)算法,即NewReno-RF。通過(guò)進(jìn)一步學(xué)習(xí)網(wǎng)絡(luò)帶寬表征量,動(dòng)態(tài)設(shè)計(jì)cwnd值的變化方式。同時(shí)考慮協(xié)議自動(dòng)感知環(huán)境和強(qiáng)化決策控制協(xié)同作用在整體擁塞控制中的改進(jìn)對(duì)網(wǎng)絡(luò)性能的影響。
NewReno-RF算法整體思想如圖1所示。算法通過(guò)AI加法因子和MD乘法因子兩部分中的cwnd進(jìn)行動(dòng)態(tài)調(diào)整。
圖1 NewReno-RF算法整體思想框圖
對(duì)于無(wú)線網(wǎng)絡(luò)而言,往返時(shí)延(RTT)值隨著網(wǎng)絡(luò)不斷更新。當(dāng)RTT值較小時(shí),網(wǎng)絡(luò)帶寬充裕,可以承載更多數(shù)據(jù)量;當(dāng)RTT值增大時(shí),網(wǎng)絡(luò)負(fù)載增大。此時(shí),AI協(xié)議應(yīng)采取更為有效的擁塞避免措施,使網(wǎng)絡(luò)帶寬利用率最大。因此,本文在AI階段對(duì)RTT作進(jìn)一步判斷,動(dòng)態(tài)決定加性因子大小。
1.1.1 RTT量化
本文對(duì)RTT進(jìn)行進(jìn)一步量化,將區(qū)間[RTTmin,RTTmax]均勻量化為M個(gè)區(qū)間。量化間隔如式(1)所示。
Δv=(RTTmax-RTTmin)/M
(1)
當(dāng)mi-1≤RTT≤mi時(shí),量化器輸出m=i(i=1,2,…,M),其中mi=RTTmin+Δv×i。對(duì)任意RTT,相應(yīng)的輸出m作為加性因子選取的判斷條件。
1.1.2cwnd加性因子選取
本文對(duì)加性因子x選取采用如下函數(shù)關(guān)系。
(2)
式中:m為RTT量化值;T為m的量度;α為滾降因子,范圍為[0,1]。
函數(shù)將根據(jù)m的大小輸出不同比例的加法因子,使cwnd的增長(zhǎng)適應(yīng)網(wǎng)絡(luò)變化。函數(shù)可根據(jù)網(wǎng)絡(luò)的不同需求,改變?chǔ)翝L降因子的值來(lái)得到不同特性的加性因子。
對(duì)于網(wǎng)絡(luò)傳輸而言,怎樣充分利用帶寬傳輸數(shù)據(jù)是本文需解決的難題。TCP僅依靠重復(fù)ACK來(lái)判斷擁塞,單一對(duì)cwnd值減半的做法不能充分地利用網(wǎng)絡(luò)帶寬。本文將MD階段視為一個(gè)有限狀態(tài)的離散馬爾科夫決策過(guò)程(MDP),利用強(qiáng)化學(xué)習(xí)策略,對(duì)無(wú)線信道帶寬作進(jìn)一步學(xué)習(xí),動(dòng)態(tài)改變cwnd乘性因子,最終達(dá)到充分利用帶寬、提高網(wǎng)絡(luò)性能的目的。
強(qiáng)化學(xué)習(xí)把學(xué)習(xí)看作是一種“試探—評(píng)價(jià)”的過(guò)程。首先學(xué)習(xí)系統(tǒng)(稱為智能體)感知環(huán)境狀態(tài),采取某一個(gè)動(dòng)作作用于環(huán)境,環(huán)境接受該動(dòng)作后狀態(tài)發(fā)生變化,同時(shí)給出一個(gè)回報(bào)反饋。強(qiáng)化學(xué)習(xí)系統(tǒng)根據(jù)強(qiáng)化信號(hào)和環(huán)境的當(dāng)前狀態(tài)再選擇下一個(gè)動(dòng)作,選擇的原則是使折扣期望回報(bào)最大。本文采用強(qiáng)化學(xué)習(xí)中的Q學(xué)習(xí)算法,它是一種與模型無(wú)關(guān)的強(qiáng)化學(xué)習(xí)算法[6]。
1.2.1 狀態(tài)和動(dòng)作值描述
Q學(xué)習(xí)算法中狀態(tài)值和動(dòng)作值的選取須結(jié)合MD階段特性。網(wǎng)絡(luò)中節(jié)點(diǎn)變動(dòng)、信道變化時(shí)刻會(huì)觸發(fā)系統(tǒng)狀態(tài)的改變。因此,本文將MD階段的cwndmax(即當(dāng)前時(shí)段內(nèi)cwnd峰值)作為Q學(xué)習(xí)模型狀態(tài)(s)值。
學(xué)習(xí)策略是一個(gè)在當(dāng)前狀態(tài)(s)下從可能的動(dòng)作集中隨機(jī)選擇動(dòng)作,即故意執(zhí)行一種目前不是最優(yōu)的動(dòng)作來(lái)獲得關(guān)于那些未知狀態(tài)的知識(shí)[7]。當(dāng)建立了足夠多的樣本值之后,系統(tǒng)將利用Q值來(lái)選擇當(dāng)前狀態(tài)的下一最優(yōu)動(dòng)作值。為確保探索的有效性,本文結(jié)合現(xiàn)有系統(tǒng)的乘法因子特性,采用與之相近的隨機(jī)值,以求找到系統(tǒng)動(dòng)作最優(yōu)解。
1.2.2 回報(bào)值的設(shè)計(jì)
本文將cwndmax歸一化為R(0,1),衡量某一動(dòng)作在該狀態(tài)下的性能好壞。轉(zhuǎn)換關(guān)系如式(3)、式(4)所示。
(3)
(4)
式中:BM為當(dāng)前系統(tǒng)認(rèn)為表現(xiàn)較好的cwndmax的均值,即滿足當(dāng)前AIMD階段持續(xù)時(shí)間與之平均持續(xù)時(shí)間差值εt和實(shí)時(shí)cwndmax與平均cwndmax的差值εcm在一定范圍內(nèi)的cwndmax;cw為實(shí)時(shí)cwndmax。
為使R歸一化為(0,1),δ取固定值-2。當(dāng)cw越接近BM,R越接近于1,當(dāng)前動(dòng)作對(duì)當(dāng)前狀態(tài)的影響越大;當(dāng)cw相對(duì)BM越小,則R越接近于0。
1.2.3Q學(xué)習(xí)算法
Q學(xué)習(xí)算法的基本形式為Q*(s,a),表明在狀態(tài)s下執(zhí)行動(dòng)作a所得到的最優(yōu)獎(jiǎng)賞值的和,如式(5)所示。
(5)
式中:T(st,at,st+1)為學(xué)習(xí)系統(tǒng)在時(shí)間步t時(shí)由于采取行動(dòng)at,而使環(huán)境從狀態(tài)st轉(zhuǎn)移到狀態(tài)st+1的轉(zhuǎn)移概率。
最優(yōu)策略π*(s,a),即在狀態(tài)s下執(zhí)行動(dòng)作a使得:
(6)
Q學(xué)習(xí)可直接優(yōu)化一個(gè)迭代公式(7)來(lái)獲得最優(yōu)策略。更新系統(tǒng)Q值表,選取下一狀態(tài)的最優(yōu)動(dòng)作解。
(7)
式中:Q(st,at)為舊Q值;Rt+1為狀態(tài)st的下一狀態(tài)st+1所對(duì)應(yīng)at回報(bào)值;αt(s,a)(0<α<1)為學(xué)習(xí)效率,若αt(s,a)衰減合適,即滿足條件∑∞n=0αnt(s,a)=∞,∑∞n=0[αnt(s,a)]2<∞,且所有狀態(tài)-動(dòng)作對(duì)都能被無(wú)窮次訪問(wèn)更新Q值,則Q值最終將依概率1收斂于Q*,其收斂性已得到證明[8];0<γQ<1為折扣因子,γQ如取值較小,則表示Q學(xué)習(xí)策略更關(guān)注最近動(dòng)作的影響,如取值大,則表示當(dāng)前Q值要受系統(tǒng)較長(zhǎng)時(shí)間狀態(tài)動(dòng)作對(duì)的影響;maxQ(st+1,at+1)為狀態(tài)st的下一狀態(tài)st+1所對(duì)應(yīng)動(dòng)作at產(chǎn)生最大Q回報(bào)值。
在每一個(gè)離散的時(shí)間步t中,智能體感知當(dāng)前狀態(tài)st,執(zhí)行相應(yīng)動(dòng)作at,給出回報(bào)值Rt,并產(chǎn)生一個(gè)后繼狀態(tài)st+1。在無(wú)線網(wǎng)絡(luò)環(huán)境初始時(shí),系統(tǒng)對(duì)于所有狀態(tài)的Q值和回報(bào)值都默認(rèn)為0。因此,針對(duì)式(7),Q值將變成0。為使系統(tǒng)不產(chǎn)生此種情況,本文在系統(tǒng)初始時(shí),采用式(8)更新Q值。
(8)
式中:γR(0,1)為回報(bào)函數(shù)的折扣率,γR的取值表明當(dāng)前回報(bào)值函數(shù)受前向回報(bào)的影響大小。
根據(jù)上述分析,基于AIMD的TCP改進(jìn)算法NewReno-RF的分析如下。
① 初始化系統(tǒng)中所需各固定參數(shù)。
② 重復(fù)步驟③~⑥。
③ 由式(1)得到m,由式(2)更新加法因子x,cwnd=cwnd+x。
④ 根據(jù)當(dāng)前狀態(tài)執(zhí)行的動(dòng)作,由式(4)得到γ,Q(R)←γ;根據(jù)式(7)、式(8)更新Q值。
⑤ 選擇當(dāng)前st中Q最大對(duì)應(yīng)的at,執(zhí)行此時(shí)乘法因子at。
⑥ 根據(jù)AIMD持續(xù)時(shí)間和cwndmax大小更新BM。
本文基于網(wǎng)絡(luò)模擬器(network simulator,NS),實(shí)現(xiàn)改進(jìn)算法NewReno-RF。其中量化區(qū)間M為16,滾降因子α=0.72,cwndmax選取差值范圍低于平均量的5%。為滿足收斂條件,本文設(shè)置學(xué)習(xí)效率αt(s,a)=0.2。系統(tǒng)建立足夠樣本之前,設(shè)置式(8)中回報(bào)函數(shù)折扣率γR=0.3,以使當(dāng)前狀態(tài)受回報(bào)折扣影響較小。進(jìn)入Q學(xué)習(xí)值迭代系統(tǒng),即利用式(7)對(duì)MD階段進(jìn)行優(yōu)化,折扣因子γQ=0.95,充分考慮前向回報(bào)對(duì)系統(tǒng)的影響。本文討論所述協(xié)議在兩種網(wǎng)絡(luò)場(chǎng)景下的性能情況。為和現(xiàn)實(shí)試驗(yàn)環(huán)境匹配,兩種場(chǎng)景都規(guī)定各節(jié)點(diǎn)的傳輸能耗。根據(jù)文獻(xiàn)[9]對(duì)NS2中能量模型和無(wú)線傳輸模型的說(shuō)明,場(chǎng)景設(shè)置為室外自由空間。本文采用陰影無(wú)線傳輸模型,路徑損耗指數(shù)βs為2.0,陰影方差σdB為4.0。NS中實(shí)現(xiàn)的能量模型是一個(gè)節(jié)點(diǎn)的屬性,表示一個(gè)主機(jī)的能量水平[9]。本文中設(shè)置各個(gè)節(jié)點(diǎn)初始能量1 000 W,發(fā)送能量0.660 W,接收能量0.395 W以及天線增益5.5 dBi,高度1 m。
本文所述場(chǎng)景一為隨機(jī)Ad hoc網(wǎng)絡(luò)。本文對(duì)該場(chǎng)景進(jìn)行N(N≥10)次仿真試驗(yàn),試驗(yàn)場(chǎng)景中節(jié)點(diǎn)隨機(jī)分布。大體遵循以下規(guī)則:10個(gè)節(jié)點(diǎn)初始位置隨機(jī)分布,在場(chǎng)景大小為1 000 m×1 000 m內(nèi)以最大10 m/s的速度隨機(jī)運(yùn)動(dòng),仿真開(kāi)始10 s即在n5和n4間建立TCP數(shù)據(jù)傳輸,直至結(jié)束。仿真結(jié)果在相應(yīng)點(diǎn)取N次平均。在Ad hoc網(wǎng)絡(luò)下,改進(jìn)NewReno-RF算法和NewReno協(xié)議在吞吐量、傳播延遲和重傳率方面的性能狀況如圖2所示。
圖2 Ad hoc網(wǎng)絡(luò)仿真結(jié)果
由圖2可以看出,由于Ad hoc網(wǎng)絡(luò)中節(jié)點(diǎn)運(yùn)動(dòng)的隨機(jī)性,協(xié)議在各時(shí)段表現(xiàn)不平穩(wěn)。但總體而言,NewReno-RF在吞吐量上一直高于NewReno,平均提升了40%。傳播延遲和重傳率方面則總是低于NewReno,分別平均減少11%和27%。
場(chǎng)景二為在無(wú)線多跳鏈?zhǔn)骄W(wǎng)絡(luò)下對(duì)改進(jìn)協(xié)議進(jìn)行N(N≥10)次仿真試驗(yàn)。鏈?zhǔn)骄W(wǎng)絡(luò)拓樸模型如圖3所示。試驗(yàn)中,場(chǎng)景大小1 000 m×1 000 m,N次仿真試驗(yàn)于n5和n4間建立TCP數(shù)據(jù)傳輸,開(kāi)始時(shí)間在10 s內(nèi)隨機(jī)分布。場(chǎng)景中節(jié)點(diǎn)初始位置略有不同,但節(jié)點(diǎn)運(yùn)動(dòng)曲線和速度基本一致。各節(jié)點(diǎn)保持不超過(guò)10 m/s的鏈?zhǔn)絼蛩龠\(yùn)動(dòng),運(yùn)動(dòng)過(guò)程中兩節(jié)點(diǎn)間距離保持不變。仿真結(jié)果在相應(yīng)點(diǎn)取10次平均,如圖4所示。
圖3 鏈?zhǔn)骄W(wǎng)絡(luò)拓?fù)淠P?/p>
圖4 鏈?zhǔn)骄W(wǎng)絡(luò)仿真結(jié)果
由圖4可以看出,雖然NewReno-RF協(xié)議初始時(shí)由于對(duì)環(huán)境感知的不完全性,在吞吐量、傳播延遲、重傳率上都表現(xiàn)不穩(wěn)定,但隨著學(xué)習(xí)次數(shù)的增多,NewReno-RF性能逐漸優(yōu)于NewReno。重傳率呈現(xiàn)大幅降低的趨勢(shì),平均降低34%;傳播延遲同比減少了17%;NewReno-RF吞吐量比NewReno平均提升53%。
隨著網(wǎng)絡(luò)的日益發(fā)展,現(xiàn)有TCP協(xié)議不足以滿足其復(fù)雜性、多樣性的需求。本文提出一種基于AIMD擁塞控制協(xié)議的改進(jìn)算法,加入量化和強(qiáng)化學(xué)習(xí)理念,提高了TCP協(xié)議在網(wǎng)絡(luò)傳輸方面性能。通過(guò)和現(xiàn)有版本TCP-NewReno在兩種傳輸模型上進(jìn)行多次仿真比較,結(jié)果表明,改進(jìn)協(xié)議在傳播延遲、吞吐量、重傳率方面都有明顯提升。
[1] Ghassan A A,Mahamod I,Kasmiran J.Exploration and evaluation of traditional TCP congestion control techniques[J].Computer and Information Sciences,2012,24(2):145-155.
[2] 劉俊.擁塞窗口自適應(yīng)的TCP擁塞避免算法[J].計(jì)算機(jī)應(yīng)用,2011,31(6):1472-1475.
[3] 宋軍,李浩,李媛源,等.Ad Hoc中的TCP改進(jìn)方案-Adaptive ADTCP[J].計(jì)算機(jī)應(yīng)用,2010,30(7):1750-1756.
[4] Badarla V,Murthy C S R.Learning-TCP:A stochastic approach for efficient update in TCP congestion window in Ad Hoc wireless networks[J].Journal of Parallel and Distributied Computing,2011,71(6):863-878.
[5] Hiroki N,Nirwan A,Nei K.Wireless loss-tolerant congestion control protocol based on dynamic AIMD theory[J].IEEE Wireless Communications,2010,17(2):7-14.
[6] 褚建華.Q-Learning強(qiáng)化學(xué)習(xí)算法改進(jìn)及其應(yīng)用研究[D].北京:北京化工大學(xué),2009.
[7] Kento T,Junichi M.A study on use of prior information for acceleration of reinforcement learning[C]∥SICE Annual Conference,2011:537-543.
[8] Nicholas M,Mihaela V S.Reinforcement learning for energy-efficient wireless communications[C]∥IEEE Transactions on Signal Processing,2011:6262-6266.
[9] NS2.The network simulator ns-2[EB/OL].[2010-10-25].http://www.isi.edu/nsnam/ns.
[10]Marek G,Daniel K.Online learning of shaping rewards in reinforcement learning[J].Neural Networks,2010,23:541-550.
[11]Maryam S.Knowledge ofopposite actions for reinforcement learning[J].Applied Soft Computing,2011(11):4097-4109.
[12]Nadim P,Anirban M,Carey W.An analytic throughput model for TCP NewReno[J].IEEE/ACM Transmission on Networking,2010,18(2):448-461.