?

基于可編程數據平面的PFC算法實現

2021-01-19 02:24耿俊杰顏金堯
計算機技術與發展 2021年1期
關鍵詞:報文交換機平面

耿俊杰,顏金堯

(中國傳媒大學 信息與通信工程學院,北京 100024)

0 引 言

當前互聯網中存在大量的在線業務需要網絡對高頻率的用戶請求做出快速應答,對數據中心提出了超低時延的要求;隨著近年來機器學習和人工智能技術的高速發展,對于數據中心計算能力的需求大幅上升,因此數據中心部署了大量的分布式計算集群[1]以滿足日益復雜的神經網絡和深度學習模型,大量的分布式計算集群采用的并行程序會導致通訊延遲,進而嚴重影響數據中心的計算效率;同時,隨著近年來數據中心流量的激增[2],數據中心往往會利用以太網融合組網的分布式存儲技術來解決數據存儲和讀取效率問題。而大象流占據分布式存儲網絡流量的主要比例,當分布式存儲網絡中一旦因擁塞發生數據包丟失導致大象流重傳,會嚴重影響數據中心效率并且會加重擁塞程度,進一步影響網絡性能,因此高吞吐量、超低延遲的高性能無損數據中心網絡成為現在研究的熱點[3-5]。RDMA(remote direct memory access)技術[6]是目前實現超低時延、高吞吐量的高性能數據中心網絡最常用的技術,RoCE(RDMA over converged Ethernet)協議[7]因為具備明顯的性能和成本優勢,目前在融合以太網數據中心中占據主流市場地位。而RoCEv2基于PFC(priority flow control)[8]算法實現了無損傳輸。

另一方面,傳統網絡架構封閉、固化,網絡協議開發部署周期長,很難適應當前對于網絡創新的要求。在此背景下,為了應對當前網絡面臨的挑戰,開放網絡可編程能力,擴大網絡創新的空間,2008年,斯坦福大學Nick McKeown教授為首的研究團隊提出了OpenFlow以及軟件定義網絡SDN(software defined networking)技術[9-10]。軟件定義網絡技術獲得了學術界和工業界的高度關注,2014年,研究者在SDN基礎上又提出了可編程數據平面技術[11-12],將網絡編程能力擴展到數據平面。在網絡領域的各種創新和發展,對應對當前數據中心面臨的各種問題和挑戰提供了新的思路和方法。該文基于可編程數據平面技術實現了PFC算法,進而實現了無損數據中心網絡,為實現高性能數據中心網絡提供了新的思路和實現方法。

1 可編程數據平面技術

在傳統網絡架構中,網管系統被作為網絡管理平面,而控制平面和數據平面則被分別部署在每個網絡設備上。在這種部署方式下,網絡管理十分復雜繁瑣。另外,除了標準協議外,各個廠家都會有一些私有協議,這樣就進一步加大了網絡管理的復雜性。同時,傳統網絡架構下的控制平面和數據平面分布式地部署在網絡中的各個設備上,并且控制平面和數據平面是固化、封閉的,實現網絡創新需要的新功能部署周期非常長(往往是幾年),顯然傳統網絡架構已經完全不能滿足當前對于網絡創新的需求。在此背景下,軟件定義網絡技術以及可編程數據平面技術應運而生。

1.1 軟件定義網絡技術

軟件定義網絡技術(SDN)是斯坦福大學Nick McKeown教授團隊在Clean Slate項目提出的一個概念,特別是2009年SDN南向接口協議OpenFlow1.0的發布,標志著軟件定義網絡技術進入高速發展的階段。

軟件定義網絡技術將網絡設備控制平面和數據平面分離,通過邏輯集中的控制器實現對網絡轉發設備的集中管理。在軟件定義網絡架構中,控制平面具有全局化視野,通過南向接口協議實現與數據平面通信,通過開放控制平面的可編程特性,使得網絡功能更加靈活和易于擴展,因此對于網絡功能的部署更加靈活,同時也簡化了網絡的管理。軟件定義網絡技術是當前網絡領域最為活躍的技術創新,被MIT評為“改變世界的十大創新技術之一”[13]。

如圖1所示,軟件定義網絡架構實現了控制平面和數據平面的分離,同時通過北向接口協議開放API,允許用戶編程實現網絡功能自定義。同時使用南向接口協議OpenFlow實現控制平面與數據平面的通信。

