[go: up one dir, main page]

TW202508259A - 加權隨機早期回傳傳送者的通知 - Google Patents

加權隨機早期回傳傳送者的通知 Download PDF

Info

Publication number
TW202508259A
TW202508259A TW113125093A TW113125093A TW202508259A TW 202508259 A TW202508259 A TW 202508259A TW 113125093 A TW113125093 A TW 113125093A TW 113125093 A TW113125093 A TW 113125093A TW 202508259 A TW202508259 A TW 202508259A
Authority
TW
Taiwan
Prior art keywords
network
congestion
computing
clause
message
Prior art date
Application number
TW113125093A
Other languages
English (en)
Inventor
阿卜杜勒 卡巴尼
托爾斯騰 霍夫勒
Original Assignee
美商微軟技術授權有限責任公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商微軟技術授權有限責任公司 filed Critical 美商微軟技術授權有限責任公司
Publication of TW202508259A publication Critical patent/TW202508259A/zh

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

決定計算節點正在導致網路擁塞事件。產生擁塞通知訊息。基於網路擁塞事件的級別,決定用於傳送擁塞通知訊息的時序設定檔。基於時序設定檔,擁塞通知訊息被轉發至經決定為導致網路擁塞事件的計算節點。

Description

加權隨機早期回傳傳送者的通知
本申請案主張於2023年8月6日提交的標題為「WEIGHTED RANDOM EARLY BACK-TO-SENDER NOTIFICATION (WREB)」的美國臨時申請案第63/530,991號的優先權、2023年8月6日提交的標題為「RECYCLED ENTROPIES PACKET SPRAYING (REPS)」的美國臨時申請第63/530,992號的優先權、2023年8月6日提交的標題為「LEVERAGING ROUND-TRIP TIME (Round-Trip Time; RTT) AND EXPLICIT CONGESTION NOTIFICATION (Explicit Congestion Notification; ECN) SIGNALS FOR IMPROVING BANDWIDTH UTILIZATION」的美國臨時申請第63/530,997號的優先權、2023年8月6日提交的標題為「LOW OVERHEAD SEND/RECEIVE DATA DELIVERY INTO USER MEMORY」的美國臨時申請第63/531,000號的優先權、2023年8月6日提交的標題為「IMPROVING FAIRNESS AND CONGESTION CONTROL CONVERGENCE」的美國臨時申請案第63/517,917號的優先權、2023年8月6日提交的標題為「SCALABLE COORDINATION OF CONGESTION CONTROL AND ADAPTIVE LOAD BALANCING」的美國臨時申請案第63/517,918號的優先權、2023年8月6日提交的標題為「EFFICIENTLY COORDINATING CONGESTION CONTROL AND ADAPTIVE LOAD BALANCING」的美國臨時申請案第63/517,919號的優先權,上述申請案皆以引用方式整體併入本文。
本揭示案係關於加權隨機早期回傳傳送者的通知。
隨著愈來愈多的資料及服務透過網路連接在線上儲存及提供,提供高效能及最佳且可靠的使用者體驗是網路提供商及電腦聯網裝置製造商的重要考慮事項。在各種實例中,電腦聯網裝置可包括經由網路封包在電腦網路上通信及交互的電子裝置,該等電子裝置諸如閘道、路由器及交換機。網路封包可為包含控制資訊及使用者資料的格式化資料單元。此種電腦聯網裝置可實施軟體程式,該等軟體程式處理及執行網路操作,諸如封包路由、重寫、濾波等。
對於諸多使用情況,聯網變得越來越重要。例如,諸如大型語言模型(Large Language Model; LLM)的AI模型是在數千個GPU的群集上訓練的,且網路延遲對系統效能至關重要。高效能計算(High-Performance Computing; HPC)是另一種在頻寬及延遲方面要求嚴格的網路效能的使用情況。
正是基於該等及其他考慮,本文提出了該揭示內容。
本文所述的技術透過實施本文所述的方法增強了電腦網路的效能。本揭示案的技術實現了優於現有方法的數個技術益處,特別是實現了最佳化網路通信協定的架構,該等網路通信協定諸如用於諸如人工智慧AI及高效能計算(high-performance computing; HPC)的高效能應用的乙太網。技術優勢包括改進的頻寬、擴展性及更低的延遲。
所揭示的實施例包括一種管理計算網路的方法。將計算節點決定為導致網路擁塞事件。產生擁塞通知訊息,且基於網路擁塞事件的級別決定用於傳送擁塞通知訊息的時序設定檔。基於時序設定檔,擁塞通知訊息被轉發給導致網路擁塞事件的計算節點。
所揭示的實施例進一步包括一種管理實施封包輸送上下文(packet delivery context; PDC)的計算網路的方法。針對要在計算網路上傳輸的資料封包產生熵值。熵值可用於選擇或改變資料封包的網路路徑。回應於接收到資料封包的確認訊息,若熵值被確認為不擁塞,則熵值被保存在儲存結構中。在傳輸額外資料封包時,重新使用來自資料結構的最早保存的熵,且無效化最早保存的熵值。
所揭示的實施例進一步包括一種管理計算網路的方法。存取計算網路中一鏈路的確認訊息。存取鏈路的往返時間(round trip time; RTT)量測結果。回應於已決定確認訊息中沒有一者係顯式擁塞通知(Explicit Congestion Notification; ECN)標記的,且被存取的RTT量測結果中沒有一者超過最小預期延遲臨限值,決定鏈路的端到端路徑不擁塞。
所揭示的實施例進一步包括一種管理實施封包輸送上下文(packet delivery context; PDC)的計算網路的方法。計算網路的網路裝置接收資料封包。回應於決定沒有輸入先前的PDC條目,返回接收方未就緒(Receiver Not Ready; RNR)訊息。回應於決定先前的PDC條目存在且條目的第一訊息已經到達,條目的接收上下文已更新為指示封包已被接收。回應於決定PDC條目已經接收到所有相關的封包,移除PDC條目,且通知相關封包的傳送者:所有封包已被接收到。
所揭示的實施例進一步包括一種管理計算網路的方法。存取計算網路中一鏈路的傳送速率限值與全線路速率的第一比率。存取該鏈路的傳送窗口大小與W_max的第二比率。W_max是最大允許窗口大小或利用鏈路的端到端路徑的窗口大小。回應於鏈路中的網路擁塞指示,第一或第二比率中的一或更多者用於決定縮減該鏈路的傳送速率或窗口的量。
所揭示的實施例進一步包括一種管理實施擁塞控制機制及負載平衡機制的計算網路的方法,其中負載平衡機制在封包級別運行。產生計算網路中擁塞的連接級別度量。連接級別度量是在封包級別上累積的。擁塞控制機制的啟動受到限制,直到累積的連接級別度量達到臨限值。
所揭示的實施例進一步包括一種管理實施擁塞控制機制及負載平衡機制的計算網路的方法。決定網路中哪些可用路由是擁塞的。擁塞控制機制的啟動受到限制,直到決定臨限數目的可用路由為擁塞。此阻止擁塞控制機制對整體傳送速率或窗口的過度衰減。
透過閱讀以下實施方式及查看相關附圖,除上文明確描述的特徵及技術優勢之外的特徵及技術優勢將變得顯而易見。提供本發明內容是為了以簡化形式介紹將在以下實施方式中進一步描述的一系列概念。本發明內容不意欲用於協助決定所主張的標的的範疇。例如,術語「技術」可指系統、方法、電腦可讀指令、模組、演算法、硬體邏輯及/或運算,如上述上下文及整篇文件所允許的。
本文論述的技術增強了電腦聯網的功能。下文參看第1至7圖描述了實現增強的聯網技術的各種實例、場景及態樣。 加權隨機早期回傳傳送者的通知(Weighted Random Early Back-to-Sender Notification; WREB)
計算網路中的典型擁塞訊號傳遞是藉由使用端到端通知來實施的,其中接收節點回應或以其他方式提供關於網路擁塞的存在或程度的通知。一些解決方案提出了一實施方式,透過該實施方式,交換機可參與直接向導致擁塞事件的傳送裝置(例如,回傳傳送者(Back-to-Sender; BTS))傳送通知,以便減少回饋延遲,並使傳送裝置能夠更迅速地回應於擁塞事件。然而,額外的訊號傳遞會導致額外的頻寬管理負擔,因為額外的訊號傳遞沒有揹負在其他控制封包上,諸如傳輸級別遞送確認(傳統擁塞訊號傳遞就是此種情況)。
本揭示案透過以更高效的方式提供擁塞回饋解決了此缺點,最大限度地減少了此類BTS訊號的管理負擔。在一實施例中,BTS訊號傳遞的頻率隨著擁塞程度或級別(例如,佇列長度)按比例變化。例如,當擁塞級別較高或超過臨限值時,BTS訊號傳遞的頻率增加,從而允許在較高擁塞級別下實現更迅速的回應,並在無法保證頻繁的BTS訊號傳遞時減少BTS訊號傳遞的管理負擔。
在一個實施例中,重複使用相同的加權隨機設定檔來產生顯式擁塞通知(Explicit Congestion Notification; ECN)標記(在資料中心乙太網交換機中稱為加權隨機早期偵測(weighted random early detection; WRED))。BTS封包是基於佇列佔用率概率性地產生。在一些實施例中,BTS封包是基於佇列佔用率以線性方式概率性地產生。在其他實施例中,BTS封包是基於佇列佔用率以變化的或非線性的方式概率性地產生。在一些實施例中,泛化所揭示的技術以使用其他擁塞度量或任何度量組合,該等度量諸如佇列大小、梯度、延遲及類似者。
在另一實施例中,揭示了一種用於回應及處理重複BTS封包的機制。一旦資料封包觸發了BTS訊息,則設定其ECN位元。在一個實施方式中,若設定ECN位元,則未來的佇列將不會觸發BTS訊息。一個例外是若資料封包後來被丟棄,則此在任何情況下都會觸發BTS。然而,在此BTS封包中,將設定ECN位元,而在較早的BTS封包中,不設定ECN位元,或反之亦然(在較晚的BTS封包中,將不設定ECN位元,而在較早的BTS封包中,設定ECN位元)。因此,傳送者可透過讀取進入BTS的ECN位元,來區分BTS已經觸發早期BTS的情況(即,傳送者正在接收同一訊息的第二BTS)。
在一些實施例中,可將以下訊號中一或更多者添加到BTS封包中:(1)相對佇列大小,(2)活動輸出流的數目,(3)在埠上的總傳輸位元組及/或交換機內的佇列組合連同彼快照的時間戳記,(4)埠的累積緩衝器佔用率及/或緩衝器級別(可按QoS佇列群組細分),(5)佇列大小梯度(例如,佇列增加的速度如何),及帶內網路遙測(in-band network telemetry; INT)上下文中使用的更一般的其他訊號。該等參數可以任意組合用於概率性地產生BTS封包。在其他實施例中可使用其他參數。
所述框架亦可應用於離開佇列的封包。第1A圖示出了所揭示的實施例的各個態樣。在計算網路100中,計算網路100的網路裝置104決定計算節點108正在導致網路擁塞事件101。例如,網路節點可為資料中心中的網站107或網路網站102的部分。亦可實施額外網站110的其他節點111。回應於該決定,產生擁塞通知訊息109。基於網路擁塞事件101的級別106來決定用於傳送擁塞通知訊息的時序設定檔105。在一些實施例中,本揭示案的態樣可在網路擁塞管理器103中實施。網路擁塞管理器103可在NIC、其他網路裝置或計算裝置中實施。基於時序設定檔105,擁塞通知訊息109被轉發到經決定為導致網路擁塞事件101的計算節點108。
現在參看第2A圖,圖中示出了用於管理計算網路的示例操作程序。
此類操作程序可由第1至7圖所示的一或更多個部件提供。該操作程序可在包括一或更多個網路裝置或計算裝置的系統中實施。一般技藝人士應該理解,本文揭示的方法的操作不一定以任何特定的順序呈現,且有可能及可設想以另一順序執行一些或所有操作。為了便於描述及說明,已經按照所演示的順序介紹了該等操作。在不脫離所附申請專利範圍的範疇的情況下,可添加、省略、一起執行及/或同時執行操作。
亦應理解,所示方法可在任何時候結束,且無需全部執行。如本文所定義的,方法的一些或所有操作及/或基本上等同的操作可透過執行包括在電腦儲存媒體上的電腦可讀指令來執行。在說明書及申請專利範圍中使用的術語「電腦可讀指令」及其變體在本文中被廣泛地用於包括常式、應用、應用模組、程式模組、程式、部件、資料結構、演算法及類似者。電腦可讀指令可在各種系統配置上實施,包括單處理器或多處理器系統、小型電腦、大型電腦、個人電腦、手持計算裝置、基於微處理器的可程式設計消費電子元件、上述各者的組合及類似者。
應認識到,本文所述的邏輯操作作為以下各者來實施:(1)一系列電腦實施的動作或在計算系統上運行的程式模組,諸如本文描述的彼等,及/或(2)在計算系統內的互連機器邏輯電路或電路模組。實施方式取決於計算系統的效能及其他要求的選擇。因此,可用軟體、韌體、專用數位邏輯及上述各者的任意組合來實施邏輯操作。因此,儘管常式200被描述為在系統上運行,但是可理解,常式200及此處所描述的其他操作可在單個計算裝置或數個裝置上執行。
參看第2A圖,操作201示出了由計算網路的網路裝置決定計算節點正在導致網路擁塞事件。
操作203示出了回應於該決定,導致擁塞通知訊息的產生。
操作205示出了基於網路擁塞事件的級別決定用於傳送擁塞通知訊息的時序設定檔。
操作207示出了基於時序設定檔,將擁塞通知訊息轉發至經決定為導致網路擁塞事件的計算節點。
回收熵封包噴霧(Recycled Entropies Packet Spraying; REPS)
本揭示案描述了用於將熵保存在「線上」的技術,其中無需分配記憶體來追蹤在整個連接壽命期間使用的所有良好熵。在一實施例中,追蹤已知是良好的且尚未回收的熵。
如本文所用,熵指示可用於選擇或改變網路路徑的值或訊號。例如,當使用ECMP時,熵用於改變決定經由交換機的路由的ECMP醢序。報頭中任何值的改變皆將導致ECMP醢序函數選擇另一隨機路徑。因此,在該上下文中,熵是對應於網路路由的任何位元、值或訊號,且可用於選擇或改變指向網路上的一裝置的網路路徑,其中具有相同熵的封包採用相同的路徑,而具有不同熵的封包可採用不同的路徑(且亦可再次隨機醢序到相同的路徑)。術語熵亦可被稱為路由選擇器或路由值。
在一實施例中,最初(例如,在接收到任何確認(acknowledgement; ACK)之前):為每個傳輸封包產生不同的熵。在一實施例中,熵可隨機產生,或者在整個熵列表或範圍中使用輪訓產生。在一實例中,新的熵值可為列表中的下一個值,或者進行了決定性地改變或遞增。
在一實施例中,當收到ACK時,被確認為不擁塞的熵(即良好熵)被保存到資料結構中,諸如圓形FIFO。應當理解,可實施其他資料結構。
回應於發送額外封包,重新使用及無效化保存的熵(或以其他方式防止重新使用)。若沒有有效的熵可重新使用,則藉由使用本文描述的各種方法,包括使用諸如計數器的高效機制,來使用不同的熵。透過實施此種機制,有可能避免重新使用經歷擁塞的熵,同時再循環沒有經歷或遇到擁塞的熵。
當連接不再有傳輸時,將如上所述對根據最後一批ACK觀察到的良好熵進行緩存。若連接被標記為「遞迴」(即,當該連接沿著同一組其他遞迴連接恢復傳輸時,良好熵將在稍後時間再次與該同一連接相關),保存該等良好熵將是有益的,例如離線保存。否則,該等緩衝的熵將最終失效。
圓形FIFO緩衝器無需靜態專用於每個連接。圓形FIFO緩衝器可在資料結構中動態分配,並跨NIC上的所有連接或連接子集共用。因此,沒有必要最佳化每個連接的圓形FIFO緩衝器預算。NIC在RTT(例如,最大資料中心內RTT)內只能接收某些有限數目的ACK,且共用資料結構的大小可為該最大數目的函數。
第1B圖示出了揭示實施例的各個態樣。在實施封包輸送上下文(packet delivery context; PDC)的計算網路115中,為要在計算網路115上傳輸的資料封包117產生熵值116。熵值116可用於選擇或改變資料封包117的網路路徑118。網路路徑118可穿過多個網路裝置或節點,該等網路裝置或節點可包括節點A 121、節點B 123、節點C 122及節點D 124,及交換機1 125及交換機2 126。回應於接收到資料封包的確認訊息,若熵值116被確認為不擁塞,則熵值116被保存在儲存結構119中。當傳輸額外資料封包時,從資料結構119中重新使用最早保存的熵120,且最早保存的熵值120被無效化。
現在參看第2B圖,示出了用於管理實施封包輸送上下文(packet delivery context; PDC)的計算網路的示例操作程序210。
此類操作程序可由第1至7圖所示的一或更多個部件提供。該操作程序可在包括一或更多個網路裝置或計算裝置的系統中實施。一般技藝人士應該理解,本文揭示的方法的操作不一定以任何特定的順序呈現,且有可能及可設想以另一順序執行一些或所有操作。為了便於描述及說明,已經按照所演示的順序介紹了該等操作。在不脫離所附申請專利範圍的範疇的情況下,可添加、省略、一起執行及/或同時執行操作。
亦應理解,所示方法可在任何時候結束,且無需全部執行。如本文所定義的,方法的一些或所有操作及/或基本上等同的操作可透過執行包括在電腦儲存媒體上的電腦可讀指令來執行。在說明書及申請專利範圍中使用的術語「電腦可讀指令」及其變體在本文中被廣泛地用於包括常式、應用、應用模組、程式模組、程式、部件、資料結構、演算法及類似者。電腦可讀指令可在各種系統配置上實施,包括單處理器或多處理器系統、小型電腦、大型電腦、個人電腦、手持計算裝置、基於微處理器的可程式設計消費電子元件、上述各者的組合及類似者。
應認識到,本文所述的邏輯操作作為以下各者來實施:(1)一系列電腦實施的動作或在計算系統上運行的程式模組,諸如本文描述的彼等,及/或(2)在計算系統內的互連機器邏輯電路或電路模組。實施方式取決於計算系統的效能及其他要求的選擇。因此,可用軟體、韌體、專用數位邏輯及上述各者的任意組合來實施邏輯操作。因此,儘管常式210被描述為在系統上運行,但是可理解,常式210及此處所描述的其他操作可在單個計算裝置或數個裝置上執行。
參看第2B圖,操作211示出了針對將在計算網路上傳輸的封包產生熵值,該熵值可用於選擇或改變資料封包的網路路徑。
操作213示出了回應於接收到資料封包的確認訊息,若熵值被確認為不擁塞,則將熵值保存在儲存結構中。
操作215示出了在傳輸額外資料封包時,重新使用資料結構中最早保存的熵,並使最早保存的熵值無效化。 利用往返時間(Round-Trip Time; RTT)及顯式擁塞通知(Explicit Congestion Notification; ECN)訊號來提高頻寬利用率
RTT及ECN訊號通常用於資料中心網路的擁塞控制機制。通常為每個封包量測及報告RTT。因此,有可能決定是否有任何特定封包經歷了擁塞。使用RTT作為訊號的一個缺點是,其不指示在對應封包離開彼等網路裝置時所穿過的網路裝置上的最近擁塞狀態。例如,特定封包可能沒有遇到擁塞,儘管在該封包已經穿過網路之後發生了擁塞事件(例如,當該封包在交換機上被服務時,在該封包之後堆積了大量佇列)。ECN訊號通常被概率性地應用於離開擁塞交換機的封包,此意味著儘管封包已經穿過擁塞交換機,但是一些封包仍可能沒有接收到ECN訊號。
與RTT訊號不同,ECN標記反映了封包離開時交換機的當前擁塞狀態,無論封包自身是否遇到擁塞。
在各種實施例中,RTT訊號及ECN訊號均用於決定連接增加其速率或窗口以更好地利用其端到端路徑是否安全。在一個實施例中,在窗口時期(對於基於窗口的擁塞控制機制)或時間週期(對於基於速率的擁塞控制機制)內的連接級別觀察所有確認。在一實施例中,決定是否:(1)確認(acknowledgement; ACK)中沒有一者係ECN標記的,及(2)報告的RTT量測結果中沒有一者超過了預期的延遲臨限值。此臨限值可程式設計為拓撲、MTU大小、鏈路速度及其他參數的函數。若(1)及(2)都為真,則可決定對應連接的整個端到端路徑不擁塞,且更可能未被充分利用,從而將安全地保證積極的頻寬恢復操作(例如,TCP慢啟動)。
第1C圖示出了所揭示實施例的各個態樣。在計算網路130中,針對計算網路130中的鏈路132存取確認訊息131。針對鏈路132存取往返時間(Round-Trip Time; RTT)量測結果133。鏈路132可穿過多個網路裝置或節點,該等網路裝置或節點可包括節點A 134、節點B 138、節點C 136及節點D 139,及交換機1 135及交換機2 137。回應於決定確認訊息131中沒有一者係顯式擁塞通知(Explicit Congestion Notification; ECN)標記的,且已存取的RTT量測結果133中沒有一者超過最小預期延遲臨限值,決定鏈路132的端到端路徑不擁塞。
現在參看第2C圖,示出了用於管理計算網路的示例操作程序220。
此類操作程序可由第1至7圖所示的一或更多個部件提供。該操作程序可在包括一或更多個網路裝置或計算裝置的系統中實施。一般技藝人士應該理解,本文揭示的方法的操作不一定以任何特定的順序呈現,且有可能及可設想以另一順序執行一些或所有操作。為了便於描述及說明,已經按照所演示的順序介紹了該等操作。在不脫離所附申請專利範圍的範疇的情況下,可添加、省略、一起執行及/或同時執行操作。
亦應理解,所示方法可在任何時候結束,且無需全部執行。如本文所定義的,方法的一些或所有操作及/或基本上等同的操作可透過執行包括在電腦儲存媒體上的電腦可讀指令來執行。在說明書及申請專利範圍中使用的術語「電腦可讀指令」及其變體在本文中被廣泛地用於包括常式、應用、應用模組、程式模組、程式、部件、資料結構、演算法及類似者。電腦可讀指令可在各種系統配置上實施,包括單處理器或多處理器系統、小型電腦、大型電腦、個人電腦、手持計算裝置、基於微處理器的可程式設計消費電子元件、上述各者的組合及類似者。
應認識到,本文所述的邏輯操作作為以下各者來實施:(1)一系列電腦實施的動作或在計算系統上運行的程式模組,諸如本文描述的彼等,及/或(2)在計算系統內的互連機器邏輯電路或電路模組。實施方式取決於計算系統的效能及其他要求的選擇。因此,可用軟體、韌體、專用數位邏輯及上述各者的任意組合來實施邏輯操作。因此,儘管常式220被描述為在系統上運行,但是可理解,常式220及此處所描述的其他操作可在單個計算裝置或數個裝置上執行。
參看第2C圖,操作221示出了存取計算網路中鏈路的確認訊息。
操作223示出了針對鏈路存取往返時間(Round-Trip Time; RTT)量測結果。
操作225示出了回應於決定確認訊息中沒有一者係顯式擁塞通知(Explicit Congestion Notification; ECN)標記的,且已存取的RTT量測結果中沒有一者超過最小預期延遲臨限值:決定鏈路的端到端路徑不擁塞。 將低管理負擔傳送/接收資料輸送到使用者記憶體中
當今大多數分散式AI工作負載在某種類型的類NCCL介面(此處稱為*CCL)上運行。彼等*CCL資料館提供了數個通信常式,分為兩類:訊息傳遞(message passing; MP)及集合。
訊息傳遞(message passing; MP,有時稱為「點對點」)API調用及集合簽名的實例可包括各種訊息傳遞介面(Message Passing Interface; MPI)調用。
在一實施例中,定義了一種架構,該架構能夠在無連接設定中實施AI MP語義,而無需額外管理負擔(具有單個封包匹配/TCAM引擎步驟)。此架構為MP語義提供了RMA語義(及RDMA實施方式)的大部分益處。具體而言,該架構僅需為每個封包進行一次匹配,就可將資料輸送到使用者記憶體中。
UEC網路介面卡(Network Interface Card; NIC)不使用連接,而是使用可能僅針對單個訊息傳輸而存在的封包輸送上下文(packet delivery context; PDC)。然而,為了可靠性,NIC需要將傳入的封包與PDC相匹配——且NIC需要PDC來傳輸任何訊息。相同的匹配機制不僅可用於將封包匹配到PDC,亦可用於將封包匹配到訊息。此可被視為合併(打破)語義與封包輸送子層之間的分層。在一實施例中,考慮匹配表字典(match table dictionary; MTD,通常作為TCAM或醢序函數實施),其將源位址及連續訊息序號(message sequence number; MSN)的串聯匹配到匹配資料結構。隨後,匹配包含指向對應活動PDC或空PDC金絲雀值的指標。多個不同的匹配可指向同一PDC,因為PDC在源與目的地對之間是全域的,且處理所有封包傳輸(對於多個可能同時到達的訊息的封包)。
基於src(「同級」)及特定於每個源的MSN的運行計數器,由語義層(原子層級)安裝匹配。MSN允許來自不同訊息的無序到達的封包匹配到正確的recv()調用(以正確的順序)。每個匹配都攜帶接收方指定的目標緩衝器(*CCL MP語義)。每個封包攜帶其在目標緩衝器中的偏移量或者訊息的封包編號,以便能夠計算偏移量。因此,到達的封包可獨立於其到達順序而被提交到記憶體。接收方維護一位元映像(此可與匹配相關聯)來決定訊息何時完成。源處的PDC層照常處理超時及重傳。當語義層插入匹配時,NIC附加與源相關的當前活動PDC,或在原子層級創建並附加空PDC。此可透過將虛設SYN封包插入封包排序緩衝邏輯來執行。以此方式,匹配條目總是附有有效的PDC。
若封包在語義層發佈recv()之前到達,則其將無法匹配(傳入的封包可能已創建新的PDC或可能已重複使用現有的PDC)。基於到達的封包,一特殊的金絲雀值「匹配失敗」被在原子層級插入到匹配表中,並向源傳送「請求等待」(request to wait; RTW)訊息。收到RTW後,源將停止傳送。與匹配表中「匹配失敗」(或不存在)條目匹配的每個傳入的封包將觸發此種RTW訊息。因此,不需要重傳RTW。一旦語義層發佈recv(),語義層將在匹配表中找到「匹配失敗」條目。隨後,語義層在原子層級將「匹配失敗」條目更新為正確的匹配資訊,並向源傳送「請求傳送」(request to send; RTS)訊息。(請注意,RTS可被稱為其他訊息名稱,諸如「請求恢復」(request to resume; RTR))。一旦接收到RTS訊息,源就從第一個封包重新開始訊息傳輸。在接收到RTW時,源可停止前往目標程序的所有訊息,或者僅停止所討論的訊息,若PDC在給定時間內沒有接收到來自源的資料訊息,則由PDC層重傳RTS訊息(此不需要封包序號(packet sequence number; PSN),因為在src-dest PDC上任何時候都只有一個RTS是活動的)。由RTS觸發的傳入訊息將立即保證匹配。此RTW協定將重傳/浪費一個BDP資料,此在傳送總是以全速執行且假設在目的地不執行緩衝時是最佳的。類似地,傳送者可傳送其當前窗口大小的資料串流,隨後接收方可在接收發佈時(在初始訊息到達之前或之後)從源擷取剩餘的資料。在一實施例中,更一般而言,可傳送一BDP的資料(例如,大小BDP的訊息),隨後可用另一機制來擷取剩餘的資料,例如,藉由使用會合協定,或者更一般而言,使用賦能協調或同步通信的通信協定。
所述的*CCL型匹配機制可在硬體中實施。在一實施例中,傳送者有用於每個傳送(訊息)的一狀態機,當語義層提交傳送時,狀態機以狀態「傳送」開始,且當接收到所有ACK時,狀態轉換到「完成」。當接收到RTW時,狀態轉換為「等待」,而當接收到RTS時,狀態轉換回「傳送」。在「傳送」時,每個封包由PDC使用其自身的(標準)狀態機,利用CC/LB及重傳邏輯進行傳輸。當收到所有ACK時,狀態轉換為「完成」。接收方的狀態機是類似的,且在每個recv的MTD狀態下被捕獲。當recv狀態的對應匹配被添加到MTD時,及在封包接收期間,該recv狀態變為「已發佈」。若訊息在發佈之前到達,則狀態可為「不存在」,而當接收到所有資料時,狀態可為「完成」。
第1D至1F圖示出了UEC上下文中的上述協定的各種實例,第1D圖示出了傳送封包到達時接收方已準備就緒且recv已發佈的實例。第1D圖示出了具有語義層141、封包輸送層142、封包輸送層143及語義層144的流程圖140。在第1D至1F圖中,「fa」是指作為節點位址(且如IP位址)的結構位址。因此,在send(fa,addi,2)中引用結構位址,addr引用局部位址,而「2」引用預期的位元組數或封包數或其他度量數。此外,「msn」是指訊息序號,而「psn」是指封包序號。
第1E圖示出了具有語義層141、封包輸送層142、封包輸送層143及語義層144的流程圖150。第1E圖示出了接收方未就緒的實例,此實質上浪費了線路上的BDP。當接收方沒有找到條目時,接收方傳送一等待請求並暫存該條目。稍後,當找到該封包的條目時,則發送傳送請求/開始請求/重啟請求/恢復請求。
第1F圖示出了具有語義層141、封包輸送層142、封包輸送層143及語義層144的流程圖160。第1F圖示出了具有無序輸送、有序匹配及PDC就緒的兩個訊息的接收方就緒實例。
第1J圖示出了所揭示的實施例的各個態樣。在實施封包輸送上下文(packet delivery context; PDC)的計算網路145中,網路裝置196接收資料封包149。回應於未輸入決定先前的PDC條目146,返回接收方未就緒(Receiver Not Ready; RNR)訊息194。回應於決定先前的PDC條目146存在且該條目的第一訊息已經到達,該條目更新了接收上下文147以指示該封包已被接收。回應於決定PDC條目146已經接收到所有相關封包,移除PDC條目,且相關封包的傳送者被通知195已經接收到所有封包。
第1K圖示出了所揭示的實施例的各個態樣。在實施封包輸送上下文(packet delivery context; PDC)的計算網路145中,接收資料封包149。藉由使用匹配表187將資料封包的源位址188及連續訊息序號(message sequence number; MSN) 189的串聯與匹配資料結構127相匹配,語義層129基於源及每個源的MSN的運行計數器將匹配的串聯插入到匹配資料結構127中。網路裝置196(在一些實施方式中可為NIC)附接與源相關聯的當前活動PDC 199,或者在原子層級上創建並附接空PDC。回應於語義層129發佈recv()之前到達的封包,將金絲雀值128「匹配失敗」在原子層級上插入到匹配資料結構127中,並將請求等待(request to wait; RTW)訊息198傳送到源。回應於語義層發佈129 recv(),語義層129辨識匹配資料結構127中的「匹配失敗」條目。用正確的匹配資訊在原子層級上更新「匹配失敗」條目,且向源傳送請求傳送(request to send; RTS)訊息197。
現在參看第2D圖,示出了用於管理計算網路的示例操作程序230。
此類操作程序可由第1至7圖所示的一或更多個部件提供。該操作程序可在包括一或更多個網路裝置或計算裝置的系統中實施。一般技藝人士應該理解,本文揭示的方法的操作不一定以任何特定的順序呈現,且有可能及可設想以另一順序執行一些或所有操作。為了便於描述及說明,已經按照所演示的順序介紹了該等操作。在不脫離所附申請專利範圍的範疇的情況下,可添加、省略、一起執行及/或同時執行操作。
亦應理解,所示方法可在任何時候結束,且無需全部執行。如本文所定義的,方法的一些或所有操作及/或基本上等同的操作可透過執行包括在電腦儲存媒體上的電腦可讀指令來執行。在說明書及申請專利範圍中使用的術語「電腦可讀指令」及其變體在本文中被廣泛地用於包括常式、應用、應用模組、程式模組、程式、部件、資料結構、演算法及類似者。電腦可讀指令可在各種系統配置上實施,包括單處理器或多處理器系統、小型電腦、大型電腦、個人電腦、手持計算裝置、基於微處理器的可程式設計消費電子元件、上述各者的組合及類似者。
應認識到,本文所述的邏輯操作作為以下各者來實施:(1)一系列電腦實施的動作或在計算系統上運行的程式模組,諸如本文描述的彼等,及/或(2)在計算系統內的互連機器邏輯電路或電路模組。實施方式取決於計算系統的效能及其他要求的選擇。因此,可用軟體、韌體、專用數位邏輯及上述各者的任意組合來實施邏輯操作。因此,儘管常式230被描述為在系統上運行,但是可理解,常式230及此處所描述的其他操作可在單個計算裝置或數個裝置上執行。
參看第2D圖,操作231示出了計算網路的網路裝置接收資料封包。
操作233示出了回應於決定未輸入先前的PDC條目,從而返回接收方未就緒(Receiver Not Ready; RNR)訊息。
操作235示出了回應於決定先前的PDC條目存在,且條目的第一訊息已到達,從而更新條目的接收上下文以指示接收到封包。
操作237示出了回應於決定PDC條目已接收所有相關封包,移除PDC條目,並通知相關封包的傳送者已接收到所有封包。
現在參看第2H圖,示出了用於管理實施封包輸送上下文(packet delivery context; PDC)的計算網路的示例操作程序270。
此類操作程序可由第1至7圖所示的一或更多個部件提供。該操作程序可在包括一或更多個網路裝置或計算裝置的系統中實施。一般技藝人士應該理解,本文揭示的方法的操作不一定以任何特定的順序呈現,且有可能及可設想以另一順序執行一些或所有操作。為了便於描述及說明,已經按照所演示的順序介紹了該等操作。在不脫離所附申請專利範圍的範疇的情況下,可添加、省略、一起執行及/或同時執行操作。
亦應理解,所示方法可在任何時候結束,且無需全部執行。如本文所定義的,方法的一些或所有操作及/或基本上等同的操作可透過執行包括在電腦儲存媒體上的電腦可讀指令來執行。在說明書及申請專利範圍中使用的術語「電腦可讀指令」及其變體在本文中被廣泛地用於包括常式、應用、應用模組、程式模組、程式、部件、資料結構、演算法及類似者。電腦可讀指令可在各種系統配置上實施,包括單處理器或多處理器系統、小型電腦、大型電腦、個人電腦、手持計算裝置、基於微處理器的可程式設計消費電子元件、上述各者的組合及類似者。
應認識到,本文所述的邏輯操作作為以下各者來實施:(1)一系列電腦實施的動作或在計算系統上運行的程式模組,諸如本文描述的彼等,及/或(2)在計算系統內的互連機器邏輯電路或電路模組。實施方式取決於計算系統的效能及其他要求的選擇。因此,可用軟體、韌體、專用數位邏輯及上述各者的任意組合來實施邏輯操作。因此,儘管常式270被描述為在系統上運行,但是可理解,常式270及此處所描述的其他操作可在單個計算裝置或數個裝置上執行。
參看第2H圖,操作271示出了接收資料封包。
操作273示出了使用匹配表將資料封包源位址及連續訊息序號(message sequence number; MSN)的串聯與匹配資料結構進行匹配。
操作275示出了由語義層基於源及每個源的MSN的運行計數器而將匹配的串聯插入匹配資料結構。
操作277示出了透過NIC附接與源相關聯的當前活動PDC,或在原子層級上創建並附接空PDC。
操作279示出了回應於在語義層發佈recv()之前到達的封包,由到達的封包在原子層級上將金絲雀值「匹配失敗」插入匹配資料結構,並向源傳送請求等待(request to wait; RTW)訊息。
操作281示出了回應於語義層發佈recv():
由語義層辨識匹配資料結構中的「匹配失敗」條目。
操作283示出了使用匹配資訊在原子層級上更新「匹配失敗」條目。
操作285示出了向源傳送請求傳送(request to send; RTS)訊息。
改善公平性及擁塞控制收斂
諸多擁塞控制方案透過迭代縮減傳送速率或窗口(例如,允許在時間窗口內傳送的封包數目)來解決正在發生的擁塞,該傳送速率或窗口與擁塞度量(例如,由網路裝置發出訊號或根據端到端往返時間量測結果推斷)或該等量測結果的頻率(例如,適用於ECN的情況)成函數關係。通常,縮減量是一恆定值。
在一實施例中,以下比率包括在速率或窗口縮減的決定中:
1.對於基於速率的機制(或結合當前速率限值及全線路速率的函數),傳送速率限值與全線路速率(即網路介面卡(network interface card; NIC)速度)的比率。
2.傳送窗口大小與W_max的比率,其中W_max是最大允許窗口大小,或者是針對基於窗口的方案(或者組合當前窗口大小及W_max的任何函數)而言足夠大以充分利用端到端路徑的窗口大小(例如,頻寬延遲乘積(bandwidth delay product; BDP))。
比率越大,速率或窗口削減就需要越大,因為速率或窗口可指示當前連接在導致擁塞事件方面所負的責任程度。
第1G圖示出了所揭示的實施例的各個態樣。在計算網路170中,存取第一比率171。第一比率171是計算網路170中的鏈路174的傳送速率限值172與全線路速率173的比率。存取第二比率175。第二比率175是鏈路的傳送窗口大小176與W_max 177的比率。W_max 177是最大允許窗口大小或利用鏈路174的端到端路徑的窗口大小。回應於鏈路174中的網路擁塞指示,使用第一比率171或第二比率175中的一或更多者來決定縮減該鏈路的傳送速率或窗口的量。網路節點108可為例如網站107或網路網站102的部分。亦可實施額外網站110的其他節點111。在一些實施例中,本揭示案的態樣可在網路擁塞管理器103中實施。
現在參看第2E圖,示出了用於管理計算網路的示例操作程序240。
此類操作程序可由第1至7圖所示的一或更多個部件提供。該操作程序可在包括一或更多個網路裝置或計算裝置的系統中實施。一般技藝人士應該理解,本文揭示的方法的操作不一定以任何特定的順序呈現,且有可能及可設想以另一順序執行一些或所有操作。為了便於描述及說明,已經按照所演示的順序介紹了該等操作。在不脫離所附申請專利範圍的範疇的情況下,可添加、省略、一起執行及/或同時執行操作。
亦應理解,所示方法可在任何時候結束,且無需全部執行。如本文所定義的,方法的一些或所有操作及/或基本上等同的操作可透過執行包括在電腦儲存媒體上的電腦可讀指令來執行。在說明書及申請專利範圍中使用的術語「電腦可讀指令」及其變體在本文中被廣泛地用於包括常式、應用、應用模組、程式模組、程式、部件、資料結構、演算法及類似者。電腦可讀指令可在各種系統配置上實施,包括單處理器或多處理器系統、小型電腦、大型電腦、個人電腦、手持計算裝置、基於微處理器的可程式設計消費電子元件、上述各者的組合及類似者。
應認識到,本文所述的邏輯操作作為以下各者來實施:(1)一系列電腦實施的動作或在計算系統上運行的程式模組,諸如本文描述的彼等,及/或(2)在計算系統內的互連機器邏輯電路或電路模組。實施方式取決於計算系統的效能及其他要求的選擇。因此,可用軟體、韌體、專用數位邏輯及上述各者的任意組合來實施邏輯操作。因此,儘管常式240被描述為在系統上運行,但是可理解,常式240及此處所描述的其他操作可在單個計算裝置或數個裝置上執行。
參看第2E圖,操作241示出了存取計算網路中一鏈路的傳送速率限值與全線路速率的第一比率。
操作243示出了存取該鏈路的傳送窗口大小與W_max的第二比率,其中W_max是最大允許窗口大小或利用鏈路的端到端路徑的窗口大小。
操作245示出了回應於鏈路中的網路擁塞指示,使用第一或第二比率中的一或更多者來決定縮減鏈路的傳送速率或窗口的量。 擁塞控制的可擴展協調及自適應負載平衡
擁塞控制是一種意欲消除網路瓶頸處的擁塞的機制,而自適應負載平衡是一種意欲將傳輸量均勻分佈在整個網路路徑上並防止造成此類網路瓶頸的機制(假設網路中的整體傳送速率或窗口已全域衰減至其所需的穩態值)。在允許連接(例如,qpair,即更一般而言,執行每個擁塞控制實例的實體)同時穿過多條路徑(可能具有不同的負載及擁塞程度)的情況下,該等擁塞控制及負載平衡機制可能在以下意義上相互干擾:
1)擁塞控制機制可能過度反應並過度衰減整體傳送速率或窗口,從而導致負載平衡機制因不存在要避免的熱點的誤導性假設而不當地停止嘗試改善當前次優或不平衡的傳輸量-路徑分佈。
2)負載平衡機制可足夠頻繁地重新路由傳輸量,以使擁塞訊號變得不相關:例如,在傳輸量被重新路由之前,傳輸量的某部分經訊號通知為擁塞,此可能會導致擁塞控制過度反應,除非擁塞控制機制將此類訊號作為不相關而排除。注意,自適應負載平衡以極高頻率執行(例如,在封包級別),擁塞控制機制可能最終忽視大多數擁塞資訊,即使該機制本不應該忽略該等資訊。
當資料傳輸量在封包級別實現負載平衡時,追蹤擁塞路徑集(其上的連接為多路徑)可能需要大量資源。在一實施例中,擁塞的整體連接級別度量累積,在封包級別更新,且僅當該度量超過足夠高的臨限值時才允許擁塞啟動。在一個實施例中,藉由使用指數加權平均來累積擁塞的連接級別度量。可基於分析、實驗、拓撲及類似物為給定網路決定臨限值。
第1H圖示出了所揭示的實施例的各個態樣。實施擁塞控制機制186及負載平衡機制的計算網路180,可在網路擁塞管理器181中實施。在一實施例中,負載平衡機制在封包級別182運行。針對計算網路180中的擁塞產生連接級別度量183。連接級別度量183在封包級別182累積。擁塞控制機制186的啟動被限制184,直到累積的連接級別度量183達到臨限值185。
現在參看第2F圖,示出了用於管理實施擁塞控制機制及負載平衡機制的計算網路的示例操作程序250,其中負載平衡機制在封包級別運行。
此類操作程序可由第1至7圖所示的一或更多個部件提供。該操作程序可在包括一或更多個網路裝置或計算裝置的系統中實施。一般技藝人士應該理解,本文揭示的方法的操作不一定以任何特定的順序呈現,且有可能及可設想以另一順序執行一些或所有操作。為了便於描述及說明,已經按照所演示的順序介紹了該等操作。在不脫離所附申請專利範圍的範疇的情況下,可添加、省略、一起執行及/或同時執行操作。
亦應理解,所示方法可在任何時候結束,且無需全部執行。如本文所定義的,方法的一些或所有操作及/或基本上等同的操作可透過執行包括在電腦儲存媒體上的電腦可讀指令來執行。在說明書及申請專利範圍中使用的術語「電腦可讀指令」及其變體在本文中被廣泛地用於包括常式、應用、應用模組、程式模組、程式、部件、資料結構、演算法及類似者。電腦可讀指令可在各種系統配置上實施,包括單處理器或多處理器系統、小型電腦、大型電腦、個人電腦、手持計算裝置、基於微處理器的可程式設計消費電子元件、上述各者的組合及類似者。
應認識到,本文所述的邏輯操作作為以下各者來實施:(1)一系列電腦實施的動作或在計算系統上運行的程式模組,諸如本文描述的彼等,及/或(2)在計算系統內的互連機器邏輯電路或電路模組。實施方式取決於計算系統的效能及其他要求的選擇。因此,可用軟體、韌體、專用數位邏輯及上述各者的任意組合來實施邏輯操作。因此,儘管常式250被描述為在系統上運行,但是可理解,常式250及此處所描述的其他操作可在單個計算裝置或數個裝置上執行。
參看第2F圖,操作251示出了為計算網路中的擁塞產生連接級別度量。
操作253示出了在封包級別累積連接級別度量。
操作255示出了限制擁塞控制機制的啟動,直到累積的連接級別度量達到臨限值。 高效協調擁塞控制及自適應負載平衡
擁塞控制是一種意欲消除網路瓶頸處的擁塞的機制,而自適應負載平衡是一種意欲將傳輸量均勻分佈在整個網路路徑上並防止造成此類網路瓶頸的機制(假設網路中的整體傳送速率或窗口已全域衰減至其所需的穩態值)。在允許連接(例如,qpair,即更一般而言,執行每個擁塞控制實例的實體)同時穿過多條路徑(可能具有不同的負載及擁塞程度)的情況下,該等擁塞控制及負載平衡機制可能在以下意義上相互干擾:
1)擁塞控制機制可能過度反應並過度衰減整體傳送速率或窗口,從而導致負載平衡機制因不存在要避免的熱點的誤導性假設而不當地停止嘗試改善當前次優或不平衡的傳輸量-路徑分佈。
2)負載平衡機制可足夠頻繁地重新路由傳輸量,以使擁塞訊號變得不相關:例如,在傳輸量被重新路由之前,傳輸量的某部分經訊號通知為擁塞,此可能會導致擁塞控制過度反應,除非擁塞控制機制將此類訊號作為不相關而排除。注意,自適應負載平衡以極高頻率執行(例如,在封包級別),擁塞控制機制可能最終忽視大多數擁塞資訊,即使該機制本不應該忽略該等資訊。
在一實施例中,阻止擁塞控制機制啟動,直至大部分可用路由被視為擁塞(亦即,跨不同的所穿過路徑在整體級別上)。在一個實施例中,在路徑級別追蹤擁塞資訊。在一個實例中,連接被定義為在相對較小的一組路徑上傳播其傳輸量,因為該等路徑中的每一者都可獲得自身的擁塞度量,從而允許高效地決定大多數子路徑是否擁塞。
第1I圖示出了所揭示的實施例的各個態樣。計算網路190實施擁塞控制機制及負載平衡機制。決定網路中哪些可用路由191為擁塞192。可為具有多個網路裝置或節點的網路決定擁塞192,該等網路裝置或節點可包括節點A 10、節點B 11、節點C 12及節點D 13,及交換機1 15及交換機2 16。擁塞控制機制的啟動受到限制,直到臨限數目193的可用路目191經決定為擁塞192。此阻止了擁塞控制機制對整體傳送速率或窗口的過度衰減。
現在參看第2G圖,示出了用於管理實施擁塞控制機制及負載平衡機制的計算網路的示例操作程序260。
此類操作程序可由第1至7圖所示的一或更多個部件提供。該操作程序可在包括一或更多個網路裝置或計算裝置的系統中實施。一般技藝人士應該理解,本文揭示的方法的操作不一定以任何特定的順序呈現,且有可能及可設想以另一順序執行一些或所有操作。為了便於描述及說明,已經按照所演示的順序介紹了該等操作。在不脫離所附申請專利範圍的範疇的情況下,可添加、省略、一起執行及/或同時執行操作。
亦應理解,所示方法可在任何時候結束,且無需全部執行。如本文所定義的,方法的一些或所有操作及/或基本上等同的操作可透過執行包括在電腦儲存媒體上的電腦可讀指令來執行。在說明書及申請專利範圍中使用的術語「電腦可讀指令」及其變體在本文中被廣泛地用於包括常式、應用、應用模組、程式模組、程式、部件、資料結構、演算法及類似者。電腦可讀指令可在各種系統配置上實施,包括單處理器或多處理器系統、小型電腦、大型電腦、個人電腦、手持計算裝置、基於微處理器的可程式設計消費電子元件、上述各者的組合及類似者。
應認識到,本文所述的邏輯操作作為以下各者來實施:(1)一系列電腦實施的動作或在計算系統上運行的程式模組,諸如本文描述的彼等,及/或(2)在計算系統內的互連機器邏輯電路或電路模組。實施方式取決於計算系統的效能及其他要求的選擇。因此,可用軟體、韌體、專用數位邏輯及上述各者的任意組合來實施邏輯操作。因此,儘管常式260被描述為在系統上運行,但是可理解,常式260及此處所描述的其他操作可在單個計算裝置或數個裝置上執行。
參看第2G圖,操作261示出了決定網路中哪些可用路由是擁塞的。
操作263示出了限制擁塞控制機制的啟動,直到臨限數目的可用路由經決定為擁塞,從而阻止擁塞控制機制對整體傳送速率或窗口的過度衰減。
為便於理解,本揭示案中論述的程序被描述為獨立的操作,以獨立的方塊表示。然而,該等單獨描述的操作不應被解釋為在其執行中必然取決於順序。描述該流程的順序不意欲被解釋為限制,且所描述的任何數目的流程區塊可以任何順序組合,以實施該程序或備選程序。此外,亦有可能修改或省略所提供操作中的一或更多者。此外,當處理多個網路封包時,所提供操作中的一或更多者亦可並行及/或交錯執行。
本文揭示的技術的特定實施方式取決於計算裝置的效能及其他要求。因此,本文描述的邏輯操作被不同地稱為狀態、操作、結構裝置、動作或模組。該等狀態、操作、結構裝置、動作及模組可用硬體、軟體、韌體、專用數位邏輯及上述各者的任意組合來實施。應當理解,可執行比圖式中所示及本文所述更多或更少的操作。該等操作亦可以與本文描述的順序不同的順序來執行。
亦應理解,所示方法可在任何時候結束,且無需全部執行。如本文所定義的,方法的一些或所有操作及/或基本上等同的操作可透過執行包括在電腦儲存媒體上的電腦可讀指令來執行。在說明書及申請專利範圍中使用的術語「電腦可讀指令」及其變體在本文中被廣泛地用於包括常式、應用、應用模組、程式模組、程式、部件、資料結構、演算法及類似者。電腦可讀指令可在各種系統配置上實施,包括單處理器或多處理器系統、小型電腦、大型電腦、個人電腦、手持計算裝置、基於微處理器的可程式設計消費電子元件、上述各者的組合及類似者。
因此,應認識到,本文所述的邏輯操作作為以下各者來實施:(1)一系列電腦實施動作或在計算系統上運行的程式模組,及/或(2)在計算系統內的互連機器邏輯電路或電路模組。實施方式取決於計算系統的效能及其他要求的選擇。因此,本文描述的邏輯操作以各種方式被稱為狀態、操作、結構裝置、動作或模組。可用軟體、韌體、專用數位邏輯及上述各者的任意組合來實施該等操作、結構裝置、動作及模組。
例如,常式200的操作可至少部分由運行本文揭示的特徵的模組來實施,該等特徵可為動態鏈結程式館(dynamically linked library; DLL)、靜態程式庫、應用程式設計介面(application programing interface; API)產生的功能、編譯程式、解釋程式、腳本或任何其他可執行指令集。資料可儲存在一或更多個記憶體部件中的資料結構中。透過對資料結構的鏈路或引用進行定址,可從資料結構中擷取資料。
儘管圖示可指示圖式的部件,但應理解,亦可透過其他方式實施常式200的操作。此外,常式200操作中的一或更多個操作可替代地或額外地至少部分由單獨作業或與其他軟體模組組合作業的晶片組來實施。在下文描述的實例中,計算系統的一或更多個模組可接收及/或處理本文揭示的資料。適用於提供本文揭示的技術的任何服務、電路或應用可用於本文描述的操作中。
第3圖示出了包含N*N個核心交換機(諸如核心1 305至核心N*N 306)的示例通信網路環境300。在該實例中,N*N個核心交換機經由100 Gbps的鏈路320通信耦合到三個網莢301、302、303。在一實例中,每個網莢可包括被配置成運行容器或虛擬機器的一組計算節點及網路裝置。
第4圖示出了包含第一通信節點A 402、第二通信節點B 404、第三通信節點C 406及第四通信節點D 408的示例通信網路環境400。此外,每個節點都配置有相關聯的路由表A 412至D 418。每個路由表包含定義路徑的資料,節點可透過該等路徑將資料從其自身路由到網路內的其他節點。應理解,路由表可透過任何方法來填充,諸如靜態路由或動態路由。此外,路由表可由節點自身自動修改,或者由系統工程師手動修改。
參看第5圖,示出了示例網路拓撲。在一個實施方式中,各種網路裝置可被配置成向伺服器(主機)530提供資料。在一實施例中,每個網路裝置520可完全連接到每個伺服器530。第5圖亦示出了網路裝置520可耦合到額外的網路裝置500。伺服器530可包括用於提供網路可連接性的NIC 540。本文揭示的各種實施例可在NIC 540、網路裝置520、伺服器530或計算網路中的其他裝置中實施。
第6圖圖示了裝置的示例電腦架構600的額外細節,該裝置諸如經配置以作為基於雲端的平臺或系統的部分的電腦或伺服器,能夠執行電腦指令(例如,本文所述的模組或程式部件)。第6圖所示的電腦架構600包括處理系統602、包括隨機存取記憶體606 (random-access memory; RAM)及唯讀記憶體(read-only memory; ROM) 608的系統記憶體604,及將記憶體604耦合到處理系統602的系統匯流排610。處理系統602包括處理單元。在各種實例中,處理系統602的處理單元是分散式的。換言之,處理系統602的一個處理單元可位於第一位置(例如,資料中心內的機架),而處理系統602的另一個處理單元位於獨立於第一位置的第二位置。
處理單元,諸如處理系統602的處理單元,可表示例如CPU型處理單元、GPU型處理單元、現場可程式設計閘陣列(field-programmable gate array; FPGA)、另一類數位訊號處理器(digital signal processor; DSP)或在某些情況下可由CPU驅動的其他硬體邏輯部件。例如,可使用的硬體邏輯部件的說明性類型包括特殊應用積體電路(Application-Specific Integrated Circuit; ASIC)、特殊應用標準產品(Application-Specific Standard Product; ASSP)、片上系統(System-on-a-Chip; SOC)、複雜可程式設計邏輯元件(Complex Programmable Logic Device; CPLD)及類似物。
基本輸入/輸出系統儲存在ROM 608中,該系統包含有助於(諸如在啟動期間)在電腦架構600內的元件之間傳輸資訊的基本常式。電腦架構600進一步包括大型儲存裝置612,用於儲存作業系統614、應用程式616、模組618及本文描述的其他資料。
大型儲存裝置612透過連接至匯流排610的大型儲存控制器而連接至處理系統602。大型儲存裝置612及其相關聯的電腦可讀媒體為電腦架構600提供非揮發性儲存。儘管本文所含的電腦可讀媒體的描述是指大型儲存裝置,但是電腦可讀媒體可為任何可用的電腦可讀儲存媒體或可由電腦架構600存取的通信媒體。
電腦可讀媒體包括電腦可讀儲存媒體及/或通信媒體。電腦可讀儲存媒體包括以下各者中的一或更多者:揮發性記憶體、非揮發性記憶體及/或其他永久及/或輔助電腦儲存媒體、可移動及不可移動電腦儲存媒體,該等媒體以用於儲存諸如電腦可讀指令、資料結構、程式模組或其他資料的資訊的任何方法或技術來實施。因此,電腦儲存媒體包括包含在裝置中及/或作為裝置的部分或裝置外部的硬體部件中的有形及/或實體形式的媒體,其中包括RAM、靜態RAM (static RAM; SRAM)、動態RAM (dynamic RAM; DRAM)、相變記憶體(phase change memory; PCM)、ROM、可擦除可程式設計ROM (erasable programmable ROM; EPROM)、電EPROM (electrically EPROM; EEPROM)、快閃記憶體、壓縮光碟唯讀記憶體(compact disc read-only memory; CD-ROM)、數位多功能磁碟(digital versatile disk; DVD)、光卡或其他光儲存媒體、盒式磁帶、磁帶、磁碟記憶體、磁卡或其他磁儲存裝置或媒體、固態儲存裝置、儲存陣列、網路附加儲存裝置、儲存區域網路、代管電腦儲存裝置或可用於儲存及維護供計算裝置存取的資訊的任何其他儲存記憶體、儲存裝置及/或儲存媒體。
與電腦可讀儲存媒體相比,通信媒體可體現電腦可讀指令、資料結構、程式模組或呈諸如載波的調變資料訊號或其他傳輸機制的其他資料。如本文所定義的,電腦儲存媒體不包括通信媒體。換言之,電腦可讀儲存媒體自身不包括僅由調變資料訊號、載波或傳播訊號組成的通信媒體。
根據各種配置,電腦架構600可使用經由網路620與遠端電腦的邏輯連接在聯網環境中操作。電腦架構600可透過連接到匯流排610的網路介面單元622連接到網路620。電腦架構600亦可包括輸入/輸出控制器624,用於接收及處理來自多個其他裝置的輸入,其他裝置包括鍵盤、滑鼠、觸控裝置,或電子尖筆或電子筆。類似地,輸入/輸出控制器624可向顯示螢幕、印表機或其他類型的輸出裝置提供輸出。
本文所述的軟體部件在載入到處理系統602中並執行時,可將處理系統602及整個電腦架構600從通用計算系統轉換為客製化的專用計算系統,以便於執行本文所述的功能。處理系統602可由任意數目的電晶體或其他離散電路元件構成,該等電晶體或電路元件可單獨或共同呈現任意數目的狀態。更具體而言,處理系統602可回應於本文揭示的軟體模組中包含的可執行指令,而作為有限狀態機來操作。該等電腦可執行指令可透過指定處理系統602如何在狀態之間轉變,來轉換處理系統602,從而轉換構成處理系統602的電晶體或其他離散硬體元件。
第7圖繪示了能夠執行本文所述軟體部件的說明性分散式計算環境700。因此,第7圖中示出的分散式計算環境700可用於執行本文展示的軟體部件的任何態樣。例如,分散式計算環境700可用於執行本文描述的軟體部件的各態樣。
因此,分散式計算環境700可包括在網路704上運行、與其通信或作為其部分的計算環境702。網路704可包括各種存取網路。一或更多個客戶端裝置706A至706N(以下統稱及/或總稱為「計算裝置706」)可經由網路704與計算環境702通信。在一個示出的配置中,計算裝置706包括諸如膝上型電腦、桌上型電腦或其他計算裝置的計算裝置706A;筆記型電腦或平板計算裝置(「平板計算裝置」)706B;諸如行動電話、智慧型電話或其他行動計算裝置的行動計算裝置706C;伺服器電腦706D;及/或其他裝置706N。應當理解,任何數目的計算裝置706可與計算環境702通信。
在各種實例中,計算環境702包括伺服器708、資料儲存裝置710及一或更多個網路介面712。伺服器708可代管各種服務、虛擬機器、入口網站及/或其他資源。在所示的配置中,伺服器708代管虛擬機器714、Web入口網站716、郵箱服務718、儲存服務720及/或社交聯網服務722。如第7圖所示,伺服器708亦可代管其他服務、應用程式、入口網站及/或其他資源(「其他資源」)724。
如上所述,計算環境702可包括資料儲存裝置710。根據各種實施方式,資料儲存裝置710的功能由在網路704上操作或與網路704通信的一或更多個資料庫提供。資料儲存裝置710的功能亦可由被配置為代管計算環境700的資料的一或更多個伺服器來提供。資料儲存裝置710可包括、代管或提供一或更多個真實或虛擬資料儲存裝置726A至726N(以下統稱及/或一般稱為「資料儲存裝置726」)。資料儲存裝置726被配置為代管由伺服器708使用或創建的資料及/或其他資料。換言之,資料儲存裝置726亦可代管或儲存網頁文件、Word文件、展示文件、資料結構、推薦引擎執行的演算法及/或任何應用程式使用的其他資料。資料儲存裝置726的各態樣可與用於儲存檔的服務相關聯。
計算環境702可與網路介面712通信或被網路介面712存取。網路介面712可包括各種類型的網路硬體及軟體,用於支援包括計算裝置及伺服器在內的兩個或更多個計算裝置之間的通信。應理解,網路介面712亦可用於連接到其他類型的網路及/或電腦系統。
應理解,本文所述的分散式計算環境700可為本文所述的軟體元件的任何態樣提供任何數目的虛擬計算資源及/或其他分散式計算功能,該功能可經配置以執行本文所揭示的軟體部件的任何態樣。根據本文揭示的概念及技術的各種實施方式,分散式計算環境700將本文描述的軟體功能作為服務提供至計算裝置。應理解,計算裝置可包括真實或虛擬機器,包括伺服器電腦、Web伺服器、個人電腦、行動計算裝置、智慧型電話及/或其他裝置。由此,本文揭示的概念及技術的各種配置使得被配置成存取分散式計算環境700的任何裝置皆能夠利用本文描述的功能來提供本文揭示的技術及其他態樣。
本文所展示的揭示內容包含以下示例條款中介紹的標的。
條款1:一種用於管理計算網路的方法,該方法包括:
由計算網路的網路裝置決定計算節點正在導致網路擁塞事件,
回應於該決定,導致產生擁塞通知訊息;
基於該網路擁塞事件的級別,決定用於傳送該擁塞通知訊息的時序設定檔;及
基於該時序設定檔,將該擁塞通知訊息轉發至經決定為導致網路擁塞事件的計算節點。
條款2:條款1所述的方法,其中該擁塞通知訊息是基於擁塞度量概率性地產生。
條款3:條款1至2中任一項所述的方法,其中傳送擁塞通知訊息的頻率隨著網路擁塞事件的級別而按比例變化。
條款4:條款1至3中任一項所述的方法,其中網路擁塞事件的級別基於佇列長度。
條款5:條款1至4中任一項所述的方法,其中該時序設定檔為加權隨機設定檔。
條款6:條款1至5中任一項所述的方法,其中該擁塞通知訊息是基於佇列佔用率以線性方式概率性地產生。
條款7:條款1至6中任一項所述的方法,其中該擁塞通知訊息是基於佇列佔用率以可變或非線性方法概率性地產生。
條款8:條款1至7中任一項所述的方法,其中當網路擁塞事件的級別超過臨限值時,頻率增加。
條款9:條款1至8中任一項所述的方法,進一步包括為已觸發回傳傳送者(Back-to-Sender; BTS)訊息的資料封包設定顯式擁塞通知(Explicit Congestion Notification; ECN)位元,其中當設定了該ECN位元時,除了資料封包被丟棄時,否則未來佇列不觸發額外的BTS訊息。
條款10:條款1至9中任一項所述的方法,其中該BTS訊息進一步包括相對佇列大小、活動輸出流的數目、在埠上的總傳輸位元組或交換機內的佇列組合及該快照的時間戳記、埠或緩衝器級別的累積緩衝器佔用率,或佇列大小梯度中的一或更多者。
條款11:一種用於管理計算網路的系統,該系統包括網路裝置及計算節點,該系統配置為執行操作,包括:
由該計算網路的網路裝置決定計算節點正在導致網路擁塞事件;
回應於該決定,導致產生擁塞通知訊息;
基於網路擁塞事件的級別,決定傳送擁塞通知訊息的時序設定檔;及
基於該時序設定檔,將該擁塞通知訊息轉發至經決定為導致該網路擁塞事件的該計算節點。
條款12:條款11所述的系統,其中該擁塞通知訊息是基於擁塞度量概率性地產生。
條款13:條款11及12中任一項所述的系統,其中傳送擁塞通知訊息的頻率隨著網路擁塞事件的級別而按比例變化。
條款14:條款12至13中任一項所述的系統,其中該網路擁塞事件的級別基於佇列長度。
條款15:條款11至14中任一項所述的系統,其中該擁塞通知訊息是基於佇列佔用率以線性方式概率性地產生。
條款16:條款11至15中任一項所述的系統,其中該擁塞通知訊息是基於佇列佔用率以可變或非線性方法概率性地產生。
條款17:條款11至16中任一項所述的系統,其中當該網路擁塞事件的級別超過臨限值時,頻率增加。
條款18:條款11至17中任一項所述的系統,進一步包括為已觸發回傳傳送者(Back-to-Sender; BTS)訊息的資料封包設定顯式擁塞通知(Explicit Congestion Notification; ECN)位元,其中當設定了該ECN位元時,除了資料封包被丟棄時,否則未來佇列不觸發額外的BTS訊息。
條款19:條款11至18中任一項所述的系統,其中該BTS訊息進一步包括相對佇列大小、活動輸出流的數目、在埠上的總傳輸位元組或交換機內的佇列組合及該快照的時間戳記、埠或緩衝器級別的累積緩衝器佔用率,或佇列大小梯度中的一或更多者。
條款20:一種電腦可讀儲存媒體,包括用於管理計算網路的電腦可讀指令,當由計算節點執行時,該等電腦可讀指令可操作以執行操作,該等操作包括:
由該計算網路的網路裝置決定計算節點正在導致網路擁塞事件;
回應於該決定,導致產生擁塞通知訊息;
基於網路擁塞事件的級別,決定傳送擁塞通知訊息的時序設定檔;及
基於該時序設定檔,將該擁塞通知訊息轉發至經決定為導致該網路擁塞事件的計算節點。
本文所展示的揭示內容包含以下示例條款中介紹的標的。
條款1:一種用於管理實施封包輸送上下文(packet delivery context; PDC)的計算網路的方法,該方法包括:
產生將在計算網路上傳輸的資料封包的熵值,該熵值可用於選擇或改變資料封包的網路路徑;
回應於接收到資料封包的確認訊息,若熵值被確認為不擁塞,則將熵值保存在儲存結構中;及
當傳輸額外資料封包時,重新使用資料結構中最早保存的熵,並使最早保存的熵值無效化。
條款2:條款1所述的方法,其中該熵值是對應於網路路由的位元、值或訊號,並可用於選擇或改變指向該計算網路上的裝置的網路路徑。
條款3:條款1至2中任一項所述的方法,其中具有相同熵的封包採用相同路徑,而具有不同熵的封包採用不同路徑。
條款4:條款1至3中任一項所述的方法,其中該熵值是隨機產生的,或是在熵的列表或範圍內使用輪訓法來產生。
條款5:條款1至4中任一項所述的方法,其中新熵值是列表中的下一個,或者進行了決定性地改變或遞增。
條款6:條款1至5中任一項所述的方法,其中該資料結構是圓形FIFO。
條款7:條款1至6中任一項所述的方法,其中當沒有有效熵值供重新使用時,使用不同的熵值。
條款8:條款1至7中任一項所述的方法,其中當連接不再進行傳輸時,緩衝根據最後一批ACK觀察到的良好熵。
條款9:條款1至8中任一項所述的方法,其中當連接被標記為遞迴時,使用保存的熵值,其中當連接沿同一組其他遞迴連接恢復傳輸時,良好熵值可在稍後時間對同一連接有效。
條款10:條款1至9中任一項所述的方法,其中該圓形FIFO緩衝器在資料結構內動態分配,並跨NIC上的所有連接或連接子集共用。
條款11:一種用於管理實施封包輸送上下文(packet delivery context; PDC)的計算網路的系統,該系統包括網路裝置及計算節點,該系統被配置為執行操作,該等操作包括:
產生將在計算網路上傳輸的資料封包的熵值,該熵值可用於選擇或改變資料封包的網路路徑;
回應於接收到資料封包的確認訊息,若熵值被確認為不擁塞,則將熵值保存在儲存結構中;及
當傳輸額外資料封包時,重新使用資料結構中最早保存的熵,並使最早保存的熵值無效化。
條款12:條款11所述的系統,其中該熵值為對應於網路路由的位元、值或訊號,並可用於選擇或改變指向該計算網路上的裝置的網路路徑,且具有相同熵的封包採用相同路徑,而具有不同熵的封包採用不同路徑。
條款13:條款11條及條款12中任一項所述的系統,其中該熵值是隨機產生的,或是在熵的列表或範圍內使用輪訓法來產生。
條款14:條款12至13中任一項所述的系統,其中新熵值是列表中的下一個,或者進行了決定性地改變或遞增。
條款15:條款11至14中任一項所述的系統,其中該資料結構為圓形FIFO。
條款16:條款11至15中任一項所述的系統,其中當沒有有效熵值供重新使用時,使用不同的熵值,
條款17:條款11至16中任一項所述的系統,其中當連接不再進行傳輸時,緩衝根據最後一批ACK觀察到的良好熵。
條款18:條款11至17中任一項所述的系統,其中當連接被標記為遞迴時,使用保存的熵值,其中當連接沿同一組其他遞迴連接恢復傳輸時,良好熵值可在稍後時間對同一連接有效。
條款19:條款11至18中任一項所述的系統,其中該圓形FIFO緩衝器在資料結構內動態分配,並跨NIC上的所有連接或連接子集共用。
條款20:一種電腦可讀儲存媒體,包括用於管理實施封包輸送上下文(packet delivery context; PDC)的計算網路的電腦可讀指令,當由計算節點執行時,該等電腦可讀指令可操作以執行操作,該等操作包括:
產生將在計算網路上傳輸的資料封包的熵值,該熵值可用於選擇或改變資料封包的網路路徑;
回應於接收到資料封包的確認訊息,若熵值被確認為不擁塞,則將熵值保存在儲存結構中;及
當傳輸額外資料封包時,重新使用資料結構中最早保存的熵,並使最早保存的熵值無效化。
本文所展示的揭示內容包含以下示例條款中介紹的標的。
條款1:一種管理計算網路的方法,該方法包括:
存取計算網路中一鏈路的確認訊息;
存取該鏈路的往返時間(Round-Trip Time; RTT)量測結果;及
回應於決定確認訊息中沒有一者係顯式擁塞通知(Explicit Congestion Notification; ECN)標記的,且已存取的RTT量測結果中沒有一者超過最小預期延遲臨限值:
決定該鏈路的端到端路徑不擁塞。
條款2:條款1所述的方法,進一步包括回應於決定該鏈路的端到端路徑不擁塞,決定連接增加其速率或窗口以更好地利用其端到端路徑是安全的。
條款3:條款1至2中任一項所述的方法,其中存取確認訊息包括在基於窗口的擁塞控制機制的窗口時期內觀察連接級別的所有確認。
條款4:條款1至3中任一項所述的方法,其中存取確認訊息包括在基於速率的擁塞控制機制的時間段內觀察連接級別的所有確認。
條款5:條款1至4中任一項所述的方法,其中該最小預期延遲臨限值可作為拓撲、MTU大小或鏈路速度中之一者的函數來進行程式設計。
條款6:條款1至5中任一項所述的方法,進一步包括回應於決定該鏈路的端到端路徑不擁塞,啟動頻寬恢復操作。
條款7:條款1至6中任一項所述的方法,其中該頻寬恢復操作為TCP慢啟動或其變體。
條款8:一種用於管理計算網路的系統,該系統包括網路裝置及計算節點,該系統配置為執行操作,該等操作包括:
存取計算網路中一鏈路的確認訊息;
存取該鏈路的往返時間(Round-Trip Time; RTT)量測結果;及
回應於決定確認訊息中沒有一者係顯式擁塞通知(Explicit Congestion Notification; ECN)標記的,且已存取的RTT量測結果中沒有一者超過最小預期延遲臨限值:
決定鏈路的端到端路徑不擁塞。
條款9:條款8所述的系統,進一步包括回應於決定該鏈路的端到端路徑不擁塞,決定連接增加其速率或窗口以更好地利用其端到端路徑是安全的。
條款10:條款8及條款9中任一項所述的系統,其中存取確認訊息包括在基於窗口的擁塞控制機制的窗口時期內觀察連接級別的所有確認。
條款11:條款8至10中任一項所述的系統,其中存取確認訊息包括在基於速率的擁塞控制機制的時間段內觀察連接級別的所有確認。
條款12:條款8至11中任一項所述的系統,其中該最小預期延遲臨限值可作為拓撲、MTU大小或鏈路速度中之一者的函數進行程式設計。
條款13:條款8至12中任一項所述的系統,進一步包括回應於決定該鏈路的端到端路徑不擁塞,啟動頻寬恢復操作。
條款14:條款8至13中任一項所述的系統,其中該頻寬恢復操作為TCP慢啟動。
條款15:一種電腦可讀儲存媒體,包括用於管理計算網路的電腦可讀指令,當由計算節點執行時,該等電腦可讀指令可操作以執行操作,該等操作包括:
存取計算網路中一鏈路的確認訊息;
存取該鏈路的往返時間(Round-Trip Time; RTT)量測結果;及
回應於決定確認訊息中沒有一者係顯式擁塞通知(Explicit Congestion Notification; ECN)標記的,且已存取的RTT量測結果中沒有一者超過最小預期延遲臨限值:
決定鏈路的端到端路徑不擁塞。
條款16:條款15所述的電腦可讀儲存媒體,進一步包括回應於決定該鏈路的端到端路徑不擁塞,決定連接增加其速率或窗口以更好地利用其端到端路徑是安全的。
條款17:條款15及條款16中任一項所述的電腦可讀儲存媒體,其中存取確認訊息包括在基於窗口的擁塞控制機制的窗口時期內觀察連接級別的所有確認。
條款18:條款15至17中任一項所述的電腦可讀儲存媒體,其中存取確認訊息包括在基於速率的擁塞控制機制的時間段內觀察連接級別的所有確認。
條款19:條款15至18中任一項所述的電腦可讀儲存媒體,其中該最小預期延遲臨限值可作為拓撲、MTU大小或鏈路速度中之一者的函數進行程式設計。
條款20:條款15至19中任一項所述的電腦可讀儲存媒體,進一步包括回應於決定該鏈路的端到端路徑不擁塞,啟動頻寬恢復操作。
本文所展示的揭示內容包含以下示例條款中介紹的標的。
條款1:一種用於管理實施封包輸送上下文(packet delivery context; PDC)的計算網路的方法,該方法包括:
由計算網路的網路裝置接收資料封包;
回應於決定未輸入先前的PDC條目,返回接收方未就緒(Receiver Not Ready; RNR)訊息;
回應於決定先前的PDC條目存在且條目的第一訊息已經到達,更新條目的接收上下文以指示封包已被接收;及
回應於決定PDC條目已接收到所有相關封包,移除PDC條目並通知相關封包的傳送者已接收到所有封包。
條款2:條款1所述的方法,其中當PDC條目被移除時,在接收方處完成PDC條目,維護匹配資訊、緩衝器位址及關於已提交至主機記憶體的內容的資訊。
條款3:一種用於管理實施封包輸送上下文(packet delivery context; PDC)的計算網路的方法,該方法包括:
接收資料封包;
使用匹配表將資料封包源位址及連續訊息序號(message sequence number; MSN)的串聯匹配到匹配資料結構;
由語義層基於源及每個源的MSN的運行計數器而將匹配的串聯插入到匹配資料結構中,
透過NIC附接與源相關聯的當前活動PDC,或在原子層級上創建並附接空PDC;
回應於在語義層發佈recv()之前到達的封包,由到達的封包在原子層級上將金絲雀值「匹配失敗」插入匹配資料結構中,並向源傳送請求等待(request to wait; RTW)訊息;及
回應於語義層發佈recv():
由語義層辨識匹配資料結構中的「匹配失敗」條目,
使用匹配資訊在原子層級上更新「匹配失敗」條目,並向源傳送請求傳送(request to send; RTS)訊息。
條款4:條款3所述的方法,其中該源回應於接收到RTS訊息,從封包重新啟動訊息傳輸。
條款5:條款3至4中任一項所述的方法,其中該源回應於接收到RTW訊息或僅接收到當前訊息,停止向目標程序傳送所有訊息。
條款6:條款3至5中任一項所述的方法,其中若PDC未在指定時間內從源接收到資料訊息,則PDC層重新傳輸RTS訊息。
條款7:條款3至6中任一項所述的方法,其中該傳送者為每條訊息實施狀態機,當該語義層提交傳送時,該狀態機以「傳送」狀態開始,且當接收到所有ACK時,該狀態機的狀態轉變為「完成」。
條款8:條款3至7中任一項所述的方法,其中當接收到RTW時,該狀態轉變為「等待」,而當接收到RTS時,該狀態轉變為「傳送」。
條款9:條款3至8中任一項所述的方法,其中當處於「傳送」狀態時,每個封包由PDC使用其自身的狀態機,利用CC/LB及重傳邏輯來傳送。
條款10:條款3至9中任一項所述的方法,其中當接收到所有ACK時,該狀態轉變為「完成」。
條款11:條款3至10中任一項所述的方法,其中在每個recv的MTD的狀態中截獲接收方的狀態機。
條款12:條款3至11中任一項所述的方法,其中當recv狀態的對應匹配被添加至MTD時,及在封包接收期間,recv狀態變為「已發佈」。
條款13:條款3至12中任一項所述的方法,其中,若訊息在訊息發佈之前到達,則該狀態為「不存在」,且其中當接收到所有資料時,該狀態為「完成」。
條款14:條款3至13中任一項所述的方法,其中傳送者傳送其當前窗口大小的資料串流,而接收方在發佈recv時從源擷取剩餘資料。
條款15:一種用於管理實施封包輸送上下文(packet delivery context; PDC)的計算網路的系統,該系統包括網路裝置及計算節點,該系統配置為執行操作,該等操作包括:
接收資料封包,
使用匹配表將資料封包源位址及連續訊息序號(message sequence number; MSN)的串聯匹配到匹配資料結構;
由語義層基於源及每個源的MSN的運行計數器而將匹配的串聯插入到匹配資料結構中;
透過NIC附接與源相關聯的當前活動PDC,或在原子層級上創建並附接空PDC;
回應於在語義層發佈recv()之前到達的封包,由到達的封包在原子層級上將金絲雀值「匹配失敗」插入匹配資料結構中,並向源傳送請求等待(request to wait; RTW)訊息;及
回應於語義層發佈recv():
由語義層辨識匹配資料結構中的「匹配失敗」條目,
在原子層級上用匹配資訊更新「匹配失敗」條目,並向源傳送請求傳送(request to send; RTS)訊息。
條款16:條款15所述的系統,其中該源回應於接收到RTS訊息,從封包重新啟動訊息傳輸。
條款17:條款15及條款16中任一項所述的系統,其中該源回應於接收到RTW訊息或僅接收到當前訊息,停止向目標流程傳送所有訊息。
條款18:條款15至17中任一項所述的系統,其中若PDC未在指定時間內從源接收到資料訊息,則PDC層重新傳送RTS訊息。
條款19:條款15至18中任一項所述的系統,其中當接收到RTW時,該狀態轉變為「等待」,而當接收到RTS時,該狀態轉變為「傳送」。
條款20:條款15至19中任一項所述的系統,其中:
當接收到RTW時,該狀態轉變為「等待」,而當接收到RTS時,該狀態轉變為「傳送」;
當處於「傳送」狀態時,每個封包由PDC使用其自身的狀態機,利用CC/LB及重傳邏輯進行傳輸;
當接收到所有ACK時,該狀態轉變為「完成」;
接收方的狀態機在每個recv的MTD的狀態中被截獲;
當recv狀態的對應匹配被添加到MTD時,及在封包接收期間,recv狀態變為「已發佈」;
若訊息在訊息發佈之前到達,則該狀態為「不存在」;
當接收到所有資料時,該狀態為「完成」,當接收到RTW時,該狀態轉變為「等待」,當接收到RTS時,該狀態轉變為「傳送」。
本文所展示的揭示內容包含以下示例條款中介紹的標的。
條款1:一種管理計算網路的方法,該方法包括:
存取計算網路中一鏈路的傳送速率限值與全線路速率的第一比率;
存取該鏈路的傳送窗口大小與W_max的第二比率,其中W_max是最大允許窗口大小或利用鏈路的端到端路徑的窗口大小;及
回應於鏈路中的網路擁塞指示,使用第一或第二比率中的一或更多者來決定縮減該鏈路的傳送速率或窗口的量。
條款2:條款1所述的方法,其中全線路速率用於網路介面卡(network interface card; NIC)速度。
條款3:條款1至2中任一項所述的方法,其中第一比率用於一函數,該函數組合當前速率限值及全線路速率。
條款4:條款1至3中任一項所述的方法,其中W_max是頻寬延遲乘積(bandwidth delay product; BDP)的函數。
條款5:條款1至4中任一項所述的方法,其中第二比率用於基於窗口的方案或基於速率的方案。
條款6:條款1至5中任一項所述的方法,其中該第二比率用於一函數,該函數組合當前窗口大小及W_max。
條款7:條款1至6中任一項所述的方法,其中傳送速率或窗口指示當前連接導致網路擁塞的量。
條款8:一種用於管理計算網路的系統,該系統包括網路裝置及計算節點,該系統配置為執行操作,該等操作包括:
存取計算網路中一鏈路的傳送速率限值與全線路速率的第一比率;
存取該鏈路的傳送窗口大小與W_max的第二比率,其中W_max是最大允許窗口大小或利用鏈路的端到端路徑的窗口大小;及
回應於鏈路中的網路擁塞指示,使用第一或第二比率中的一或更多者來決定縮減該鏈路的傳送速率或窗口的量。
條款9:條款8所述的系統,其中該全線路速率用於網路介面卡(network interface card; NIC)速度。
條款10:條款8及9中任一項所述的系統,其中該第一比率用於一函數,該函數組合當前速率限值及全線路速率。
條款11:條款8至10中任一項所述的系統,其中,W_max為頻寬延遲乘積(bandwidth delay product; BDP)。
條款12:條款8至11中任一項所述的系統,其中第二比率用於基於窗口的方案。
條款13:條款8至12中任一項所述的系統,其中第二比率用於一函數,該函數組合當前窗口大小及W_max。
條款14:條款8至13中任一項所述的系統,其中傳送速率或窗口指示當前連接導致網路擁塞的量。
條款15:一種電腦可讀儲存媒體,包括用於管理計算網路的電腦可讀指令,當由計算節點執行時,該等電腦可讀指令可執行操作,該等操作包括:
存取計算網路中一鏈路的傳送速率限值與全線路速率的第一比率;
存取該鏈路的傳送窗口大小與W_max的第二比率,其中W_max是最大允許窗口大小或利用鏈路的端到端路徑的窗口大小;及
回應於鏈路中的網路擁塞指示,使用第一或第二比率中的一或更多者來決定縮減該鏈路的傳送速率或窗口的量。
條款16:條款15所述的電腦可讀儲存媒體,其中全線路速率用於網路介面卡(network interface card; NIC)速度。
條款17:條款15及16中任一項所述的電腦可讀儲存媒體,其中第一比率用於一函數,該函數組合當前速率限值及全線路速率。
條款18:條款15至17中任一項所述的電腦可讀儲存媒體,其中W_max為頻寬延遲乘積(bandwidth delay product; BDP)。
條款19:條款15至18中任一項所述的電腦可讀儲存媒體,其中第二比率用於基於窗口的方案。
條款20:條款15至19中任一項所述的電腦可讀儲存媒體,其中第二比率用於一函數,該函數組合當前窗口大小及W_max。
本文所展示的揭示內容包含以下示例條款中介紹的標的。
條款1:一種用於管理實施擁塞控制機制及負載平衡機制的計算網路的方法,其中該負載平衡機制在封包級別運行,該方法包括:
為計算網路中的擁塞產生連接級別度量;
在封包級別累積連接級別度量;及
限制擁塞控制機制的啟動,直到累積連接級別度量達到臨限值。
條款2:條款1所述的方法,其中透過使用指數加權平均來累積連接級別度量。
條款3:條款1至2中任一項所述的方法,其中基於分析來決定針對計算網路的臨限值。
條款4:條款1至3中任一項所述的方法,其中基於實驗來決定針對計算網路的臨限值。
條款5:條款1至4中任一項所述的方法,其中基於拓撲來決定針對計算網路的臨限值。
條款6:條款1至5中任一項所述的方法,其中允許計算網路中的連接同時穿過多條路徑。
條款7:條款1至6中任一項所述的方法,其中該計算網路中的連接為qpair。
條款8:一種用於管理實施擁塞控制機制及負載平衡機制的計算網路的系統,該系統包括網路裝置及計算節點,該系統配置為執行操作,該等操作包括:
為計算網路中的擁塞產生連接級別度量;
在封包級別累積連接級別度量;及
限制擁塞控制機制的啟動,直到累積連接級別度量達到臨限值。
條款9:條款8所述的系統,其中透過使用指數加權平均法累積連接級別度量。
條款10:條款8及條款9中任一項所述的系統,其中基於分析來決定針對計算網路的臨限值。
條款11:條款8至10中任一項所述的系統,其中基於實驗來決定針對計算網路的臨限值。
條款12:條款8至11中任一項所述的系統,其中基於拓撲來決定針對計算網路的臨限值。
條款13:條款8至12中任一項所述的系統,其中允許計算網路中的連接同時穿過多條路徑。
條款14:條款8至13中任一項所述的系統,其中計算網路中的連接為qpair。
條款15:一種電腦可讀儲存媒體,包括用於管理實施擁塞控制機制及負載平衡機制的計算網路的電腦可讀指令,當由計算節點執行時,該等電腦可讀指令可操作以執行操作,該等操作包括:
為計算網路中的擁塞產生連接級別度量;
在封包級別累積連接級別度量;及
限制擁塞控制機制的啟動,直到累積連接級別度量達到臨限值。
條款16:條款15所述的電腦可讀儲存媒體,其中透過使用指數加權平均法累積連接級別度量。
條款17:條款15及16中任一項所述的電腦可讀儲存媒體,其中基於分析來決定針對計算網路的臨限值。
條款18:條款15至17中任一項所述的電腦可讀儲存媒體,其中基於實驗來決定針對計算網路的臨限值。
條款19:條款15至18中任一項所述的電腦可讀儲存媒體,其中基於拓撲來決定針對計算網路的臨限值。
條款20:條款15至19中任一項所述的電腦可讀儲存媒體,其中允許計算網路中的連接同時穿過多條路徑。
本文所展示的揭示內容包含以下示例條款中介紹的標的。
條款1:一種用於管理實施擁塞控制機制及負載平衡機制的計算網路的方法,該方法包括:
決定網路中哪些可用路由是擁塞的;及
限制擁塞控制機制的啟動,直到臨限數目的可用路由被決定為擁塞的,從而防止擁塞控制機制對整體傳送速率或窗口的過度衰減。
條款2:條款1所述的方法,其中臨限數目的可用路由被決定為跨所穿過路徑在整體級別上為擁塞的。
條款3:條款1至2中任一項所述的方法,其中在路徑級別追蹤擁塞資訊。
條款4:條款1至3中任一項所述的方法,其中連接被定義為在相對較小的一組路徑上傳播其傳輸量。
條款5:條款1至4中任一項所述的方法,其中基於拓撲、分析或實驗來決定針對計算網路的臨限值。
條款6:條款1至5中任一項所述的方法,其中允許計算網路中的連接同時穿過多條路徑。
條款7:條款1至6中任一項所述的方法,其中計算網路中的連接為qpair。
條款8:一種用於管理實施擁塞控制機制及負載平衡機制的計算網路的系統,該系統包括網路裝置及計算節點,該系統配置為執行操作,該等操作包括:
決定網路中哪些可用路由是擁塞的;及
限制擁塞控制機制的啟動,直到臨限數目的可用路由被決定為擁塞的,從而防止擁塞控制機制對整體傳送速率或窗口的過度衰減。
條款9:條款8所述的系統,其中臨限數目的可用路由被決定為跨所有穿過路徑在整體級別上為擁塞的。
第10項:條款8及9中任一項所述的系統,其中在路徑級別上追蹤擁塞資訊。
第11項:條款8至10中任一項所述的系統,其中連接被定義為在相對較小的一組路徑上傳播其傳輸量。
第12項:條款8至11中任一項所述的系統,其中基於拓撲、分析或實驗來決定針對計算網路的臨限值。
第13項:條款8至12中任一項所述的系統,其中允許計算網路中的連接同時穿過多條路徑。
條款14:條款8至13中任一項所述的系統,其中計算網路中的連接為qpair。
條款15:一種電腦可讀儲存媒體,包括用於管理實施擁塞控制機制及負載平衡機制的計算網路的電腦可讀指令,當由計算節點執行時,該等電腦可讀指令可操作以執行操作,該等操作包括:
決定網路中哪些可用路由是擁塞的,及
限制擁塞控制機制的啟動,直到臨限數目的可用路由被決定為擁塞的,從而防止擁塞控制機制對整體傳送速率或窗口的過度衰減。
條款16:條款15項所述的電腦可讀儲存媒體,其中臨限數目的可用路由被決定為跨所有穿過路徑在整體級別上是擁塞的。
條款17:條款15及16中任一項所述的電腦可讀儲存媒體,其中在路徑級別追蹤擁塞資訊。
條款18:條款15至17中任一項所述的電腦可讀儲存媒體,其中連接被定義為在相對較小的一組路徑上傳播其傳輸量。
條款19:條款15至18中任一項所述的電腦可讀儲存媒體,其中允許計算網路中的連接同時穿過多條路徑。
條款20:條款15至19中任一項所述的電腦可讀儲存媒體,其中計算網路中的連接為qpair。
10:節點A 11:節點B 13:節點C 14:節點D 15:交換機1 16:交換機2 100:計算網路 101:網路擁塞事件 102:網路網站 103:網路擁塞管理器 104:網路裝置 105:時序設定檔 106:級別 107:網站 108:計算節點 109:擁塞通知訊息 110:網站 111:節點 115:計算網路 116:熵值 117:資料封包 118:網路路徑 119:儲存結構 120:熵 121:節點A 122:節點B 123:節點C 124:節點D 125:交換機1 126:交換機2 127:匹配資料結構 128:金絲雀值 129:語義層 130:計算網路 131:確認訊息 132:鏈路 133:RTT量測結果 134:節點A 135:交換機1 136:節點C 137:交換機2 138:節點B 139:節點D 140:流程圖 141:語義層 142:封包輸送層 143:封包輸送層 144:語義層 145:計算網路 146:PDC條目 147:上下文 149:資料封包 150:流程圖 160:流程圖 170:計算網路 171:第一比率 172:傳送速率限值 173:全線路速率 174:鏈路 175:第二比率 176:傳送窗口大小 177:W_max 180:計算網路 181:網路擁塞管理器 182:封包級別 183:連接級別度量 184:啟動被限制 185:臨限值 186:擁塞控制機制 187:匹配表 188:源位址 189:MSN 190:計算網路 191:路由 192:擁塞 193:臨限數目 194:RNR訊息 195:通知 196:網路裝置 197:RTS訊息 198:RTW訊息 199:當前活動PDC 200:常式 201:操作 203:操作 205:操作 207:操作 210:操作程序 211:操作 213:操作 215:操作 220:操作程序 221:操作 223:操作 225:操作 230:操作程序 231:操作 233:操作 235:操作 237:操作 240:操作程序 241:操作 243:操作 245:操作 250:操作程序 251:操作 253:操作 255:操作 260:操作程序 261:操作 263:操作 270:操作程序 271:操作 273:操作 275:操作 277:操作 279:操作 281:操作 283:操作 285:操作 300:通信網路環境 301:網莢 302:網莢 303:網莢 305:核心1 306:核心N*N 320:鏈路 400:通信網路環境 402:節點A 404:節點B 406:節點C 408:節點D 412:路由表A 414:路由表B 416:路由表C 418:路由表D 500:網路裝置 520:網路裝置 530:伺服器 540:NIC 600:電腦架構 602:處理系統 604:系統記憶體 606:RAM 608:ROM 610:系統匯流排 612:大型儲存裝置 614:作業系統 616:應用程式 618:模組 620:網路 622:網路介面單元 624:輸入/輸出控制器 700:分散式計算環境 702:計算環境 704:網路 706A:計算裝置 706B:平板計算裝置 706C:行動計算裝置 706D:伺服器電腦 706N:其他裝置 708:伺服器 710:資料儲存裝置 712:網路介面 714:虛擬機器 716:Web入口網站 718:郵箱服務 720:儲存服務 722:社交聯網服務 724:其他資源 726A:資料儲存裝置 726B:資料儲存裝置 726N:資料儲存裝置 aa:測量結果 bb:測量結果 XX:測量結果 YY:測量結果 ZZ:測量結果
參看附圖描述實施方式。在本文的詳細描述中,參看了構成本文一部分的附圖,且該等附圖透過圖示的方式示出了特定的實施例或實例。本文的附圖不是按比例繪製的。數幅圖式中相同的元件符號表示相同的元件,
第1A至1K圖為圖示根據本揭示案的示例架構示意圖;
第2A至2H圖為繪示根據本揭示案的示例程序的流程圖;
第3圖為圖示根據本揭示案的示例架構的示意圖;
第4圖為圖示根據本揭示案的示例架構的示意圖;
第5圖為圖示根據本揭示案的示例架構的示意圖;
第6圖為根據本揭示案的示例計算系統;
第7圖為根據本揭示案的示例計算系統。
國內寄存資訊(請依寄存機構、日期、號碼順序註記) 無 國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記) 無
100:計算網路
101:網路擁塞事件
102:網路網站
103:網路擁塞管理器
104:網路裝置
105:時序設定檔
106:級別
107:網站
108:計算節點
109:擁塞通知訊息
110:網站
111:節點

