駱金維,李春飛(.廣東創(chuàng)新科技職業(yè)學(xué)院 計(jì)算機(jī)與通信系,廣東 東莞 53960)(.廣東松田職業(yè)學(xué)院,廣東 廣州 5370)
Linux內(nèi)核中擁塞控制算法的比較分析
駱金維1,李春飛2
(1.廣東創(chuàng)新科技職業(yè)學(xué)院計(jì)算機(jī)與通信系,廣東東莞523960)(2.廣東松田職業(yè)學(xué)院,廣東廣州511370)
摘要:采用網(wǎng)絡(luò)測試床的實(shí)驗(yàn)研究方法,在Linux網(wǎng)絡(luò)測試床上對內(nèi)核中的Cubic、Htcp、Hybla、Westwood和Veno這5種擁塞控制協(xié)議在不同的網(wǎng)絡(luò)環(huán)境下就鏈路利用率、RTT公平性和TCP友好性3個(gè)性能指標(biāo)進(jìn)行測試實(shí)驗(yàn),分析實(shí)驗(yàn)結(jié)果,評價(jià)這些算法的優(yōu)劣以及局限性。在此基礎(chǔ)上結(jié)合Cubic和Veno,設(shè)計(jì)并實(shí)現(xiàn)了一種新的環(huán)境自適應(yīng)擁塞控制協(xié)議CVTCP,對其進(jìn)行了性能評價(jià)測試。實(shí)驗(yàn)結(jié)果表明,CVTCP在RTT公平性和TCP友好性沒有明顯下降的同時(shí),在不同的網(wǎng)絡(luò)環(huán)境下都能獲得較高的鏈路利用率,具有很好的環(huán)境自適應(yīng)性。
關(guān)鍵詞:網(wǎng)絡(luò)測試床;擁塞控制協(xié)議;性能評估;鏈路利用率;RTT公平性;TCP友好性
傳統(tǒng)的TCP擁塞控制協(xié)議在衛(wèi)星網(wǎng)絡(luò)、高速延遲網(wǎng)絡(luò)、無線網(wǎng)絡(luò)等網(wǎng)絡(luò)環(huán)境下存在性能不佳的問題。學(xué)者們提出了很多改進(jìn)算法,如Cubic[1]、Htcp[2]、Veno[3]、Westwood[4]、Hybla[5]等。上述改進(jìn)算法都是針對某一特定網(wǎng)絡(luò)類型的,其中,Hybla針對衛(wèi)星網(wǎng)絡(luò),Cubic、Htcp針對高速延遲網(wǎng)絡(luò),Veno、Westwood針對無線網(wǎng)絡(luò),這些算法在不同網(wǎng)絡(luò)類型的性能表現(xiàn)可能劣于傳統(tǒng)的TCP。筆者對這些典型的改進(jìn)協(xié)議在不同的網(wǎng)絡(luò)類型下進(jìn)行性能測試評價(jià),同時(shí)研究如何實(shí)現(xiàn)環(huán)境自適應(yīng)性,使得在不同的網(wǎng)絡(luò)環(huán)境下,擁塞控制協(xié)議都能獲得較高的性能。
傳統(tǒng)實(shí)驗(yàn)性能評估方法的局限性以及Linux的開源特性,使得研究人員更熱衷于搭建基于Linux的真實(shí)網(wǎng)絡(luò)測試床來對協(xié)議進(jìn)行性能測試與評估。筆者構(gòu)建了Linux網(wǎng)絡(luò)床,通過使用Netem[6]來設(shè)置不同的鏈路利用率和不同的RTT,模擬不同的網(wǎng)絡(luò)類型。在不同的網(wǎng)絡(luò)類型下,對Linux內(nèi)核中Cubic、Westwood等5種擁塞控制協(xié)議進(jìn)行實(shí)驗(yàn)分析比較,從鏈路利用率、RTT公平性和TCP友好性這3個(gè)方面來評價(jià)協(xié)議的性能優(yōu)劣。結(jié)合Cubic和Veno,設(shè)計(jì)并實(shí)現(xiàn)了環(huán)境自適應(yīng)擁塞控制協(xié)議CVTCP,并對其進(jìn)行了全面的性能測試。
使用Cubic、Westwood等5種擁塞控制算法作為待測試協(xié)議,在不同鏈路丟包率、網(wǎng)絡(luò)環(huán)境下對這些協(xié)議的鏈路利用率、TCP友好性和RTT公平性等指標(biāo)進(jìn)行實(shí)驗(yàn)研究和性能評估。
1.1實(shí)驗(yàn)環(huán)境配置
所有的測試實(shí)驗(yàn)都是在Linux測試床上進(jìn)行的,網(wǎng)絡(luò)拓?fù)鋱D如圖1所示。測試協(xié)議均采用內(nèi)核的默認(rèn)參數(shù)。通過Netem設(shè)置帶寬,利用不同的RTT和鏈路丟包率來模擬現(xiàn)實(shí)中形態(tài)各異的網(wǎng)絡(luò)類型,采用Iperf[7]作為流量產(chǎn)生器。參考HOWTO文檔[8]可對Linux網(wǎng)絡(luò)測試床進(jìn)行構(gòu)建和配置。
圖1 Linux測試床網(wǎng)絡(luò)拓?fù)鋱DFig.1 Net topological diagram of Linux testbed
1.2鏈路利用率
鏈路利用率為擁塞控制協(xié)議性能的重要評價(jià)指標(biāo)。高帶寬延遲網(wǎng)絡(luò)環(huán)境實(shí)驗(yàn)設(shè)置為:RTT分別設(shè)置為50、100、200、400 ms;隊(duì)列采用bFIFO,隊(duì)列長度為BDP;鏈路丟包率為0;所有的鏈路均100 Mbps;測試時(shí)間設(shè)為600 s。實(shí)驗(yàn)結(jié)果如圖2所示。無線網(wǎng)絡(luò)環(huán)境實(shí)驗(yàn)設(shè)置為:鏈路丟包率分別設(shè)置為10-5、10-4、10-3、10-2;隊(duì)列采用pFIFO,隊(duì)列長度是默認(rèn)值1 000;RTT為50 ms;所有的鏈路均10 Mbps(指定自適應(yīng)網(wǎng)卡的工作模式);測試時(shí)間同前。實(shí)驗(yàn)結(jié)果如圖3所示。
從圖2中可以看出,Cubic、Hybla和Htcp表現(xiàn)較好。從圖3可以看出,Westwood、Hybla和Veno表現(xiàn)良好。綜合來看,Hybla在兩種網(wǎng)絡(luò)下都表現(xiàn)出良好的性能。
圖2 不同RTT延遲環(huán)境下的吞吐量Fig.2 Throughput under different RTT delayed environment
圖3 在不同鏈路丟包率環(huán)境下的吞吐量Fig.3 Throughput under different link packet loss environment
1.3RTT公平性
網(wǎng)絡(luò)中流與流間的RTT差異性較大。RTT公平性是TCP擁塞控制公平性問題的主要表現(xiàn)之一。本實(shí)驗(yàn)同時(shí)運(yùn)行兩條協(xié)議流,一條流的RTT設(shè)置為50 ms,另一條流的RTT分別設(shè)置為50、100、200、400 ms;高帶寬延遲網(wǎng)絡(luò)環(huán)境設(shè)置同前。實(shí)驗(yàn)結(jié)果如表1所示。無線網(wǎng)絡(luò)環(huán)境設(shè)置鏈路丟包率10-3,其他設(shè)置同前。實(shí)驗(yàn)結(jié)果如表2所示。
表1 高帶寬延遲網(wǎng)絡(luò)環(huán)境下不同RTT的協(xié)議流吞吐量之比Tab.1 Ratio of protocol flow throughput with different RTT under high bandwidth delayed net environment
表2 無線網(wǎng)絡(luò)環(huán)境下不同RTT的協(xié)議流吞吐量之比Tab.2 Ratio of protocol flow throughput with different RTT under wireless net environment
從表1中可以看出,當(dāng)RTT的比值為8時(shí),Htcp的RTT公平性最差。從表2中可以看出,當(dāng)RTT的比值為8時(shí),Cubic的RTT公平性最好。綜合來看,在兩種網(wǎng)絡(luò)環(huán)境下Westwood和Cubic的RTT公平性表現(xiàn)最好。
1.4TCP友好性
對傳統(tǒng)TCP Reno協(xié)議流的TCP友好性,是評價(jià)協(xié)議性能優(yōu)劣的又一重要指標(biāo)。本實(shí)驗(yàn)同時(shí)執(zhí)行兩條協(xié)議流,為Reno流和改進(jìn)協(xié)議流。設(shè)置高帶寬延遲網(wǎng)絡(luò)環(huán)境中RTT為200 ms。實(shí)驗(yàn)結(jié)果如圖4所示。設(shè)置無線網(wǎng)絡(luò)環(huán)境中RTT為50 ms,鏈路丟包率10-2。實(shí)驗(yàn)結(jié)果如圖5所示。
圖4 高帶寬延遲網(wǎng)絡(luò)環(huán)境下的TCP友好性比較Fig.4 Comparison of TCP friendliness under high bandwidth delayed net environment
圖5 無線網(wǎng)絡(luò)環(huán)境下的TCP友好性比較Fig.5 Comparison of TCP friendliness under wireless net environment
在相同的網(wǎng)絡(luò)環(huán)境下,兩條Reno流高速網(wǎng)絡(luò)下的平均吞吐量為34.3 Mbps,無線網(wǎng)絡(luò)下的平均吞吐量為1.77 Mbps。從圖4和圖5可以看出Westwood的友好性最佳,這是因?yàn)槠鋷掝A(yù)估的機(jī)制,能很好地判斷當(dāng)前帶寬的可用值,不侵占Reno流的帶寬。
2.1CVTCP的設(shè)計(jì)思想
CVTCP的主要思想是集成高速改進(jìn)協(xié)議的快速窗口增加機(jī)制和無線改進(jìn)協(xié)議的丟包區(qū)分功能的窗口增加機(jī)制,從而實(shí)現(xiàn)對擁塞窗口的控制,使其能在不同網(wǎng)絡(luò)類型中獲得良好性能,從而實(shí)現(xiàn)環(huán)境的自適應(yīng)傳輸。Cubic對高速環(huán)境具有良好的適應(yīng)性,而且具有很好的TCP友好性和RTT公平性。在無線的改進(jìn)協(xié)議中,Veno通過區(qū)分無線丟包和擁塞丟包,實(shí)現(xiàn)對無線丟包和擁塞丟包的區(qū)分性響應(yīng)。因此,CVTCP結(jié)合Cubic的快速窗口增加機(jī)制和Veno的倍乘減少機(jī)制來實(shí)現(xiàn)對擁塞窗口的控制。
2.2CVTCP的擁塞控制機(jī)制
CVTCP的慢啟動(dòng)機(jī)制類似Reno。當(dāng)擁塞窗口低于慢啟動(dòng)的閾值時(shí),進(jìn)入慢啟動(dòng),每接收到一個(gè)ACK,擁塞窗口均加1。擁塞避免階段,通過比較diff與γ來判斷丟包情況。當(dāng)diff<γ時(shí),認(rèn)為當(dāng)前丟包為無線丟包;否則認(rèn)為是因?yàn)閾砣鴮?dǎo)致的丟包,進(jìn)而采用不同的計(jì)數(shù)值來對擁塞窗口進(jìn)行控制管理。偽代碼描述如下:
if(CW > ssthresh)//當(dāng)前的擁塞窗口值大于慢啟動(dòng)閾值
Wcubic= C(t–k)3+ Wmax;//計(jì)算擁塞窗口目標(biāo)值
CNTcubic= CW / | Wcubic-CW |;//計(jì)算擁塞窗口的增加幅度
diff=CW–CW * Basertt / rtt;
if(diff //保證增加速度至少和Reno一樣快 Count = Min(CNTcubic,CW); if(tcp_cnt > Count) CW++;//擁塞窗口加1 else tcp_cnt++;//收到的ACK計(jì)數(shù)器加1 endif else //是擁塞丟包 Count=CNTcubic; if(tcp_cnt > Count) CW++;//擁塞窗口加1 else tcp_cnt++;//收到的ACK計(jì)數(shù)器加1 endif endif endif 2.3CVTCP性能分析 在Linux內(nèi)核中實(shí)現(xiàn)了CVTCP協(xié)議,并在網(wǎng)絡(luò)測試床上設(shè)置高帶寬延遲和無線兩種典型網(wǎng)絡(luò)環(huán)境,在鏈路利用率、RTT公平性和TCP友好性3個(gè)方面比較CVTCP與Reno、Cubic和Veno,實(shí)驗(yàn)設(shè)置同前。 2.3.1鏈路利用率CVTCP協(xié)議高帶寬延遲網(wǎng)絡(luò)實(shí)驗(yàn)結(jié)果如圖6所示,無線網(wǎng)絡(luò)實(shí)驗(yàn)結(jié)果如圖7所示。 高速網(wǎng)絡(luò)下,CVTCP的鏈路利用率與Cubic相差不多,這是因?yàn)镃VTCP采用Cubic的窗口增加機(jī)制,其增加速度不亞于Cubic。在無線網(wǎng)絡(luò)下,CVTCP借鑒了Veno對丟包性質(zhì)進(jìn)行區(qū)分的思想,并對該思想加以改進(jìn),能有效區(qū)分丟包,性能良好。 圖6 不同RTT延遲環(huán)境下的吞吐量Fig.6 Throughput of different RTT delayed environment 圖7 不同鏈路丟包率環(huán)境下的吞吐量Fig.7 Throughput of different link packet loss environment 2.3.2RTT公平性RTT公平性在高帶寬延遲網(wǎng)絡(luò)中實(shí)驗(yàn)結(jié)果如表1所示,在無線網(wǎng)絡(luò)中實(shí)驗(yàn)結(jié)果如表2所示。 從表1和表2中可以看出,CVTCP的擁塞窗口增長函數(shù)是關(guān)于時(shí)間t的函數(shù),相對Reno,RTT公平性有了明顯的提高,繼承了Cubic的良好的RTT公平性。 2.3.3TCP友好性TCP友好性在高帶寬延遲網(wǎng)絡(luò)中實(shí)驗(yàn)結(jié)果如圖8所示,在無線網(wǎng)絡(luò)環(huán)境中實(shí)驗(yàn)結(jié)果如圖9所示。 圖8 高帶寬延遲網(wǎng)絡(luò)環(huán)境下CVTCP的TCP友好性比較Fig.8 Comparison of TCP friendliness of CVTCP under high bandwidth delayed net environment 圖9 無線網(wǎng)絡(luò)環(huán)境下CVTCP的TCP友好性比較Fig.9 Comparison of TCP friendliness of CVTCP under wireless net environment 高帶寬延遲網(wǎng)絡(luò)環(huán)境下CVTCP的TCP友好性和Cubic相當(dāng),對Reno流友好性稍微不佳,但是其兩流的總體利用率很好,即通過犧牲TCP友好性來提高帶寬的總體利用率。無線網(wǎng)絡(luò)環(huán)境下CVTCP既沒有侵占Reno流的帶寬,表現(xiàn)出很好的TCP友好性,又充分利用剩余帶寬,提高了帶寬的整體利用率,且在帶寬的總體利用率上較Veno改善很大。綜合看來,CVTCP在兩種網(wǎng)絡(luò)環(huán)境下都表現(xiàn)出很好的TCP友好性,較Cubic和Veno的性能有了很大的改進(jìn)和提高。 本研究的主要工作是在不同的網(wǎng)絡(luò)環(huán)境下,就鏈路利用率、RTT公平性和TCP友好性3個(gè)方面,對Linux內(nèi)核中的Cubic、Htcp、Hybla、Westwood和Veno這5種擁塞控制算法在Linux網(wǎng)絡(luò)測試床上進(jìn)行測試比較。實(shí)驗(yàn)結(jié)果表明,Westwood綜合性能表現(xiàn)最好,這主要?dú)w功于其優(yōu)異的帶寬估計(jì)機(jī)制。結(jié)合Cubic 和Veno設(shè)計(jì)的CVTCP的實(shí)驗(yàn)測試結(jié)果表明,CVTCP不僅繼承了Cubic和Veno的TCP友好性和RTT公平性,而且能夠同時(shí)在高速延遲網(wǎng)絡(luò)和無線網(wǎng)絡(luò)中獲得較高的鏈路利用率,具有很好的環(huán)境自適應(yīng)性[9-10]。本實(shí)驗(yàn)采用的網(wǎng)絡(luò)拓?fù)浔容^簡單,且沒有多瓶頸、長流、短流、突發(fā)流等復(fù)雜的網(wǎng)絡(luò)因素,討論復(fù)雜網(wǎng)絡(luò)環(huán)境下協(xié)議的性能,是下階段的主要工作之一。筆者只對鏈路利用率、RTT公平性和TCP友好性進(jìn)行研究,沒涉及其他網(wǎng)絡(luò)性能參數(shù),如窗口穩(wěn)定性、收斂性等,接下來的工作中,將展開進(jìn)一步的研究。同時(shí),將研究更多、更好的環(huán)境自適應(yīng)擁塞控制算法。 參考文獻(xiàn)(References) [1]WEI BAO,WONG V W S,LEUNG V C M.A model for steady state throughput of TCP CUBIC[C]//IEEE Global Telecommuni?cations(GLOBECOM2010).Miami,F(xiàn)lorida,USA:IEEE Press,2010:1-6. [2]SHORTEN R N,LEITH D J.H-TCP:TCP for high-speed and long-distance networks[C]//In Proc of PFLDnet 2004.Argonne,Illinois:IEEE Press,2004:116-123. [3]CHENG P F,SOUNG C L.TCP Veno:TCP enhancement for transmission over wireless access networks[J].IEEE Journal on Se?lected Areas in Communications,2003,21(2):216-228. [4]GERLA M,SANADIDI M,WANG R,et al.TCP westwood:congestion window control using bandwidth estimation[C]//In Proc of IEEE Globecom 2001.Texas,USA:IEEE Press,2001:1698-1702. [5]LI D G,LI H.TCP mobility enhancement for vertical handovers[C]//2013 4thInternational Conference on Intelligent Systems Modeling & Simulation(ISMS).Turin,Italy:IEEE Press,2013:433-438. [6]JURGELIONIS A,LAULAJAINEN J,HIRVONEN M,et al.An empirical study of Netem network emulation functionalities[C]// 2011 Proceedings of 20thInternational Conference on Computer Communications and Networks(ICCCN).Lahaina,Hawaii,USA:IEEE Press,2011:1-6. [7]BARAYUGA V J D,YU W E S.Study of packet level UDP performance of NAT44,NAT64 and IPv6 using Iperf in the context of IPv6 migration[C]//2014 International Conference on IT Convergence and Security(ICITCS).Beijing,China:IEEE Press,2014:1-6. [8]QIAN Z J,HUANG H.Design and implementation of Linux network computer system based on Loongson Mipsel architecture[C]// 2011 International Conference on Computer Science and Service System(CSSS).Nanjing,China:IEEE Press,2011:1209-1212. [9]林闖,單志廣,任豐原.計(jì)算機(jī)網(wǎng)絡(luò)的服務(wù)質(zhì)量(QoS)[M].北京:清華大學(xué)出版社,2004:73-102. [10]WEHRLE K,P?HLKE F,RITTER H,et al.Linux網(wǎng)絡(luò)體系結(jié)構(gòu):Linux網(wǎng)絡(luò)協(xié)議的設(shè)計(jì)與實(shí)現(xiàn)[M].汪青青,等譯.北京:清華大學(xué)出版社,2006:44-56. (責(zé)任編輯:陳曠) Analysis and Comparison of Congestion Control Protocol in Linux Kernel LUO Jinwei1,LI Chunfei2 Abstract:Based on testbed network experimental research,investigated five congestion control protocols in Linux kernel,such as Cubic,Htcp,Hybla,Westwood and Veno in different network environments.The link utilization,RTT fairness and TCP friendliness were compared.Then analyzed the experiment results,and evaluated the advantage and disadvantage of these algorithms.On this base,considering Cubic and Veno,a new environmental adaptive congestion control protocol,named CVTCP has been designed and tested.The experimental results showed,the link utilization rate was fairly high without obvious reducing RTT fairness and TCP friendliness,the CVTCP has good environmental adaptability. Keywords:network testbed;congestion control protocol;performance evaluation;link utilization rate;RTT fairness;TCP friendliness 作者簡介:駱金維(1980—),男,講師,研究方向:網(wǎng)絡(luò)安全和云計(jì)算。 基金項(xiàng)目:廣東省高職院校信息技術(shù)類教育教學(xué)指導(dǎo)委員會(huì)課題(XXJS-2013-2025) 收稿日期:2015-03-23 DOI:10.16389/j.cnki.cn42-1737/n.2015.04.013 中圖分類號:TP393 文獻(xiàn)標(biāo)志碼:A 文章編號:1673-0143(2015)04-0353-063 結(jié)論及展望
(1.Department of Computer and Communication,Guangdong Innovative Technical College,Dongguan 523960,Guangdong,China)(2.Guangzhou Sontan Polytechnic College,Guangzhou 511370,Guangdong,China)