圖1 SDN網絡架構

1.2 可編程數據平面

軟件定義網絡技術實現了數據平面和控制平面的分離,開放了控制平面編程能力,實現了控制平面的邏輯集中,這些特點為網絡的管理和開放帶來了一定的靈活性。但是在軟件定義網絡架構下,數據平面并沒有被開放,其行為仍然是固定的。OpenFlow協議已經從2008年OpenFlow1.0版本演進到1.5版本,其中匹配域中支持的元組數量也從支持12元組增加到目前支持45個元組,其支持的元組數量隨著OpenFlow協議的更新也不斷增加。但OpenFlow協議支持的匹配域都是協議設定的,并不能支持靈活的彈性增加,對于新匹配元組的支持都需要重新編寫數據平面與控制平面兩端的協議棧以及數據平面的數據包處理邏輯,這種局限性導致了OpenFlow交換機的設計難度大大增加。OpenFlow協議的版本穩定性也存在很大問題,對軟件定義網絡技術所追求的網絡創新是一種阻礙。

Nick McKeown教授等人提出了協議無關(programming protocol-independent packet processors)的高級編程語言P4[11]。P4是一種聲明性的高級編程語言,通過編寫P4代碼可以自定義網絡數據平面數據包的處理流程,也就是開放了數據平面的可編程能力。

圖2描述了可編程數據平面的抽象轉發模型,主要由輸入、輸出端口、解析器、Ingress/Egress控制流水線、隊列緩存組成。解析器負責報文解析,當數據包進入交換機時,解析器按照解析表對進入的數據包進行報文解析,解析表是由P4代碼定義,并由編譯器編譯生成,通過P4代碼自定義報文頭和報文頭解析順序,實現數據包的報文解析邏輯,解析器從進入交換機的數據包的報文首部解析出自定義的報文頭,并賦值給P4定義的實例化首部。

圖2 可編程數據平面抽象轉發模型

匹配動作表是數據平面執行轉發邏輯的基本單元,對進入交換機并匹配成功的數據包執行相應的動作,實現對數據包的處理??删幊虜祿矫娴某橄筠D發模型實現了全流水線可編程,控制程序負責定義匹配動作表的執行順序,進而實現轉發邏輯的實現,控制流水線分為Ingress control和Egress control兩部分。

可編程數據平面真正實現了協議無關的數據轉發,并且作為一種描述性的高級編程語言,無需關心底層設備的具體信息,實現了設備無關性和代碼可移植性,使得網絡更加靈活和開放。

2 高性能數據中心網絡及PFC算法

隨著各種網絡應用以及移動互聯網的快速發展,近些年網絡流量也出現了爆發式的增長。網絡流量的激增對于作為基礎設施的網絡提出了更高的性能要求。網絡中的不同應用對于網絡性能的要求也不同,例如交互式應用需要網絡提供更小的時延,分布式存儲應用需要網絡更小的丟包率,但概括來說,網絡性能指標主要包括時延、吞吐量以及丟包率。因此實現超低時延、高吞吐量以及無丟包的高性能數據中心網絡成為當前研究的熱點。

2.1 遠程直接數據存取技術(RDMA)

遠程直接數據存取技術(RDMA)最早應用在高性能計算領域,是為了解決網絡傳輸中服務器側數據處理延遲、降低服務器CPU負載而設計的一種技術協議。如圖3所示,RDMA技術通過允許用戶態的應用程序直接讀取和寫入遠程服務器端內存,避免了CPU多次介入拷貝內存,在沒有雙方服務器端操作系統參與的情況下,可以繞過服務器內核,直接向網卡寫數據,將數據直接從網絡中一臺服務器的內存傳輸到網絡中另一臺服務器。這樣就釋放了部分服務器的計算能力。并且,通過避免雙方操作系統的介入可以消除外部存儲器復制和上下文切換的開銷,從而可以解放服務器內存帶寬,有助于應用系統性能提升。RDMA技術可以實現低時延、高吞吐量的高性能數據中心網絡。

目前RDMA有三種實現方式,分別是InfiniBand、iWARP(internet wide area RDMA protocol)和RoCE(RDMA over converged Ethernet)。