Claims (20)

  1. 一種用於管理一計算網路的方法,該方法包括以下步驟: 由該計算網路的一網路裝置決定一計算節點正在導致一網路擁塞事件, 回應於該決定,導致一擁塞通知訊息的產生; 基於該網路擁塞事件的一級別來決定用於傳送該擁塞通知訊息的一時序設定檔;及 基於該時序設定檔,將該擁塞通知訊息轉發至經決定為導致該網路擁塞事件的該計算節點。
  2. 如請求項1所述的方法,其中該擁塞通知訊息是基於一擁塞度量概率性地產生。
  3. 如請求項1所述的方法,其中傳送該擁塞通知訊息的一頻率隨著該網路擁塞事件的該級別而按比例變化。
  4. 如請求項1所述的方法,其中該網路擁塞事件的該級別基於一佇列長度。
  5. 如請求項1所述的方法,其中該時序設定檔是一加權隨機設定檔。
  6. 如請求項1所述的方法,其中該擁塞通知訊息是基於一佇列佔用率以一線性方式概率性地產生。
  7. 如請求項1所述的方法,其中該擁塞通知訊息是基於一佇列佔用率以一可變或非線性方法而概率性地產生。
  8. 如請求項3所述的方法,其中當該網路擁塞事件的該級別超過一臨限值時,該頻率增加。
  9. 如請求項1所述的方法,進一步包括以下步驟:為已觸發一回傳傳送者(Back-to-Sender; BTS)訊息的一資料封包設定一顯式擁塞通知(Explicit Congestion Notification; ECN)位元,其中當設定了該ECN位元時,除了該資料封包被丟棄時,否則未來佇列不觸發一額外的BTS訊息。
  10. 如請求項9所述的方法,其中該BTS訊息進一步包括一相對佇列大小、活動輸出流的一數目、在埠上的總傳輸位元組或一交換機內的佇列組合及該快照的一時間戳記、該埠或緩衝器級別的累積緩衝器佔用率,或佇列大小梯度中的一或更多者。
  11. 一種用於管理一計算網路的系統,該系統包括一網路裝置及該計算節點,該系統配置為執行操作,該等操作包括: 由該計算網路的一網路裝置決定一計算節點正在導致一網路擁塞事件, 回應於該決定,導致一擁塞通知訊息的產生; 基於該網路擁塞事件的一級別來決定用於傳送該擁塞通知訊息的一時序設定檔;及 基於該時序設定檔,將該擁塞通知訊息轉發至經決定為導致該網路擁塞事件的該計算節點。
  12. 如請求項11所述的系統,其中該擁塞通知訊息是基於一擁塞量度概率性地產生。
  13. 如請求項11所述的系統,其中傳送該擁塞通知訊息的一頻率隨著該網路擁塞事件的該級別而按比例變化。
  14. 如請求項11所述的系統,其中該網路擁塞事件的該級別基於一佇列長度。
  15. 如請求項11所述的系統,其中該擁塞通知訊息是基於一佇列佔用率以一線性方式概率性地產生。
  16. 如請求項11所述的系統,其中該擁塞通知訊息是基於一佇列佔用率以一可變或非線性方法概率性地產生。
  17. 如請求項13所述的系統,其中,當該網路擁塞事件的該級別超過一臨限值時,該頻率增加。
  18. 如請求項11所述的系統,進一步包括為已觸發一回傳傳送者(Back-to-Sender; BTS)訊息的一資料封包設定一顯式擁塞通知(Explicit Congestion Notification; ECN)位元,其中當設定了該ECN位元時,除了該資料封包被丟棄時,否則未來佇列不觸發一額外的BTS訊息。
  19. 如請求項18所述的系統,其中該BTS訊息進一步包括一相對佇列大小、活動輸出流的一數目、在埠上的總傳輸位元組或一交換機內的佇列組合及該快照的一時間戳記、該埠或緩衝器級別的累積緩衝器佔用率,或佇列大小梯度中的一或更多者。
  20. 一種電腦可讀儲存媒體,包括用於管理一計算網路的電腦可讀指令,當由一計算節點執行時,該等電腦可讀指令可操作以執行操作,該等操作包括: 由該計算網路的一網路裝置決定一計算節點正在導致一網路擁塞事件; 回應於該決定,導致一擁塞通知訊息的產生; 基於該網路擁塞事件的一級別來決定用於傳送該擁塞通知訊息的一時序設定檔;及 基於該時序設定檔,將該擁塞通知訊息轉發至經決定為導致該網路擁塞事件的該計算節點。
