曾高雄 胡水海 張駿雪 陳 凱
(香港科技大學(xué)計(jì)算機(jī)科學(xué)與工程系 香港 999077)
近10年來(lái),網(wǎng)絡(luò)應(yīng)用(如搜索、在線零售和云計(jì)算等)飛速發(fā)展,對(duì)底層基礎(chǔ)設(shè)施在計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)等方面提出了嚴(yán)苛的要求.在此驅(qū)動(dòng)下,微軟、谷歌、亞馬遜、臉書、阿里巴巴等大型互聯(lián)網(wǎng)企業(yè)在全球范圍內(nèi)快速地建立起了高性能數(shù)據(jù)中心(data center, DC).這些數(shù)據(jù)中心通常采用商用器件,將服務(wù)器和交換機(jī)通過(guò)精心設(shè)計(jì)的網(wǎng)絡(luò)互聯(lián),從而以更經(jīng)濟(jì)更便捷的方式達(dá)到高速計(jì)算和海量存儲(chǔ)等需求.在支撐服務(wù)的各項(xiàng)技術(shù)中,數(shù)據(jù)中心網(wǎng)絡(luò)(data center network, DCN)是一個(gè)潛在且重要的性能瓶頸[1-3],因而引起了包括學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注.
在這樣的背景下,本文調(diào)研了數(shù)據(jù)中心網(wǎng)絡(luò)的一個(gè)核心方面——傳輸層協(xié)議. 本文首先概述了數(shù)據(jù)中心網(wǎng)絡(luò)環(huán)境下傳輸層協(xié)議設(shè)計(jì)的機(jī)遇和挑戰(zhàn). 在這驅(qū)使下,一系列的傳輸協(xié)議被設(shè)計(jì)提出.隨后將早期(2010—2015年)數(shù)據(jù)中心網(wǎng)絡(luò)傳輸設(shè)計(jì)方面的工作進(jìn)行分類,并對(duì)各自的優(yōu)缺點(diǎn)作了深入探討.最后分析了2015年以來(lái)數(shù)據(jù)中心網(wǎng)絡(luò)傳輸設(shè)計(jì)的研究趨勢(shì).
傳輸層協(xié)議旨在為應(yīng)用提供高吞吐、低延遲的網(wǎng)絡(luò)數(shù)據(jù)傳輸服務(wù).雖然傳輸協(xié)議在因特網(wǎng)上已經(jīng)有很長(zhǎng)的歷史了,它卻直到2010年才在數(shù)據(jù)中心網(wǎng)絡(luò)環(huán)境下被系統(tǒng)性地探索.數(shù)據(jù)中心網(wǎng)絡(luò)有著和因特網(wǎng)不一樣的特點(diǎn)(如單一控制域和同構(gòu)網(wǎng)絡(luò)架構(gòu)).這給數(shù)據(jù)中心網(wǎng)絡(luò)上的傳輸協(xié)議設(shè)計(jì)同時(shí)帶來(lái)了機(jī)遇和挑戰(zhàn).本節(jié)將首先對(duì)因特網(wǎng)下的傳輸層協(xié)議作簡(jiǎn)單介紹;之后,分析數(shù)據(jù)中心網(wǎng)絡(luò)的特點(diǎn),并指出其對(duì)傳輸協(xié)議設(shè)計(jì)帶來(lái)的機(jī)遇和挑戰(zhàn).
傳輸層協(xié)議在因特網(wǎng)下已經(jīng)發(fā)展了幾十年.傳輸層協(xié)議包括:無(wú)連接的盡力傳輸協(xié)議,以用戶數(shù)據(jù)報(bào)協(xié)議(user datagram protocol, UDP[4])為代表;面向連接的可靠傳輸協(xié)議,以傳輸控制協(xié)議(transport control protocol, TCP[5-6])為代表.在大多數(shù)網(wǎng)絡(luò)場(chǎng)景(包括因特網(wǎng)和數(shù)據(jù)中心網(wǎng)絡(luò))中,應(yīng)用層使用的傳輸協(xié)議以面向連接的可靠傳輸協(xié)議為主.TCP傳輸層協(xié)議提供的服務(wù)包括可靠性、流量控制、擁塞避免、多路復(fù)用等.其中,擁塞控制方面的研究最為廣泛.
TCP最經(jīng)典的擁塞控制算法是由Jacobson[7]在1988年的SIGCOMM會(huì)議上提出的TCP Tahoe.該算法包括慢啟動(dòng)(slow start)和擁塞避免(conges-tion avoidance)兩部分.新建立的連接首先進(jìn)入慢啟動(dòng)階段,每個(gè)來(lái)回通信時(shí)間(round-trip time, RTT)擁塞窗口(congestion window, CWND)漲1倍,直到通過(guò)計(jì)時(shí)器超時(shí)(timeout)發(fā)現(xiàn)丟包或者窗口達(dá)到慢啟動(dòng)閾值(slow start threshold, ssthresh)進(jìn)入擁塞避免階段.擁塞避免階段每個(gè)RTT擁塞窗口增加一個(gè)最大傳輸單元(maximum transmission unit, MTU),發(fā)現(xiàn)丟包則窗口降為初始值1并重新進(jìn)入慢啟動(dòng)階段.
TCP Tahoe算法為了避免網(wǎng)絡(luò)丟包后因?yàn)榈却瑫r(shí)重傳而帶來(lái)的時(shí)間開銷,額外引入了快速重傳(fast retransmission)機(jī)制,發(fā)送方收到多個(gè)相同序列號(hào)的確認(rèn)包(acknowledgement, ACK)后,即認(rèn)為下一個(gè)序列號(hào)對(duì)應(yīng)的數(shù)據(jù)包已經(jīng)丟失,并開始丟包重傳.在此基礎(chǔ)上,TCP Reno[8]增加了快速恢復(fù)(fast recovery)機(jī)制,在快速重傳之初窗口降為當(dāng)前值的一半,同時(shí)保持擁塞避免狀態(tài),避免了低效的初始化窗口和慢啟動(dòng)過(guò)程.更進(jìn)一步地,TCP New Reno[9]維護(hù)了快速恢復(fù)的狀態(tài),記錄快速恢復(fù)狀態(tài)之初已發(fā)送的數(shù)據(jù)包,直到這些數(shù)據(jù)都已被確認(rèn)才退出這一狀態(tài),只在快速恢復(fù)初期進(jìn)行1次窗口砍半,避免了因?yàn)檫B續(xù)丟包導(dǎo)致的連續(xù)砍窗口的問(wèn)題.最后,TCP SACK[10]加入了選擇確認(rèn)(selective ACK, SACK)與重傳機(jī)制,避免了累計(jì)確認(rèn)(cumulative ACK)與重傳機(jī)制帶來(lái)的低效的回退N步(go-back-N)問(wèn)題.
相對(duì)于因特網(wǎng)這類復(fù)雜多變且不完全可控的異構(gòu)網(wǎng)絡(luò),數(shù)據(jù)中心網(wǎng)絡(luò)是一個(gè)單一自治域(admini-strative domain)下的同構(gòu)網(wǎng)絡(luò)環(huán)境.單一自治域意味著端主機(jī)(endhost)及其使用的協(xié)議、網(wǎng)絡(luò)設(shè)備及配置,甚至應(yīng)用對(duì)網(wǎng)絡(luò)服務(wù)的需求(如延遲敏感還是帶寬敏感等)等都相對(duì)可控可預(yù)測(cè).同構(gòu)性體現(xiàn)在固定有規(guī)律的拓?fù)洌鏔at-tree[1],VL2[11]等;相同的網(wǎng)絡(luò)設(shè)備及配置,如顯式擁塞通告(explicit congestion notification, ECN[12]),相對(duì)一致的緩存大小和鏈路帶寬;有限的路由條數(shù)以及可預(yù)測(cè)的RTT等.
數(shù)據(jù)中心網(wǎng)絡(luò)的這些特點(diǎn)給傳輸協(xié)議設(shè)計(jì)帶來(lái)了許多機(jī)遇,列舉如下:
1) 數(shù)據(jù)中心網(wǎng)絡(luò)下可以協(xié)調(diào)端主機(jī)協(xié)議和網(wǎng)絡(luò)設(shè)備設(shè)置,存在更多性能優(yōu)化空間.傳統(tǒng)因特網(wǎng)因?yàn)榫W(wǎng)絡(luò)不可控,只能使用丟包信息作為擁塞反饋信號(hào),不可避免地帶來(lái)了高延遲和高丟包率等問(wèn)題.即使網(wǎng)絡(luò)設(shè)備使用了一些復(fù)雜的網(wǎng)絡(luò)優(yōu)化機(jī)制,端主機(jī)上的協(xié)議也很可能沒(méi)能充分配合使用.數(shù)據(jù)中心網(wǎng)絡(luò)則可以協(xié)調(diào)兩者,如網(wǎng)絡(luò)側(cè)采用主動(dòng)隊(duì)列管理(active queue management, AQM[13])在擁塞早期標(biāo)記ECN信號(hào),接收端收到信號(hào)通過(guò)ACK反饋給發(fā)送端,發(fā)送端得以及時(shí)調(diào)整發(fā)送窗口或速率實(shí)現(xiàn)高效擁塞控制等.
2) 數(shù)據(jù)中心網(wǎng)絡(luò)下的傳輸協(xié)議不受公平性的約束.因特網(wǎng)不是單一自治域,存在多種不同協(xié)議之間的競(jìng)爭(zhēng),因而公平性是一個(gè)重要指標(biāo),給網(wǎng)絡(luò)性能方面的優(yōu)化帶來(lái)了約束.數(shù)據(jù)中心網(wǎng)絡(luò)作為單一自治域,一方面可以協(xié)調(diào)內(nèi)部不同應(yīng)用使用不同的網(wǎng)絡(luò)優(yōu)先級(jí)隊(duì)列,例如,區(qū)別對(duì)待延遲敏感和帶寬敏感的應(yīng)用,可以優(yōu)化兩者各自不同的目標(biāo);另一方面可以統(tǒng)一全局采用相同協(xié)議和網(wǎng)絡(luò)配置,避免不同協(xié)議間的競(jìng)爭(zhēng).
3) 同構(gòu)的數(shù)據(jù)中心網(wǎng)絡(luò)更有利于協(xié)議和網(wǎng)絡(luò)設(shè)備的參數(shù)設(shè)置.例如,相對(duì)穩(wěn)定的RTT可以幫助設(shè)置最小重傳計(jì)時(shí)器(retransmission timeout, RTO);相對(duì)穩(wěn)定的網(wǎng)絡(luò)鏈路帶寬和RTT意味著可預(yù)測(cè)的網(wǎng)絡(luò)帶寬時(shí)延乘積(bandwidth delay product, BDP),可以幫助設(shè)置初始擁塞窗口大小和ECN標(biāo)記的閾值等.
與此同時(shí),數(shù)據(jù)中心網(wǎng)絡(luò)面對(duì)著更加復(fù)雜嚴(yán)苛的應(yīng)用要求,給傳輸協(xié)議設(shè)計(jì)帶來(lái)了巨大的挑戰(zhàn),列舉如下:
1) 應(yīng)用要求嚴(yán)苛.一個(gè)典型的應(yīng)用設(shè)計(jì)模式(網(wǎng)頁(yè)搜索、廣告篩選等的基礎(chǔ))是分割聚合(partitionaggregate[2]).上層應(yīng)用需求被分割成多個(gè)小的任務(wù)給多個(gè)底層工作機(jī)器(worker),底層機(jī)器完成任務(wù)后將結(jié)果返回給應(yīng)用匯聚層得到最終結(jié)果.為了滿足服務(wù)級(jí)協(xié)議(service-level agreement, SLA),每一輪迭代(包括計(jì)算和網(wǎng)絡(luò)傳輸)都需要在10 ms量級(jí)的期限內(nèi)完成.99.9%的尾部時(shí)延仍然會(huì)對(duì)用戶帶來(lái)巨大的影響(要么返回不準(zhǔn)確的結(jié)果,要么造成長(zhǎng)等待時(shí)間).
2) 應(yīng)用需求多樣.不同的應(yīng)用通常會(huì)有不同的網(wǎng)絡(luò)傳輸需求.有些應(yīng)用要求短時(shí)間內(nèi)的低時(shí)延,比如面向用戶請(qǐng)求的短流量響應(yīng).有些應(yīng)用要求長(zhǎng)時(shí)間的穩(wěn)定吞吐量,比如數(shù)據(jù)中心內(nèi)部定期的海量數(shù)據(jù)更新.有些應(yīng)用有限定完成期限,在期限內(nèi)完成的數(shù)據(jù)才有效,快于期限完成的數(shù)據(jù)并不一定會(huì)帶來(lái)更大的應(yīng)用價(jià)值.
基于第1節(jié)對(duì)數(shù)據(jù)中心網(wǎng)絡(luò)的觀察,工業(yè)界和學(xué)術(shù)界開始了對(duì)數(shù)據(jù)中心網(wǎng)絡(luò)環(huán)境下傳輸協(xié)議設(shè)計(jì)的研究.本節(jié)將早期(2010—2015年)數(shù)據(jù)中心網(wǎng)絡(luò)傳輸設(shè)計(jì)方面的工作分成3類——基于端主機(jī)的擁塞控制、網(wǎng)絡(luò)仲裁機(jī)制和交換機(jī)優(yōu)先級(jí)調(diào)度,并分別對(duì)這3類工作的優(yōu)缺點(diǎn)作深入討論.表1概括了本節(jié)介紹的3類工作及其相應(yīng)的優(yōu)缺點(diǎn).
Table 1 Comparison Between Early (2010—2015) Work on DCN Transport Protocol表1 數(shù)據(jù)中心網(wǎng)絡(luò)傳輸層協(xié)議早期(2010—2015年)工作的比較
數(shù)據(jù)中心網(wǎng)絡(luò)最經(jīng)典的傳輸層擁塞控制算法是由斯坦福大學(xué)和微軟的研究人員在2010年的SIGCOMM會(huì)議上提出的數(shù)據(jù)中心傳輸協(xié)議(datacenter transmission control protocol, DCTCP)[2].DCTCP是一種基于端主機(jī)的擁塞控制算法,主要包括2部分:交換機(jī)端的ECN標(biāo)記和主機(jī)端的速率控制.DCTCP在這2部分與基于ECN的TCP協(xié)議都有明顯不同.一方面,DCTCP使用了基于交換機(jī)瞬時(shí)隊(duì)列長(zhǎng)度的單一閾值標(biāo)記算法.基于瞬時(shí)隊(duì)列的標(biāo)記可以對(duì)突發(fā)流帶來(lái)的網(wǎng)絡(luò)擁塞作出快速響應(yīng),使得算法有更好的突發(fā)容忍性.此外,單一閾值標(biāo)記配置使用更簡(jiǎn)單,這也是基于DCN內(nèi)較穩(wěn)定的基礎(chǔ)RTT的條件.另一方面,DCTCP將單個(gè)位的ECN序列轉(zhuǎn)化為多個(gè)位的擁塞程度并依此調(diào)整窗口,而不像TCP那樣簡(jiǎn)單粗暴地窗口砍半.這樣既避免了輕微擁塞下過(guò)度響應(yīng)導(dǎo)致的帶寬浪費(fèi),又防止了嚴(yán)重?fù)砣马憫?yīng)不足導(dǎo)致的高延遲和高丟包率.
DCTCP具體算法為:
1) 交換機(jī)基于瞬時(shí)隊(duì)列長(zhǎng)度以單一閾值對(duì)經(jīng)過(guò)的數(shù)據(jù)包標(biāo)記ECN.
2) 接收端將收到的數(shù)據(jù)包中的ECN信息通過(guò)ACK中的ECN-Echo反饋回發(fā)送方.
3) 發(fā)送方統(tǒng)計(jì)收到ACK中ECN-Echo比例的指數(shù)加權(quán)滑動(dòng)平均值α.當(dāng)沒(méi)有ECN-Echo時(shí),每個(gè)ACK窗口增加1WCWND;當(dāng)遇到ECN-Echo時(shí),每個(gè)RTT窗口乘性砍α2.
在這之后,一系列的基于ECN的擁塞控制算法被設(shè)計(jì)出來(lái).D2TCP[15]以降低期限錯(cuò)失率(deadline miss rate)為目標(biāo),在DCTCP的基礎(chǔ)上引入了流的完成期限D(zhuǎn),并以此計(jì)算期限緊急程度e=TD,其中T為預(yù)期完成時(shí)間;當(dāng)數(shù)據(jù)發(fā)送方收到ECN-Echo時(shí),每個(gè)RTT窗口乘性砍αe2,使得期限更緊急的流可以更快地完成.類似地,L2DCT[16]則以降低流的完成時(shí)間(flow completion time, FCT)為目標(biāo),在DCTCP的基礎(chǔ)上引入了與發(fā)送數(shù)據(jù)量反相關(guān)的流的權(quán)值函數(shù)f;當(dāng)數(shù)據(jù)發(fā)送方收到ECN-Echo時(shí),每個(gè)RTT窗口乘性砍αf2,使得更小的流可以更快地完成,從而逼近在流大小信息不可知下理論最優(yōu)的最少獲得服務(wù)優(yōu)先(least attained service, LAS)[23]調(diào)度算法.此外,有一些工作(如ECN[24])認(rèn)為只需優(yōu)化調(diào)整交換機(jī)ECN機(jī)制,采用順時(shí)出隊(duì)列的方式標(biāo)記,即可以在不改動(dòng)端主機(jī)TCP協(xié)議的情況下達(dá)到和DCTCP相近的性能.
基于端主機(jī)的擁塞控制機(jī)制只需要改動(dòng)端主機(jī)上的軟件協(xié)議棧,交換機(jī)上配置簡(jiǎn)單的ECN標(biāo)記,因而具有配置簡(jiǎn)單和易于實(shí)現(xiàn)部署的優(yōu)點(diǎn).不足的是,因?yàn)闆](méi)有很好地結(jié)合更多的交換機(jī)支持,基于端主機(jī)的擁塞控制機(jī)制在性能上通常與理論最優(yōu)存在較大差距.例如,DCTCP沒(méi)有區(qū)分大小流,使得大小流同時(shí)存在于單一隊(duì)列中,小流的完成時(shí)間會(huì)受到大流的排隊(duì)延遲影響而變得很長(zhǎng).與此同時(shí),基于端主機(jī)的擁塞控制機(jī)制需要較長(zhǎng)的時(shí)間周期去收斂到穩(wěn)定狀態(tài).
為了克服基于端主機(jī)的擁塞控制收斂時(shí)間長(zhǎng)等缺陷,網(wǎng)絡(luò)仲裁機(jī)制得到了廣泛關(guān)注.網(wǎng)絡(luò)仲裁機(jī)制借助于網(wǎng)絡(luò)中交換設(shè)備等可以觀察到經(jīng)過(guò)流量的需求,從而基于一定的算法計(jì)算發(fā)送窗口或速率或調(diào)整方向,通過(guò)數(shù)據(jù)包頭和接收端ACK反饋回發(fā)送端,從而實(shí)現(xiàn)擁塞控制和流量調(diào)度.
最早的代表性工作是由微軟的研究人員在2011年的SIGCOMM會(huì)議上提出的期限驅(qū)動(dòng)傳輸控制協(xié)議(deadline-driven delivery control protocol, D3)[17].D3以降低期限錯(cuò)失率為目標(biāo),假設(shè)上層應(yīng)用可以將數(shù)據(jù)流大小和規(guī)定期限信息傳給傳輸層.基于這些信息,D3設(shè)計(jì)了網(wǎng)絡(luò)仲裁機(jī)制,讓交換機(jī)根據(jù)全局流信息分配帶寬,優(yōu)先分配數(shù)據(jù)流在規(guī)定期限內(nèi)完成所需的最小帶寬,即r=sD,其中s為流的大小,D為流的完成期限;最后將剩余的帶寬平均分配給所有的流.
不足的是,D3需要交換機(jī)來(lái)記錄流狀態(tài)并分配帶寬,這樣復(fù)雜的功能遠(yuǎn)遠(yuǎn)超出了目前商用交換機(jī)的支持功能范圍.此外,D3采用了貪婪式的先到先服務(wù)的帶寬分配方案,先到達(dá)的流一旦被分配帶寬,將占用帶寬直至最終完成,而不允許中途釋放帶寬給新流,即不允許搶占.這導(dǎo)致了非最優(yōu)的流調(diào)度,如圖1(b)所示,由于一個(gè)接近完成期限的流(fA)可能會(huì)為了等待一個(gè)先到達(dá)的完成期限較遠(yuǎn)的流(fB)而被阻滯,進(jìn)而錯(cuò)過(guò)了規(guī)定的完成期限.
Fig. 1 Illustration to show the suboptimal performance of D3 without preemption圖1 實(shí)例說(shuō)明D3在沒(méi)有搶占機(jī)制下的非最優(yōu)調(diào)度性能
針對(duì)D3的缺點(diǎn),伊利諾伊大學(xué)香檳分校的研究人員在2012年的SIGCOMM會(huì)議上提出了搶占式分布快速控制協(xié)議(preemptive distributed quick control protocol, PDQ)[18].與D3類似,PDQ假設(shè)上層應(yīng)用可以將數(shù)據(jù)流大小和規(guī)定期限等信息暴露給傳輸層.利用這些信息,PDQ同樣也設(shè)計(jì)了顯式速率控制的實(shí)現(xiàn)機(jī)制,逼近不同的調(diào)度算法.例如:1)最短任務(wù)優(yōu)先(shortest job first, SJF)[25]調(diào)度算法.數(shù)據(jù)量越小的流將會(huì)被優(yōu)先分配帶寬.2)最近期限優(yōu)先(earliest deadline first,EDF)[26].越接近完成期限的流將會(huì)被優(yōu)先分配帶寬.與D3不同的是,PDQ采用了搶占式的帶寬分配方案,可以根據(jù)流的緊急程度將已分配的帶寬重新分配,從而解決了D3非最優(yōu)調(diào)度的問(wèn)題(圖1(c)中最優(yōu)調(diào)度與PDQ相同).
PDQ離理想的SJF和EDF仍有較大的差距.這是因?yàn)樵赑DQ系統(tǒng)里,暫停或者啟動(dòng)一個(gè)流都需要至少一個(gè)RTT來(lái)與路徑上所有的交換機(jī)協(xié)調(diào).這一個(gè)RTT的額外開銷對(duì)于數(shù)據(jù)中心內(nèi)大量小流來(lái)說(shuō)是不可接受的負(fù)擔(dān).此外.精確地計(jì)算出一個(gè)流的發(fā)送速率并不是一個(gè)簡(jiǎn)單的事情,比如一個(gè)流的發(fā)送瓶頸可能不是在網(wǎng)絡(luò)里,而是在端主機(jī)的磁盤上.
與此同時(shí),網(wǎng)絡(luò)仲裁機(jī)制中還包括一類利用服務(wù)器做集中式擁塞控制調(diào)度的設(shè)計(jì).代表性工作是由麻省理工學(xué)院的研究人員在2014年的SIGCOMM會(huì)議上提出的FastPass[19].這類工作在發(fā)送數(shù)據(jù)前,發(fā)送端會(huì)向集中控制器發(fā)送請(qǐng)求,集中控制器結(jié)合請(qǐng)求信息和網(wǎng)絡(luò)狀況作出相應(yīng)的調(diào)度指令,包括發(fā)送數(shù)據(jù)的時(shí)間、速率和路徑等.這種集中式調(diào)度優(yōu)點(diǎn)明顯,因?yàn)榭梢垣@取網(wǎng)絡(luò)全局信息,理論上可以達(dá)到最優(yōu)的調(diào)度,但是也存在明顯缺點(diǎn),系統(tǒng)實(shí)現(xiàn)上需要額外一個(gè)RTT開銷去獲取調(diào)度決策,因而對(duì)數(shù)據(jù)中心下小流的完成時(shí)間有較大的負(fù)面影響.
為了克服網(wǎng)絡(luò)仲裁機(jī)制不可實(shí)現(xiàn)等缺陷,斯坦福大學(xué)的研究人員在2013年的SIGCOMM會(huì)議上提出了基于交換機(jī)優(yōu)先級(jí)調(diào)度的pFabric[20].pFabric既不要求交換機(jī)配置大量?jī)?nèi)存以維持所有流的狀態(tài)信息,也不要求交換機(jī)實(shí)現(xiàn)復(fù)雜的調(diào)度算法以計(jì)算反饋信息.pFabric的核心思想是將流調(diào)度從速率控制中分離開來(lái).pFabric的設(shè)計(jì)包含2部分:1)端上的速率控制協(xié)議.新流以線速發(fā)出,去除任何快速丟包重傳機(jī)制,直到連續(xù)多次超時(shí)才進(jìn)入探索模式,定期發(fā)送最小數(shù)據(jù)包并在接收到確認(rèn)時(shí)重新進(jìn)入慢啟動(dòng).2)交換機(jī)上的優(yōu)先級(jí)調(diào)度和優(yōu)先級(jí)丟包.交換機(jī)上優(yōu)先調(diào)度最高優(yōu)先級(jí)的數(shù)據(jù)包;當(dāng)緩沖已滿時(shí),優(yōu)先丟棄低優(yōu)先級(jí)的數(shù)據(jù)包.
與網(wǎng)絡(luò)仲裁機(jī)制相比,pFabric設(shè)計(jì)更簡(jiǎn)單,同時(shí)保證了接近理論最優(yōu)的性能.但是,pFabric仍然無(wú)法在已有的商用交換機(jī)上實(shí)現(xiàn).一方面,商用交換機(jī)芯片支持的優(yōu)先級(jí)隊(duì)列數(shù)量非常有限(大約8個(gè));另一方面,商用交換機(jī)芯片并未廣泛支持優(yōu)先級(jí)丟包機(jī)制,一旦一個(gè)數(shù)據(jù)包進(jìn)入了交換機(jī)的緩沖區(qū),它就不會(huì)被新到來(lái)的包“擠出去”.后續(xù)工作EPN嘗試使用2個(gè)優(yōu)先級(jí)隊(duì)列逼近pFabric的性能,然而需要對(duì)交換機(jī)做更多復(fù)雜的改動(dòng),因而同樣無(wú)法在商用交換機(jī)上實(shí)現(xiàn).
pFabric等工作都假設(shè)我們可以從應(yīng)用獲得流的信息,比如流的大小.事實(shí)上,雖然數(shù)據(jù)中心是一個(gè)單獨(dú)管理域,應(yīng)用的流信息仍然很難獲得.主要原因有2個(gè):1)很多應(yīng)用是一邊計(jì)算一邊傳輸?shù)模援?dāng)應(yīng)用開始傳一個(gè)流時(shí),它自己也不知道這個(gè)流總共要傳多少字節(jié).2)對(duì)于許多可以獲得流大小的應(yīng)用,管理員仍然需要去修改其網(wǎng)絡(luò)通信模塊獲得流大小,并將這個(gè)信息通過(guò)合適的接口傳遞給協(xié)議棧.考慮到數(shù)據(jù)中心有大量的應(yīng)用,逐一修改這些應(yīng)用獲得流信息對(duì)于管理員來(lái)說(shuō)無(wú)疑是巨大的負(fù)擔(dān).
基于上述觀察,無(wú)信息感知的流調(diào)度工作應(yīng)運(yùn)而生.香港科技大學(xué)的研究人員在2015年的NSDI會(huì)議上提出了實(shí)際的無(wú)信息感知的流調(diào)度機(jī)制 (practical information-agnostic flow scheduling, PIAS)[21].PIAS采用多級(jí)反饋隊(duì)列作為其調(diào)度策略.在多級(jí)反饋隊(duì)列里面,所有流一開始都屬于最高優(yōu)先級(jí),當(dāng)一個(gè)流已經(jīng)發(fā)送的字節(jié)數(shù)超過(guò)一個(gè)閾值時(shí),這個(gè)流就被降入下一個(gè)優(yōu)先級(jí).根據(jù)多級(jí)反饋隊(duì)列策略,小流會(huì)在較高優(yōu)先級(jí)內(nèi)完成,而大流會(huì)在較低優(yōu)先級(jí)內(nèi)完成.多級(jí)反饋隊(duì)列可以在長(zhǎng)尾分布下有效地近似理想的最短剩余時(shí)間優(yōu)先,降低流的整體平均完成時(shí)間以及小流的完成時(shí)間.PIAS利用端主機(jī)來(lái)記錄每個(gè)流已經(jīng)發(fā)送的字節(jié)數(shù)并標(biāo)記數(shù)據(jù)包的優(yōu)先級(jí),而在交換機(jī)里只需要配置普通的優(yōu)先級(jí)隊(duì)列.因此,PIAS可以在普通的商用交換機(jī)和標(biāo)準(zhǔn)的TCPIP協(xié)議棧上實(shí)現(xiàn),容易在生產(chǎn)環(huán)境里部署.
在PIAS系統(tǒng)里,一個(gè)關(guān)鍵的部分就是多級(jí)反饋隊(duì)列的閾值.閾值決定了如何將不同大小的流隔離在不同優(yōu)先級(jí)里.如果閾值設(shè)置得不好,大小流可能某個(gè)時(shí)刻全部混雜在一個(gè)優(yōu)先級(jí)里面,嚴(yán)重拖長(zhǎng)小流的完成時(shí)間.簡(jiǎn)單的理論分析發(fā)現(xiàn),理想的閾值跟每條鏈路的流大小分布和平均利用率都有關(guān)系.在真實(shí)的數(shù)據(jù)中心環(huán)境里,流的大小分布和平均利用率是在時(shí)間和空間2個(gè)維度上同時(shí)變化的.在這種條件下,閾值和流量的錯(cuò)配幾乎是無(wú)法避免的.對(duì)此,PIAS搜集數(shù)據(jù)中心全局的流量信息來(lái)統(tǒng)一計(jì)算閾值,并利用交換機(jī)的顯式擁塞通知機(jī)制來(lái)減輕錯(cuò)配的影響.在2018年的SIGCOMM會(huì)議上,香港科技大學(xué)的研究人員進(jìn)一步提出了AuTO[27],其中一個(gè)機(jī)制就是通過(guò)深度強(qiáng)化學(xué)習(xí)來(lái)自動(dòng)優(yōu)化多級(jí)反饋隊(duì)列的閾值.
PIAS把所有流都簡(jiǎn)單視為不能預(yù)先知道大小且沒(méi)有截止完成時(shí)間限制的流.事實(shí)上,在數(shù)據(jù)中心里面,多種類型的流是共存的.第1類流是有規(guī)定期限的流.對(duì)于這種流,流的大小往往也可以預(yù)先知道或者估計(jì)出來(lái).第2類流是沒(méi)有規(guī)定期限的限制,也無(wú)法預(yù)先知道大小的流.對(duì)于這種流,PIAS的優(yōu)化效果是最好的.第3類流是沒(méi)有規(guī)定期限的限制,但是可以預(yù)先知道大小的流.對(duì)于這種流,使用少量?jī)?yōu)先級(jí)的pFabric近似方案優(yōu)化效果是最好的.為了解決上述“混合流”(mix-flows)的調(diào)度問(wèn)題,香港科技大學(xué)的研究人員在2016年的SIGCOMM會(huì)議上提出了Karuna[22].嚴(yán)格來(lái)說(shuō),Karuna并不是一個(gè)純粹的無(wú)信息感知的方案,它只是不知道第2類流的信息.Karuna把有規(guī)定期限的流(第1類)固定在最高優(yōu)先級(jí),以降低期限錯(cuò)失率.但是為了降低第1類流對(duì)于另外2類流的影響,Karuna使用了一種叫作MCP[28]的傳輸層協(xié)議,讓第1類流以較低的吞吐量“恰好”在規(guī)定期限內(nèi)完成.對(duì)于沒(méi)有規(guī)定期限的限制,也無(wú)法預(yù)先知道大小的流(第2類),Karuna采用了多級(jí)反饋隊(duì)列來(lái)調(diào)度,讓一個(gè)流在傳輸過(guò)程中優(yōu)先級(jí)不斷降低.對(duì)于沒(méi)有規(guī)定期限的限制,但是可以預(yù)先知道大小的流(第3類),Karuna根據(jù)流的大小,賦予它們一個(gè)固定的優(yōu)先級(jí),一個(gè)流越大,得到的優(yōu)先級(jí)就越低.通過(guò)對(duì)3類流的區(qū)分處理,Karuna可以同時(shí)降低流的期限錯(cuò)失率和平均完成時(shí)間.
2.1~2.3節(jié)介紹的工作要么側(cè)重基于端主機(jī)的擁塞控制,要么側(cè)重基于交換機(jī)的仲裁機(jī)制,要么側(cè)重網(wǎng)絡(luò)的優(yōu)先級(jí)調(diào)度,密歇根州立大學(xué)的研究人員在2014年的SIGCOMM會(huì)議上提出了PASE[29],認(rèn)為這3個(gè)機(jī)制應(yīng)該結(jié)合起來(lái).PASE同時(shí)使用了仲裁、優(yōu)先級(jí)隊(duì)列和基于ECN的速率控制協(xié)議.與D3和PDQ那樣利用網(wǎng)絡(luò)仲裁每個(gè)流的速率不同,PASE把仲裁機(jī)制實(shí)現(xiàn)在端主機(jī)或者交換機(jī)的CPU上,計(jì)算出每個(gè)流在網(wǎng)絡(luò)里的優(yōu)先級(jí)和粗粒度的參考速率,再利用基于端主機(jī)的速率控制對(duì)速率做細(xì)粒度控制.因此,PASE不需要對(duì)交換機(jī)芯片進(jìn)行修改,而且不用擔(dān)心流的發(fā)送速率計(jì)算不夠準(zhǔn)確的問(wèn)題.PASE依靠商用交換機(jī)上有限的優(yōu)先級(jí)隊(duì)列來(lái)調(diào)度流,并且利用基于ECN的速率控制協(xié)議來(lái)充分利用鏈路帶寬.因此,跟D3, PDQ,pFabric相比,PASE不僅更容易部署,而且在許多場(chǎng)景下甚至可以取得更好的性能.
隨著數(shù)據(jù)中心網(wǎng)絡(luò)的升級(jí)換代(如帶寬從1 Gbps增加到10 Gbps再到40 Gbps100 Gbps,基礎(chǔ)往返延遲從幾百微秒降低到幾微秒),傳統(tǒng)的TCP傳輸層協(xié)議及其變型逐漸難以達(dá)到預(yù)期的網(wǎng)絡(luò)傳輸性能.一方面,TCP協(xié)議采用了反應(yīng)式的擁塞控制算法,無(wú)法勝任流量突發(fā)性更強(qiáng)(大多數(shù)流在幾個(gè)RTT內(nèi)就完成了)的高速網(wǎng)絡(luò)傳輸;另一方面,TCPIP協(xié)議?;谙到y(tǒng)內(nèi)核軟件,造成了高CPU消耗和高網(wǎng)絡(luò)協(xié)議棧延遲.針對(duì)這2個(gè)問(wèn)題,2015年以來(lái)的科研工作分別嘗試采用了接收端驅(qū)動(dòng)的主動(dòng)擁塞控制和RDMA網(wǎng)絡(luò)傳輸?shù)姆绞郊右越鉀Q.本節(jié)將分別討論分析這2類工作.表2和表3分別對(duì)這2類工作做了比較分析.
數(shù)據(jù)中心網(wǎng)絡(luò)下接收端驅(qū)動(dòng)的主動(dòng)擁塞控制(proactive congestion control, PCC)的雛形是由加州大學(xué)伯克利分校的研究人員在2015年的CoNEXT會(huì)議上提出的pHost[30].pHost的設(shè)計(jì)初衷是以一種可實(shí)現(xiàn)的方式達(dá)到與pFabric(性能上被認(rèn)為是當(dāng)時(shí)最優(yōu)的設(shè)計(jì))相近的性能.一種可實(shí)現(xiàn)的做法是使用集中式控制器,帶來(lái)的問(wèn)題是調(diào)度時(shí)間開銷很大,通常導(dǎo)致小流的完成時(shí)間遠(yuǎn)遠(yuǎn)差于pFabric.另辟奇徑地,pHost將流調(diào)度的任務(wù)放到了數(shù)據(jù)接收端:數(shù)據(jù)發(fā)送方發(fā)送數(shù)據(jù)前請(qǐng)求發(fā)送(request to send, RTS),可以包含相關(guān)調(diào)度信息(如流大小等);數(shù)據(jù)接收方根據(jù)收到的所有請(qǐng)求按照一定的調(diào)度算法分配發(fā)送許可(token或credit或grant或pull);數(shù)據(jù)發(fā)送方按照接收到的發(fā)送許可發(fā)送相應(yīng)數(shù)量的數(shù)據(jù).這樣既保證了商用設(shè)備可實(shí)現(xiàn),又達(dá)到了可擴(kuò)展的流調(diào)度,實(shí)驗(yàn)驗(yàn)證可以達(dá)到pFabric相近的性能.
Table 2 Comparison Between Existing Work on Proactive Congestion Control表2 主動(dòng)擁塞控制的現(xiàn)有工作的比較
Table 3 Comparison Between Existing Work on RDMA Congestion Control表3 RDMA擁塞控制的現(xiàn)有工作的比較
接收端驅(qū)動(dòng)的主動(dòng)擁塞控制因?yàn)槠浣咏闩抨?duì)時(shí)延和快速收斂等優(yōu)點(diǎn)被學(xué)術(shù)界和工業(yè)界廣泛關(guān)注.然而,現(xiàn)有的主動(dòng)擁塞控制設(shè)計(jì)仍然存在一些問(wèn)題.例如,pHost只能解決網(wǎng)絡(luò)擁塞發(fā)生在網(wǎng)絡(luò)邊緣,即發(fā)送端網(wǎng)絡(luò)入口鏈路及接收端網(wǎng)絡(luò)出口鏈路處的情形.它假設(shè)數(shù)據(jù)中心網(wǎng)絡(luò)采用全雙向(full bisection)帶寬和交換機(jī)逐包分撒(packet spray[38])鏈路負(fù)載衡以達(dá)到網(wǎng)絡(luò)內(nèi)部無(wú)擁塞.對(duì)于網(wǎng)絡(luò)入口處的擁塞,在發(fā)送端上可以解決;對(duì)于網(wǎng)絡(luò)出口處的擁塞,則由接收端調(diào)度完美解決.然而,實(shí)際數(shù)據(jù)中心網(wǎng)絡(luò)中這一假設(shè)并不一定成立,例如,在發(fā)生鏈路故障導(dǎo)致網(wǎng)絡(luò)不對(duì)稱時(shí),網(wǎng)絡(luò)內(nèi)部仍然會(huì)發(fā)生擁塞,pHost在這時(shí)候?qū)o(wú)法發(fā)揮作用.
為了彌補(bǔ)pHost的不足,韓國(guó)先進(jìn)科學(xué)技術(shù)研究院和谷歌的研究人員在2017年的SIGCOMM會(huì)議上提出了ExpressPass[31],是一種能夠解決網(wǎng)絡(luò)任意節(jié)點(diǎn)擁塞的主動(dòng)擁塞控制算法.ExpressPass的數(shù)據(jù)發(fā)送方發(fā)送數(shù)據(jù)前請(qǐng)求發(fā)送;數(shù)據(jù)接收端發(fā)送credit在網(wǎng)絡(luò)中通過(guò)獨(dú)立的隊(duì)列及限速反向模擬數(shù)據(jù)發(fā)送過(guò)程,在credit輕微排隊(duì)時(shí)即丟包;數(shù)據(jù)發(fā)送方按照接收到的發(fā)送許可發(fā)送相應(yīng)數(shù)量的數(shù)據(jù).ExpressPass利用了credit的反向模擬獲取網(wǎng)絡(luò)狀態(tài),限制了隊(duì)列深度,避免了真實(shí)數(shù)據(jù)包的丟失,同時(shí)credit的控制回路可以做得更加激進(jìn),從而實(shí)現(xiàn)快速收斂.
與此同時(shí),歐洲的研究人員也在2017年的SIGCOMM會(huì)議上提出了另一種主動(dòng)擁塞控制算法NDP[32].NDP在pHost的基礎(chǔ)上使用基于端主機(jī)的逐包多路負(fù)載均衡機(jī)制替代網(wǎng)絡(luò)交換機(jī)本地的逐包分撒機(jī)制,可以避免因?yàn)殒溌饭收系仍驅(qū)е碌木W(wǎng)絡(luò)內(nèi)部的擁塞(但仍然無(wú)法解決網(wǎng)絡(luò)拓?fù)洳粚?duì)稱或核心帶寬不足等導(dǎo)致的網(wǎng)絡(luò)內(nèi)部擁塞問(wèn)題);同時(shí)加入砍去有效載荷(cutting payload, CP)[39]的機(jī)制,可以避免在incast等極度擁塞狀況下的長(zhǎng)尾部時(shí)延.NDP雖然性能上比pHost優(yōu)越,但是卻因?yàn)橐隒P而失去了商用設(shè)備可實(shí)現(xiàn)的優(yōu)點(diǎn).
斯坦福大學(xué)和麻省理工學(xué)院的研究人員在2018年SIGCOMM會(huì)議上提出了Homa[33],對(duì)pHost作了進(jìn)一步的改進(jìn).Homa的創(chuàng)新之處有2點(diǎn):1)它發(fā)現(xiàn)了當(dāng)pHost發(fā)送端與多個(gè)接收端通信并同時(shí)收到發(fā)送許可時(shí),部分發(fā)送許可及相應(yīng)的帶寬會(huì)浪費(fèi)的問(wèn)題.對(duì)此,Homa引入了過(guò)度承諾(overcommit-ment)的機(jī)制,發(fā)送超過(guò)網(wǎng)絡(luò)容量的發(fā)送許可來(lái)保證網(wǎng)絡(luò)帶寬不被浪費(fèi).2)它發(fā)現(xiàn)了pHost在新流到達(dá)時(shí)不能及時(shí)搶占,需要等待一個(gè)RTT才能調(diào)整調(diào)度策略的問(wèn)題.對(duì)此,Homa使用了網(wǎng)絡(luò)多優(yōu)先級(jí)隊(duì)列的機(jī)制,從而達(dá)到第1個(gè)RTT快速搶占,這同時(shí)也解決了過(guò)度承諾超發(fā)導(dǎo)致的擁塞丟包問(wèn)題.
現(xiàn)有的基于接收端的主動(dòng)擁塞控制存在的另一問(wèn)題是往返時(shí)延不同的流共存時(shí)發(fā)送許可觸發(fā)的數(shù)據(jù)報(bào)文不協(xié)調(diào).原來(lái)以計(jì)算好的時(shí)間間隔發(fā)送的發(fā)送許可,觸發(fā)的數(shù)據(jù)報(bào)文可能因?yàn)闀r(shí)延不同而同時(shí)到達(dá)同一條鏈路,產(chǎn)生意外的擁塞.另外,如何將這類設(shè)計(jì)應(yīng)用到RDMA和廣域網(wǎng)的場(chǎng)景下也是一個(gè)有挑戰(zhàn)的課題,上述因時(shí)延不同導(dǎo)致的問(wèn)題在這些場(chǎng)景下會(huì)更加突出.
為了解決3.1節(jié)的高速低延遲數(shù)據(jù)中心網(wǎng)絡(luò)發(fā)展的問(wèn)題,特別是TCPIP內(nèi)核軟件協(xié)議棧帶來(lái)的性能瓶頸,遠(yuǎn)程直接內(nèi)存訪問(wèn)(remote direct memory access, RDMA)[40]開始被引入到DCN中.RDMA可以將數(shù)據(jù)直接從一臺(tái)計(jì)算機(jī)的內(nèi)存?zhèn)鬏數(shù)搅硪慌_(tái)計(jì)算機(jī),無(wú)需雙方操作系統(tǒng)的介入,因而具有極高的性能.
雖然RDMA技術(shù)已經(jīng)廣泛應(yīng)用于高性能計(jì)算(high performance computing, HPC)領(lǐng)域,在DCN中大規(guī)模部署仍然存在一些挑戰(zhàn).一個(gè)核心的問(wèn)題是如何將網(wǎng)絡(luò)傳輸機(jī)制集成到RDMA硬件設(shè)備(包括網(wǎng)卡和交換機(jī))中,目前存在3類解決方案:1)IB(InfiniBand)[41].IB使用專用網(wǎng)卡和交換機(jī)等硬件實(shí)現(xiàn)無(wú)損網(wǎng)絡(luò)(即網(wǎng)絡(luò)不丟包),與傳統(tǒng)以太網(wǎng)絡(luò)不兼容.目前廣泛應(yīng)用于HPC領(lǐng)域,難以部署于廣泛基于IP和以太網(wǎng)技術(shù)的DCN.2)iWARP[42].網(wǎng)卡硬件實(shí)現(xiàn)了完整的TCP傳輸協(xié)議,支持傳統(tǒng)以太網(wǎng)絡(luò).受限于復(fù)雜的網(wǎng)卡實(shí)現(xiàn),基本性能(延遲、吞吐量)被普遍認(rèn)為弱于RoCE.3)RoCE[43].網(wǎng)卡硬件實(shí)現(xiàn)了簡(jiǎn)單的傳輸協(xié)議,支持傳統(tǒng)以太網(wǎng)絡(luò),普遍被認(rèn)為在有損網(wǎng)絡(luò)下性能不佳,通常配合基于優(yōu)先級(jí)的流量控制(priority flow control, PFC)使用.然而,使用PFC存在線頭阻塞和死鎖等問(wèn)題.
數(shù)據(jù)中心網(wǎng)絡(luò)RDMA擁塞控制最早的代表性工作是由微軟、邁絡(luò)思和加州大學(xué)圣塔芭芭拉分校的研究人員在2015年的SIGCOMM會(huì)議上提出的DCQCN[34].這也是目前工業(yè)界采用最廣的RDMA擁塞控制算法,已經(jīng)被集成到邁絡(luò)思ConnectX系列網(wǎng)卡上.DCQCN為了支持以太網(wǎng)采用了RoCEv2技術(shù),配合使用了PFC流量控制技術(shù)以保證無(wú)損網(wǎng)絡(luò).為了避免頻繁觸發(fā)PFC帶來(lái)線頭阻塞和死鎖等問(wèn)題,DCQCN采用了其核心擁塞控制算法,包括3部分:1)擁塞點(diǎn)(congestion point, CP),即交換機(jī),采用基于RED[44]和瞬時(shí)隊(duì)列長(zhǎng)度的ECN標(biāo)記算法.2)通告點(diǎn)(notification point, NP),即數(shù)據(jù)接收端,根據(jù)收到數(shù)據(jù)包含的ECN信息返回?fù)砣ǜ姘?congestion notification packet, CNP).受當(dāng)時(shí)硬件限制,CNP生成間隔(默認(rèn)為N=50s)只能達(dá)到微秒級(jí)別,因而很難做到逐包反饋.3)反應(yīng)點(diǎn)(reaction point, RP),即數(shù)據(jù)發(fā)送端,與DCTCP類似,維護(hù)了ECN比例的指數(shù)加權(quán)滑動(dòng)平均值α.每收到CNP則乘性砍α2;每隔K=55s內(nèi)若沒(méi)有收到CNP則增加發(fā)送速率.DCQCN擁塞控制算法與DCTCP非常相似,但受硬件條件約束,有2點(diǎn)明顯的不同:一是直接控制發(fā)送速率而非擁塞窗口;二是基于計(jì)時(shí)器調(diào)整速率而非逐包調(diào)整.這些硬件限制導(dǎo)致的差異給DCQCN的設(shè)計(jì)與參數(shù)配置帶來(lái)了極大的挑戰(zhàn),該工作在理論上給出了指導(dǎo)原則與證明,但是在實(shí)際部署中仍然存在許多問(wèn)題.
與此同時(shí),谷歌、加州大學(xué)伯克利分校和微軟的研究人員也在2015年的SIGCOMM會(huì)議上提出了一套擁塞控制方案TIMELY[35],并圍繞RDMA環(huán)境作了詳細(xì)分析與評(píng)估.TIMELY是第1個(gè)在數(shù)據(jù)中心內(nèi)部采用RTT作為擁塞反饋信號(hào)的傳輸控制協(xié)議.TIMELY發(fā)現(xiàn)當(dāng)前網(wǎng)卡技術(shù)支持精確的RTT測(cè)量,并且RTT可以有效反映網(wǎng)絡(luò)擁塞隊(duì)列深度.基于這一觀察,TIMELY通過(guò)RTT與Tlow和Thigh兩個(gè)參數(shù)比較,將核心算法劃分為3部分:1)當(dāng)RTT小于Tlow時(shí),增加發(fā)送速率;2)當(dāng)RTT大于Thigh時(shí),減小發(fā)送速率;3)當(dāng)RTT介于兩者間時(shí),根據(jù)RTT的梯度變化動(dòng)態(tài)調(diào)整速率.當(dāng)RTT梯度為正時(shí),說(shuō)明延遲及擁塞仍在增加,應(yīng)該減小發(fā)送速率;當(dāng)RTT梯度為負(fù)時(shí),說(shuō)明延遲及擁塞在減小,應(yīng)該增加發(fā)送速率.TIMELY主體部分采用基于RTT梯度的速率調(diào)整算法在性能上廣受爭(zhēng)議,普遍被人認(rèn)為在動(dòng)態(tài)網(wǎng)絡(luò)下沒(méi)有唯一的收斂點(diǎn),即有可能在一個(gè)很高延遲的范圍內(nèi)收斂[45].
DCQCN依賴于PFC保證網(wǎng)絡(luò)無(wú)損,因而存在PFC帶來(lái)的各種問(wèn)題,包括線頭阻塞和死鎖等.對(duì)此,許多工作[46-47]嘗試去逐個(gè)解決這些問(wèn)題.2018年在SIGCOMM會(huì)議上由加州大學(xué)伯克利分校等的研究人員提出的IRN[36]則反其道而行之,認(rèn)為網(wǎng)絡(luò)無(wú)損或PFC對(duì)于以太網(wǎng)上支持RDMA不是根本上不可或缺的.IRN結(jié)合了iWarp和RoCE各自的優(yōu)勢(shì),一方面類似于iWarp,將網(wǎng)絡(luò)可靠性建立在端傳輸協(xié)議而非無(wú)損網(wǎng)絡(luò)上;另一方面類似于RoCE,在網(wǎng)卡上實(shí)現(xiàn)盡可能簡(jiǎn)化的協(xié)議機(jī)制.IRN設(shè)計(jì)上有2個(gè)主要部分:1)高效的丟包恢復(fù),使用選擇重傳取代低效的回退N步(go-back-N)機(jī)制,同時(shí)采用雙超時(shí)重傳定時(shí)器減小尾部丟包等問(wèn)題的影響.2)簡(jiǎn)單的流速控制,將發(fā)送數(shù)據(jù)量限制在一個(gè)BDP內(nèi),在不浪費(fèi)帶寬的前提下盡可能地避免擁塞.IRN在仿真器上做了大量實(shí)驗(yàn)證明其在沒(méi)有PFC的支持下能夠達(dá)到甚至超過(guò)使用PFC的DCQCN和TIMELY的性能.然而,IRN目前并未集成到商用網(wǎng)卡中.數(shù)據(jù)中心RDMA網(wǎng)絡(luò)應(yīng)該向無(wú)損網(wǎng)絡(luò)還是有損網(wǎng)絡(luò)方向發(fā)展仍然是一個(gè)熱門話題.
更進(jìn)一步地,哈佛大學(xué)和阿里巴巴的研究人員在2019年的SIGCOMM會(huì)議上提出了全新的RDMA擁塞控制方案HPCC[37].HPCC發(fā)現(xiàn)RDMA擁塞控制方案存在許多參數(shù),這些參數(shù)的調(diào)整涉及到網(wǎng)絡(luò)吞吐量、延遲和穩(wěn)定性(是否頻繁觸發(fā)PFC等)等性能指標(biāo)相互之間的利益權(quán)衡.文獻(xiàn)[37]認(rèn)為這種非此即彼的利益權(quán)衡是由以前的硬件約束(如基于計(jì)時(shí)器的速率調(diào)整等)導(dǎo)致的,現(xiàn)有硬件技術(shù)的發(fā)展可以打破這種尷尬局面,具體表現(xiàn)在2個(gè)方面:一方面,現(xiàn)有網(wǎng)卡有更強(qiáng)大的計(jì)算能力和資源,可以支持更精確快速的逐包確認(rèn)和響應(yīng);另一方面,網(wǎng)絡(luò)交換機(jī)有了更開放可自定義的數(shù)據(jù)平面(data plane),比如,可以支持網(wǎng)絡(luò)內(nèi)部自動(dòng)測(cè)量(in-network telemetry, INT),交換機(jī)在每個(gè)經(jīng)過(guò)的數(shù)據(jù)包包頭加入當(dāng)前時(shí)間、隊(duì)列長(zhǎng)度、歷史發(fā)送數(shù)據(jù)量等信息,幫助端主機(jī)作出更精確的擁塞控制響應(yīng).
HPCC擁塞控制主要由2部分組成:1)交換機(jī)采用了INT反饋機(jī)制,在每個(gè)經(jīng)過(guò)的數(shù)據(jù)包的包頭加入當(dāng)前時(shí)間、隊(duì)列長(zhǎng)度、歷史發(fā)送數(shù)據(jù)量等信息;2)端主機(jī)擁塞控制同時(shí)限制發(fā)送速率R和窗口CWND,速率調(diào)整算法包含加性和乘性調(diào)整2部分.加性部分每個(gè)RTT增加固定的發(fā)送速率aiRate,這樣類似于TCP可以保證小流不被餓死,即保證了流競(jìng)爭(zhēng)的公平性.乘性部分首先基于INT反饋信息計(jì)算出網(wǎng)絡(luò)逐跳的鏈路利用率Ui,再根據(jù)逐跳最大的瓶頸利用率maxi(Ui)與設(shè)定的目標(biāo)利用率Utarget的比值乘性地調(diào)整發(fā)送速率R.為了避免對(duì)單一擁塞事件的多次重復(fù)響應(yīng),HPCC還結(jié)合了逐包和逐RTT的速率調(diào)整機(jī)制.逐RTT的速率調(diào)整會(huì)在每個(gè)RTT開始時(shí)設(shè)定一個(gè)參考速率Rc,逐包的速率調(diào)整則根據(jù)INT反饋圍繞當(dāng)前RTT下的Rc上下波動(dòng)調(diào)整速率.這樣在保證快速響應(yīng)的同時(shí),可以避免觸發(fā)不必要的降速和帶寬浪費(fèi).
RDMA下的傳輸層設(shè)計(jì)仍然有很大的探索空間.如何設(shè)計(jì)RDMA傳輸層使得網(wǎng)絡(luò)可以擴(kuò)展到廣域網(wǎng)中?如何設(shè)計(jì)RDMA網(wǎng)絡(luò)下的負(fù)載均衡機(jī)制?能否在RDMA網(wǎng)絡(luò)卡中使用基于接收端的主動(dòng)擁塞控制取代傳統(tǒng)的被動(dòng)擁塞控制?如何處理好傳統(tǒng)TCPIP流量和RDMA流量共存的場(chǎng)景?這些問(wèn)題的探索和解決將會(huì)是未來(lái)的研究趨勢(shì).
近10年來(lái),在盛行的網(wǎng)絡(luò)應(yīng)用(如搜索、在線零售和云計(jì)算等)的需求驅(qū)動(dòng)下,數(shù)據(jù)中心在全球范圍內(nèi)以前所未有的速度和規(guī)模發(fā)展建立起來(lái).特別地,數(shù)據(jù)中心網(wǎng)絡(luò)引起了包括學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注.在此背景下,本文圍繞數(shù)據(jù)中心網(wǎng)絡(luò)中的傳輸層協(xié)議設(shè)計(jì)作了詳細(xì)的總結(jié)和未來(lái)的展望.首先,本文回顧了傳輸層協(xié)議在因特網(wǎng)上的發(fā)展,探討了數(shù)據(jù)中心網(wǎng)絡(luò)和因特網(wǎng)不一樣的特點(diǎn),以及這些特點(diǎn)給傳輸層協(xié)議設(shè)計(jì)帶來(lái)的機(jī)遇和挑戰(zhàn).隨后,本文探討了早期(2010—2015年)數(shù)據(jù)中心網(wǎng)絡(luò)傳輸設(shè)計(jì)方面的工作,主要包括3類——基于端主機(jī)的擁塞控制、網(wǎng)絡(luò)仲裁機(jī)制和交換機(jī)優(yōu)先級(jí)調(diào)度.這3類工作在可實(shí)現(xiàn)性和性能等方面各有優(yōu)缺點(diǎn),在各自方向上都有了相當(dāng)成熟和完善的研究.最后,本文分析了2015年以來(lái)數(shù)據(jù)中心網(wǎng)絡(luò)傳輸設(shè)計(jì)的研究方向,主要包括2類——接收端驅(qū)動(dòng)的主動(dòng)擁塞控制和RDMA傳輸協(xié)議設(shè)計(jì).這2類工作在理論和系統(tǒng)實(shí)現(xiàn)上至今仍存在著許多尚未解決的問(wèn)題,將會(huì)成為數(shù)據(jù)中心網(wǎng)絡(luò)傳輸協(xié)議研究的未來(lái)趨勢(shì).