姚劍鵬,蘇 偉,郜 帥
(北京交通大學 電子信息工程學院 下一代互聯網互聯設備國家工程實驗室,北京 100044)
新型互聯網多路徑傳輸協議擁塞控制機制研究
姚劍鵬,蘇 偉,郜 帥
(北京交通大學 電子信息工程學院 下一代互聯網互聯設備國家工程實驗室,北京 100044)
隨著計算機網絡的持續快速發展,對網絡應用的需求不斷涌現,網絡擁塞問題也變得日益嚴重,其一直是網絡研究的關鍵難題和熱點問題。TCP協議是傳統互聯網廣泛應用的傳輸控制協議,但單一路徑的TCP傳輸協議已不能滿足網絡發展的需要,日益顯現出其固有的局限性;另一方面,隨著接入技術與接入方式的多樣化發展,使得多路徑并行傳輸成為可能。面向連接的新型互聯網傳輸控制協議是一種多路徑的傳輸協議,其發展受限于單路徑傳輸的傳統互聯網擁塞控制算法。為此,針對新型互聯網多路徑傳輸協議,在總結回顧現有互聯網擁塞控制機制的基礎上,提出了多路徑擁塞控制機制的設計原則以及適用于多路徑傳輸協議的公平性準則。該設計原則和公平性評價準則在對比分析研究各種多路徑擁塞控制算法的優缺點的基礎上,引入了現有的多路徑傳輸協議來控制網絡擁塞,并揭示了網絡多路徑傳輸的發展方向。
多路徑傳輸;擁塞控制;公平性;資源池
一體化標識網絡[1]是一種全新的互聯網體系結構,采用了身份與位置分離的思想,引入接入標識(AID)和路由標識(RID)的概念,實現IP地址雙重屬性分離[2]。在這種新型互聯網體系架構中,新型互聯網面向連接的傳輸控制協議是以增強協議安全性,提高傳輸效率,保證傳輸可靠性,實現負載共享,提高網絡利用率為目標[3]。同時借鑒了流控制傳輸協議(SCTP)[4]和多路徑傳輸控制協議(MPTCP)[5]而設計的。SCTP是為了在IP網上傳輸信令而由IETF的信令傳輸工作組在2000年制定。MPTCP是為了滿足多宿主主機之間的多路徑通信而由IETF在2011年制定,是傳統TCP的拓展,同時克服了SCTP在應用、部署中的一些缺點。
新型互聯網面向連接的傳輸控制協議是一種多路徑傳輸協議,是傳統TCP協議的擴展。在傳輸層能支持多路徑傳輸,同時借鑒了SCTP流控制傳輸協議。利用多宿主特性,充分利用終端的多條路徑進行傳輸,提高了網絡吞吐量和網絡利用率。
現有的TCP和SCTP的擁塞控制主要適用于單路徑傳輸,而在多路徑傳輸中使用傳統的擁塞控制會在多路徑共享瓶頸鏈路時造成網路資源分配的不公平。理論上多路徑擁塞控制算法要求在多路徑傳輸中當一條路徑發生擁塞時,會將傳輸的數據轉移到沒有擁塞的另一條路徑中,而傳統的擁塞控制滿足不了這一點,需要設計一套適用于多路徑傳輸的擁塞控制機制。
目前針對于多路徑的公平性問題,MPTCP以及STCP后續支持多路徑的CMT-STCP(Concurrent Multipath Transfer for SCTP)[6]在擁塞控制中引入了資源池(Resource Polling,RP)思想[7]。資源池的核心思想是將不同路徑之間的資源考慮成一個整體,使得所有路徑的集合表現為一個虛擬的路徑,協調每一條路徑的擁塞控制,從而解決公平性問題、提高網絡吞吐量以及平衡擁塞。
為此,在總結回顧傳統互聯網中擁塞控制實現機制的基礎上,提出了新型互聯網多路徑傳輸協議中擁塞控制機制的設計原則,并對現有的多路徑傳輸協議擁塞控制機制進行了研究與探索,結合新型互聯網多路徑傳輸技術的發展趨勢,給出了具有現實意義的研究方向。
隨著互聯網的飛速發展,網絡擁塞已成為阻礙互聯網發展的一大瓶頸,擁塞控制機制也成為了互聯網關注的一大熱門課題。在傳統互聯網TCP/IP協議棧中,基于TCP擁塞控制算法的研究一直是網絡擁塞控制機制的主要研究方向,對于TCP端到端連接中,擁塞主要表現為時延增加。當網絡發生擁塞時,早期的TCP實現算法主要基于重傳機制來解決該問題,隨著慢啟動、擁塞避免、快速重傳、快速回復等擁塞算法的逐步完善,TCP擁塞控制也進入了一個較穩定的階段。
1.1TCP擁塞控制機制
1999年公布的因特網標準RFC2581定義了擁塞控制機制的四種算法,即慢啟動、擁塞避免、快速重傳、快速回復[8]。之后的RFC2582和RFC3390又對這些算法進行了改進。
1.1.1 慢啟動與擁塞避免
TCP發送方維持一個擁塞窗口cwnd(congestion window)的狀態變量。cwnd的大小取決于網絡的擁塞程度,并且呈動態變化。
慢啟動算法的思路是,當發送方剛剛開始發送報文段時,由于不知道網絡的負荷情況,先把擁塞窗口cwnd設置為一個報文段(Maximum Segment Size,MSS)的數值,之后每收到一個對新的報文段的確認之后,cwnd增加至多一個MSS的數值,使得分組注入到網絡的速率更加合理。假設一開始cwnd=1,發送方發送第一個報文段S1,接收方收到后確認S1。發送方收到對S1的確認后將cwnd增加到2,發送S2和S3兩個報文段,接收方發送S2和S3的確認,這樣發送方就收到了兩個確認,cwnd就從2增加到4。使用慢啟動算法后,每經過一個傳輸輪次,擁塞窗口cwnd就加倍,呈現指數增長。為了防止cwnd增長速度過快,造成網絡擁塞,需要設置一個慢啟動門限ssthresh,用法如下:
當cwnd 當cwnd>ssthresh時,停止使用慢啟動算法而改用擁塞避免算法; 當cwnd=ssthresh時,既可以使用慢啟動算法,也可以使用擁塞避免算法。 擁塞避免算法的思路是讓擁塞窗口cwnd每經過一個傳輸輪次后加1,使得cwnd按線性規律緩慢增長,比慢啟動算法的擁塞窗口增長速率緩慢得多。無論在慢啟動階段還是擁塞避免階段,只要發送方判斷網絡出現擁塞,就要把慢啟動門限ssthresh設置為出現擁塞時發送窗口值的一半(按指數級遞減)。這樣做是為了迅速減少主機發送到網絡中的數據,使得發生擁塞的路由器有足夠的時間處理網絡中積壓的分組。 傳統TCP協議的是基于窗口的擁塞控制,可稱為AIMD(Additive Increase Multiplicative Decrease)原則(加法增大,乘法減小)?!俺朔p小”是指無論慢啟動階段還是擁塞避免階段,只要出現網絡擁塞(表現為超時),就將慢啟動門限值ssthresh減半;“加法增大”是指執行擁塞避免時的擁塞窗口增長緩慢,防止網絡過早出現擁塞[9]。AIMD通過流量控制來保證網絡的穩定性。 1.1.2 快重傳和快恢復 快重傳和快恢復是對慢啟動和擁塞避免算法的改進。當發送方設置的超時計時器時限已到但還沒收到確認的情況下,認為發生擁塞,此時TCP馬上把擁塞窗口cwnd減小到1,慢啟動門限值ssthresh減半,這是不使用快重傳的情況。而快重傳算法以連續3個重復確認的到達作為報文段丟失的標志,會讓發送方跳過重傳計時器較長的等待,盡早重傳未被確認的報文段,從而加快了重傳速率,提高了網絡吞吐量。 與其配合使用的快恢復算法過程為:當上一輪擁塞發生到這一輪慢啟動開始階段,擁塞窗口cwnd不在設置為1MSS,而是把cwnd設置為慢啟動門限ssthresh減半后的數值,然后執行擁塞避免算法,使擁塞窗口緩慢線性的增大,從而達到快速恢復數據流量的目的。 1.2SCTP擁塞控制機制 SCTP與TCP擁塞控制機制最大的區別在于它支持多宿主主機,多宿主主機之間有多條路徑,每條路徑之間有各自的擁塞控制參數,SCTP也和TCP一樣使用AIMD原則的擁塞控制[10]。它們的主要區別在于: (1)TCP的目的地址保持不變,直到上層應用發出更改目的地址的指令。SCTP可以自動檢測目的地址是否失效,失效后會自動切換到另一個目的地址。 (2)TCP的MSS長度不固定,所以每條路徑的擁塞窗口用每條路徑的MTU取代MSS。STCP用數據塊來進行分段,分段大小是固定的,所以在多路徑傳輸過程選用所有路徑中最短的MTU作為擁塞窗口的大小。 (3)TCP要確保連接過程數據包的順序傳輸,當傳輸過程中出現了丟失,即順序號有空缺的情況下,會一直等待直到檢測到空缺的數據包。而SCTP在檢測到順序號有空缺的情況下,會將消息傳輸給相應的上層應用,不影響后續數據包的傳送。 根據RFC4960規定,SCTP只使用多路徑傳輸的主路徑,并運用了與TCP類似的擁塞控制機制。所以SCTP和TCP只適用于單路徑數據的傳輸。 2.1設計原則 (1)提高吞吐量。 多路徑并發傳輸的設計初衷就是聚合多條鏈路的帶寬能力,提高網絡吞吐量。所以一個多路徑傳輸過程中的實際吞吐量不能低于任意單路徑通信鏈路中的吞吐量。 (2)不影響其他業務流。 為了保證鏈路資源競爭的公平性,多路徑傳輸過程中一個子流不能占用超過使用該路徑進行單路徑傳輸時所占用的最大帶寬,該原則保證了不同用戶的業務流能公平競爭有限的鏈路資源。 (3)平衡多路徑擁塞。 多路徑傳輸擁塞控制機制要求能夠將數據從擁塞的鏈路中轉移到沒有擁塞的鏈路上,從而實現鏈路之間資源的均衡分配。 2.2共享瓶頸的公平性思想 TCP-Friendliness[11]是IETF組織對傳輸層協議提出的要求,是針對網絡中大量非TCP協議的不合理競爭網絡資源而提出的,其主要含義是要求任意一種傳輸協議,都不能比TCP對帶寬的搶占性更高。與此同時,非TCP協議需要提供一定的擁塞控制機制來避免網絡擁塞的產生。TCP-Friendliness主要針對資源公平分配問題,但多路徑傳輸系統中需要考慮多種不同的因素和應用場景,所以各種改進的擁塞控制機制也得到了廣泛研究。 3.1基于SCTP擁塞控制思想的多路徑擁塞控制 較為簡單的多路徑擁塞控制算法參考了SCTP的擁塞控制機制,在每一條路徑中單獨擁有一套擁塞控制參數,路徑之間互不影響。考慮到TCP-Friendliness,可以基于路徑權重策略來控制多路徑的總吞吐量。 3.1.1 非耦合的簡單多路徑擁塞控制 對于多路徑傳輸的擁塞控制機制,一種較為簡單的方法就是將SCTP的單路徑擁塞控制策略單獨運用到多路徑的每一條路徑中,每一條路徑使用自己的一套擁塞控制參數,路徑之間互不影響,保持獨立[12]。對于其中任意一條路徑,當檢測到有分組丟失時,慢啟動門限值ssthresh和擁塞窗口cwnd的變化如下所示: ssthresh=max(cwnd/2,4*MTU) (1) (2) 其中,A表示經過接收端新確認的報文個數。 由于多條鏈路單獨進行擁塞控制,可以看出多條鏈路共享一個瓶頸,也就是說當一條TCP流與多條鏈路使用同一瓶頸帶寬競爭資源時,一條多徑數據流占據多倍于TCP流的帶寬資源,這顯然違背了TCP-Friendliness。而且,鏈路之間保持獨立,當一條鏈路發生擁塞時,無法將數據流轉移到非擁塞的鏈路上,因而無法保證網絡的負載均衡。 3.1.2 基于路徑加權的擁塞控制 為了滿足TCP-Friendliness,實現多路徑傳輸過程中網絡資源分配的合理性,在每一條子路徑上加了一個權重因子a,使得所有路徑帶寬資源的總和不大于單條TCP流,保證所有路徑的窗口的增長不會影響到TCP流的資源占用,此時擁塞窗口cwnd在慢啟動,其變化如式(3)所示: cwnd= (3) 3.2基于資源共享的擁塞控制 資源共享(RP)技術將多路徑中的網絡資源匯聚成一個資源池整體,通過協調每一條路徑的擁塞控制,實現多路徑之間的負載均衡,提高網絡的傳輸效率。RP技術在多路徑擁塞控制機制中得到了廣泛應用,多路徑傳輸過程中每一條支流的擁塞窗口cwnd都是相互獨立的。 RP技術將多條鏈路耦合成一條路徑,所以各子路徑的擁塞控制既相互獨立又相互耦合[13]。 RP技術是一種通用的方法,目前研究中已經提出了三種平衡擁塞控制的算法:耦合多路徑算法,基于CMT-SCTP的CMT/RP擁塞控制算法,基于MPTCP的Linked Increases算法。 3.2.1 耦合多路徑算法 耦合多路徑算法是對非耦合的簡單多路徑擁塞控制算法的改進,其中慢啟動門限值ssthresh和擁塞窗口cwnd的變化分別如下所示: (4) (5) 針對多路徑的耦合性,慢啟動門限值和擁塞窗口的變化與所有并發鏈路的擁塞窗口之和有關,當與TCP流共享瓶頸鏈路時,TCP流和多路徑流能實現網絡資源競爭的公平性。 該算法在一條鏈路發生擁塞時,會頻繁將數據流轉移到空閑鏈路,這很可能造成空閑鏈路的擁塞,繼而重復上述過程,造成整個網絡的不穩定。 3.2.2 CMT/RP擁塞控制算法 CMT/RP算法在耦合多路徑算法的基礎上做了改進,在擁塞避免算法中引入了增性因子i,如式(6)所示。 (6) 增性因子i的作用是為了防止出現傳輸特性相差甚遠的情況,比如多路徑中一條高速低延遲路徑,其擁塞窗口cwnd參數分配特別小。 同時在快重傳算法中引入了減性因子d,它表示當發生丟包后擁塞窗口的減小程度,是為了減少路徑中的丟包率,如式(7)所示: (7) 由式(7)可以看出,帶寬越小的路徑減性因子d越大,反之則越小,體現了資源分配的公平性。 結合上述算法的改進策略,慢啟動門限值ssthresh和擁塞窗口cwnd的變化如下所示: ssthresh=max(cwnd-d*cwnd,4*MTU) (8) cwnd= (9) 3.2.3 基于MPTCP的Linked Increases算法 MPTCP工作的流程和TCP和STCP一樣,當任意路徑發生丟包時,只將路徑中的擁塞窗口減少一半,這會導致帶寬分配的不公平。 MPTCP的Linked Increases算法,結合控制工程思想,通過引入控制因子d來調整擁塞窗口的增大和減小,從而達到平衡擁塞的作用。數據包丟失后采用傳統SCTP的處理方法。 控制因子d表示單條路徑對網絡總資源的搶占能力,表達式如下所示: (10) 慢啟動門限值ssthresh和擁塞窗口cwnd的變化如下所示: ssthresh=max(cwnd-1/2*cwnd,4*MTU) (11) cwnd= (12) 3.3擁塞控制算法的比較 前面分別提出了適用于多路徑的擁塞控制算法,表1闡述了各算法的優缺點。 表1 多路徑擁塞控制算法的優缺點 針對新型互聯網多路徑傳輸協議受限于單路徑傳輸的傳統擁塞控制算法,提出了多路徑擁塞控制機制的設計原則以及適用于多路徑傳輸協議的公平性準則。同時引入了兩種單純采用傳統SCTP擁塞控制思想的多路徑擁塞控制算法和基于資源池思想的三種多路徑擁塞控制算法。通過對多路徑傳輸協議擁塞控制機制的研究,可以發現:雖然提出了TCP-Friendliness要求,但確實需要一種能夠合理描述多路徑資源分配公平性的度量準則,能夠保證在不同網絡場景多路徑傳輸的普適性;多路徑擁塞實現了平衡擁塞能力后,在資源最大化利用上仍有很大提升,因此在實際網絡中,如何充分考慮各個路徑的擁塞、丟包情況,來保證網絡資源的最優利用值得探究;多路徑傳輸應考慮路徑的最優傳輸,如何從傳輸性能差異較大的多路徑中選擇最優的傳輸路徑也是值得考慮的問題。 下一步將針對這幾種不同的多路徑擁塞控制算法,開展在實際網絡(新型互聯網)的開發測試,并針對實際網絡,定量分析擁塞控制算法的設計和擁塞控制的效果,找出最適用于新型互聯網絡傳輸協議的擁塞控制算法。 [1] 張宏科,蘇 偉.新網絡體系基礎研究—一體化網絡與普適服務[J].電子學報,2007,35(4):593-598. [2] 董 平,秦雅娟,張宏科.支持普適服務的一體化網絡研究[J].電子學報,2007,35(4):599-606. [3] 趙珊珊.新型互聯網傳輸控制協議的研究與設計[D].北京:北京交通大學,2016. [4] 代志剛.新一代流控制傳輸協議SCTP[J].電信快報,2001(3):32-34. [5] Raiciu C,Wischik D,Handley M.Practical congestion control multipath transport protocols[S].[s.l.]:[s.n.],2009. [6] Iyengar J R,Amer P D,Stewart R.Concurrent multipath transfer using SCTP multihoming over independent end-to-end paths[J].IEEE/ACM Transactions on Networking,2006,14(5):951-964. [7] Wischik D,Handley M,Braun M B.The resource pooling principle[J].ACM SIGCOMM Computer Communication Review,2008,38(5):47-52. [8] 林開司,佘 東.計算機網絡擁塞控制綜述[J].科技資訊,2008(3):106-107. [9] 劉宇蘋.基于擁塞控制算法的研究[J].武漢船舶職業技術學院學報,2009,8(3):37-39. [10] 韓 鵬.SCTP擁塞控制機制的研究與改進[D].南京:南京郵電大學,2011. [11] Floyd S,Fall K.Promoting the use of end-to-end congestion control in the Internet[J].IEEE/ACM Transactions on Networking,1999,7(4):458-472. [12] 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. [13] Dreibholz T,Becke M,Adhari H,et al.On the impact of congestion control for concurrent multipath transfer on the transport layer[C]//Proceedings of the 2011 11th international conference on telecommunications.[s.l.]:IEEE,2011:397-404. ResearchonCongestionControlMechanismofMultipathTransmissionProtocolforEmergingInternet YAO Jian-peng,SU Wei,GAO Shuai (National Engineering Laboratory for NGI Interconnection Devices,School of Electronic Information Engineering,Beijing Jiaotong University,Beijing 100044,China) With the constant and rapid development of computer network,the demand for network applications is emerging,and the network congestion is becoming more and more serious,which has been the key problem and hotspot of network research.TCP,as a transmission control protocol,is widely used in the traditional Internet,but a single path of the TCP is unable to meet the needs of network development,increasingly showing its inherent limitations.In addition,with the diverse development of access technology and access mode,it makes multi-path parallel transmission possible.The new connection-oriented Internet transmission control protocol is a multi-path transmission protocol,which is limited to the traditional Internet congestion control algorithm with single path.For this,a new multi-path congestion control mechanism is proposed based on the review of the existing Internet congestion control mechanism,and its design principles and fairness criterion are proposed which introduce the existing multi-path transmission protocol into the control network congestion and reveal the development direction of the network multipath transmission on the basis of the comparative analysis of the advantages and disadvantages of various multi-path congestion control algorithms. multi-path transmission;congestion control;fairness;resource pool TP31 A 1673-629X(2017)10-0034-05 2016-11-18 2017-03-09 < class="emphasis_bold">網絡出版時間 時間:2017-07-19 國家“863”高技術發展計劃項目(2015AA016101);北京市科技新星計劃(Z151100000315052) 姚劍鵬(1992-),男,碩士研究生,研究方向為下一代互聯網理論與技術;蘇 偉,博士,教授,研究方向為下一代互聯網理論與技術;郜 帥,博士,副教授,研究方向為下一代互聯網理論與技術。 http://kns.cnki.net/kcms/detail/61.1450.TP.20170719.1112.068.html 10.3969/j.issn.1673-629X.2017.10.0082 多路徑擁塞控制設計
3 多路徑傳輸的擁塞控制








4 結束語