本發明屬于rdma網絡擁塞控制算法,具體為一種基于rdma的差異化擁塞控制方法及硬件控制器系統。
背景技術:
1、隨著數據中心規模的擴大,傳統tcp/ip協議因內核協議處理延遲高、內存拷貝開銷大等問題難以滿足高吞吐需求。rdma技術通過零拷貝、內核旁路和cpu卸載機制顯著降低了通信延遲,但其高吞吐特性易引發網絡擁塞。當前主流擁塞控制包括顯式擁塞通知(explicit?congestion?notification,ecn)、往返時間(round?trip?time,rtt)和帶內網絡遙測(in-band?network?telemetry,int)的擁塞控制。現有技術中,基于rtt或int的擁塞控制算法雖有改進,但存在部署復雜度高或依賴額外硬件支持的問題。基于ecn的擁塞控制算法dcqcn由于其部署成本低、反饋響應快的特點成為應用最為廣泛的擁塞控制算法。
2、但是dcqcn算法存在以下缺陷:一方面dcqcn算法的公平性調控存在很大局限,對所有流量采用統一降速和加速策略,無法區分高優先級與低優先級業務,導致關鍵流量因低優先級流競爭而帶寬不足、延遲增加;另一方面dcqcn算法動態適應性差,固定參數調節無法應對多樣化流量場景,尤其在高負載場景下網絡鏈路利用率提升有限。另外只依靠軟件實現擁塞控制算法,將會存在擁塞控制響應不及時從而進一步加劇網絡擁塞的風險,硬件控制器是當下的主流,當前硬件控制器也存在支持擁塞連接數較少、實現并不是完全硬化等問題。
技術實現思路
1、本發明的目的在于:為了解決上述提出的問題,提供一種基于rdma的差異化擁塞控制方法及硬件控制器系統。
2、本發明采用的技術方案如下:一種基于rdma的差異化擁塞硬件控制器系統,其特征在于:所述系統包括:
3、擁塞管理模塊,用于完成網絡中擁塞流編號的綁定、匹配和讀取,內部地址轉換,參數存儲,速率計算以及注冊計時事件功能,動態支持網絡中所有擁塞流并且最大支持1024個并發擁塞流。
4、計時管理模塊,用于完成計時事件時間存儲、計時事件管理的功能。
5、數據包發送模塊,用于實現網絡數據包中組包、發包、解析數據包功能。所述數據包發送模塊輸入端和數據包接收模塊輸出端相連。
6、數據包接收模塊,用于實現數據包接收并在收到帶有ecn標記的數據包時,向數據包發送模塊發送擁塞通知報文。
7、調度模塊,用于接收到擁塞控制模塊的計算速率后,調整數據包發送模塊發端的發送速率。所述調度模塊的輸出端和數據包發送模塊的輸入端相連。
8、apb總線,用于模塊初始化配置,通過配置寄存器實現。
9、交換機:用于數據包轉發以及在其出口隊列長度超過閾值時進行概率性的ecn標記。所述交換機輸入端和數據包發送模塊輸出端相連,所述交換機輸出端和數據包接收模塊輸入端相連。
10、在一優選的實施方式中,所述擁塞管理模塊分別和apb總線、計時管理模塊雙向通信,所述擁塞管理模塊的輸入端和數據包接收模塊和數據包發送模塊的輸出端相連,所述擁塞管理模塊的輸出端和調度模塊的輸入端相連。
11、在一優選的實施方式中,所述擁塞管理模塊包括:
12、流編號/內部地址轉換模塊,用于完成網絡中擁塞流編號的綁定、匹配和讀取。
13、參數存儲模塊,用于存儲建議速率rc、目標速率rt、降速因子α、字節計數超時次數bc、計時事件超時次數t、最近一次降速的時刻tlatest、累計發送的數據包長度pkt_length、優先級字段dscp。
14、速率計算模塊,用于查表計算加速或者降速速率。
15、在一優選的實施方式中,所述計時管理模塊包括:
16、計時事件存儲模塊,用于存儲計時事件指針和對應剩余時間。
17、三級計時引擎模塊,用于計時事件管理,通過分級計時實現216個時間單位的并行計時,對于任意一個開始計時的時刻是p且剩余時間為q的計時事件,它將在系統時間p+q時刻完成計時,p+q的和可以分別代表一個任務在每一級計時引擎中超時的時刻,最后一級計時引擎的精度僅為1個計時周期可以忽略,因此采用三級計時引擎。
18、在一優選的實施方式中,所述控制方法收到擁塞通知情況的處理步驟包括:
19、(1)數據包發送模塊進行數據包組包并將數據包發送給交換機。
20、(2)交換機轉發數據包,當出口隊列長度超過閾值時進行ecn概率性標記。
21、(3)數據包接收模塊若收到帶有ecn標記的數據包,進入步驟(3),向數據包發送模塊發送擁塞通知報文。若未收到帶有ecn標記的數據包則代表該數據流未發生擁塞。
22、(4)數據包發送模塊解析擁塞通知報文,向擁塞管理模塊發送包含流編號和dscp優先級字段的擁塞通知。
23、(5)流編號/內部地址轉換模塊收到擁塞通知并使用流編號進行匹配,若匹配成功則代表該數據流之前遭遇過擁塞;若匹配失敗則代表該數據流第一次遭遇擁塞,需要進行流編號/內部地址轉換模塊空閑地址查詢。最終經過內部處理得到降速后速率。
24、(6)將計算速率從步驟(4)得到的流編號發送到調度模塊。
25、(7)調度模塊收到新的速率對該數據流重新調整調度策略,并通知數據包發送模塊對發送速率進行調整。
26、在一優選的實施方式中,所述步驟(5)中,所述的內部處理具體包括以下步驟:
27、(5a)若匹配成功通過流編號/內部地址轉換模塊得到內部地址,讀取參數存儲模塊中參數;若匹配失敗,搜尋流編號/內部地址轉換模塊的空閑地址,若存在空閑地址,進入步驟(5a),將流編號寫入流編號/內部地址轉換模塊,讀取參數存儲模塊的參數,向計時管理模塊注冊包含內部地址和剩余時間的計時事件通知,若不存在空閑地址則將擁塞通知丟棄。
28、(5b)將參數傳輸到速率計算模塊并結合步驟(4)得到的dscp優先級字段進行降速過程的查表計算。
29、(5c)將更新之后的參數寫入參數存儲模塊。
30、在一優選的實施方式中,所述控制方法收到字節計數情況的處理步驟包括:
31、(1)數據包發送模塊進行數據包組包,并將包含數據包長度、對應流編號和dscp優先級字段的字節計數通知發送給擁塞管理模塊。
32、(2)流編號/內部地址轉換模塊收到字節計數通知并使用流編號進行匹配,若匹配成功進入步驟(2),代表該數據流之前遭遇過擁塞,并得到內部地址;若匹配失敗代表該數據流并未遭遇擁塞,丟棄這筆字節計數通知。
33、(3)通過內部地址讀取參數存儲模塊中參數,若pkt_length與步驟(1)得到的數據包長度相加超過閾值,進入步驟(4);若pkt_length與步驟(1)得到的數據包長度相加未超過閾值,則進入步驟(5)。
34、(4)將參數傳輸到速率計算模塊進行加速過程的查表計算。
35、(5)將更新之后的參數寫入參數存儲模塊。
36、(6)將計算速率從步驟(1)得到的流編號發送到調度模塊。
37、(7)調度模塊收到新的速率對該數據流重新調整調度策略,并通知數據包發送模塊對發送速率進行調整。
38、在一優選的實施方式中,所述控制方法收到計時事件情況的處理步驟包括:
39、(1)計時管理模塊在計時事件完成時將包含內部地址的計時事件完成通知發送給擁塞管理模塊。
40、(2)流編號/內部地址轉換模塊收到計時事件完成通知得到內部地址讀取流編號并通過內部地址讀取參數存儲模塊中參數。
41、(3)將參數傳輸到速率計算模塊進行加速過程的查表計算。
42、(4)將更新之后的參數寫入參數存儲模塊。
43、(5)將計算速率和從步驟(1)得到的流編號發送到調度模塊。
44、(6)調度模塊收到新的速率對該數據流重新調整調度策略,并通知數據包發送模塊對發送速率進行調整。
45、在一優選的實施方式中,所述步驟(3)中,所述的內部處理具體包括以下步驟:
46、(3a)若計算速率達到最大速率,通過內部地址清除流編號/內部地址轉換模塊對應的流編號;若計算速率未達到最大速率,進入步驟(3b)。
47、(3b)向計時管理模塊注冊包含內部地址和剩余時間的計時事件通知。
48、在一優選的實施方式中,所述控制方法的計時模塊處理步驟包括:
49、(1)收到情況1步驟(5a)和情況3步驟(3b)的計時事件通知后,將內部地址(計時模塊指針等同于內部地址)和剩余時間寫入計時事件存儲模塊。
50、(2)通過當前系統時間校準剩余時間,并分配到三級計時引擎的時隙當中,每個時隙維護事件鏈表,新事件通過頭尾指針接入鏈表,空時隙頭尾指針無效,存在多個事件時頭指針指向下一個指針,尾指針指向鏈尾。
51、(3)每個時隙在準點時刻更新待處理事件數(即該時間段內注冊的事件數),按順序處理鏈表中的計時事件。
52、(4)若事件處理晚于準點時刻,重新計算剩余時間并調整到下一級時隙,三級引擎逐級處理事件直到剩余時間為0。
53、(5)當剩余時間為0時,對應計時事件完成,向擁塞管理模塊發送包含內部地址的計時事件完成通知。
54、綜上所述,由于采用了上述技術方案,本發明的有益效果是:
55、1、本發明中,通過引入dscp優先級字段實現了流量類型的差異化管控。傳統擁塞控制算法對所有流量采用統一調控策略,導致高優先級業務與低優先級業務競爭時資源分配不均。本方案通過將dscp值轉換為優先級因子,并在速率調整過程中結合查表計算,使得高優先級流量能夠獲得更積極的帶寬保障和更低的延遲。這種機制突破了傳統算法的完全公平性限制,能夠在擁塞發生時優先滿足關鍵業務需求,同時提升網絡整體帶寬利用率。
56、2、本發明中,系統采用完全硬化的硬件控制器架構,顯著提升了處理效率和響應速度。通過將擁塞管理、計時管理和調度功能集成到專用硬件模塊中,避免了軟件實現帶來的計算延遲和主機資源占用。硬件模塊直接處理數據包解析、參數存儲和速率計算,無需依賴主機緩存或頻繁的總線數據傳輸,從而降低了處理延遲并提高了并行處理能力。這一設計使得系統能夠快速響應網絡擁塞事件,有效避免因反饋延遲導致的擁塞惡化。
57、3、本發明中,系統支持動態管理大量并發擁塞流,增強了網絡擁塞控制的擴展性和適應性。通過流編號與內部地址的綁定機制以及參數存儲模塊的優化設計,系統能夠實時跟蹤并調整網絡中的擁塞流狀態。三級計時引擎的分級管理策略進一步提升了計時事件的處理效率,確保在高負載場景下仍能穩定運行。這種設計使得系統能夠適應多樣化流量場景,同時為大規模數據中心提供了高效的擁塞緩解能力。