(河南科技大學 信息工程學院,河南,洛陽 471000)
數據中心網絡技術在網絡搜索、在線零售、廣告系統、社交網絡等方面的推廣與應用為用戶提供了高質量的網絡服務。這些服務都使用在線交互式應用OLDI(online data-intensive)[1],且具有兩大特點:1)應用程序都具有不同的截止時限,無法在截止時限內完成傳輸的流將不被統計在反饋的結果中;2)這些應用采用基于樹的設計模式。通常情況下,用戶的請求會被分配給多個工作站并行處理。數據中心網絡服務的上述特點為傳輸層協議的設計提出了巨大挑戰。
針對數據中心網絡的應用需求,傳輸層協議設計人員提出了兩點目標:1)降低流的平均完成時間;2)根據不同流的截止時限來限制發送窗口。在前述目標的指引下,目前面向數據中心網絡的傳輸層協議研究的主流方向之一是在傳統的TCP(transmission control protocol)協議的基礎上,針對數據中心網絡的特性進行適應性改進,以適應數據中心網絡的需求。比如:DCTCP(data center TCP)協議[2]、D3協議[3]以及很多對TCP協議的優化[4-7]。上述協議均從數據中心網絡的特性出發,通過改進TCP協議的傳輸流程或者優化TCP協議參數,從而提高了數據中心網絡中TCP協議的性能。但是,上述協議均未能考慮保障業務的服務質量(quality of service,QoS)。然而,在數據中心網絡中,如果無法保障用戶在發出請求后的截止時間內獲得相關數據,則直接影響網絡服務的性能以及用戶體驗,導致用戶的流失以及網絡收益的下降。
研究者針對保障數據中心網絡中的QoS問題,提出了不少協議設計的方案[12-15]。但是,這些研究工作主要考慮了單條業務流的優化,而沒有考慮到網絡的整體負載狀況以及擁塞狀況,無法滿足用戶QoS需求。針對目前的數據中心網絡傳輸機制無法有效地保障業務流QoS的問題,本文提出了基于傳輸速率分配算法的TCP協議(Transmit Rate Allocation based TCP,TRA-TCP)。
目前數據中心網絡中的在線數據密集型應用通常使用分割-聚合的設計模式,匯聚節點接收到用戶發出的請求,分配多個工作站共同完成工作,在計算完成后,工作站返回結果。一般而言,數據中心網絡的結構如圖1所示:共有4個工作站,工作站通過匯聚節點向數據中心傳輸數據分組,當匯聚節點發生擁塞之后,則匯聚節點通過顯示擁塞通告(explicit congestion notification,ECN)機制向工作站反饋擁塞信息。下面將分別介紹上述兩種數據中心網絡協議類型。

