數(shù)據(jù)中心網(wǎng)絡(luò)中基于通告窗口和多流協(xié)同的擁塞控制方法
【專利摘要】本發(fā)明公開了一種數(shù)據(jù)中心網(wǎng)絡(luò)中基于通告窗口和多流協(xié)同的擁塞控制方法,在TCP接收端根據(jù)往返延時比例和丟包狀況協(xié)同調(diào)節(jié)TCP匯聚流的通告窗口,在保證各條TCP流吞吐率公平的同時實施了高效的擁塞控制。本發(fā)明的方法可以在多種延時、拓撲和通信模式下使用,同時保證較高的吞吐率和公平性,從而實現(xiàn)數(shù)據(jù)中心網(wǎng)絡(luò)中高效的擁塞控制。
【專利說明】數(shù)據(jù)中心網(wǎng)絡(luò)中基于通告窗口和多流協(xié)同的擁塞控制方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)中心網(wǎng)絡(luò)中(DCN, Data Center Network)基于通告窗口和多流協(xié)同的擁塞控制方法。
【背景技術(shù)】
[0002]數(shù)據(jù)中心近年來成為大規(guī)模信息存儲、計算、交互的基礎(chǔ)設(shè)施。越來越多的企業(yè)和個人把在線應(yīng)用服務(wù)遷移到Amazon EC2等大型數(shù)據(jù)中心。但數(shù)據(jù)中心資源的碎片化和拓撲結(jié)構(gòu)的異構(gòu)性使得現(xiàn)有的傳輸控制協(xié)議TCP出現(xiàn)了新的問題。
[0003]在傳統(tǒng)廣域網(wǎng)環(huán)境下,TCP流彼此競爭,其吞吐率與往返延時成反比。即相同條件下,往返延時短的TCP流更具有侵略性,占據(jù)很多的帶寬。然而,P.Prakash等指出了在數(shù)據(jù)中心網(wǎng)絡(luò)(Data Center Network, DCN)中存在截然相反的吞吐率不公平現(xiàn)象:當多組數(shù)目不均的TCP流抵達交換機不同入口,并競爭同一個出口時,流數(shù)目較少的TCP流組,吞吐率明顯處于弱勢。此時,即使往返延時短的TCP流吞吐率也會偏低。這種現(xiàn)象也稱為TCPOutcast ο
[0004]引發(fā)上述問題的原因主要有兩個:交換機采用隊尾丟棄策略;匯聚到交換機不同入端口的流數(shù)不同,并競爭同一個瓶頸出口。在數(shù)據(jù)中心網(wǎng)絡(luò)的多根樹拓撲和多對一通信模式中,這兩個條件都容易滿足。數(shù)據(jù)中心網(wǎng)絡(luò)中,分布式文件存儲、網(wǎng)絡(luò)搜索、社交網(wǎng)絡(luò)內(nèi)容選取等應(yīng)用都具有分散聚合的特征。當聚合操作可由任意一個節(jié)點執(zhí)行時,會有大量數(shù)據(jù)流匯聚到接收端。
[0005]針對上述的吞吐率不公平問題,現(xiàn)有的解決方案在交換機使用RED或SFQ等公平隊列調(diào)度算法,使各條TCP流丟包的概率相近;或讓所有的TCP流經(jīng)過等長路由均勻混合,使得交換機各個入口流數(shù)相近。這些方法在不同程度上緩解了不公平問題,但也有各自缺陷。例如RED算法無法做到真正公平;SFQ等調(diào)度算法部署成本過高,難以實際應(yīng)用;而等長路由不必要地增加眾多TCP流路由長度,傳輸開銷過大。
[0006]緩解吞吐率不公平問題需要多流協(xié)同實施擁塞控制,目前在TCP發(fā)送端雖然有較完善的擁塞控制機制,但無法與其他發(fā)送端協(xié)調(diào)保證公平,而且大多只關(guān)注特定場景下的問題。此外,現(xiàn)有的隊列管理算法雖然能實現(xiàn)一定程度的公平調(diào)度,但都有開銷較大的缺點。接收端能獲取所有TCP流的信息,并協(xié)同調(diào)節(jié)通告窗口實施擁塞控制。但接收端控制公平性的難度在于,既要實現(xiàn)公平共享帶寬,又要充分利用可用帶寬。一般而言,保持高吞吐率容易引發(fā)丟包,而交換機隊尾丟棄策略會導致嚴重的不公平。因此,在算法設(shè)計中必須抑制丟包引起的發(fā)送窗口不公平增減,同時保證窗口不能過小,以免影響傳輸效率。
【發(fā)明內(nèi)容】
[0007]本發(fā)明所要解決的技術(shù)問題是,針對現(xiàn)有技術(shù)不足,提供一種數(shù)據(jù)中心網(wǎng)絡(luò)中基于通告窗口和多流協(xié)同的擁塞控制方法,解決吞吐率不公平的問題。
[0008]為解決上述技術(shù)問題,本發(fā)明所采用的技術(shù)方案是:一種數(shù)據(jù)中心網(wǎng)絡(luò)中基于通告窗口和多流協(xié)同的擁塞控制方法,包括以下步驟:
[0009]I) TCP接收端在各TCP流建立連接時,初始化TCP流i的通告窗口大小awnd1、通告窗口門限值awndjoss1、往返延時RTTi以及各TCP流總丟包數(shù)sum_pktLoss,并統(tǒng)計總TCP流數(shù)η ;
[0010]2) TCP接收端根據(jù)網(wǎng)絡(luò)狀況更新TCP流i的往返延時采樣值RTTi,計算匯聚TCP流的平均延時avg_RTT和總通告窗口大小sum_awnd ;
[0011]3) TCP接收端統(tǒng)計一個往返延時內(nèi)匯聚TCP流的總丟包數(shù)sum_pktLoss,若sum_pktLoss為0,則進入步驟4);否則進入步驟5);
[0012]4) TCP接收端根據(jù)avg_RTT、TCP流i的RTTi和Bwndi計算通告窗口增幅,并更新sum_awnd,返回步驟3);
[0013]5) TCP 接收端根據(jù) sum_pktLoss、avg_RTT、TCP 流 i 的 RTTi 和 awndi 計算通告窗口降幅,為防止降窗不公平,降窗之后用更新的sum_awnd再均分窗口,返回步驟3);
[0014]6)經(jīng)過以上步驟調(diào)整后,TCP接收端將TCP流i的通告窗口大小通過ACK報文返回給發(fā)送端,發(fā)送端將根據(jù)TCP流i的通告窗口大小和自身計算的擁塞窗口控制發(fā)送速率。
[0015]TCP流i的通告窗口大小awndi初始化為2*MSS (MSS是TCP數(shù)據(jù)包大小基本單位),通告窗口門限值awnd_loSSi初始化為+ -,RTTi初始化為TCP流i連接握手時的往返延時,sum_pktLoss 初始化為 O。
[0016]avg_RTT的計算公式如下:
【權(quán)利要求】
1.一種數(shù)據(jù)中心網(wǎng)絡(luò)中基于通告窗口和多流協(xié)同的擁塞控制方法,其特征在于,包括以下步驟: 1)TCP接收端在各TCP流建立連接時,初始化TCP流i的通告窗口大小awnd1、通告窗口門限值awndjoss1、往返延時RTTi以及各TCP流總丟包數(shù)sum_pktLoss,并統(tǒng)計總TCP流數(shù)η ; 2)TCP接收端根據(jù)網(wǎng)絡(luò)狀況更新TCP流i的往返延時采樣值RTTi,計算匯聚TCP流的平均延時avg_RTT和總通告窗口大小sum_awnd ; 3)TCP接收端統(tǒng)計一個往返延時內(nèi)匯聚TCP流的總丟包數(shù)sum_pktLoss,若sum_pktLoss為0,則進入步驟4);否則進入步驟5); 4)TCP接收端根據(jù)avg_RTT、TCP流i的RTTi和awndi計算通告窗口增幅,并更新sum_awnd,返回步驟3); 5)TCP接收端根據(jù)sum_pktLoss、avg_RTT、TCP流i的RTTi和awndi計算通告窗口降幅,為防止降窗不公平,降窗之后用更新的sum_awnd再均分窗口,返回步驟3); 6)經(jīng)過以上步驟調(diào)整后,TCP接收端將TCP流i的通告窗口大小通過ACK報文返回給發(fā)送端,發(fā)送端將根據(jù)TCP流i的通告窗口大小和自身計算的擁塞窗口控制發(fā)送速率。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)中心網(wǎng)絡(luò)中基于通告窗口和多流協(xié)同的擁塞控制方法,其特征在于,TCP流i的通告窗口大小awndi初始化為2*MSS (MSS是TCP數(shù)據(jù)包大小基本單位),通告窗口門限值awnd_losSi初始化為+①,RTTi初始化為TCP流i連接握手時的往返延時,sum_pktLoss初始化為O。
3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)中心網(wǎng)絡(luò)中基于通告窗口和多流協(xié)同的擁塞控制方法,其特征在于,avg_RTT的計算公式如下:
4.根據(jù)權(quán)利要求3所述的數(shù)據(jù)中心網(wǎng)絡(luò)中基于通告窗口和多流協(xié)同的擁塞控制方法,其特征在于,TCP流i統(tǒng)計一個往返延時內(nèi)的丟包數(shù)PktLossi,并用來計算sum_pktLoss,計算公式如下:
5.根據(jù)權(quán)利要求4所述的數(shù)據(jù)中心網(wǎng)絡(luò)中基于通告窗口和多流協(xié)同的擁塞控制方法,其特征在于,TCP流i增幅后的通告窗口大小的具體計算過程為:根據(jù)一個往返延時內(nèi)接收的數(shù)據(jù)包數(shù)目估算TCP流i發(fā)送端的擁塞窗口 cwnd—esti,若存在某一條TCP流x滿足cwnd—estx〈awndx_3*MSS,則所有TCP流不增窗,返回步驟3);否則將依據(jù)awndi和awnd—1ssi的大小關(guān)系確定窗口增幅方法,TCP流i增幅后的通告窗口大小awnd/具體計算公式如下:
6.根據(jù)權(quán)利要求5所述的數(shù)據(jù)中心網(wǎng)絡(luò)中基于通告窗口和多流協(xié)同的擁塞控制方法,其特征在于,TCP流i降幅后的通告窗口大小的具體計算過程為:根據(jù)sum_pktLoss和RTTi與avg_RTT的比例降低awndi, TCP流i降幅后的通告窗口大小awnd^具體計算公式如下:
7.根據(jù)權(quán)利要求6所述的數(shù)據(jù)中心網(wǎng)絡(luò)中基于通告窗口和多流協(xié)同的擁塞控制方法,其特征在于,TCP接收端按照上述步驟調(diào)整TCP流i的通告窗口后,通過ACK報文攜帶給發(fā)送端,發(fā)送端比較通告窗口與擁塞窗口的大小,取兩者中的較小者作為發(fā)送窗口 SncLwndi,從而控制發(fā)送速率。
【文檔編號】H04L12/801GK104009931SQ201410263429
【公開日】2014年8月27日 申請日期:2014年6月13日 優(yōu)先權(quán)日:2014年6月13日
【發(fā)明者】王建新, 韓瑞, 黃家瑋, 董蘋蘋, 盛羽 申請人:中南大學, 長沙訊億達信息科技有限公司