TW113125093A 2023-08-06 2024-07-04 加權隨機早期回傳傳送者的通知 TW202508259A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202363530991P 2023-08-06 2023-08-06
US63/530,991 2023-08-06

Publications (1)

Publication Number Publication Date
TW202508259A true TW202508259A (zh) 2025-02-16

Family

ID=95555164

Family Applications (1)

Application Number Title Priority Date Filing Date
TW113125093A TW202508259A (zh) 2023-08-06 2024-07-04 加權隨機早期回傳傳送者的通知

Country Status (1)

Country Link
TW (1) TW202508259A (zh)

Similar Documents

Publication Publication Date Title
CN109936510B (zh) 多路径rdma传输
US8452888B2 (en) Flow control for reliable message passing
US20250317397A1 (en) Weighted random early back-to-sender notification
US9832125B2 (en) Congestion notification system
CN113098774B (zh) 一种报文转发方法及装置
CN119449717A (zh) 用于可靠传输协议的速率更新引擎
US20090238070A1 (en) Method and system to adjust cn control loop parameters at a congestion point
JP2016515361A (ja) アプリケーションにより提供される送信メタデータに基づくネットワーク送信調整
TW202508259A (zh) 加權隨機早期回傳傳送者的通知
US20250168119A1 (en) Recycled entropies packet spraying
TW202512712A (zh) 擁塞控制的可擴展協調及自適應負載平衡
US12056110B2 (en) Managing subscriptions to data queries that react and update to change notifications
WO2025034417A1 (en) Low overhead send/receive data delivery into user memory
WO2025034414A1 (en) Fairness and congestion control convergence
WO2025034412A1 (en) Weighted random early back-to-sender notification
WO2025034415A1 (en) Coordinating congestion control and adaptive load balancing
US9178834B1 (en) Interconnect flow control
WO2025034413A1 (en) Recycled entropies packet spraying
Almasi Latency Optimization in Datacenters using Adaptive Transport and Reliable Training