《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 一種改進(jìn)的TCPW算法在擁塞控制中的應(yīng)用
一種改進(jìn)的TCPW算法在擁塞控制中的應(yīng)用
2017年微型機(jī)與應(yīng)用第4期
任金霞,王水泉,溫春暉
江西理工大學(xué) 電氣工程與自動(dòng)化學(xué)院,江西 贛州 34100
摘要: 互聯(lián)網(wǎng)的快速發(fā)展,給人們生活帶來極大便捷,同時(shí)也帶來了嚴(yán)重的問題——網(wǎng)絡(luò)擁塞。TCPW是一種基于端到端帶寬估計(jì)的擁塞控制機(jī)制,沿用了TCP Reno在慢啟動(dòng)初始化階段設(shè)置慢啟動(dòng)閾值方法。提出了一種慢啟動(dòng)改進(jìn)算法,在擁塞避免階段采用一種新的機(jī)制設(shè)置cwnd和ssthresh值,減少了慢啟動(dòng)時(shí)間,通過NS2仿真結(jié)果表明改進(jìn)算法在吞吐量、延時(shí)及丟包率等方面都有一定的改善。
Abstract:
Key words :

  任金霞,王水泉,溫春暉

  (江西理工大學(xué) 電氣工程與自動(dòng)化學(xué)院,江西 贛州 34100)

       摘要:互聯(lián)網(wǎng)的快速發(fā)展,給人們生活帶來極大便捷,同時(shí)也帶來了嚴(yán)重的問題——網(wǎng)絡(luò)擁塞。TCPW是一種基于端到端帶寬估計(jì)的擁塞控制機(jī)制,沿用了TCP Reno在慢啟動(dòng)初始化階段設(shè)置慢啟動(dòng)閾值方法。提出了一種慢啟動(dòng)改進(jìn)算法,在擁塞避免階段采用一種新的機(jī)制設(shè)置cwnd和ssthresh值,減少了慢啟動(dòng)時(shí)間,通過NS2仿真結(jié)果表明改進(jìn)算法在吞吐量、延時(shí)及丟包率等方面都有一定的改善。

  關(guān)鍵詞:慢啟動(dòng);擁塞避免;擁塞控制;吞吐量

  中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:ADOI: 10.19358/j.issn.1674-7720.2017.04.019

  引用格式:任金霞,王水泉,溫春暉.一種改進(jìn)的TCPW算法在擁塞控制中的應(yīng)用[J].微型機(jī)與應(yīng)用,2017,36(4):63-65.

0引言

  隨著互聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,盡管當(dāng)前網(wǎng)絡(luò)帶寬不斷提高,新的互聯(lián)網(wǎng)應(yīng)用程序的涌現(xiàn),導(dǎo)致網(wǎng)絡(luò)流量劇增以致網(wǎng)絡(luò)發(fā)生擁塞,延時(shí)、吞吐量及其他網(wǎng)絡(luò)質(zhì)量指數(shù)下降,網(wǎng)絡(luò)資源利用率降低,難以保證網(wǎng)絡(luò)參數(shù)。所以解決網(wǎng)絡(luò)擁塞問題極其重要。

  TCP擁塞控制模型是基于1988年JACOBSON和KAREL提出的TCP Reno 模型。TCP Westwood(TCPW)算法基本思想是通過監(jiān)測(cè)發(fā)送端接收確認(rèn)應(yīng)答速率的端到端帶寬估計(jì)機(jī)制[1] 。TCPW保留了基本的TCP控制協(xié)議的原則[2]和流控制、擁塞控制及錯(cuò)誤控制機(jī)制。流控制用于限制傳輸速率使其與接收端緩存大小相匹配。擁塞控制限制發(fā)送速率與鏈路容量相一致。因此,TCP利用擁塞窗口值(cwnd)控制發(fā)送端報(bào)文段數(shù)量的傳送。TCP連接建立后進(jìn)入慢啟動(dòng)階段[3],在這個(gè)階段發(fā)送端的擁塞窗口值呈指數(shù)增加,直至增加到預(yù)設(shè)值慢啟動(dòng)閾值(ssthresh)。此后,進(jìn)入擁塞避免階段,在此期間發(fā)送端線性增加擁塞窗口值。丟包發(fā)生后,慢啟動(dòng)閾值設(shè)置為當(dāng)前擁塞窗口值的一半重新進(jìn)入慢啟動(dòng)。由于慢啟動(dòng)階段沒有固定的慢啟動(dòng)閾值,當(dāng)其設(shè)置太小時(shí),發(fā)送端很快停止擁塞窗口指數(shù)增長(zhǎng),需要用很長(zhǎng)時(shí)間才能達(dá)到最優(yōu)的擁塞窗口值。

  本文提出了一種改進(jìn)的慢啟動(dòng)算法,發(fā)送端可以快速增加擁塞窗口值,縮短慢啟動(dòng)時(shí)間。在擁塞避免階段根據(jù)帶寬估計(jì)的變化,設(shè)置不同的擁塞窗口值,從而提高網(wǎng)絡(luò)的吞吐量。

