(河南科技大學(xué) 信息工程學(xué)院,河南,洛陽 471000)
數(shù)據(jù)中心網(wǎng)絡(luò)技術(shù)在網(wǎng)絡(luò)搜索、在線零售、廣告系統(tǒng)、社交網(wǎng)絡(luò)等方面的推廣與應(yīng)用為用戶提供了高質(zhì)量的網(wǎng)絡(luò)服務(wù)。這些服務(wù)都使用在線交互式應(yīng)用OLDI(online data-intensive)[1],且具有兩大特點:1)應(yīng)用程序都具有不同的截止時限,無法在截止時限內(nèi)完成傳輸?shù)牧鲗⒉槐唤y(tǒng)計在反饋的結(jié)果中;2)這些應(yīng)用采用基于樹的設(shè)計模式。通常情況下,用戶的請求會被分配給多個工作站并行處理。數(shù)據(jù)中心網(wǎng)絡(luò)服務(wù)的上述特點為傳輸層協(xié)議的設(shè)計提出了巨大挑戰(zhàn)。
針對數(shù)據(jù)中心網(wǎng)絡(luò)的應(yīng)用需求,傳輸層協(xié)議設(shè)計人員提出了兩點目標(biāo):1)降低流的平均完成時間;2)根據(jù)不同流的截止時限來限制發(fā)送窗口。在前述目標(biāo)的指引下,目前面向數(shù)據(jù)中心網(wǎng)絡(luò)的傳輸層協(xié)議研究的主流方向之一是在傳統(tǒng)的TCP(transmission control protocol)協(xié)議的基礎(chǔ)上,針對數(shù)據(jù)中心網(wǎng)絡(luò)的特性進行適應(yīng)性改進,以適應(yīng)數(shù)據(jù)中心網(wǎng)絡(luò)的需求。比如:DCTCP(data center TCP)協(xié)議[2]、D3協(xié)議[3]以及很多對TCP協(xié)議的優(yōu)化[4-7]。上述協(xié)議均從數(shù)據(jù)中心網(wǎng)絡(luò)的特性出發(fā),通過改進TCP協(xié)議的傳輸流程或者優(yōu)化TCP協(xié)議參數(shù),從而提高了數(shù)據(jù)中心網(wǎng)絡(luò)中TCP協(xié)議的性能。但是,上述協(xié)議均未能考慮保障業(yè)務(wù)的服務(wù)質(zhì)量(quality of service,QoS)。然而,在數(shù)據(jù)中心網(wǎng)絡(luò)中,如果無法保障用戶在發(fā)出請求后的截止時間內(nèi)獲得相關(guān)數(shù)據(jù),則直接影響網(wǎng)絡(luò)服務(wù)的性能以及用戶體驗,導(dǎo)致用戶的流失以及網(wǎng)絡(luò)收益的下降。
研究者針對保障數(shù)據(jù)中心網(wǎng)絡(luò)中的QoS問題,提出了不少協(xié)議設(shè)計的方案[12-15]。但是,這些研究工作主要考慮了單條業(yè)務(wù)流的優(yōu)化,而沒有考慮到網(wǎng)絡(luò)的整體負載狀況以及擁塞狀況,無法滿足用戶QoS需求。針對目前的數(shù)據(jù)中心網(wǎng)絡(luò)傳輸機制無法有效地保障業(yè)務(wù)流QoS的問題,本文提出了基于傳輸速率分配算法的TCP協(xié)議(Transmit Rate Allocation based TCP,TRA-TCP)。
目前數(shù)據(jù)中心網(wǎng)絡(luò)中的在線數(shù)據(jù)密集型應(yīng)用通常使用分割-聚合的設(shè)計模式,匯聚節(jié)點接收到用戶發(fā)出的請求,分配多個工作站共同完成工作,在計算完成后,工作站返回結(jié)果。一般而言,數(shù)據(jù)中心網(wǎng)絡(luò)的結(jié)構(gòu)如圖1所示:共有4個工作站,工作站通過匯聚節(jié)點向數(shù)據(jù)中心傳輸數(shù)據(jù)分組,當(dāng)匯聚節(jié)點發(fā)生擁塞之后,則匯聚節(jié)點通過顯示擁塞通告(explicit congestion notification,ECN)機制向工作站反饋擁塞信息。下面將分別介紹上述兩種數(shù)據(jù)中心網(wǎng)絡(luò)協(xié)議類型。
圖1 數(shù)據(jù)中心網(wǎng)絡(luò)協(xié)議的網(wǎng)絡(luò)結(jié)構(gòu)
在這種分割-聚合的工作模式下,多個計算結(jié)果同時反饋用戶會造成匯聚節(jié)點的緩存溢出,導(dǎo)致丟包。但是數(shù)據(jù)中心網(wǎng)絡(luò)的在線數(shù)據(jù)密集型應(yīng)用往往具有軟實時性[8],受到截止時限的約束。不能及時的返回結(jié)果,大大影響了用戶體驗和運營商的投資回報[9]。
目前,針對數(shù)據(jù)中心網(wǎng)絡(luò)的TCP協(xié)議改進主要包含兩類方案:無QoS保障的TCP改進協(xié)議以及基于QoS保障的TCP改進協(xié)議。
DCTCP[2]是最早提出的面向數(shù)據(jù)中心網(wǎng)絡(luò)的TCP改進協(xié)議。該協(xié)議利用ECN(explicit congestion notification)[10]機制,根據(jù)網(wǎng)絡(luò)的擁塞程度調(diào)節(jié)發(fā)送速率,減少了擁塞時的丟包。在DCTCP的基礎(chǔ)上,D3協(xié)議[3]采用了集中式的調(diào)度和主動式的速率請求,交換機貪婪的在先到先得的原則上分配帶寬。這種貪婪的方式導(dǎo)致了一些離時限更近的流不能分配到合理的帶寬。文獻[11]針對數(shù)據(jù)中心網(wǎng)絡(luò)中因為SYN包丟失而引起的TCP連接延遲問題,提出了一種基于加權(quán)隨機早起檢測的改進協(xié)議以優(yōu)化TCP協(xié)議的同步過程。然而,此類解決方法雖然能夠有效地提升網(wǎng)絡(luò)整體性能,比如:DCTCP降低了網(wǎng)絡(luò)的整體沖突概率,提升了整體的吞吐量,但是,卻沒有考慮業(yè)務(wù)的QoS需求。
針對上述協(xié)議缺乏網(wǎng)絡(luò)服務(wù)質(zhì)量的問題,出現(xiàn)了一些以保障數(shù)據(jù)中心網(wǎng)絡(luò)業(yè)務(wù)QoS的研究。D2TCP(Deadline-aware Data-center TCP)協(xié)議[12]在DCTCP擁塞控制的基礎(chǔ)上考慮了流的時限感知,以保障業(yè)務(wù)的時延需求。LSTCP(Least Slack-aware TCP)協(xié)議[13]通過采用最小空閑時間優(yōu)化調(diào)度策略對TCP流進行優(yōu)先級劃分,提出了一種基于數(shù)據(jù)中心網(wǎng)絡(luò)閑時感知算法,從而減小了短流的完成時間,并提高了長流的吞吐量。PD2TCP協(xié)議[14]針對TCP流無法在截止時限內(nèi)完成傳輸?shù)膯栴},提出了基于優(yōu)先級時限感知的TCP改進協(xié)議,通過感知瞬時隊列長度以及ECN標(biāo)記對于擁塞窗口進行調(diào)整。文獻[15]中針對多媒體業(yè)務(wù)的QoS保障,提出了源端多媒體數(shù)據(jù)流帶寬控制策略以及基于動態(tài)部分緩存共享的丟包控制方法,從而實現(xiàn)了對于TCP協(xié)議擁塞控制機制的改進。
雖然,已有部分研究成果考慮了數(shù)據(jù)中心網(wǎng)絡(luò)的QoS保障問題,但是主要針對于單TCP流進行優(yōu)化以保證單TCP流的QoS,缺乏對整體網(wǎng)絡(luò)狀況的考慮。基于此,本文提出了TRA-TCP,從網(wǎng)絡(luò)整體負載能力方面,根據(jù)高優(yōu)先級和低優(yōu)先級業(yè)務(wù)的比例調(diào)整擁塞窗口,旨在為不同優(yōu)先級業(yè)務(wù)分配不同傳輸速率,并且保障高優(yōu)先級業(yè)務(wù)的QoS。
本節(jié)主要描述了TRA-TCP協(xié)議的核心算法以及具體的工作流程。首先采用偽代碼方式描述傳輸速率控制算法的思想和總體流程,其次描述了匯聚節(jié)點檢測網(wǎng)絡(luò)不同優(yōu)先級業(yè)務(wù)傳輸速率的方法,最后描述了匯聚節(jié)點為不同優(yōu)先級業(yè)務(wù)分配傳輸速率的算法以及擁塞窗口的調(diào)節(jié)方法。
本節(jié)主要描述了論文算法的構(gòu)成及運作機制。算法1中詳細介紹了算法流程。算法的輸入?yún)?shù)為高優(yōu)先級業(yè)務(wù)的目標(biāo)傳輸速率以及網(wǎng)絡(luò)調(diào)節(jié)的周期;算法輸出為高優(yōu)先級以及低優(yōu)先級業(yè)務(wù)調(diào)節(jié)后的擁塞窗口。
算法1:Transmission Rate Control Algorithm
輸入:target transmit rateα(0≤α≤1), the circle of updating transmit rateα
Variable definition:
T(i): transmit rate of high priority serviceF
g: congestion window of high priority servicei
T(j): transmit rate of low priority servicej
W(j): congestion window of high priority servicej
N: the number of high priority services
M: the number of low priority services
β: the percentage of the transmit rate of high priority service to the transmit rate of low priority service
γ: the improving ratio of high priority services
η: the reducing ration of low priority services
輸出:W(i)* andW(j)*
1)initialization: convergence node collects transmit rate and congestion window information;
2)convergence node starts updating transmit rate process everyStime;
3)Thigh=sum(T(i)), andTlow=sum(T(j));
4)ifThigh≥NT*, go to step 1;
5)elseβ=Thigh/Tlow;
6)γ=(NT*-Thigh)/Thigh;
7)calculate the congestion window the low priority services need to reduceWr;
8)η=Wr/M;
9)W(i)*=W(i)×(1+γ);
10)W(j)*=W(j)×(1-η)。
對于匯聚節(jié)點而言,由于其接收所有工作站的業(yè)務(wù)分組,故匯聚節(jié)點可以獲取高優(yōu)先級業(yè)務(wù)和低優(yōu)先級業(yè)務(wù)的比例(IP包頭中有優(yōu)先級標(biāo)志位),并且監(jiān)測不同優(yōu)先級業(yè)務(wù)的傳輸速率。假設(shè)數(shù)據(jù)中心網(wǎng)絡(luò)中存在N個高優(yōu)先級業(yè)務(wù),每個高優(yōu)先級業(yè)務(wù)傳輸速率為T(i),擁塞窗口為W(i),M個低優(yōu)先級業(yè)務(wù),每個低優(yōu)先級業(yè)務(wù)傳輸速率為T(j),擁塞窗口為W(j),并且匯聚節(jié)點計算業(yè)務(wù)傳輸速率的周期為S,即每隔S時長匯聚節(jié)點會統(tǒng)計這段時間內(nèi)監(jiān)測到的不同優(yōu)先級業(yè)務(wù)的傳輸速率。
匯聚節(jié)點獲取到不同優(yōu)先級業(yè)務(wù)的傳輸速率之后,可以定義高優(yōu)先級業(yè)務(wù)和低優(yōu)先級業(yè)務(wù)比例關(guān)系β為:
(1)
因為網(wǎng)絡(luò)設(shè)定的高優(yōu)先業(yè)務(wù)的目標(biāo)傳輸速率為T*,故定義高優(yōu)先業(yè)務(wù)傳輸速率提升系數(shù)γ來描述當(dāng)前網(wǎng)絡(luò)的配置能否滿足高優(yōu)先級業(yè)務(wù)的傳輸速率需求。γ的定義如下:
(2)
當(dāng)γ大于0時,表示網(wǎng)絡(luò)無法滿足高優(yōu)先級業(yè)務(wù)的目標(biāo)傳輸速率,反之表示高優(yōu)先級業(yè)務(wù)的目標(biāo)傳輸速率得到滿足。因此,當(dāng)γ大于0時,匯聚節(jié)點需要重新進行傳輸速率分配。
此外,匯聚節(jié)點采用主動隊列調(diào)整算法(RED)[16],因此當(dāng)緩存隊列大于門限值時就會發(fā)生丟包事件,故匯聚節(jié)點還需要記錄網(wǎng)絡(luò)整體的擁塞狀況。根據(jù)文獻[2]定義擁塞參數(shù)α(0≤α≤1)表示網(wǎng)絡(luò)的擁塞程度。α參數(shù)的計算周期同樣為S,計算方法如下所示:
α=(1-g)×α+g×F
(3)
其中:F表示S時間內(nèi)發(fā)生擁塞的分組比例,g表示上一個α參數(shù)所占權(quán)重比例。
為了滿足網(wǎng)絡(luò)需求以及高優(yōu)先級業(yè)務(wù)的需求,網(wǎng)絡(luò)需要重新進行傳輸速率分配。具體而言,匯聚節(jié)點會根據(jù)獲取的不同業(yè)務(wù)的傳輸速率,計算出不同TCP流擁塞窗口的調(diào)節(jié)方法,從而達到傳輸速率分配的目的。
首先需要保障高優(yōu)先級業(yè)務(wù)的傳輸速率。根據(jù)之前的計算結(jié)果,可以知道高優(yōu)先級業(yè)務(wù)需要提升γ倍的傳輸速率才能滿足QoS需求。因為擁塞窗口與傳輸速率的關(guān)系是正比關(guān)系,故高優(yōu)先級業(yè)務(wù)的擁塞窗口需要提升為之前的(1+γ):
W(i)*=W(i)×(1+γ)
(4)
其次由于網(wǎng)絡(luò)整體發(fā)生了擁塞,根據(jù)DCTCP協(xié)議的建議[2],網(wǎng)絡(luò)整體的擁塞窗口需要降低α/2。另外,由于高優(yōu)先級的業(yè)務(wù)的擁塞窗口增加到之前的(1+γ)倍,故也需要降低這部分增量。因此,需要減小的總體擁塞窗口值為:
(5)
根據(jù)公式(4)化簡如下:
(6)
最終可以得到每個低優(yōu)先級業(yè)務(wù)需要減小的塞窗口數(shù)值為:
W(j)*=W(j)×(1-η)
(7)
其中η等于:
(8)
匯聚節(jié)點通過公式(4)和公式(7)可以獲取到高優(yōu)先級和低優(yōu)先級擁塞窗口的調(diào)節(jié)方法,之后需要向工作站反饋調(diào)節(jié)結(jié)果。參考DCTCP[2]以及D2TCP[11],匯聚節(jié)點在ACK數(shù)據(jù)包中攜帶擁塞調(diào)節(jié)信息。具體而言,ECN為1表示減小擁塞窗口,ECN為0表示增大擁塞窗口,ACK中的4比特保留位用于攜帶γ以及η參數(shù),即γ和η參數(shù)需要量化為離散值。
為了驗證TRA-TCP的協(xié)議性能,通過NS2網(wǎng)絡(luò)仿真軟件搭建了相應(yīng)的仿真平臺,主要比較了TRA-TCP協(xié)議與DCTCP協(xié)議以及D2TCP的性能差異,所采用的性能評價指標(biāo)為:網(wǎng)絡(luò)吞吐量、平均時延、丟包率。
實驗參數(shù)設(shè)置如表1所示。高優(yōu)先級業(yè)務(wù)數(shù)量固定為5,低優(yōu)先級業(yè)務(wù)數(shù)量則為[2,4,6,8,10]。高優(yōu)先級業(yè)務(wù)和低優(yōu)先級業(yè)務(wù)的業(yè)務(wù)速率均為100 Mbps。
表1 實驗參數(shù)配置
從圖2可以看出,對于DCTCP協(xié)議以及D2TCP協(xié)議而言,隨著低優(yōu)先級業(yè)務(wù)數(shù)量的不斷增加,高優(yōu)先級業(yè)務(wù)的吞吐量不斷下降,而低優(yōu)先級業(yè)務(wù)吞吐量不斷提升。另外,D2TCP協(xié)議的吞吐量低于DCTCP協(xié)議,這是因為D2TCP協(xié)議需要保證業(yè)務(wù)的截止時間,故降低了吞吐量。相比之下,由于TRA-TCP協(xié)議將高優(yōu)先級業(yè)務(wù)的傳輸速率目標(biāo)T*設(shè)置為100 Mbps,并通過擁塞窗口的調(diào)整,保證了高優(yōu)先業(yè)務(wù)流的吞吐量,因而,能夠獲得比DCTCP和D2TCP較高的網(wǎng)絡(luò)吞吐量。
圖2 吞吐量的仿真結(jié)果
圖3展示了業(yè)務(wù)流的時延變化情況。從圖中可以看出DCTCP協(xié)議不關(guān)注業(yè)務(wù)的截止時間,因此其平均時延最大。D2TCP考慮了業(yè)務(wù)的截止時間,故能夠一定程度保障業(yè)務(wù)的平均時延,且高優(yōu)先級業(yè)務(wù)的平均時延低于低優(yōu)先級業(yè)務(wù)的平均時延。對于TRA-TCP協(xié)議而言,充分保障了高優(yōu)先級業(yè)務(wù)的平均時延,但是相對應(yīng)的低優(yōu)先級業(yè)務(wù)的平均時延較高。
圖3 平均時延的仿真結(jié)果
從圖4可以看出,DCTCP協(xié)議和D2TCP協(xié)議的丟包率都維持在較高水平,特別是高優(yōu)先級業(yè)務(wù)的丟包率不斷增加。TRA-TCP協(xié)議中的高優(yōu)先級業(yè)務(wù)則保持幾乎不丟包的狀態(tài),低優(yōu)先級業(yè)務(wù)的丟包率則維持較高水平。
圖4 丟包率的仿真結(jié)果
針對數(shù)據(jù)中心網(wǎng)絡(luò)中業(yè)務(wù)的優(yōu)先級和吞吐量的綜合性能需求,本文提出了一種基于傳輸速率分配的服務(wù)質(zhì)量保障TCP協(xié)議:TRA-TCP協(xié)議。TRA-TCP協(xié)議根據(jù)高優(yōu)先級業(yè)務(wù)和低優(yōu)先級業(yè)務(wù)的數(shù)量比例的分配帶寬,調(diào)節(jié)擁塞窗口,保障了高優(yōu)先級業(yè)務(wù)的吞吐量。仿真實驗結(jié)果表明:TRA-TCP協(xié)議不僅能夠有效保障高優(yōu)先業(yè)務(wù)的吞吐量,還能降低高優(yōu)先級業(yè)務(wù)的平均時延以及丟包率。