(1)InfiniBand技術[14]是由IBTA(InfiniBand trade association)行業協會在1999年提出的,其標準規范在1999年開始起草并于2000年正式發表,經過不斷發展,InfiniBand架構在2005年之后開始在集群式超級計算機上廣泛應用。

InfiniBand技術目前主要應用于高性能計算數據中心網絡。InfiniBand技術在RDMA三種實現方式中具有最好的性能,但需要有定制的硬件設備來實現,因此也是成本最高的一種實現方案。

圖3 RDMA模式與傳統模式對比

(2)iWARP協議[15]是RDMA技術的另外一種實現方案,是由RDMA聯盟在2002年向IETF提出的,iWARP協議通過在標準TCP/IP協議棧上定義一個多層處理棧實現將RDMA的特性集成到以太網上。iWARP協議利用RDMA技術的內核旁路、零內存拷貝以及避免CPU介入等特點,有效地降低了網絡延遲和服務器CPU的負載,釋放了服務器部分CPU的計算能力。

iWARP協議是第一個在標準以太網基礎設施上實現了RDMA技術的方案,另外,iWARP協議沒有具體指定底層物理層設備信息,因此所有工作在使用TCP/IP協議棧的上層協議都可以被支持,在iWARP協議中,TCP/IP協議棧在網卡中設計并實現。因此需要專有網卡來實現。當數據中心網絡規模較大時,使用iWARP協議會產生大量的TCP連接,大量的TCP連接會占用服務器大量的內存資源,進而影響系統性能,所以會帶來性能和成本問題。

(3)RoCE技術是IBTA提出的在融合以太網上實現RDMA技術的一個實現方案。目前主流版本是RoCEv2版本。

RoCEv2是基于UDP/IP協議實現的。RoCEv2由于在性能和成本上占據明顯優勢,因此占據了目前融合以太網數據中心市場的主流地位。RoCEv2是基于不可靠傳輸的UDP協議實現,與TCP協議相比,UDP協議更加快速、占用較少的計算資源,但其是不可靠傳輸,沒有TCP協議的滑動窗口、確認應答等機制,當出現丟包時會大大降低RDMA技術的工作效率。圖4顯示了當發生丟包時RDMA技術的吞吐率情況,可以看出丟包會嚴重影響RDMA的性能。所以為了實現RDMA技術的真正性能,必須實現無損傳輸。RoCEv2協議依靠基于優先級的流量控制PFC算法實現無損傳輸。

圖4 RDMA的丟包率與吞吐率關系

2.2 基于優先級的流量控制算法PFC

基于優先級的流量控制算法PFC是由電氣和電子工程師協會在2008年提出的,PFC算法通過劃分虛擬實現是對傳統流控協議的優化。當出現擁塞時,傳統流控協議會將鏈路上的所有流量禁止發送。而PFC協議通過在以太網鏈路上創建8個優先級通道,并實現對每個優先級通道進行暫停發送,同時不會影響其他優先級通道數據的發送。

優先級流控PFC的基本運行機制如下:當網絡鏈路中發生擁塞時,即交換機的入端口隊列長度超過設定的閾值時,交換機生成一個暫停幀,并將暫停幀發送給上一跳交換機,上一跳交換機接收到暫停幀后,會根據暫停幀中的信息,暫停交換機中對應優先級通道中數據的發送,暫停的時間根據暫停幀中攜帶的字段信息設定;同時,如果上一跳交換機中也發生了擁塞則會向其上一跳交換機發送暫停幀,如果擁塞繼續則逐級暫停。同樣的,如果交換機中擁塞消除,則向上一跳交換機發送一個暫停時間為0的暫停幀,以恢復上一跳交換機中對應優先級隊列中數據的發送,以此類推,逐級發送。PFC算法[16]被廣泛應用于高性能數據中心網絡,以確保數據中心網絡的無損傳輸。

圖5顯示了優先級流量控制PFC的報文格式,其中DA字段是目的MAC地址,SA是源MAC地址,type字段是報文類型,其中有關暫停優先級和暫停時間的信息包含在Parameters字段中。

圖5 PFC報文格式

3 基于可編程數據平面的PFC算法實現

該文在可編程數據平面的協議無關架構下實現了基于優先級的流量控制PFC算法,進而實現了無損傳輸網絡,并在Mininet仿真環境下進行了仿真實驗。

3.1 PFC算法實現模型