圖1 數據中心網絡協議的網絡結構
在這種分割-聚合的工作模式下,多個計算結果同時反饋用戶會造成匯聚節點的緩存溢出,導致丟包。但是數據中心網絡的在線數據密集型應用往往具有軟實時性[8],受到截止時限的約束。不能及時的返回結果,大大影響了用戶體驗和運營商的投資回報[9]。
目前,針對數據中心網絡的TCP協議改進主要包含兩類方案:無QoS保障的TCP改進協議以及基于QoS保障的TCP改進協議。
DCTCP[2]是最早提出的面向數據中心網絡的TCP改進協議。該協議利用ECN(explicit congestion notification)[10]機制,根據網絡的擁塞程度調節發送速率,減少了擁塞時的丟包。在DCTCP的基礎上,D3協議[3]采用了集中式的調度和主動式的速率請求,交換機貪婪的在先到先得的原則上分配帶寬。這種貪婪的方式導致了一些離時限更近的流不能分配到合理的帶寬。文獻[11]針對數據中心網絡中因為SYN包丟失而引起的TCP連接延遲問題,提出了一種基于加權隨機早起檢測的改進協議以優化TCP協議的同步過程。然而,此類解決方法雖然能夠有效地提升網絡整體性能,比如:DCTCP降低了網絡的整體沖突概率,提升了整體的吞吐量,但是,卻沒有考慮業務的QoS需求。
針對上述協議缺乏網絡服務質量的問題,出現了一些以保障數據中心網絡業務QoS的研究。D2TCP(Deadline-aware Data-center TCP)協議[12]在DCTCP擁塞控制的基礎上考慮了流的時限感知,以保障業務的時延需求。LSTCP(Least Slack-aware TCP)協議[13]通過采用最小空閑時間優化調度策略對TCP流進行優先級劃分,提出了一種基于數據中心網絡閑時感知算法,從而減小了短流的完成時間,并提高了長流的吞吐量。PD2TCP協議[14]針對TCP流無法在截止時限內完成傳輸的問題,提出了基于優先級時限感知的TCP改進協議,通過感知瞬時隊列長度以及ECN標記對于擁塞窗口進行調整。文獻[15]中針對多媒體業務的QoS保障,提出了源端多媒體數據流帶寬控制策略以及基于動態部分緩存共享的丟包控制方法,從而實現了對于TCP協議擁塞控制機制的改進。
雖然,已有部分研究成果考慮了數據中心網絡的QoS保障問題,但是主要針對于單TCP流進行優化以保證單TCP流的QoS,缺乏對整體網絡狀況的考慮。基于此,本文提出了TRA-TCP,從網絡整體負載能力方面,根據高優先級和低優先級業務的比例調整擁塞窗口,旨在為不同優先級業務分配不同傳輸速率,并且保障高優先級業務的QoS。
本節主要描述了TRA-TCP協議的核心算法以及具體的工作流程。首先采用偽代碼方式描述傳輸速率控制算法的思想和總體流程,其次描述了匯聚節點檢測網絡不同優先級業務傳輸速率的方法,最后描述了匯聚節點為不同優先級業務分配傳輸速率的算法以及擁塞窗口的調節方法。
本節主要描述了論文算法的構成及運作機制。算法1中詳細介紹了算法流程。算法的輸入參數為高優先級業務的目標傳輸速率以及網絡調節的周期;算法輸出為高優先級以及低優先級業務調節后的擁塞窗口。
算法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-η)。
對于匯聚節點而言,由于其接收所有工作站的業務分組,故匯聚節點可以獲取高優先級業務和低優先級業務的比例(IP包頭中有優先級標志位),并且監測不同優先級業務的傳輸速率。假設數據中心網絡中存在N個高優先級業務,每個高優先級業務傳輸速率為T(i),擁塞窗口為W(i),M個低優先級業務,每個低優先級業務傳輸速率為T(j),擁塞窗口為W(j),并且匯聚節點計算業務傳輸速率的周期為S,即每隔S時長匯聚節點會統計這段時間內監測到的不同優先級業務的傳輸速率。
匯聚節點獲取到不同優先級業務的傳輸速率之后,可以定義高優先級業務和低優先級業務比例關系β為:
(1)
因為網絡設定的高優先業務的目標傳輸速率為T*,故定義高優先業務傳輸速率提升系數γ來描述當前網絡的配置能否滿足高優先級業務的傳輸速率需求。γ的定義如下:
(2)
當γ大于0時,表示網絡無法滿足高優先級業務的目標傳輸速率,反之表示高優先級業務的目標傳輸速率得到滿足。因此,當γ大于0時,匯聚節點需要重新進行傳輸速率分配。
此外,匯聚節點采用主動隊列調整算法(RED)[16],因此當緩存隊列大于門限值時就會發生丟包事件,故匯聚節點還需要記錄網絡整體的擁塞狀況。根據文獻[2]定義擁塞參數α(0≤α≤1)表示網絡的擁塞程度。α參數的計算周期同樣為S,計算方法如下所示:
α=(1-g)×α+g×F
(3)
其中:F表示S時間內發生擁塞的分組比例,g表示上一個α參數所占權重比例。
為了滿足網絡需求以及高優先級業務的需求,網絡需要重新進行傳輸速率分配。具體而言,匯聚節點會根據獲取的不同業務的傳輸速率,計算出不同TCP流擁塞窗口的調節方法,從而達到傳輸速率分配的目的。
首先需要保障高優先級業務的傳輸速率。根據之前的計算結果,可以知道高優先級業務需要提升γ倍的傳輸速率才能滿足QoS需求。因為擁塞窗口與傳輸速率的關系是正比關系,故高優先級業務的擁塞窗口需要提升為之前的(1+γ):
W(i)*=W(i)×(1+γ)
(4)
其次由于網絡整體發生了擁塞,根據DCTCP協議的建議[2],網絡整體的擁塞窗口需要降低α/2。另外,由于高優先級的業務的擁塞窗口增加到之前的(1+γ)倍,故也需要降低這部分增量。因此,需要減小的總體擁塞窗口值為:
(5)
根據公式(4)化簡如下:
(6)
最終可以得到每個低優先級業務需要減小的塞窗口數值為:
W(j)*=W(j)×(1-η)
(7)
其中η等于:
(8)
匯聚節點通過公式(4)和公式(7)可以獲取到高優先級和低優先級擁塞窗口的調節方法,之后需要向工作站反饋調節結果。參考DCTCP[2]以及D2TCP[11],匯聚節點在ACK數據包中攜帶擁塞調節信息。具體而言,ECN為1表示減小擁塞窗口,ECN為0表示增大擁塞窗口,ACK中的4比特保留位用于攜帶γ以及η參數,即γ和η參數需要量化為離散值。
為了驗證TRA-TCP的協議性能,通過NS2網絡仿真軟件搭建了相應的仿真平臺,主要比較了TRA-TCP協議與DCTCP協議以及D2TCP的性能差異,所采用的性能評價指標為:網絡吞吐量、平均時延、丟包率。
實驗參數設置如表1所示。高優先級業務數量固定為5,低優先級業務數量則為[2,4,6,8,10]。高優先級業務和低優先級業務的業務速率均為100 Mbps。

