本發(fā)明涉及網(wǎng)絡(luò)擁塞控制,尤其是涉及一種集中控制的rocev2網(wǎng)絡(luò)擁塞控制方法。
背景技術(shù):
1、隨著人工智能、云計算、云存貯等應(yīng)用的廣泛部署,數(shù)據(jù)中心網(wǎng)絡(luò)帶寬增長到100g量級,網(wǎng)絡(luò)延遲由毫秒級降到微秒級,傳統(tǒng)tcp/ip?網(wǎng)絡(luò)協(xié)議棧無法滿足網(wǎng)絡(luò)帶寬和延遲要求。rdma(remote?direct?memory?access)技術(shù)應(yīng)運而生,它允許用戶空間應(yīng)用程序直接讀取或?qū)懭脒h程內(nèi)存,而無需內(nèi)核干擾或內(nèi)存復制,因其高帶寬和低延遲特性而被廣泛使用。rdma最早出現(xiàn)在ib(infiniband)網(wǎng)絡(luò)中,后來移植到傳統(tǒng)以太網(wǎng)上,推動了rdma技術(shù)的普及。以太網(wǎng)上的rdma又分為roce(rdma?over?converged?ethernet)和iwarp(rdma?overtcp/ip)兩種技術(shù)。roce相對于iwarp吞吐量更高、時延更低。roce使用無損以太網(wǎng)協(xié)議作為數(shù)據(jù)鏈路層,rocev1網(wǎng)絡(luò)層使用ib協(xié)議,rocev2網(wǎng)絡(luò)層使用ip協(xié)議。
2、為了保證rdma?的高性能數(shù)據(jù)傳輸,rocev2?需要在數(shù)據(jù)中心部署采用基于優(yōu)先級的流量控制協(xié)議pfc(priority-based?flow?control)的無損以太網(wǎng)。pfc?協(xié)議允許擁塞端口直接暫停上游源端口的數(shù)據(jù)發(fā)送,從而避免了擁塞端口緩沖區(qū)溢出,但是這種端口級別暫停會導致?lián)砣麛U散等性能問題。因此rocev2?網(wǎng)絡(luò)需要一種網(wǎng)絡(luò)層擁塞控制協(xié)議來緩解pfc?引發(fā)的諸多問題。擁塞控制算法的主要作用是檢測網(wǎng)絡(luò)中的數(shù)據(jù)傳輸狀況并依此調(diào)整發(fā)送速率,它是rdma在高速下實現(xiàn)超低延遲、高帶寬和網(wǎng)絡(luò)穩(wěn)定性的關(guān)鍵。
3、rocev2?擁塞控制協(xié)議需要滿足高帶寬利用率,公平性,穩(wěn)定性,快速收斂等要求。擁塞控制的目標為:1)減少流完成時間fct,保證短流的低延遲傳輸,保證長流的高吞吐量傳輸;2)減少pfc?協(xié)議的觸發(fā);3)防止死鎖。
4、按照在rocev2中扮演角色可以將rocev2擁塞控制協(xié)議分為:基于發(fā)送方驅(qū)動、接收方驅(qū)動、交換機驅(qū)動和協(xié)議改進等四類。發(fā)生方驅(qū)動方法有通過ecn、rtt?等信號感知或帶內(nèi)網(wǎng)絡(luò)遙測(in-band?network?telemetry,int)等,這類方法有dcqcn(data?centerquantified?congestion?notification)及其改進算法、hpcc(high?precisioncongestion?control)、timely、p4qcn(p4quantified?congestion?notification);接收方驅(qū)動通過接收報文感知網(wǎng)絡(luò)延遲,這類方法有:pcn(photonic?congestionnotification)、rcc(receiver-driven?rdma?congestion?control);交換機驅(qū)動方法是在交換機出口端口處檢測擁塞,要求交換機具有可編程功能,這類方法有:rocc(robustcongestion?control),hiercc(hierarchical?congestion?control);協(xié)議改進則需要修改完善rocev2協(xié)議,這類方法包括:irn(improved?roce?nic)、rogue(rdma?over?genericunconverged?ethernet)。
5、以上方法主要通過啟發(fā)式流速調(diào)整來解決擁塞控制問題,采用的是“事后”擁塞管理機制,報文發(fā)送之前,不會和接收方進行資源協(xié)商,而是直接進行報文轉(zhuǎn)發(fā),只有當接收端交換機出現(xiàn)端口緩存擁塞(或即將擁塞)時才會通過pfc和ecn協(xié)議,發(fā)送擁塞管理報文,讓對端交換機、對端網(wǎng)卡減少或暫停報文的發(fā)送,這種“事后”處理的方式,雖然在一定程度上能夠減輕擁塞的影響,但無法完全避免數(shù)據(jù)包的丟失和網(wǎng)絡(luò)的不穩(wěn)定。
6、綜上所述,傳統(tǒng)分布式流控機制面臨以下問題:1、每個節(jié)點獨立進行擁塞判斷和流量調(diào)整,而不是從全局流量分布和全網(wǎng)網(wǎng)絡(luò)擁塞情況綜合考慮;2、采用的是“事后”理機制,無法避免數(shù)據(jù)包的丟失和網(wǎng)絡(luò)的不穩(wěn)定;3、單一流網(wǎng)絡(luò)擁塞標識不能很好的反映網(wǎng)絡(luò)實際擁塞,啟發(fā)式速率調(diào)整策略導致協(xié)議在收斂性,穩(wěn)定性和公平性上表現(xiàn)不佳;4、當網(wǎng)絡(luò)發(fā)生網(wǎng)絡(luò)故障,網(wǎng)絡(luò)完全不可達,以上方法全部失效;5、擁塞控制協(xié)議基于對協(xié)議的小修小補,不能從根本上解決網(wǎng)絡(luò)擁塞問題。
7、sdn(software?defined?network)技術(shù)為集中控制網(wǎng)絡(luò)擁塞提供了可能,它將控制層和數(shù)據(jù)層進行分離,控制層中的控制器收集全網(wǎng)信息,部署網(wǎng)絡(luò)策略和下發(fā)轉(zhuǎn)發(fā)表。在數(shù)據(jù)層中的交換機,執(zhí)行控制器下發(fā)的策略并進行數(shù)據(jù)轉(zhuǎn)發(fā)??刂茖雍蛿?shù)據(jù)層之間通過同一個開放接口進行通信。段路由(segment?routing,sr)具備強大的網(wǎng)絡(luò)可編程能力,可以很好地進行顯式路徑控制,為進行集中控制網(wǎng)絡(luò)擁塞提供了強有力的手段。
8、然而,如何有效利用sdn的控制思想將其與rocev2相結(jié)合,仍是一個需要深入研究的問題。本發(fā)明正是基于這一背景,提出了一種基于集中控制的rocev2擁塞控制方法,旨在充分發(fā)揮sdn的控制思想的優(yōu)勢,同時克服現(xiàn)有技術(shù)的局限性。
9、本文提供的背景描述用于總體上呈現(xiàn)本技術(shù)的上下文的目的。除非本文另外指示,在該章節(jié)中描述的資料不是該申請的權(quán)利要求的現(xiàn)有技術(shù)并且不要通過包括在該章節(jié)內(nèi)來承認其成為現(xiàn)有技術(shù)。
技術(shù)實現(xiàn)思路
1、為了克服背景技術(shù)中的不足,本發(fā)明提供了一種集中控制的rocev2網(wǎng)絡(luò)擁塞控制方法。
2、為實現(xiàn)上述發(fā)明目的,本發(fā)明采用如下技術(shù)方案:
3、一種集中控制的rocev2網(wǎng)絡(luò)擁塞控制方法,其應(yīng)用于rocev2數(shù)據(jù)中心網(wǎng)絡(luò)中,所述rocev2數(shù)據(jù)中心網(wǎng)絡(luò)包括網(wǎng)絡(luò)控制器,交換機,所述網(wǎng)絡(luò)控制器用于實時偵聽交換機發(fā)來的消息,向交換機發(fā)送控制命令要求交換機報告鏈路信息;包括以下步驟:
4、s1、網(wǎng)絡(luò)控制器在數(shù)據(jù)中心網(wǎng)絡(luò)啟動時通過網(wǎng)絡(luò)拓撲探測技術(shù)獲得網(wǎng)絡(luò)拓撲,根據(jù)網(wǎng)絡(luò)拓撲計算交換機正選轉(zhuǎn)發(fā)表和備選轉(zhuǎn)發(fā)表并保存;
5、s2、網(wǎng)絡(luò)控制器根據(jù)鏈路信息判定網(wǎng)絡(luò)運行狀態(tài);所述網(wǎng)絡(luò)運行狀態(tài)包括網(wǎng)絡(luò)擁塞狀態(tài)、擁塞預(yù)警狀態(tài)及正常狀態(tài);
6、s3、若網(wǎng)絡(luò)運行狀態(tài)為網(wǎng)絡(luò)擁塞狀態(tài),先使用流速調(diào)整方法對經(jīng)過擁塞路徑的流量進行調(diào)控,若流量調(diào)控后擁塞情況改善則轉(zhuǎn)至步驟s2,否則轉(zhuǎn)至步驟s4;
7、s4、網(wǎng)絡(luò)控制器根據(jù)綜合鏈路代價通知發(fā)生擁塞的交換機將備選轉(zhuǎn)發(fā)表設(shè)為正選轉(zhuǎn)發(fā)表進行數(shù)據(jù)轉(zhuǎn)發(fā),并將原正選轉(zhuǎn)發(fā)表設(shè)為備選轉(zhuǎn)發(fā)表,轉(zhuǎn)至步驟s2。
8、具體的,所述鏈路信息包括丟包率、轉(zhuǎn)發(fā)延遲、隊列長度、鏈路帶寬容量;所述鏈路帶寬容量包括最大鏈路帶寬容量及最小鏈路帶寬容量;所述轉(zhuǎn)發(fā)延遲包括最小轉(zhuǎn)發(fā)延遲及最大轉(zhuǎn)發(fā)延遲。
9、具體的,步驟s1根據(jù)網(wǎng)絡(luò)拓撲計算交換機正選轉(zhuǎn)發(fā)表和備選轉(zhuǎn)發(fā)表的具體包括以下步驟:
10、s11、為每個交換機sw(i)的分配一個本地標識lid,并初始化正選轉(zhuǎn)發(fā)表sw_mat和備選轉(zhuǎn)發(fā)表sw_mat_backup來記錄每個交換機sw(i)的端口與直接相連的遠程交換機remote_sw的lid之間的連接關(guān)系;
11、s12、更新交換機sw(i)的正選轉(zhuǎn)發(fā)表sw_mat,以記錄從sw(i)的每個端口port(j)到子網(wǎng)中其他交換機sw(m).lid的最短路徑跳數(shù);如果通過相連的遠程交換機remote_sw可以找到更短的路徑,則相應(yīng)地更新交換機正選轉(zhuǎn)發(fā)表sw_mat,同時保留一個備選轉(zhuǎn)發(fā)表sw_mat_backup;
12、s13、重復步驟s12直到每個交換機的lid矩陣都不再發(fā)生改變則交換機sw(i)的轉(zhuǎn)發(fā)表和備選轉(zhuǎn)發(fā)表建立完成。
13、具體的,步驟s1還包括:在所有網(wǎng)絡(luò)元素之間設(shè)置控制路徑用于控制報文與報告信息的傳輸。
14、具體的,步驟s2具體為:若最大轉(zhuǎn)發(fā)延遲超過預(yù)設(shè)延遲閾值或是隊列長度超過預(yù)設(shè)長度閾值時或是最小鏈路帶寬容量小于預(yù)設(shè)帶寬容量閾值判定網(wǎng)絡(luò)運行狀態(tài)為網(wǎng)絡(luò)擁塞狀態(tài);否則判定當前網(wǎng)絡(luò)運行狀態(tài)為正常狀態(tài)。
15、具體的,步驟s2還包括:交換機發(fā)生擁塞時主動報告網(wǎng)絡(luò)擁塞狀態(tài)給網(wǎng)絡(luò)控制器;當網(wǎng)絡(luò)元素中的隊列長度超過預(yù)設(shè)長度閾值或是流量rtt超過預(yù)設(shè)rtt閾值或產(chǎn)生ecn標記時,網(wǎng)絡(luò)元素產(chǎn)生控制報文報告發(fā)送網(wǎng)絡(luò)控制器;
16、具體的,步驟s3中所述流速調(diào)整方法包括dcqcn、hpcc、timely、irn。
17、具體的,所述步驟s3還包括,若出現(xiàn)擁塞預(yù)警狀態(tài)時使用流速調(diào)整方法對經(jīng)過擁塞路徑的流量進行調(diào)控;所述擁塞預(yù)警狀態(tài)為網(wǎng)絡(luò)運行狀態(tài)為正常狀態(tài)但網(wǎng)絡(luò)擁塞概率大于等于預(yù)設(shè)擁塞概率閾值。
18、具體的,所述步驟s4中所述網(wǎng)絡(luò)控制器根據(jù)綜合鏈路代價通知發(fā)生擁塞的交換機具體為:網(wǎng)絡(luò)控制器可以根據(jù)鏈路信息計算出各個發(fā)生擁塞鏈路的綜合鏈路代價,根據(jù)綜合鏈路代價進行排序,選擇其中綜合鏈路代價最大的一條或是從大到小選取若干條擁塞路徑通知其路徑上的交換機使用備用轉(zhuǎn)發(fā)表進行數(shù)據(jù)轉(zhuǎn)發(fā)。
19、具體的,所述網(wǎng)絡(luò)控制器包括1臺或多臺;若網(wǎng)絡(luò)控制器為多臺,則其中一臺為主網(wǎng)絡(luò)控制器,其他為從網(wǎng)絡(luò)控制器,主網(wǎng)絡(luò)控制器與從網(wǎng)絡(luò)控制器之間能進行數(shù)據(jù)同步;所述主網(wǎng)絡(luò)控制器與從網(wǎng)絡(luò)控制器之間可進行互換。
20、本發(fā)明提供了一種集中控制的rocev2網(wǎng)絡(luò)擁塞控制方法,包括s1、網(wǎng)絡(luò)控制器在數(shù)據(jù)中心網(wǎng)絡(luò)啟動時通過網(wǎng)絡(luò)拓撲探測技術(shù)獲得網(wǎng)絡(luò)拓撲,根據(jù)網(wǎng)絡(luò)拓撲計算交換機正選轉(zhuǎn)發(fā)表和備選轉(zhuǎn)發(fā)表并保存;s2、網(wǎng)絡(luò)控制器根據(jù)鏈路信息判定網(wǎng)絡(luò)運行狀態(tài);所述網(wǎng)絡(luò)運行狀態(tài)包括網(wǎng)絡(luò)擁塞狀態(tài)及正常狀態(tài);s3、若網(wǎng)絡(luò)運行狀態(tài)為網(wǎng)絡(luò)擁塞狀態(tài),使用流速調(diào)整方法進行流量調(diào)控,若流量調(diào)控后擁塞情況改善則轉(zhuǎn)至步驟s2,否則轉(zhuǎn)至步驟s4;s4、網(wǎng)絡(luò)控制器根據(jù)綜合鏈路代價通知發(fā)生擁塞的交換機將備選轉(zhuǎn)發(fā)表設(shè)為正選轉(zhuǎn)發(fā)表進行數(shù)據(jù)轉(zhuǎn)發(fā),并將原正選轉(zhuǎn)發(fā)表設(shè)為備選轉(zhuǎn)發(fā)表,轉(zhuǎn)至步驟s2。
21、本發(fā)明的有益效果在于:
22、1.集中控制:通過網(wǎng)絡(luò)控制器收集各節(jié)點的網(wǎng)絡(luò)狀態(tài)信息并生成全局流量控制策略,實現(xiàn)了對網(wǎng)絡(luò)流量的統(tǒng)一管理和優(yōu)化。
23、2.策略一致性:各節(jié)點根據(jù)網(wǎng)絡(luò)控制器下發(fā)的全局流量控制策略進行流量調(diào)整,保證了控制策略的一致性和有效性。
24、3.高效性:當網(wǎng)絡(luò)發(fā)生故障,傳統(tǒng)流量控制算法基本失效,而本發(fā)明通過調(diào)整轉(zhuǎn)發(fā)路徑,能夠調(diào)整網(wǎng)絡(luò)流量,解決擁塞問題;網(wǎng)絡(luò)控制器能夠迅速響應(yīng)網(wǎng)絡(luò)狀態(tài)的變化,生成適應(yīng)性的流量控制策略,提高了擁塞控制的效率和準確性。
25、此外,本發(fā)明還在所有網(wǎng)絡(luò)元素之間都設(shè)置1條最高優(yōu)先級的控制路徑,任何情況下控制報文優(yōu)先轉(zhuǎn)發(fā);即使當網(wǎng)絡(luò)發(fā)生擁塞時,網(wǎng)絡(luò)控制器也可以通過控制路徑發(fā)送控制報文給交換機或是接收交換機要傳遞給網(wǎng)絡(luò)控制器的報告信息,保證了消息的及時傳達,進一步提高了擁塞控制的效率。
26、此外,本發(fā)明提供的網(wǎng)絡(luò)擁塞控制框架將rocev2?網(wǎng)絡(luò)抽象成四大組件,可以明確每個組件在網(wǎng)絡(luò)擁塞控制中的角色和責任,降低了網(wǎng)絡(luò)控制的復雜性,便于管理和維護,網(wǎng)絡(luò)控制器ctlp集中管理網(wǎng)絡(luò)拓撲和轉(zhuǎn)發(fā)表,可以全局優(yōu)化網(wǎng)絡(luò)資源的使用,避免局部優(yōu)化可能帶來的次優(yōu)解,能夠做到快速響應(yīng),并可靈活調(diào)整,增強了網(wǎng)絡(luò)的可擴展性,提高了網(wǎng)絡(luò)資源利用率,進一步提高了擁塞控制的效率和準確性。