該文基于可編程數據平面協議無關架構的特點,設計實現了基于優先級的流量控制PFC算法。實現模型如圖6所示。

圖6 PFC算法實現模型

首先在協議無關架構交換機的入端口隊列對隊列長度進行判斷,根據設定的閾值判斷交換機是否發生擁塞,如果入端口隊列長度超出閾值,則判定交換機發生了擁塞,交換機生成PFC暫停幀,并發送給上一跳交換機。其中,通過自定義報文頭實現對暫停幀的報文解析。

header pause_t {

bit<48> dstAddr;

bit<48> srcAddr;

bit<16> etherType;

bit<16> conCode;

bit<16> priEnable;

bit<16> time0;

bit<16> time1;

bit<16> time2;

bit<16> time3;

bit<16> time4;

bit<16> time5;

bit<16> time6;

bit<16> time7;

bit<208> reserved;

bit<32> fcs;

}

上述代碼為使用P4自定義的暫停幀報文頭Header字段,經過Parser解析器將進入交換機的數據包按照Header字段定義進行解析。獲得相應的報文頭實例,報文頭實例將會在匹配動作表中使用。其中暫停幀的生成與發送,以及接收到暫停幀后暫停相應優先級通道數據發送等動作是在匹配動作表和控制流水線中完成。

3.2 實驗驗證

該文基于Mininet工具搭建了一個仿真網絡環境,采用了數據中心網絡常用的葉脊結構拓撲,包括2個spine交換機,4個leaf交換機,4個tor交換機和8個終端主機。實驗拓撲如圖7所示。

圖7 仿真實驗拓撲

其中交換機使用bmv2軟件交換機,實驗拓撲中鏈路帶寬設置為5 Mbps,分別使用Iperf從主機h11和h31以3 Mbps的速度向主機h41發送UDP流,則在交換機L3、L4、T4中必有一個會發生擁塞。此時測試網絡丟包率,實驗結果如圖8所示。

圖8 PFC算法和UDP丟包率對比

通過網絡丟包率的實驗結果可以看出,在沒有部署PFC時,使用UDP協議在發生擁塞時產生了丟包,而在部署了PFC后,可以實現無丟包網絡。

圖9 PFC算法和UDP、TCP協議時延對比

同時,在仿真網絡環境下對比了基于可編程數據平面實現的PFC算法與UDP、TCP協議的平均端到端時延,實驗結果如圖9所示。UDP協議由于沒有使用丟包重傳以及流控機制,因此具有最小的端到端時延,但是不能保證無丟包傳輸,而基于可編程數據平面實現的PFC算法相對于TCP協議具有更低的端到端時延。

該文驗證了在可編程數據平面下采用軟件定義的方式可以實現基于優先級的流量控制PFC算法,并能確保網絡無丟包傳輸。對網絡功能的開發升級周期短,相對于傳統的PFC算法實現方式更加靈活和高效。

4 結束語

當前各種快速發展的應用對數據中心網絡提出了性能上的挑戰,因此高性能數據中心網絡是當前研究的熱點。該文介紹了當前高性能數據中心網絡研究的現狀以及實現無損傳輸的意義,同時介紹了當前在網絡領域最具活力的軟件定義網絡和可編程數據平面技術,最后在可編程數據平面下實現了基于優先級的流量控制PFC算法,并在Mininet仿真網絡環境下對采用軟件定義方式實現的PFC算法進行了實驗驗證。實驗結果顯示使用可編程數據平面可以很靈活、便捷地實現基于優先級的流量控制PFC算法,并確保了網

絡的無損傳輸,說明可編程數據平面技術在實現高性能數據中心網絡中可以發揮巨大的作用。傳統網絡架構下,網絡功能的開發升級周期長,往往需要花費數年的時間,該文使用軟件定義的方式實現網絡功能,更加高效、便捷,也證明了可編程數據平面技術為網絡創新帶來的巨大空間。

猜你喜歡
報文交換機平面
基于J1939 協議多包報文的時序研究及應用
以太網QoS技術研究及實踐
避免饑餓的CAN 總線高優先級反轉算法
基于報文類型的限速值動態調整
立體幾何基礎訓練A卷參考答案
立體幾何強化訓練B卷參考答案
淺談交換機CAN基本配置
參考答案
羅克韋爾發布Strat ix 5410分布式交換機
信息網絡中交換機的分類和功能
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合