1TCPW算法原理分析

  擁塞控制的研究目的不是完全避免擁塞,而是研究怎樣的擁塞程度是合適的。TCP是可靠的數(shù)據(jù)傳輸協(xié)議[4],采用分組交換技術(shù)提高鏈路帶寬利用率,也就是說路由器隊(duì)列緩存如果是滿的,則網(wǎng)絡(luò)利用率最高,但傳輸延遲大;隊(duì)列始終是空的或者不滿,導(dǎo)致網(wǎng)絡(luò)帶寬利用率低,傳輸延遲小。所以擁塞控制的目標(biāo)是實(shí)現(xiàn)網(wǎng)絡(luò)利用率和傳輸延遲的綜合性能指標(biāo)的最優(yōu)化,提高網(wǎng)絡(luò)的整體性能,保證網(wǎng)絡(luò)的長(zhǎng)期穩(wěn)定性和魯棒性。

  1.1TCPW原理

  TCPW是基于帶寬估計(jì)擁塞,不接收網(wǎng)絡(luò)的任何顯式擁塞反饋。由源端決定數(shù)據(jù)發(fā)送速率,逐漸增加數(shù)據(jù)發(fā)送速率,直到反饋信號(hào)表明達(dá)到了網(wǎng)絡(luò)容量。當(dāng)丟包發(fā)生后,發(fā)送端基于帶寬估計(jì)值重新設(shè)置擁塞窗口值和慢啟動(dòng)閾值。

  1.2端到端的帶寬估計(jì)

  TCPW算法主要思想是通過監(jiān)測(cè)發(fā)送端ACK確認(rèn)應(yīng)答的接收速率實(shí)時(shí)估計(jì)帶寬[56],當(dāng)發(fā)送端在t2接收到一個(gè)ACK應(yīng)答時(shí)表明相應(yīng)的數(shù)據(jù)字節(jié)數(shù)d2已經(jīng)被TCP連接的接收端成功接收。這種帶寬估計(jì)算法如下:

  BWE=αbk-1+(1-α)[(bk+bk-1)/2]

  其中,bk為樣本帶寬,bk=dk/Δtk;Δtk=tk-tk-1;tk、tk-1分別為第k、k-1個(gè)ACK到達(dá)時(shí)刻;α=(2l-Δtk)(2l+Δtk);l為低通濾波截止頻率。

  1.3擁塞窗口值和慢啟動(dòng)閾值設(shè)置

  假設(shè)發(fā)送端帶寬估計(jì)值為BWE,TCPW在慢啟動(dòng)階段和擁塞避免階段保持和TCP Reno一致,分別為指數(shù)和線性增加[7]。在如下情況網(wǎng)絡(luò)發(fā)生丟包:(1)發(fā)送端收到三個(gè)重復(fù)ACK應(yīng)答;(2)定時(shí)器超時(shí)。

  (1)發(fā)送端收到三個(gè)重復(fù)ACK應(yīng)答后算法如下:

  if receiving 3ACKS

  set ssthresh=(BWE*RTTmin)/seg_size

  and if (cwnd>ssthresh)

  then set cwnd=ssthresh

  enter congestion phase

  其中seg_size為報(bào)文段大小。

  (2)定時(shí)器超時(shí)算法

  TCP擁塞控制算法的基礎(chǔ)設(shè)計(jì)理念[8]是基于端到端。網(wǎng)絡(luò)被視為“黑箱”TCP源端。

  2算法的改進(jìn)

  2.1慢啟動(dòng)改進(jìn)算法

  作為擁塞控制算法的重要部分,慢啟動(dòng)可以有效控制初始化連接時(shí)發(fā)送端的數(shù)據(jù)包發(fā)送數(shù)量。本文采用一種新的方法在慢啟動(dòng)初始化階段設(shè)置慢啟動(dòng)閾值和擁塞窗口值,通過兩個(gè)連續(xù)應(yīng)答所確認(rèn)的字節(jié)數(shù)探測(cè)鏈路帶寬。

  3D{7XVEBL6BPNIHJO78T0MX.png

  其中,ELC為鏈路容量,Acked為每一個(gè)應(yīng)答所確認(rèn)的數(shù)據(jù)包數(shù)量,Δtk=tk-tk-1為兩個(gè)應(yīng)答之間的時(shí)間間隔。每接收到一個(gè)新的應(yīng)答時(shí)采用移動(dòng)平均法更新ELC,計(jì)算如式(2)所示:

  ELC=(1-α)ELCi+αELCi-1(2)

  α=0.9

  慢啟動(dòng)閾值設(shè)置如式(3)所示:

  ssthresh=ELCRTTmin(3)

  其中,RTT為往返時(shí)延(從發(fā)送端發(fā)送數(shù)據(jù)到發(fā)送端接收到確認(rèn)應(yīng)答的時(shí)間間隔),通過鏈路容量計(jì)算的ssthresh值為初始化慢啟動(dòng)提供準(zhǔn)確值。由此可見,該慢啟動(dòng)閾值不是一個(gè)常數(shù),隨連接狀態(tài)改變。

  此外,本文提出了一種“快速啟動(dòng)”通過帶寬利用率增加擁塞窗口在慢啟動(dòng)階段發(fā)送新的報(bào)文段前,檢查當(dāng)前擁塞窗口值和上一個(gè)RTT。算法描述如下:

  if last RTT<RTTest && cwnd<ssthresh

  then cwnd=cwnd+(ssthresh DIV cwnd)

  else cwnd=cwnd+1

  其中,RTTest為往返時(shí)延估計(jì)值。

  2.2擁塞避免算法改進(jìn)

  在TCP擁塞控制中,擁塞窗口值是決定字節(jié)數(shù)發(fā)送速率的重要因素。連接建立時(shí)設(shè)置為最大報(bào)文段(MSS),每收到一個(gè)ACK應(yīng)答,擁塞窗口值倍增,直到cwnd>ssthresh進(jìn)入擁塞避免階段。在擁塞避免階段每收到一個(gè)ACK應(yīng)答擁塞窗口值,cwnd=cwnd+1/cwnd,直到擁塞發(fā)生。本文提出的改進(jìn)算法流程圖如圖1所示。

  

001.jpg

  通過當(dāng)前時(shí)刻帶寬估計(jì)值與前一時(shí)刻帶寬估計(jì)值之比預(yù)測(cè)網(wǎng)絡(luò)狀態(tài),動(dòng)態(tài)設(shè)置擁塞窗口值,調(diào)整數(shù)據(jù)包發(fā)送速率。算法描述如下:

  congestion avoidance

  slow start is

  over(cwnd>ssthresh)

  every ACK;

  estimate BWE=ELC;

  set BWE=BWcurrent;

  BWr=BWcurrent/BWprevious;

  if(BWr>1.5)

  cwnd=cwnd+1/cwnd;

  else if (BWr<1)

  cwnd=cwnd;

  until (timeout or3ACKS)

  BWcurrent為接收到新的ACK的當(dāng)前帶寬,BWprevious為接收到新的ACK之前的帶寬值。

3仿真實(shí)驗(yàn)及結(jié)果分析

  3.1實(shí)驗(yàn)環(huán)境設(shè)置

  混合網(wǎng)絡(luò)環(huán)境下仿真拓?fù)浣Y(jié)構(gòu)如圖2所示,節(jié)點(diǎn)S0、S1為TCP發(fā)送端,節(jié)點(diǎn)R0、R1為路由節(jié)點(diǎn),D0、D1為TCP接收端。節(jié)點(diǎn)S0與R1、S1與R0、R2與D0、R2與D1之間鏈路延時(shí)為3 ms,帶寬為20 Mb/s,R0與R1之間為瓶頸鏈路,鏈路時(shí)延為10 ms、帶寬為5 Mb/s,R2與D1為無線連接。仿真時(shí)間設(shè)置為45 s。

 

