趙高峰,馮 寶,李 洋,崔 林,張孟康
(1.南瑞集團有限公司(國網(wǎng)電力科學研究院有限公司),江蘇 南京 211000;2.國網(wǎng)江蘇省電力有限公司電力科學研究院,江蘇 南京 211103;3.南京郵電大學 通信與信息工程學院,江蘇 南京 210003)
目前高性能計算網(wǎng)絡技術主要的應用場景是數(shù)據(jù)中心的計算機集群網(wǎng)絡,在數(shù)據(jù)中心應用環(huán)境下可以充分發(fā)揮網(wǎng)絡的高性能特點,高性能計算網(wǎng)絡也是數(shù)據(jù)中心不可或缺的組成部分。高性能計算網(wǎng)絡在數(shù)據(jù)中心的應用已經(jīng)非常成熟,并且伴隨著數(shù)據(jù)中心的發(fā)展不斷進步。近年來,隨著智能電網(wǎng),特別是能源互聯(lián)網(wǎng)的發(fā)展,電力需求急劇增長,跨大區(qū)互聯(lián)和遠距離輸電系統(tǒng)相繼出現(xiàn)。電力系統(tǒng)所承載的數(shù)據(jù)量越來越大,因此將高性能計算網(wǎng)絡應用到電力系統(tǒng),形成電力通信的廣域高性能計算網(wǎng)絡已迫在眉睫[1]。
隨著計算機應用與智能電網(wǎng)日新月異的發(fā)展,用戶對網(wǎng)絡需求量的增大,對網(wǎng)絡服務質量的要求也在不斷提高,這些將會導致網(wǎng)絡擁塞崩潰(congestion collapse)的發(fā)生[2]。多源和多路徑是指分別使用多個源和多條路徑到每個源,可以使網(wǎng)絡運營商和終端用戶受益。多源和多徑統(tǒng)稱為多流,通過在更多的鏈路和源之間傳播流來提供負載平衡和更高的資源利用率。多流傳輸具有高性能、可靠性好和安全性高等優(yōu)點[3],適用于廣域高性能計算網(wǎng)絡。多流傳輸主要是進行批量的數(shù)據(jù)傳送,在此過程中會產(chǎn)生大量流量,容易引起網(wǎng)絡擁塞,可能導致分組轉發(fā)的數(shù)據(jù)包丟失,時延增加,網(wǎng)絡吞吐量減少,甚至產(chǎn)生“擁塞崩潰”的嚴重后果,對網(wǎng)絡性能影響非常大[4]。擁塞控制就是網(wǎng)絡節(jié)點為了避免擁塞而采取相應的措施或對發(fā)生的擁塞做出反應。據(jù)目前統(tǒng)計,互聯(lián)網(wǎng)上95%的數(shù)據(jù)流和90%的報文數(shù)使用的是TCP/IP協(xié)議,此外,由于當前網(wǎng)絡擁塞控制的大部分工作是由TCP協(xié)議完成的,因此,基于互連的TCP/IP網(wǎng)絡協(xié)議中的擁塞控制機制研究也就對控制網(wǎng)絡擁塞有著特別重要的意義,并且它一直以來都是互聯(lián)網(wǎng)擁塞控制問題的一個研究熱點[5]。目前使用的TCP擁塞控制算法[6]主要由四個部分組成:慢啟動、擁塞避免、快速重傳和快速恢復。為了解決廣域高性能計算網(wǎng)絡中的網(wǎng)絡擁塞問題,必須提出一種有效的多流擁塞控制機制。
多流擁塞控制是廣域高性能計算網(wǎng)絡的主要研究課題之一。通過多流擁塞控制,可以實現(xiàn)多流中帶寬利用的最大化,并且不影響單流傳輸?shù)男阅堋.敹嗔鬟B接與單流連接競爭同一網(wǎng)絡資源時,多流連接所獲得的資源應該不多于單流連接,這表示為對于單流連接的兼容性。然而,這種兼容性會導致子流帶寬不能充分利用,當每個子流所采用的路徑不相交時,它們之間不能共享同一瓶頸鏈路,這會導致多流連接的性能下降。
文獻[7]提出的擁塞控制算法基于TCP New Reno[8],對擁塞避免階段做了修改,提出了一種“連接增加”(linked increased)的算法。該算法只能保證吞吐率達到多路徑中在TCP下最佳鏈路狀態(tài)下所能達到的吞吐率,并沒有顯著提高資源共享率。文獻[9]研究了移動自組織網(wǎng)絡中多徑路由協(xié)議下TCP的性能,結果表明在大部分情況下,數(shù)據(jù)傳輸?shù)男阅軙陆?。文獻[10]提出一種用于多徑TCP的魯棒性應答機制來提高性能,然而該研究成果并不顯著。多徑TCP協(xié)議(MPTCP)是IETF MPTCP工作組提出的新型傳輸層多徑協(xié)議。它在兼容TCP協(xié)議的基礎上,同時利用多條路徑的傳輸能力進行數(shù)據(jù)傳輸,提高帶寬利用率,增強連接的恢復能力,并且能夠自適應地將數(shù)據(jù)從擁塞路徑轉移到非擁塞路徑[11]。傳統(tǒng)的TCP,如TCP Reno和SACK,當從匯點接收到三個重復的ACK時,源節(jié)點的擁塞窗口自動減半,這意味著丟包的發(fā)生[12]。MPTCP協(xié)議是TCP-Reno的演進,適用于每個子流的慢啟動和擁塞避免部分,同時還能解決公平瓶頸共享、往返時間(RTT)不匹配和移動網(wǎng)絡負載等問題。然而,由于廣域高性能計算網(wǎng)絡為分布式逐跳路由,不能使用傳輸協(xié)議檢測傳輸路徑是否重疊,其擁塞控制模塊不能檢測是否具有兼容性的問題,因此MPTCP的性能并不能達到最優(yōu),無法解決資源利用率和兼容性的權衡問題。一些應用層的解決方案試圖通過端到端檢測共享瓶頸[13-14],然而其效果并不明顯。文獻[14]提出了基于損失和延遲的相關技術,但基于損失的技術不可靠且收斂時間約為15 ms,對于通用多流協(xié)議不可能達到?;谘舆t的方法獲得準確結果的時間較長,性能較差。
文中提出了一種混合多流擁塞控制方案,既可以提高資源利用率,又不影響兼容性。該方案是一種端到端的多流感知算法(NMCC),雖然該算法十分簡潔,但與MPTCP算法相比,其兼容性和資源利用率等均有所提升。
當所有的通信路徑不相交即不共享同一鏈路或路由器時,為多流傳輸?shù)淖罴亚闆r。在這種情況下,每個多流連接可以使用與單流連接相同的擁塞控制算法。然而,這會導致對于單流連接資源分配的不合理,使得兼容性較差,因此必須對多流連接加以限制,降低其攻擊性。文中使用同一個ID組來標記共享至少一個鏈路(不一定是相同的鏈路)的所有路徑。
圖1給出了路徑組合的三個示例以及相應的ID組代碼。在圖1(a)中,三條路徑是不相交的,因此每條路徑用不同的ID組標記;而在圖1(b)中,路徑A和B共享一條鏈路,因此它們具有相同的ID組;在圖1(c)中,路徑A和B共享鏈路,路徑B和C共享另一條鏈路,它們仍然使用相同的ID組,以確保每條路徑屬于單個組。
圖1 路徑組成的三種不同情況及其相應的ID組代碼
路徑具有不同的ID組時,它們不共享任何鏈路,此時窗口管理不需要考慮兼容性的問題。每條路徑具有單個擁塞窗口變量(congestion window,cwnd),使用基于RTT的丟失檢測機制和重傳機制,以及慢啟動和擁塞避免算法。文中分別為每條路徑創(chuàng)建不同的類TCP子流,在此基礎上,窗口管理類似于MPTCP的解耦合擁塞控制方案。路徑具有相同的ID組時,NMCC算法可以保證兼容性。NMCC在兩個方面不同于MPTCP的耦合擁塞控制算法,一方面耦合的MPTCP僅在擁塞避免部分對多流連接中的子流限制攻擊性,而NMCC則同時考慮擁塞避免和慢啟動兩個部分。另一方面,NMCC算法比耦合的MPTCP操作簡單。耦合的MPTCP算法通過降低每個RTT的擁塞窗口的增長速率來限制攻擊性。然而,當路徑具有不同的RTT和移動網(wǎng)絡負載時,這種方法會增加復雜性,這是通過使用單流解決方案解決多流問題所導致的。對于TCP來說,為了保證其兼容性,具有較大RTT的連接通常具有較低的攻擊性[15]。NMCC利用這一點,通過增大RTT來控制擁塞窗口。這降低了算法復雜性,簡化了慢啟動狀態(tài)達到兼容性的過程,并且避免了由于RTT不匹配和突發(fā)負載以及擁塞移位導致的相關多流問題。文中將從擁塞避免和慢啟動兩個部分討論NMCC算法。
(1)
使其達到公平瓶頸共享的兩個目標:(1)共享一個鏈路的所有子流的增長速率應該比單流連接的增長速率??;(2)總體的增長速率應該比最具有攻擊性的單流連接的增長速率大。由于最有攻擊性的單流連接具有最小的RTTi=RTTmin,并且在擁塞避免期間,單流連接的增長速率是每個RTTi增加一個數(shù)據(jù)包,所以擁塞避免期間的速率增加間隔必須滿足:
(2)
其中,N為共同控制的子流的數(shù)量。
因此,可以使用以下等式估計m:
(3)
將m引入到所有子流中,可以適應所有路徑的增長速率,此時不能忽略傳輸較慢的路徑。因此,NMCC不需要檢測未使用路徑上的變化,能夠快速適應路徑故障和擁塞突發(fā)的情況。
(2)慢啟動:對于大部分多流傳輸,僅需要考慮擁塞避免部分,而忽略慢啟動部分的情況。然而對于NMCC,當內容相對較小并且路徑非常擁擠時,兼容性就變得相當差。在慢啟動期間,具有N個子流的多流連接獲得帶寬的速度幾乎是單流連接的N倍,即使?jié)M足了兼容性,其攻擊性依然很強。為了解決這一問題,重新引入m。
(4)
其中,N為共同控制的子流個數(shù)。
m計算如下:
(5)
為了評估提出的多流擁塞控制的性能,對系統(tǒng)進行了仿真。將仿真場景布置在Blackadder環(huán)境下,把100 Mbit交換機和工作站作為網(wǎng)絡節(jié)點。所有節(jié)點之間的傳輸延遲為0.2~0.3 ms,每條鏈路的帶寬為11.7 MB/s。在所有仿真期間轉移的持續(xù)時間為20 s。
首先,對共享路徑進行了仿真。對于共享路徑,使用如圖2所示的拓撲結構,發(fā)送源和接收端通過共享鏈接的路徑連接。部署了從用戶S1到接收端P1和P2的多源連接,從用戶S1到接收端P1以及從用戶S2到接收端P2的1,2,4和9個單流連接,這些連接在兩個路徑之間均勻分布。
圖2 共享路徑的拓撲結構
(a)NMCC和所有單流連接的帶寬份額
(b)NMCC和平均單流連接的傳輸速率
圖3 仿真結果
圖3(a)描述了NMCC和所有單流連接獲得的平均帶寬百分比,當NMCC分別與1、2、4和9個單流連接競爭時,其分別獲得51.1%、35.5%、21.5%和10.8%的瓶頸鏈路帶寬,略高于最優(yōu)分配比例50%、33.3%、20%和10%。圖3(b)描述了通過NMCC和平均單流連接實現(xiàn)的平均傳輸速率。仿真結果表明,NMCC使得多流連接與單流連接的資源分配更加合理,單流連接的帶寬利用率和資源利用率均有所增加,達到了兼容性目標。同時,多流連接比單流連接的傳輸速率略高,NMCC提高了多流連接的性能。
對于慢啟動狀態(tài),考慮短傳輸,仍使用如圖2所示的路徑拓撲結構。圖4給出了當兼容的慢啟動打開或關閉時由NMCC獲取的總帶寬的百分比。仿真結果表明,當慢啟動具有兼容性時,NMCC對于擁塞控制更有效,帶寬分配更加合理。
圖4 有無兼容慢啟動短傳輸?shù)膸挵俜直?/p>
提出了一種基于廣域高性能計算網(wǎng)絡的混合多流擁塞控制機制。該機制對共享鏈路瓶頸進行適當?shù)臋z測并對子流的攻擊性進行管理,通過引入?yún)?shù)來控制所有子流的增長間隔和增長速率,解決多流連接中的兼容性與資源利用率權衡問題。仿真結果表明,該方案有效地控制了網(wǎng)絡擁塞,提高了廣域高性能計算網(wǎng)絡的資源利用率和帶寬分配的合理性,同時保證了兼容性。
參考文獻:
[1] 劉 洋,謝開貴,周家啟,等.大電力系統(tǒng)可靠性評估高性能計算平臺設計與實現(xiàn)[J].電力系統(tǒng)自動化,2006,30(18):89-93.
[2] 孔金生,任平英.TCP網(wǎng)絡擁塞控制研究[J].計算機技術與發(fā)展,2014,24(1):43-46.
[3] 孟憲晴.多徑并行數(shù)據(jù)傳送的擁塞控制機制研究[J].計算機技術與發(fā)展,2011,21(10):99-102.
[4] 馬翔宇.基于多路徑TCP擁塞控制的研究[D].西安:西安電子科技大學,2014.
[5] 江 艷,李寶林.TCP/IP擁塞控制算法研究[J].計算機技術與發(fā)展,2015,25(1):119-122.
[6] ALLMAN M,PAXSON V,STEVENS W.TCP congestion control[S].[s.l.]:[s.n.],1999.
[7] 王 毅,廖曉菊,潘澤友.多路徑傳輸控制協(xié)議技術綜述[J].信息與電子工程,2011,9(1):7-11.
[8] 武航星,慕德俊,潘文平,等.網(wǎng)絡擁塞控制算法綜述[J].計算機科學,2007,34(2):51-56.
[9] LIM H,XU K,GERLA M.TCP performance over multipath routing in mobile ad hoc networks[C]//IEEE international conference on communications.[s.l.]:IEEE,2003:1064-1068.
[10] LIU Y,WANG B,XU K,et al.PACC:a path associativity congestion control and throughput model for multi-path TCP[J].Procedia Computer Science,2011,4:1278-1287.
[11] 薛開平,陳 珂,倪 丹,等.基于MPTCP的多路徑傳輸優(yōu)化技術綜述[J].計算機研究與發(fā)展,2016,53(11):2512-2529.
[12] 馬 礦,何加銘,鄭紫微,等.基于MPTCP的自適應擁塞控制算法[J].移動通信,2013,37(20):55-60.
[14] JIANG Ming,YANG Qiang,WU Chunming,et al.End-to-end congestion control for TCP-friendly flows with variable data rates[J].Chinese Journal of Electronics,2012,21(3):541-546.
[15] 李士寧,官駿鳴,覃 征.KIR:一種TCP擁塞避免階段的公平性算法及在GEO衛(wèi)星環(huán)境下的仿真[J].計算機研究與發(fā)展,2006,43(12):2048-2055.