表1 實驗參數配置
從圖2可以看出,對于DCTCP協議以及D2TCP協議而言,隨著低優先級業務數量的不斷增加,高優先級業務的吞吐量不斷下降,而低優先級業務吞吐量不斷提升。另外,D2TCP協議的吞吐量低于DCTCP協議,這是因為D2TCP協議需要保證業務的截止時間,故降低了吞吐量。相比之下,由于TRA-TCP協議將高優先級業務的傳輸速率目標T*設置為100 Mbps,并通過擁塞窗口的調整,保證了高優先業務流的吞吐量,因而,能夠獲得比DCTCP和D2TCP較高的網絡吞吐量。

圖2 吞吐量的仿真結果
圖3展示了業務流的時延變化情況。從圖中可以看出DCTCP協議不關注業務的截止時間,因此其平均時延最大。D2TCP考慮了業務的截止時間,故能夠一定程度保障業務的平均時延,且高優先級業務的平均時延低于低優先級業務的平均時延。對于TRA-TCP協議而言,充分保障了高優先級業務的平均時延,但是相對應的低優先級業務的平均時延較高。

圖3 平均時延的仿真結果
從圖4可以看出,DCTCP協議和D2TCP協議的丟包率都維持在較高水平,特別是高優先級業務的丟包率不斷增加。TRA-TCP協議中的高優先級業務則保持幾乎不丟包的狀態,低優先級業務的丟包率則維持較高水平。

圖4 丟包率的仿真結果
針對數據中心網絡中業務的優先級和吞吐量的綜合性能需求,本文提出了一種基于傳輸速率分配的服務質量保障TCP協議:TRA-TCP協議。TRA-TCP協議根據高優先級業務和低優先級業務的數量比例的分配帶寬,調節擁塞窗口,保障了高優先級業務的吞吐量。仿真實驗結果表明:TRA-TCP協議不僅能夠有效保障高優先業務的吞吐量,還能降低高優先級業務的平均時延以及丟包率。