002.jpg

  3.2實(shí)驗(yàn)結(jié)果及分析

  改進(jìn)算法與TCPW和TCP NewReno的網(wǎng)絡(luò)吞吐量如圖3所示。可見改進(jìn)算法在吞吐量上較TCPW和TCP NewReno都有一定的提高。圖4是基于每個(gè)數(shù)據(jù)包傳輸時(shí)間延時(shí)的比較,可以看出改進(jìn)算法縮短了延遲時(shí)間。圖5為網(wǎng)絡(luò)丟包變化隨仿真時(shí)間對(duì)比,可以看出仿真剛開始一段時(shí)間改進(jìn)算法比TCPW算法丟包量大,但在15 s后丟包數(shù)量略小于對(duì)比算法。

  

003.jpg

004.jpg

4結(jié)論

  本文針對(duì)TCPW算法的不足之處,提出了一種在慢啟動(dòng)和擁塞避免階段的改進(jìn)算法,加快了慢啟動(dòng)進(jìn)程,在擁塞避免階段合理地設(shè)置擁塞窗口值和慢啟動(dòng)閾值。通過大量實(shí)驗(yàn)表明,與原算法相比本文提出的算法在吞吐量、丟包率、時(shí)延等各方面的性能都得到了提高,優(yōu)于TCPW算法,有一定的實(shí)用價(jià)值。

  參考文獻(xiàn)

  [1] MASCOLO S, CASETTI C, GERLA M, et al. TCP Westwood: bandwidth estimation for enhanced transport over wireless links[C]. International Conference on Mobile Computing and NETWORKING, 2001:287-297.

  [2] AFANSYEV A, TILLEY N, REIHER P, et al. Hosttohost congestion control for TCP[J]. IEEE Communications Surveys & Tutorials, 2010, 12(3):304-342.

  [3] MASCOLO S, VACIRCA F. The effect of reverse traffic on the performance of new tcp congestion control algorithm[J]. Pfldnet’06 Nara, 2006, 129(5):219-224.

  [4] 王志明, 曾孝平, 劉學(xué),等. 一種異構(gòu)網(wǎng)絡(luò)TCP擁塞控制算法[J]. 電子與信息學(xué)報(bào), 2016, 38(4)780-786.

  [5] GRIECO L A, MASCOLO S. TCP Westwood and easy RED to improve fairness in highspeed networks[C]. Proceedings of the 7th IFIP/IEEE International Workshop on Protocols for High SpeedNetworks.SpringerVerlag, 2002:130-146.

  [6] PARVEZ N, MAHANTI A, WILLIAMSON C. TCP NewReno: slowbutsteady or impatient[J]. IEEE International Conference on Communications, 2006,ICC’06,2006, 2(2):716-722.

  [7] GAMBHAVA B, KOTHARI N J, DASGUPTA K S. Analysis of RTO caused by retransmission loss to combat channel noise[J]. International Journal of Computer Applications, 2010, 1(8):5-9.

  [8] KALRA S, KALRA B, AGRAWAL N, et al. Updated congestion control algorithm for TCP throughput improvement in wired and wireless network[J]. Global Journal of Computer Science&Technology,2010(4):248-252.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: jizzjizz老师太多水日本 | 天天躁天天弄天天爱 | 九九香蕉视频 | 亚洲国产精品激情在线观看 | 曰批全过程免费观看视频 | 最新黄色在线 | 亚洲综合激情 | 国产免费三a在线 | 亚洲一区免费观看 | 亚洲日本久久一区二区va | 一级免费毛片 | 午夜寂寞影院视频在线观看 | 中国一级特黄特级毛片 | 欧美精品第一区 | www在线视频| 黄色激情网站 | 一丝不遮视频免费观看 | 一级免费黄色 | 中文字幕日韩精品中文区 | 91嫩草国产在线观看免费 | 日本69xxx18hd | 右手影院亚洲欧美 | 蜜桃社极品尤物大尺度美女 | 污视频18高清在线观看 | 日本国产片 | 动漫成年美女黄漫网站小视频 | 国产精品欧美在线观看 | 日韩毛片免费看 | 欧美成人免费tv在线播放 | 成人午夜视频免费看欧美 | 天天操天天射天天插 | 波多野结衣中文字 | 亚洲视频精品在线观看 | xnxx美女18| 欧美一区二区三区不卡视频 | 欧美人视频在线观看视频 | 国产日韩欧美91 | 亚洲视频观看 | 成 人 亚洲 综合天堂 | 麻豆一区二区三区在线观看 | 日韩精品欧美亚洲高清有无 |