Google AI/ML/HPC網(wǎng)絡(luò)測量方案CSIG

摘要

隨著數(shù)據(jù)中心中應(yīng)用程序?qū)W(wǎng)絡(luò)延遲和帶寬越來越敏感,例如AI/ML/HPC工作負載和基于RDMA的應(yīng)用程序,在高動態(tài)變化的流量模式下,僅依賴端到端信號進行擁塞控制、流量調(diào)度已無法滿足需求。

本文介紹了Google提出的網(wǎng)絡(luò)測量方案:CSIG(Congestion Signaling,擁塞信號),一種用于網(wǎng)絡(luò)擁塞控制、流量管理和網(wǎng)絡(luò)調(diào)試的帶內(nèi)網(wǎng)絡(luò)遙測協(xié)議。CSIG提供了一個簡單、低開銷和可擴展的數(shù)據(jù)包頭機制,用于從網(wǎng)絡(luò)路徑上的瓶頸設(shè)備獲取固定長度的摘要信息。這些摘要信息通過位于L2層的 CSIG tag字段在路徑上的網(wǎng)絡(luò)設(shè)備之間以比較和替換的方式進行收集。接收方可以通過L4層以上的 CSIG reflection報文頭將這些信息反饋給發(fā)送方。

CSIG在前人工作(如交換機帶內(nèi)網(wǎng)絡(luò)遙測(INT))基礎(chǔ)上進行了擴展,該工作將多位信號納入多個數(shù)據(jù)包中。與此同時,CSIG的端到端機制可通過固定大小的消息頭傳遞信號,類似于顯式擁塞通知(ECN),簡單、實用且易部署。

本文首先對CSIG協(xié)議進行詳細描述,闡述CSIG的應(yīng)用場景和設(shè)計原則,并描述了CSIG信號(最小可用帶寬、最大鏈路利用率和最大跳延遲)、以及計算這些信號的方法、信號如何在應(yīng)用程序中發(fā)揮作用。此外,還將討論如何傳遞有關(guān)鏈路瓶頸位置的屬性,提供這個信號整合的框架。最后,討論漸進部署、向后兼容性和CSIG在各種情景中的適用性細節(jié)。

引言

許多網(wǎng)絡(luò)控制系統(tǒng),包括擁塞控制、流量工程和網(wǎng)絡(luò)運維,根據(jù)應(yīng)用流所經(jīng)歷的擁塞情況做出決策。用于確定擁塞的信號通常是從端到端信號中隱性產(chǎn)生的,以比期望更大的時間尺度近似計算的,或者從網(wǎng)絡(luò)中獲得的。這些信號不準確或精細,可能導致應(yīng)用程序性能不佳或網(wǎng)絡(luò)使用效率低下。

CSIG(擁塞信號)提供了直接、實時、帶內(nèi)信號,網(wǎng)絡(luò)控制回路可以利用這些信號來提高性能和效率。

數(shù)據(jù)中心部署了許多擁塞控制算法(CCA),包括Swift、BBR、DCTCP、DCQCN和HPCC++。這些CCA在使用擁塞信號和根據(jù)信號調(diào)整流量速率方面存在差異。

Swift使用精確的往返時延(RTT)測量來調(diào)節(jié)其擁塞窗口。

BBR使用流的傳輸速率和RTT測量的組合。

DCTCP和DCQCN依賴于來自交換機的顯示擁塞通知(ECN),該通知指示隊列是否超過閾值。

HPCC++利用沿流路徑獲得的逐跳隊列深度和傳輸字節(jié)數(shù)來更新流量速率。

現(xiàn)有方案存在的問題:盡管在何時降低傳輸速度方面取得了進展,但在增加流量速率方面,CCA仍然存在盲點。例如,一個流的適當起始速率是多少?在沒有擁塞的情況下,流應(yīng)當快速增加到什么程度?在沒有網(wǎng)絡(luò)的明確信息的情況下,端到端的CCA不得不依賴于啟發(fā)式算法,這可能導致低估或高估瓶頸帶寬,從而導致更慢的流完成時間(FCT)或增加的往返時間或丟包率。

與此同時,應(yīng)用程序?qū)焖倬W(wǎng)絡(luò)性能的需求正在增加:AI/ML應(yīng)用程序正在推動快速網(wǎng)絡(luò)傳輸,并避免使昂貴的張量處理單元(TPUs)和圖形處理單元(GPUs)空閑。同樣,存儲解聚需要快速傳輸,以使遠程存儲設(shè)備在主機上顯示為本地設(shè)備,并且時延足夠低。

在本文檔中,我們引入擁塞信號(CSIG)來明確通知主機,路徑的瓶頸鏈路情況。CSIG有幾個重要的使用場景,包括:

作為擁塞控制算法在發(fā)送速率上做出決策的依據(jù):發(fā)送端的擁塞控制算法可以使用CSIG快速而安全地將發(fā)送速率加快到由瓶頸鏈路確定的最大可行速率,并且在存在或不存在擁塞的情況下都可以精確地對瓶頸節(jié)點做出快速反應(yīng)??焖僭黾铀俾实膭訖C源于充分利用數(shù)據(jù)中心的帶寬,并降低大型傳輸?shù)难舆t。CSIG可以通過多種方式幫助快速完成傳輸,例如,使ML集體通信的傳輸可以快速增加速率,最大限度地利用所有網(wǎng)絡(luò)帶寬,并用接近理想的傳輸完成時間,完成傳輸。

流量管理,包括流量工程(TE),負載均衡和多路徑也將從CSIG中受益。TE系統(tǒng)通過離線分鐘級的處理過程,疊加網(wǎng)絡(luò)流量統(tǒng)計、拓撲和路由信息來推測出擁塞流。使用CSIG,TE可以更及時地獲得關(guān)于擁塞點和應(yīng)用流路徑擁塞信息。使用這種更精細的信息可以更有效、及時地為突發(fā)流量進行配置。類似地,啟用CSIG的多路徑傳輸流可以實時選擇具有最大可用帶寬的路徑。

故障排除和性能優(yōu)化。我們還設(shè)想CSIG有助于調(diào)試數(shù)據(jù)中心應(yīng)用程序的網(wǎng)絡(luò)級性能。大規(guī)模應(yīng)用程序,包括ML訓練工作負載,在傳輸層打開了數(shù)千個連接。當網(wǎng)絡(luò)對于一個應(yīng)用程序來說速度很慢時,幾乎不可能在沒有加入許多交換機和主機上的數(shù)據(jù)源的情況下識別出瓶頸跳。因為CSIG傳遞了路徑瓶頸特征,它在確定網(wǎng)絡(luò)中的瓶頸點上具有價值。了解這些瓶頸點可以導致更好的帶寬配置,及時的修復過程和實時的控制,例如更好的負載均衡。

CSIG提供路徑上瓶頸鏈路的簡單的固定長度摘要,例如最大節(jié)點延遲、最小可用帶寬和最大鏈路利用率。信息在路徑上通過L2層協(xié)議從網(wǎng)絡(luò)設(shè)備收集。然后,每個數(shù)據(jù)接收方通過L4層協(xié)議傳輸選項或有效載荷將收集到的信息返回給數(shù)據(jù)發(fā)送者。CSIG在網(wǎng)絡(luò)設(shè)備上使用簡單的比較和替換操作,使其能夠與網(wǎng)絡(luò)拓撲、鏈路速度和分組速率相適應(yīng)。

CSIG借鑒了之前顯式反饋方案,但更加強大。CSIG在數(shù)據(jù)報文中傳遞豐富的多位交換機遙測數(shù)據(jù),借鑒了現(xiàn)有帶內(nèi)網(wǎng)絡(luò)遙測技術(shù)INT的工作。同時,CSIG保留了類似于顯式擁塞通知(ECN)的固定大小的頭部和L4傳輸反射。

業(yè)界有三個重要的INT變體:

第一個是被P4.org指定的INT變體P4-INT

IETF的IOAM(實時操作、管理和維護)標準RFC9378

在HPCC部署中使用的Inband Flow Analyzer(IFA)規(guī)范I-D.kumar-ippm-ifa

它們在頭部定義和封裝機制上有所不同,但通常都在包的路徑上每跳堆疊多個每交換機遙測數(shù)據(jù)。包的大小隨著每個交換機上的度量值和轉(zhuǎn)發(fā)設(shè)備數(shù)量的增加而增大。根據(jù)用例和頭部定義,每個包的開銷從20字節(jié)到100字節(jié)以上不等。龐大且可變大小的頭部,給端到端MTU限制的轉(zhuǎn)發(fā)或接收設(shè)備帶來了挑戰(zhàn),同時數(shù)據(jù)包頭解析也是個問題。

存在一系列努力來解決INT變體中遇到的挑戰(zhàn),包括:

1)在合成非數(shù)據(jù)報文(也稱為探針包)中傳遞INT數(shù)據(jù)

2)在數(shù)據(jù)包中僅傳遞固定大小的INT指令(例如,指定每跳收集哪些數(shù)據(jù)),而節(jié)點生成單獨的報告包來傳遞請求的每跳節(jié)點數(shù)據(jù)。盡管這些技術(shù)減少了每個數(shù)據(jù)包的開銷,但它們并沒有從根本上減少網(wǎng)絡(luò)設(shè)備或數(shù)據(jù)收集器上的總字節(jié)數(shù)或每秒的開銷。與此同時,TCP-INT在開發(fā)過程中用于在數(shù)據(jù)包中攜帶固定大小的最小/最大/總和聚合指標,同時還具有節(jié)點定位器。然而,它僅適用于TCP選項,因此不適用于各種現(xiàn)代AI/HPC傳輸,而且沒有靈活的方法引入新的指標。CSIG的類型-值格式確保了常量大小的開銷,并具有未來兼容性。協(xié)議大小固定,并且足夠小,可以適應(yīng)4字節(jié)或8字節(jié)的標簽,從而在L2層協(xié)議中實現(xiàn)CSIG,使運營商在部署CSIG時不必擔心隧道和加密的問題。

下面,我們將描述CSIG主機和網(wǎng)絡(luò)設(shè)備端到端的設(shè)計。

設(shè)計原則

CSIG是為解決生產(chǎn)網(wǎng)絡(luò)中的擁塞控制、流量管理和網(wǎng)絡(luò)調(diào)試問題而生。CSIG的設(shè)計原則中,最重要的是簡單性和易于部署。后面也會討論在CSIG中所做具體設(shè)計選擇背后的理論基礎(chǔ):

業(yè)務(wù)感興趣的簡單信號:使用設(shè)備端口或隊列等簡單指標,以解決具體業(yè)務(wù)問題,是CSIG設(shè)計原則的核心。這種簡單性不僅對應(yīng)用程序很重要,而且還可以降低網(wǎng)絡(luò)設(shè)備芯片的面積、功耗和成本,保證CSIG中的信號可以在ASIC中以線速實現(xiàn)。例如,在CSIG中避免使用用于跟蹤交換機上每個流狀態(tài)的信號,因為其很難實現(xiàn)和部署。CSIG也足夠靈活,可以適應(yīng)超出本文描述范圍的新信號和業(yè)務(wù)場景。

端到端的視角:CSIG的設(shè)計源于對應(yīng)用程序和網(wǎng)絡(luò)的端到端的需求和權(quán)衡。使CSIG對應(yīng)用程序有用,并且易于部署。

固定的少量報文開銷:若包的大小在經(jīng)過網(wǎng)絡(luò)時不增加,則MTU不需要改變。引入的任何開銷應(yīng)該是固定且少量的,以最小化在交換機/ NIC流水線中的實現(xiàn)成本。低協(xié)議開銷還意味著對于小數(shù)據(jù)報文而言帶寬開銷小,從而最小化對PPS負載和帶寬效率的影響。我們對于哪些數(shù)據(jù)包和設(shè)備啟用CSIG做出了很少的假設(shè)。設(shè)備實現(xiàn)必須能夠在線速率下以最小的CPU參與,處理CSIG的數(shù)據(jù)包。保持開銷小且固定允許在線速率下對每個數(shù)據(jù)包啟用CSIG。這很重要,因為部署可能選擇在每個數(shù)據(jù)包而非一小部分數(shù)據(jù)包上啟用CSIG。

在隧道和加密下易于工作:隧道在現(xiàn)代部署中廣泛使用,例如流量工程系統(tǒng)和云流量經(jīng)常使用隧道。CSIG被設(shè)計成在復雜的隧道部署環(huán)境中輕松的端到端信令。這與其他帶內(nèi)遙測方案不同,其他方案需要更多的ASIC來在隧道存在時在內(nèi)、外頭部之間重新定位元數(shù)據(jù)。此外,CSIG還支持加密數(shù)據(jù)包,包括PSP、IPSec和802.1AE MAC安全。

增量部署能力:CSIG允許逐步部署,即該機制可以逐步部署到一些設(shè)備可能支持新協(xié)議,而其他設(shè)備可能不支持的域中。后續(xù)也將討論異構(gòu)網(wǎng)絡(luò)中的互操作性,解決與遺留設(shè)備的向后兼容性問題。

CSIG 協(xié)議

CSIG協(xié)議在數(shù)據(jù)報文頭定義了兩個,以實現(xiàn)生產(chǎn)網(wǎng)絡(luò)中的端到端擁塞信號傳輸。

CSIG tag:一種L2協(xié)議,端節(jié)點和中轉(zhuǎn)設(shè)備參與。

CSIG reflection:一種靈活的L4+協(xié)議,只有端節(jié)點參與。

CSIG tag是CSIG規(guī)范的核心。它使端節(jié)點能夠請求感興趣的網(wǎng)絡(luò)信號,并使中轉(zhuǎn)設(shè)備能夠通過指定的數(shù)據(jù)報文頭向端節(jié)點提供這些信號。

然而,為了實現(xiàn)端到端的CSIG,CSIG tag可以與CSIG reflection協(xié)議結(jié)合使用,將感興趣的信號暴露給需要這些信號的相關(guān)端側(cè)節(jié)點或消費者。

下面描述CSIG tag和CSIG reflection的頭部格式,然后描述CSIG數(shù)據(jù)包的生命周期,概述網(wǎng)絡(luò)設(shè)備在CSIG環(huán)境中的不同角色,并說明了這兩種數(shù)據(jù)包頭部機制如何共同實現(xiàn)端到端信號傳輸。

CSIG tag格式

CSIG tag是在網(wǎng)絡(luò)協(xié)議第2層報文頭中固定大小的標簽。

下面顯示了CSIG tag在各種數(shù)據(jù)包封裝中的位置。它始終是第2層頭部的最后一個標簽。

ARPA:dstmac / srcmac / csig-tag / ethertype / payload

802.1q:dstmac / srcmac / vlan-tag / csig-tag / ethertype / payload

802.1ad:dstmac / srcmac / vlan-tag / vlan-tag / csig-tag / ethertype / payload

802.1ad隧道:dstmac / srcmac / vlan-tag / vlan-tag / vlan-tag / vlan-tag / csig-tag / ethertype / payload

802.1ae:dstmac / srcmac / security-tag / vlan-tag / csig-tag / ethertype / payload

因此,CSIG tag的放置/偏移與第3層及以上的頭部和有效負載無關(guān)。第2.5層的頭部,如MPLS,也放置在CSIG tag之后,不會影響其偏移。

CSIG tag有兩種變體:緊湊型和擴展型。每種變體都有一個專用的TPID代碼點,使設(shè)備能夠推斷使用的是哪種變體。每種變體都支持與生產(chǎn)部署相關(guān)的不同要求,并在解決方案空間中識別對比的權(quán)衡點。

緊湊型格式

從結(jié)構(gòu)上講,緊湊型的CSIG tag變體類似于單個VLAN標簽,而擴展型的CSIG tag變體類似于雙VLAN標簽。這種結(jié)構(gòu)的相似性是有意的,后面詳細說明原因。

CSIG(Compact Signal)標簽的緊湊格式如下所示,其中2B用于分配給CSIG tag協(xié)議ID(TPID),2B用于數(shù)據(jù)字段。

  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  |            TPID              |  T  |R|    S    |      LM    |

  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  |0-15|  TPID  : IEEE allocated Tag Protocol ID for 4 Byte CSIG tag

  |16-18| T    : Signal Type (0:min(ABW), 1: min(ABW/C), 2:max(PD))

  |19|    R    : Reserved

  |20-24| S    : Signal Value: Bucketed (32 configurable buckets)

  |25-31| LM    : Locator Metadata of bottleneck device / port

擴展型格式

CSIG tag的擴展格式如下所示,其中2B用于分配給標簽協(xié)議ID(TPID),6B用于數(shù)據(jù)字段

  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  |            TPID              |              LM              |

  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  |  T  |                  S                    |      R      |

  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  |0-15|  TPID : IEEE allocated Tag Protocol ID for 8 Byte CSIG tag

  |16-31| LM  : Locator Metadata of bottleneck device / port

  |0-3|  T    : Signal Type (0:min(ABW), 1: min(ABW/C), 2:max(PD))

  |4-23|  S    : Signal Value: Uniformly quantized

  |24-31| R    : Reserved for future use

CSIG tag字段

信號類型(Signal Type)

信號類型字段T: 在緊湊格式中為3位,在擴展格式中為4位,表示CSIG tag中攜帶的信號類型。端側(cè)主機設(shè)置信號類型T,并在每個感興趣的數(shù)據(jù)包上請求。緊湊格式支持最多8種信號類型,擴展格式支持最多16種信號類型。CSIG草案明確定義了三種信號:min(ABW),min(ABW/C)和max(PD)。其他編碼值保留用于將來的信號類型,并且可以在CSIG的將來版本中定義和使用。

min(ABW): min available bindwidth, 最小可用帶寬

min(ABW/C): min available bindwidth/Capacity,最小可用帶寬率

max(PD): max per-hop Delay, 最大每跳時延

一個數(shù)據(jù)報文最多只能攜帶一個擁塞信號。然而,終端主機可以通過在流的交替數(shù)據(jù)包或循環(huán)中請求不同的信號類型來獲取同一5元組流的多個信號。因此,終端主機不需要將單個流與特定的信號類型綁定,單個流可以獲得所有支持的CSIG信號。

信號值(Signal Value)

信號值字段S: 在緊湊格式中是5位,擴展格式中是20位,用于捕獲信號類型T指定的信號值。終端主機在請求的信號類型T旁邊設(shè)置初始的信號值S,網(wǎng)絡(luò)中的傳輸設(shè)備根據(jù)其計算的端到端信號修改S。例如,對于最小聚合的信號,終端主機將S的初始值設(shè)置為信號的最大允許值或其編碼的最大允許值,傳輸設(shè)備通過比較和替換來計算數(shù)據(jù)包路徑上各個設(shè)備的信號的最小。

在緊湊格式中,5位信號值與32個完全可配置的bucketing配對。每個bucketing都配置有(低值,高值)范圍。這個配置對于每個信號類型都是特定的,并且在信號類型之間可能有所不同。這樣可以根據(jù)每個信號類型的具體需求來定制信號值的表示形式。例如,在可用帶寬的典型用例中,對信號較低值(即,當ABW接近0時)具有更高的精度,而對信號較高值則精度設(shè)置低一些。這是因為較低的ABW值對應(yīng)用業(yè)務(wù)控制決策更有用。例如,知道路徑上有0 Gbps vs 1 Gbps可用帶寬,比知道路徑上有399 Gbps vs 400 Gbps可用帶寬,對決策更有用。

附錄A展示了如何定義該字段以提供這種非線性的值得范圍到bucketing的編碼。這種可配置的編碼允許使用較少的位數(shù)捕獲有更多有用的信號信息,這是緊湊CSIG格式的核心功能。

在擴展格式中,信號值均勻地量化為20位值。量化單位可以根據(jù)每種信號類型的最小和最大值進行配置,具體取決于需要用給定位數(shù)表示的最小和最大值。更高的位寬允許實現(xiàn)更細粒度的信號和更少的配置。20位足以用高精度表示一系列值。例如,使用 8Mbps 表示 min(ABW),信號值字段可以表示最大為8Tbps的值。使用128ns的表示max(PD),信號值字段可以表示最大為128ms的值。

關(guān)于特定信號量的更多討論在附錄A中。

信號量化/bucketing參數(shù)在計算信號的傳輸設(shè)備上直接配置。終端主機不需要明確地請求或協(xié)商這些參數(shù)。為了正確計算沿數(shù)據(jù)包路徑請求的信號,所有設(shè)備必須為每種信號類型配置相同的量化/bucketing參數(shù)。

定位元數(shù)據(jù)(locator Metadata)

locator metadata字段(LM, 定位元數(shù)據(jù)),在緊湊格式中是7位,在擴展格式中是16位, 可選。它捕獲與瓶頸端口或設(shè)備相關(guān)的元數(shù)據(jù)信息,其中瓶頸的概念針對各個信號類型而言。locator metadata可以包括與瓶頸有關(guān)的壓縮屬性,例如瓶頸端口的容量,數(shù)據(jù)中心拓撲中瓶頸設(shè)備的位置,瓶頸端口的方向-上行/下行。LM還可以包括瓶頸的擴展屬性(例如端口ID,TTL)。

本文提供了locator metadata可能攜帶的信息類型的建議,但不需要支持所有特定集合的元數(shù)據(jù),具體取決于生產(chǎn)環(huán)境。

端側(cè)將LM初始化為默認值。不更新信號值S的傳輸設(shè)備不得更改該數(shù)據(jù)包上的LM。更新數(shù)據(jù)包上的S的傳輸設(shè)備必須更新數(shù)據(jù)包上的LM。

CSIG Reflection 格式

CSIG reflection使信號數(shù)據(jù)字段可以在需要進行遙測或控制的地方消費。這種機制特別適用于發(fā)送方驅(qū)動的/基于源的遙測和控制。對于接收方驅(qū)動的傳輸和控制,可能不需要CSIG reflection,因為CSIG tag上的信號在接收方上是可用的。

下面提供有關(guān)如何實現(xiàn)CSIG reflection的建議,并提供其實現(xiàn)部署的框架。

CSIG reflection報文頭與CSIG tag報文頭分開,解耦,其實現(xiàn)在網(wǎng)絡(luò)協(xié)議的第4層或更高層。頭的位置和攜帶頭的數(shù)據(jù)包的選擇基于傳輸協(xié)議而定。例如,頭可以攜帶在接收方發(fā)送回發(fā)送方的TCP ACK包上。

注意,存在ACK合并、蹭ACK、選擇性確認(SACK)等問題可能會影響CSIG reflection的行為。更一般地說,前向和反向路徑數(shù)據(jù)包之間可能沒有一對一的映射。在傳輸層實現(xiàn)ACK合并的情況下,CSIG reflection頭應(yīng)反射已經(jīng)被確認的數(shù)據(jù)包中接收到的最新的CSIG tag數(shù)據(jù)字段,或者反映這些被確認的數(shù)據(jù)包中CSIG tag數(shù)據(jù)字段的總結(jié)。

值得注意的是,由于信號類型是以每個數(shù)據(jù)包為粒度,一個合并的ACK可能確認攜帶不同信號類型的多個數(shù)據(jù)包。在這種情況下,反射頭只能反射其中一個信號。發(fā)送方傳輸層應(yīng)該選擇數(shù)據(jù)包的信號類型,以確保它可以繼續(xù)接收到所有感興趣的信號。

CSIG reflection頭可以包含所有的CSIG數(shù)據(jù)字段,即緊湊版本為2Bits,擴展版本為6Bits。然而,如果消費者只對一部分信號或locator metadata感興趣,可以優(yōu)化頭部空間并只包含其中的一個子集。

CSIG reflection是一種僅限于終端主機的協(xié)議,傳輸設(shè)備不參與其中。因此,CSIG reflection頭可以集成到通過PSP或IPSec進行端到端加密的數(shù)據(jù)包的部分中。

下面討論了在不同傳輸方式的數(shù)據(jù)包頭中實施CSIG reflection的位置。

TCP中的反射

通常,TCP中的反射是通過TCP選項實現(xiàn)的??梢酝ㄟ^一個新的TCP選項來實現(xiàn)CSIG reflection,該選項由唯一的標識符識別。

0 1 2 3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Kind | Length | CSIG數(shù)據(jù)字段 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Kind:唯一編碼,用于識別TCP CSIG選項

Length:選項負載中攜帶的CSIG數(shù)據(jù)字段的長度(以字節(jié)為單位)

CSIG數(shù)據(jù)字段:從接收方反射到發(fā)送方的值

非TCP傳輸中的反射

QUIC和PonyExpress等多個傳輸協(xié)議構(gòu)建在UDP之上。可以通過在UDP載荷中包含CSIG數(shù)據(jù)字段來實現(xiàn)UDP的反射。對于單向的UDP流量,可能需要從接收方到發(fā)送方的反向連接來進行CSIG reflection。

以PonyExpress為例,它是一個在用戶空間主機網(wǎng)絡(luò)堆棧中實現(xiàn)的自定義傳輸。它支持一種靈活的第4層協(xié)議,隨著添加新功能而定期更改。CSIG reflection可以作為這個協(xié)議中的附加字節(jié)來實現(xiàn)。

                      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6

                      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      |      Flags      | CSIG數(shù)據(jù)字段  |

                      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

為了簡化操作并避免協(xié)商,CSIG reflection頭可以攜帶在所有數(shù)據(jù)包上,而不管它們是否啟用了CSIG。Flags字段中的Valid位可以設(shè)置為1,表示攜帶反射頭中的有效數(shù)據(jù)字段。在某些部署中,由于多種原因,協(xié)商是不可避免的。

CSIG 操作-報文生命周期

本節(jié)介紹CSIG操作的數(shù)據(jù)包生命周期。

下面描述CSIG的端到端操作,并通過一個數(shù)據(jù)包的生命周期進行詳細講解。假設(shè)路徑中的所有節(jié)點都支持CSIG,并省略了協(xié)商階段的細節(jié)。

 Forward Path

--------------------------------------------------------->

<---------------------------------------------------------

                        Reverse Path

+------+ +-----+ +------+ +------+ +------+ +-----+ +------+

| Host +---+ ToR +---+ Aggr +--+ Core +--+ Aggr +--+ ToR +---+ Host |

+------+ +-----+ +------+ +------+ +------+ +-----+ +------+

    C:  800G      100G      100G      100G      40G

  ABW:  100G      95G      70G      90G      20G

                                                ---

ABW/C:  12.5%      95%      70%      90%      50%

        -----

    D:  10us      3us      18us      5us      8us

                            ----

CSIG數(shù)據(jù)包的生命周期。下劃線表示對應(yīng)信號類型的正向路徑瓶頸

正向路徑

發(fā)送端主機首先構(gòu)造一個帶有CSIG標記的數(shù)據(jù)包,初始化的標記數(shù)據(jù)字段。傳輸層確定這些數(shù)據(jù)包的初始值,包括請求的信號類型和其他數(shù)據(jù)字段的默認值。每個中轉(zhuǎn)設(shè)備對CSIG標記執(zhí)行比較和替換操作,可以更新標記上的信號值和locator metadata字段。當數(shù)據(jù)包在網(wǎng)絡(luò)中傳輸時,CSIG標記的數(shù)據(jù)字段會累積請求信號的聚合。

反向路徑

當帶有CSIG標記的數(shù)據(jù)包到達接收端主機時,CSIG標記中的數(shù)據(jù)字段被提取并傳遞到接收端的傳輸層。傳輸層將數(shù)據(jù)包的數(shù)據(jù)字段存儲下來以進行反射,或者對這些字段進行匯總。它在從接收端到發(fā)送端的反向路徑上的數(shù)據(jù)包上反映這些數(shù)據(jù)字段,反射標頭在此過程中不變。發(fā)送端從傳入數(shù)據(jù)包的CSIG reflection標頭中提取CSIG數(shù)據(jù)字段,并將其傳遞給發(fā)送端的傳輸層以供應(yīng)用程序使用。因此,發(fā)送端的傳輸層在大約一個往返時間內(nèi)了解流的所需信號。

多個信號

傳輸層在使CSIG方面發(fā)揮著重要作用。盡管CSIG數(shù)據(jù)字段是通過數(shù)據(jù)包傳輸?shù)?,但測量結(jié)果最終與特定路徑的流/連接相關(guān)。如果發(fā)送方傳輸層希望為同一流獲取多個信號,它可以選擇每個數(shù)據(jù)包基于信號類型選擇信號(例如,按照循環(huán)方式在該流的數(shù)據(jù)包之間選擇),并在流的狀態(tài)變量中內(nèi)部跟蹤所有請求的信號。這種方法使發(fā)送方傳輸可以利用所有支持的CSIG信號,以用于擁塞控制、負載平衡和多路徑傳輸?shù)扔美?/p>

設(shè)備角色

CSIG有三個參與實體,每個實體都有自己的角色和責任來實現(xiàn)端到端的擁塞信號傳遞。

發(fā)送主機

發(fā)送方主機負責構(gòu)建與感興趣CSIG標記的數(shù)據(jù)包,并按照傳輸規(guī)范在每個數(shù)據(jù)包上初始化CSIG標記的數(shù)據(jù)字段,以及解析接收到的輸入數(shù)據(jù)包中的CSIG reflection頭部,并提取用于發(fā)送方傳輸/應(yīng)用程序的CSIG數(shù)據(jù)字段。只有發(fā)送方允許在數(shù)據(jù)包中插入CSIG標記。

轉(zhuǎn)發(fā)設(shè)備

中間節(jié)點負責計算和跟蹤每個端口和每個數(shù)據(jù)包的擁塞信號,如ABW和ABW/C,以及基于傳入數(shù)據(jù)包上的TPID編碼解析CSIG標記,以識別請求的信號類型,并根據(jù)請求的信號類型(最小/最大)對CSIG標記上的信號值和locator metadata字段進行比較和替換。

接收主機

接收方主機負責提取傳入數(shù)據(jù)包上的CSIG標記,并將數(shù)據(jù)字段暴露給傳輸層和/或接收驅(qū)動的應(yīng)用程序,以及在反向路徑上傳輸?shù)臄?shù)據(jù)包上的傳輸層插入和填充CSIG reflection頭部。

雙向流的主機角色

請注意,對于雙向流量,發(fā)送方和接收方針對流中的每個方向具體說明。對于主機A和B之間的雙向流動,[i] A扮演發(fā)送方角色,B扮演接收方角色,數(shù)據(jù)包從A到B傳輸,類似地,[ii] B扮演發(fā)送方角色,A扮演接收方角色,數(shù)據(jù)包從B到A傳輸。在這種情況下,從A到B傳輸?shù)臄?shù)據(jù)包包含了既捕捉正向A->B路徑上擁塞信號的CSIG tag,又捕捉了反向B->A路徑的CSIG數(shù)據(jù)字段的CSIG reflection頭部。同樣,從B到A傳輸?shù)臄?shù)據(jù)包不僅包含捕捉正向B->A路徑上擁塞信號的CSIG tag,還包含捕捉反向A->B路徑的CSIG數(shù)據(jù)字段的CSIG reflection頭部。

CSIG中的信號

如上所述,擁塞信號類型表示CSIG tag上每個數(shù)據(jù)包攜帶的擁塞信號類型。緊湊格式支持最多8種信號類型,擴展格式支持最多16種信號類型。在本節(jié)中,我們具體定義了三種信號,這些信號通過業(yè)務(wù)來驅(qū)動。

值得注意的是,未來擴展的信號是CSIG中的聚合函數(shù),它們對于數(shù)據(jù)包路徑上的每跳或每端口信號進行聚合。使用典型的最大/最小聚合定義捕捉不同路徑瓶頸。然而,從結(jié)構(gòu)上看,該格式支持任意的讀、寫、修改操作,包括最大、最小、計數(shù)和求和等聚合操作,允許未來的用例利用這種結(jié)構(gòu)來實現(xiàn)新的信號。

最小可用帶寬(min(ABW))

最小可用帶寬(min(ABW))捕捉了數(shù)據(jù)包路徑上所有端口的最小絕對可用帶寬(以bps為單位)??捎脦捲诿總€設(shè)備的出口端口上定義。

ABW可以使用多種算法變體來計算,每一種算法變體對硬件或軟件實現(xiàn)復雜性、計算時間尺度和信號準確性都有影響。在其基本形式中,對于給定的出口端口p和時間間隔delta_t,可以如下計算ABW:

// delta_txbit is the number of bits that exited on the wire

utilization_bps[p] = (delta_txbit[p]) / delta_t;

// capacity_bps[p] captures the link speed of port p

abw_bps[p] = capacity_bps[p] - utilization_bps[p];

實現(xiàn)這些計算依賴于設(shè)備中至少以下一種功能:

基于計時器的計算:大多數(shù)網(wǎng)絡(luò)ASIC都維護著硬件計數(shù)器,用于跟蹤每個出口端口的傳出比特數(shù)。為了計算可用帶寬,軟件或硬件中的周期計時器線程會觸發(fā)可用帶寬的計算和更新,時間間隔為delta_t,其中delta_t是一個可配置的參數(shù)。

每個數(shù)據(jù)包計算:在這種方法中,可用帶寬是在通過出口管道處理每個數(shù)據(jù)包時計算和更新的,通常在硬件中,例如使用指數(shù)加權(quán)移動平均(EWMA)估計,其中權(quán)重是可配置的。delta_t在這種方法中不是一個顯式的參數(shù),而是通過EWMA權(quán)重隱式確定。變體,如折扣速率估算器(DRE)CONGA,使用了每個數(shù)據(jù)包的更新和基于計時器的方法的組合。

最小可用帶寬率(min(ABW/C))

ABW/C表示給定鏈路上可用帶寬與鏈路容量的比例或百分比。min(ABW/C)捕捉數(shù)據(jù)包所經(jīng)過路徑上的鏈路利用率瓶頸。這個信號在鏈路速度不均勻的路徑中最相關(guān),并與min(ABW)區(qū)別開來。min(ABW/C)等于max(U/C),其中U是出口端口的利用率(以bps為單位),C是出口端口的容量(以bps為單位),ABW是出口端口的可用帶寬(以bps為單位)。

因此,

max(U/C) = max (1 - ABW/C) = 1 - min(ABW/C)

ABW/C可以通過以下方式從ABW計算得出:

abwc_frac[p] = abw_bps[p] / capacity_bps[p];

在具有異構(gòu)鏈路速度的路徑上,min(ABW)和min(ABW/C)瓶頸不一定是相同的端口。

min(ABW)和min(ABW/C)瓶頸有各自的值。

min(ABW)和min(ABW/C)共享以下要求:

算法要求:確保計算準確性和性能,并處理各種通信模式(峰值、持續(xù)、間歇)。

實時性:算法必須在合理時間范圍內(nèi)計算并更新ABW和ABW/C,以適應(yīng)網(wǎng)絡(luò)流量和鏈路變化。

精度:算法必須以高精度計算和更新ABW和ABW/C,以提供準確的鏈路利用率信息。

可配置性:算法參數(shù)和策略必須可配置,以允許適應(yīng)網(wǎng)絡(luò)的具體需求和特性。

擴展性:算法必須具備擴展性,以處理大規(guī)模網(wǎng)絡(luò)和高速鏈路的計算需求。

有效性:算法必須在有限的計算和存儲資源下運行,以確保高效和可擴展性。

穩(wěn)定性:算法必須具備穩(wěn)定性,以在網(wǎng)絡(luò)波動和傳輸環(huán)境不穩(wěn)定的情況下提供準確的結(jié)果。

可行性:算法必須可行,無論是在現(xiàn)有硬件設(shè)備中實現(xiàn)還是在未來的硬件設(shè)備中實現(xiàn)。

為了支持CSIG中的min(ABW)或min(ABW/C),設(shè)備應(yīng)支持具有可配置delta_t的原始ABW計算,還可以支持其他算法,例如EWMA或DRE。該要求能夠?qū)τ嬎憧捎脦挼臅r間尺度進行一致的解釋。這種一致的解釋允許端側(cè)根據(jù)這個時間尺度來調(diào)整其控制決策,例如與流的往返時間相關(guān)。

CSIG不對具體的deltat值設(shè)置嚴格要求,只要能夠配置以覆蓋網(wǎng)絡(luò)中的RTT范圍即可,例如{10微秒,100微秒,1毫秒,10毫秒,100毫秒,1秒等}。盡管人們可能期望包路徑上的所有設(shè)備在相似的時間尺度上計算ABW,以提供一致的路徑寬度視圖,但CSIG并不會對一個數(shù)據(jù)包路徑中設(shè)備選擇的deltat參數(shù)的一致性設(shè)置嚴格要求。信號精度和時間尺度的選擇試具體使用情況而定,不受CSIG的強制約束。當CSIG上每個數(shù)據(jù)包攜帶的ABW或ABW/C在較短的時間尺度上時,端側(cè)可以使用流的數(shù)據(jù)包間EWMA來計算較長時間尺度上的ABW或ABW/C。當在出口端口上的流遍歷的RTT范圍較大時,ABW計算在出口端口上設(shè)置為固定的時間尺度,而在每個中轉(zhuǎn)設(shè)備上計算的ABW則可使用較長時間尺度,該技術(shù)就顯得有用[【注2】]。

計算ABW或ABW/C值必須進行壓縮以適應(yīng)CSIG tag上的可用信號值位。設(shè)備必須支持32個完全可配置的ABW bucket和ABW/C bucket以進行緊湊的CSIG,并支持可配置的量化因子以進行擴展的CSIG中的均勻量化。在數(shù)據(jù)包路徑上的所有設(shè)備必須使用相同的bucket/量化因子來正確計算沿路徑的min(ABW)或min(ABW/C)。附錄A提供了這些配置的示例。

每個中轉(zhuǎn)設(shè)備執(zhí)行比較和替換操作,即在通過bucket化/量化之后,如果數(shù)據(jù)包上的傳入ABW或ABW/C信號值高于設(shè)備對于數(shù)據(jù)包的出口端口計算的本地ABW或ABW/C值,則更新CSIG tag上的信號值?!咀?】。

注釋說明:注1:CSIG定義了對delta_t值的一致性要求,以保證在網(wǎng)絡(luò)中計算的ABW的一致性和可調(diào)性。注2:CSIG允許端側(cè)根據(jù)需要在不同的時間尺度上計算ABW,并支持不同時間尺度上的ABW之間的轉(zhuǎn)換。注3:最小化ABW或ABW/C可能會在擁塞點出發(fā)生。

min(ABW)和min(ABW/C)是網(wǎng)絡(luò)設(shè)備上具有低實現(xiàn)復雜性的明確信號。為了簡單起見,這些定義有意不區(qū)分可能共享出端口的QoS類別。對出端口上每個QoS類別的可用帶寬進行定義和有意義的解釋是很復雜的,因為它取決于與QoS相關(guān)的調(diào)度策略(嚴格優(yōu)先級/WRR/不足WRR)、緩沖區(qū)分割配置和其他策略(例如AQM)。這里將QoS為基礎(chǔ)的這些信號及其潛在用例作為未來的工作留下。

最大跳延遲(max(PD))

max(PD)是在數(shù)據(jù)包路徑中的所有跳躍中數(shù)據(jù)包經(jīng)歷的最大一跳延遲。一跳延遲PD(per-hop Delay)是數(shù)據(jù)包在設(shè)備管道中花費的時間。它可能包括鏈路層延遲,或者僅包括在轉(zhuǎn)發(fā)管道中觀察到的延遲。

與每個端口的ABW和ABW/C不同,PD是數(shù)據(jù)包粒度的。它包括數(shù)據(jù)包經(jīng)歷的PHY、MAC和交換機管道延遲。管道延遲是最相關(guān)的組成部分,因為它捕捉了與擁塞相關(guān)的排隊延遲。設(shè)備實現(xiàn)可以明確跟蹤每個數(shù)據(jù)包的入站和出站時間戳,并在管道的最后階段執(zhí)行差分。對這些階段的準確定義取決于設(shè)備的架構(gòu)。例如,某些設(shè)備可以利用現(xiàn)有的尾端時間戳支持來實現(xiàn)這一目的。

要求

算法要求

要支持CSIG中的max(PD),設(shè)備應(yīng)該支持通過設(shè)備跟蹤每個數(shù)據(jù)包經(jīng)歷的延遲。

精度要求

希望在設(shè)備捕獲的數(shù)據(jù)包延遲組成部分之間有最小的間隔。然而,CSIG對要求支持的PD的準確性沒有設(shè)定嚴格要求。

分桶/量化要求

計算出的延遲值必須被壓縮以適應(yīng)CSIG tag上可用的信號值位。設(shè)備必須支持32個完全可配置的延遲桶以適應(yīng)緊湊的CSIG,并支持可配置的量化以進行擴展的CSIG中的均勻量化。沿著數(shù)據(jù)包路徑的所有設(shè)備必須配置相同的桶/量子,以正確計算沿路徑的max(PD)。

每個中轉(zhuǎn)設(shè)備都執(zhí)行比較和替換操作,即如果數(shù)據(jù)包上的傳入延遲信號值高于設(shè)備對數(shù)據(jù)包的本地計算延遲值(在桶化/量化后),則更新CSIG tag上的信號值。

例如:

// 如果當前跳是瓶頸,更新數(shù)據(jù)包上的信號值

pkt->csig_tag->pd = min(pkt->csig_tag->pd, device->pkt->pd)

QoS要求

數(shù)據(jù)包在設(shè)備上經(jīng)歷的延遲是一個具有特定QoS的信號。這是因為數(shù)據(jù)包在通過設(shè)備的流水線時會受到QoS策略的影響,包括優(yōu)先級設(shè)置、調(diào)度和緩沖。例如,高優(yōu)先級數(shù)據(jù)包的延遲可能比低優(yōu)先級數(shù)據(jù)包小。因此,對于數(shù)據(jù)包的延遲測量應(yīng)包括應(yīng)用QoS策略的流水線中的各個組成部分。

Locator metadata實現(xiàn)

locator metadata(LM)記錄了有關(guān)瓶頸設(shè)備或端口的信息。在本節(jié)中,我們討論支持CSIG中的LM的需求,并推薦一些常用的屬性。

CSIG并不對LM內(nèi)部格式(即如何將各個屬性組織在可用的LM位之間)設(shè)置嚴格要求。然而,該LM內(nèi)部格式必須在部署域中的設(shè)備之間保持一致,以便終端主機可以一致地解釋這些位??梢葬槍γ總€信號類型設(shè)置LM格式。

設(shè)備應(yīng)支持配置每個端口的LM值,以便將其寫入CSIG tag。設(shè)備還可以根據(jù)信號類型提供更細粒度的LM配置能力。設(shè)備更新了信號值,則CSIG數(shù)據(jù)包必須使用與端口和信號類型對應(yīng)的LM進行更新。

屬性

locator metadata屬性可以設(shè)計為捕獲業(yè)務(wù)場景所需的精度,以便確定網(wǎng)絡(luò)瓶頸。屬性可以被編碼,以適應(yīng)在CSIG中可用的有限數(shù)量的LM位。

我們將屬性列表分為緊湊屬性和擴展屬性。緊湊屬性是由緊湊型CSIG中可用的有限位數(shù)的LM限制,僅捕捉有關(guān)瓶頸的必要的基本信息,以滿足使用場景需求,即用于通知控制決策或遙測。擴展屬性提供關(guān)于瓶頸的更高精度的信息,幫助直接確定瓶頸設(shè)備或端口。擴展屬性通常需要更多位,因此更適合擴展型CSIG。

下面列出了屬性的示例。

緊湊屬性:

鏈路容量:瓶頸鏈路的容量。在典型部署中,鏈路速度是一個小的集合,可以使用<= 5位進行編碼。

瓶頸鏈路位置:瓶頸設(shè)備/端口所在的拓撲位置(或階段)。例如,在一個5層閉合拓撲中,設(shè)備的位置可以使用3位進行編碼。

鏈路方向:端口在網(wǎng)絡(luò)拓撲中的方向。例如,使用三個類別 - 上行鏈路、下行鏈路和側(cè)鏈路 - 可以使用2位進行編碼。

擴展屬性:

端口ID:為部署域中的每個端口編碼一個唯一的標識符。

設(shè)備ID:為部署域中的每個設(shè)備編碼一個唯一的標識符。

TTL(生存時間):捕捉瓶頸設(shè)備上的數(shù)據(jù)包的TTL值(Time to Live,指的是數(shù)據(jù)包在網(wǎng)絡(luò)中允許存在的最長跳數(shù)),使用8位表示。終端主機可以使用此屬性推斷數(shù)據(jù)包瓶頸節(jié)點在多少跳。

LM屬性和編碼方案最終是有業(yè)務(wù)場景與部署決定。CSIG支持靈活的LM規(guī)范,以適應(yīng)各種需求和未來應(yīng)用。

實現(xiàn)CSIG的增量部署

大多數(shù)生產(chǎn)網(wǎng)絡(luò)是異構(gòu)的,管理網(wǎng)絡(luò)中有不同代際設(shè)備。

在描述增量部署之前,我們引入了CSIG剝離的概念,這是在異構(gòu)環(huán)境中部署CSIG的基礎(chǔ)行動原語。

支持CSIG的設(shè)備在轉(zhuǎn)發(fā)數(shù)據(jù)包之前必須能夠刪除CSIG tag。設(shè)備必須可以在每個出口端口上配置CSIG剝離。如果配置了端口剝離CSIG,則在該端口上出口的所有帶有CSIG tag的數(shù)據(jù)包在轉(zhuǎn)發(fā)之前必須移除該標簽。

在接下來的幾節(jié)中,我們將描述如何通過此功能實現(xiàn)增量部署。

CSIG支持級別

首先,我們根據(jù)設(shè)備的CSIG支持級別將設(shè)備分為三個簡化的類別。在接下來的幾節(jié)中,我們將描述CSIG如何與每個設(shè)備類別進行互操作。請注意,支持級別取決于標簽的放置位置以及使用緊湊型還是擴展型CSIG tag格式。

丟棄

此類設(shè)備不能識別或解析帶有CSIG tag的數(shù)據(jù)包。如果接收到此類數(shù)據(jù)包,它們將被簡單地丟棄。

透傳

此類設(shè)備能夠識別和解析帶有CSIG tag的數(shù)據(jù)包,并且可以透明地轉(zhuǎn)發(fā)帶有標簽的數(shù)據(jù)包或經(jīng)過剝離標簽后的數(shù)據(jù)包到相鄰設(shè)備(在中轉(zhuǎn)設(shè)備的情況下)或到端側(cè)主機傳輸層(在端側(cè)主機的情況下)。然而,它們不支持更新標簽上的CSIG數(shù)據(jù)字段。

一些本地不支持CSIG的設(shè)備可以根據(jù)可配置的TPID支持CSIG的透傳模式。

完全支持

此類設(shè)備支持完整的CSIG協(xié)議,包括識別、解析、轉(zhuǎn)發(fā)、剝離標簽、信號計算和標簽上的信號更新。然而,可能只支持一部分信號類型。

軟件輔助支持

值得注意的是,在一些本地不支持CSIG的設(shè)備中,可以重用用于VLAN標簽處理的資源,以使用軟件和硬件能力組合來支持某些信號類型的CSIG。我們將這種支持級別稱為軟件輔助支持。

本地支持

本地支持CSIG的設(shè)備明確配備了實現(xiàn)CSIG協(xié)議所需的硬件能力。

CSIG域是一個部署域,其中所有網(wǎng)絡(luò)設(shè)備對CSIG都具有完全支持或透傳支持能力。

在既有部署中的互操作性

在本節(jié)中,我們首先定義了在既有部署中的CSIG互操作性的要求。然后,我們考慮了在上一節(jié)描述的支持級別的設(shè)備,并描述了如何配置這些設(shè)備以實現(xiàn)互操作性。需要注意的是,以下描述分別適用于緊湊型和擴展型的CSIG tag。

互操作性的要求

轉(zhuǎn)發(fā):最基本的要求是網(wǎng)絡(luò)中不能因為設(shè)備不支持CSIG而丟棄帶有CSIG tag的數(shù)據(jù)包。這意味著帶有CSIG tag的數(shù)據(jù)包不能到達丟棄設(shè)備,或者在到達此類設(shè)備之前必須去除其CSIG tag。

協(xié)商:端口/流量應(yīng)當確保路徑(包括端側(cè)和中轉(zhuǎn)設(shè)備)具有CSIG功能,然后才能在數(shù)據(jù)包上啟用CSIG標記。丟棄類別的設(shè)備不應(yīng)要求任何更改以實現(xiàn)協(xié)商。這個要求是為了確保端到端的CSIG操作中數(shù)據(jù)字段的正確性,并與傳統(tǒng)設(shè)備或軟件棧進行互操作。

轉(zhuǎn)發(fā)

為了實現(xiàn)CSIG的轉(zhuǎn)發(fā)互操作性要求,可以進行CSIG tag去除,如下所示:

當與給定出口端口連接的鄰近設(shè)備是一個Discard設(shè)備且不能解析CSIG數(shù)據(jù)包時,必須配置該出口端口以剝離傳出數(shù)據(jù)包上的標簽,以確保該數(shù)據(jù)包在下游不會被丟棄。

當設(shè)備僅支持Pass-through或不支持CSIG數(shù)據(jù)包上請求的信號類型時,可以配置該設(shè)備上的出口端口以剝離傳出數(shù)據(jù)包上的標簽,以確保CSIG不攜帶不準確的信息。在某些情況下,如果在某些跳點上丟失捕獲信號是可接受的,在Pass-through設(shè)備上可以保持帶有CSIG tag的數(shù)據(jù)包的傳遞。

在CSIG域的邊界上,連接到CSIG域外設(shè)備的設(shè)備端口必須剝離標簽,以確保離開域的數(shù)據(jù)包不包含CSIG tag。只有連接到CSIG域內(nèi)設(shè)備的出口端口應(yīng)該在傳出數(shù)據(jù)包上保留CSIG tag。

CSIG數(shù)據(jù)包和非CSIG數(shù)據(jù)包可以在褐色地帶環(huán)境中一起使用。這個要求意味著端側(cè)主機必須能夠發(fā)送和接收CSIG數(shù)據(jù)包和非CSIG數(shù)據(jù)包。在發(fā)送主機上標記為CSIG tag的數(shù)據(jù)包可能在接收主機上沒有標簽。此外,緊湊型CSIG和擴展型CSIG數(shù)據(jù)包可以在同一網(wǎng)絡(luò)上一起使用。

協(xié)商

支持發(fā)送和接收CSIG標記數(shù)據(jù)包可能需要對中轉(zhuǎn)設(shè)備和端側(cè)主機進行軟件和/或硬件更改。在許多部署中,特別是那些需要硬件升級以支持CSIG(如交換機或網(wǎng)卡支持)的部署中,由于各種原因,版本落后者在很長一段時間內(nèi)仍然存在,與這樣的落后者實現(xiàn)互操作性是一個關(guān)鍵要求。如果不進行CSIG功能的協(xié)商,則不符合CSIG規(guī)范的設(shè)備可能會丟棄CSIG數(shù)據(jù)包。協(xié)商路徑的CSIG能力對于確保CSIG協(xié)議在褐色部署中安全地端到端運行至關(guān)重要。

如果端側(cè)主機具有Pass-through CSIG支持甚至更高,中轉(zhuǎn)設(shè)備具有完全的CSIG支持(本地支持或軟件輔助),則認為該路徑具備CSIG能力。在網(wǎng)絡(luò)流上發(fā)送帶有CSIG tag的數(shù)據(jù)包之前,端側(cè)主機必須協(xié)商路徑的CSIG能力。我們討論了一種協(xié)商路徑CSIG能力的方法,其中包括兩個部分:協(xié)商中轉(zhuǎn)設(shè)備支持和協(xié)商端側(cè)主機支持。

中轉(zhuǎn)設(shè)備支持協(xié)商

在本節(jié)中,我們描述了一種簡單的方法,用于與具有CSIG剝離的中轉(zhuǎn)設(shè)備進行CSIG支持的協(xié)商。

CSIG剝離可以通過在數(shù)據(jù)包路徑上的設(shè)備或之前從數(shù)據(jù)包頭中刪除CSIG標記來隱式實現(xiàn)協(xié)商。如果接收端主機收到帶有CSIG標記的數(shù)據(jù)包,則表示所有位于數(shù)據(jù)包路徑上的設(shè)備,包括中轉(zhuǎn)設(shè)備和端側(cè)主機,都具有所需的CSIG支持。如果接收端主機收到?jīng)]有CSIG標記的數(shù)據(jù)包,則表示一個或多個設(shè)備不具有所需的CSIG支持,或者發(fā)送端在一開始就沒有對數(shù)據(jù)包進行標記??梢酝ㄟ^空/無效的CSIG reflection 報頭將此提示隱式報告給發(fā)送方,發(fā)送方可以確定數(shù)據(jù)包路徑是否具備CSIG功能。

這種方法假設(shè)每個設(shè)備都知道其相鄰設(shè)備中的CSIG支持級別,對于典型的私有SDN網(wǎng)絡(luò),通過配置是可行的。在沒有集中化的情況下,可以定義諸如新的LLDP TLV之類的機制來廣播設(shè)備上的CSIG,包括緊湊型與擴展型CSIG標記支持、支持的信號類型、透傳與完全支持等。

端側(cè)主機支持協(xié)商

發(fā)送端主機可能需要與遠程端主機進行顯式協(xié)商,以確保遠程主機的主機網(wǎng)絡(luò)堆棧具有所需的CSIG支持級別。理想情況下,這種顯式的CSIG協(xié)商應(yīng)該在初始連接握手期間或之前執(zhí)行,在此之后在連接建立后啟用/禁用數(shù)據(jù)包上的CSIG。還可能需要明確協(xié)商傳輸中是否使用CSIG Reflection,與路徑CSIG能力的協(xié)商單獨進行。例如,在TCP中,需要協(xié)商使用CSIG Reflection TCP選項。關(guān)于這種協(xié)商方案的詳細信息,我們將在將來擴展協(xié)議時討論。

通過軟件后向兼容

沒有本地CSIG支持的中轉(zhuǎn)設(shè)備可以通過軟件輔助方法參與CSIG協(xié)議。這允許試驗部署在不必升級網(wǎng)絡(luò)上的設(shè)備硬件的情況下享受CSIG的增量好處。

由于緊湊型和擴展型CSIG標記結(jié)構(gòu)上類似于單VLAN標記和雙VLAN標記,轉(zhuǎn)發(fā)設(shè)備中的VLAN資源可以被重新用于支持CSIG更新。更具體地說,VLAN標記的可配置TPID可以被用來將CSIG標記視為VLAN標記,并且可以利用設(shè)備中的VLAN匹配/操作資源來支持更新標記中的CSIG數(shù)據(jù)字段。

軟件代理周期計算:對于諸如ABW和ABW/C之類的信號,可以在中轉(zhuǎn)設(shè)備的CPU上運行軟件代理,根據(jù)硬件計數(shù)器定期計算這些信號,并在數(shù)據(jù)平面中編程VLAN匹配/操作規(guī)則,根據(jù)計算得到的信號更新CSIG數(shù)據(jù)字段。由于匹配/操作規(guī)則在數(shù)據(jù)平面中,CSIG數(shù)據(jù)包可以以線速率處理,無需CPU參與。但是匹配/操作規(guī)則本身可以通過軟件代理以較慢的速率進行更新。

Compact CSIG旨在在常見的可用VLAN資源的限制下實現(xiàn)軟件輔助的向后兼容性。通過軟件實現(xiàn)向后兼容性是Compact CSIG設(shè)計的基本功能。

需要注意的是,在軟件代理中可能無法跟蹤每個數(shù)據(jù)包的信號類型,比如跳延遲(hop delay)。但是,如果希望對這些信號類型進行軟件輔助支持,可以通過可用的硬件計數(shù)器和寄存器(如延遲直方圖)實現(xiàn)信號的近似。

Greenfield 部署

在Greenfield部署中,CSIG域中的所有設(shè)備都原生支持CSIG協(xié)議。Expanded CSIG旨在利用Greenfield部署,其中不需要向后兼容性、協(xié)商和互操作性。它通過更高的信號位寬和locator metadata,提供了比Compact CSIG更好的信號精度。Expanded CSIG還可以支持多達16種信號類型。

Greenfield CSIG域中的設(shè)備必須支持在域邊界處剝離CSIG以確保CSIG數(shù)據(jù)包不離開域。

設(shè)計原則

CSIG的設(shè)計選擇是根據(jù)端到端的視角來制定的,關(guān)注應(yīng)用程序的重要性,并在簡單性和實用性方面做出權(quán)衡。在本節(jié)中,我們討論了CSIG設(shè)計的理論基礎(chǔ)以及它相對于現(xiàn)有技術(shù)的優(yōu)勢。

為什么選擇在鏈路層?

CSIG選擇在第2層封裝CSIG tag,第2層的CSIG tag偏移不受第3層及以上層的頭部和負載的影響,這意味著只需要支持一小組標簽位置偏移來讀取和更新頭部。這使得CSIG的設(shè)備實現(xiàn)更簡單。相比之下,在第3層或更高層實現(xiàn)的網(wǎng)絡(luò)測量方案需要支持大量的數(shù)據(jù)包格式,因為該集合會隨著每一層的格式/封裝的交叉乘積而增長。這種復雜性迫使設(shè)備實現(xiàn)僅能支持一小部分數(shù)據(jù)包格式/封裝,阻礙了這些方案的采用和部署。與之相比,CSIG標記更容易支持和部署,因為它位于第2層,并且盡管第3層及以上層存在不同的格式/封裝,但具有固定的偏移。

選擇第2層還使得與網(wǎng)絡(luò)內(nèi)的隧道和加密更簡單兼容,這在數(shù)據(jù)中心部署中很常見。

CSIG標記與PSP加密包和IPSec加密包兼容,其中第4層頭部和有效負載可以被加密。

CSIG標記通過第3層隧道傳輸,例如IP-in-IP、VxLAN、Geneve,在固定的偏移量處位于數(shù)據(jù)包頭部。這樣可以避免在封裝和解封裝數(shù)據(jù)包時需要復制和重新定位CSIG標記的需求,如果在第3層或更高層實施,這將是必要的。

CSIG標記被放置在第2層頭部堆棧的最后一個頭部,以確保與第2層和第2.5層隧道域的兼容性。CSIG標記在MACSec和其他第2層封裝中的放置位置在第4.1節(jié)的表中顯示。

大多數(shù)帶內(nèi)網(wǎng)絡(luò)遙測方案不具備向后兼容性。然而,CSIG標記與VLAN標記的結(jié)構(gòu)相似性使得其與許多沒有原生CSIG支持的設(shè)備具備向后兼容性。這使得部署能夠在不需要升級其網(wǎng)絡(luò)硬件的情況下享受CSIG的好處。

此外,由于擴展的CSIG限制為8B,即雙VLAN標記的大小,因此在讀取和處理第3層及以上層的頭部時,設(shè)備需要的數(shù)據(jù)包解析深度不受影響。

總之,選擇第2層作為CSIG標記的關(guān)鍵部分是CSIG簡單高效的重要組成部分,因為它保持了設(shè)備實現(xiàn)的簡單性,同時支持多種封裝和向后兼容性。

CSIG tag與reflection分離

CSIG的設(shè)計將CSIG標記和CSIG reflection頭部分為不同的層。這種解耦使得端側(cè)主機能夠開發(fā)不同的針對特定傳輸?shù)腃SIG reflection實現(xiàn),同時共享底層的CSIG標記機制。這意味著中轉(zhuǎn)設(shè)備的行為不會受到CSIG reflection創(chuàng)新的影響。

此外,這種解耦還能夠分別跟蹤正向和反向路徑的瓶頸。這很重要,因為擁塞控制算法通常只對正向路徑上的擁塞做出反應(yīng),而不對反向路徑上的擁塞做出反應(yīng)。相比之下,將信令和反射混合到同一個頭部的帶內(nèi)方案不提供正向和反向路徑之間的區(qū)分。

報文頭固定大小

CSIG的固定大小頭部在具有4k或9k MTU的數(shù)據(jù)包中所占的帶寬開銷不到0.2%。這意味著不需要分片或增加MTU大小來支持多個擁塞信號。此外,包括CSIG標記和反射頭部對網(wǎng)絡(luò)設(shè)備的包每秒傳輸率(PPS)的性能影響較小。

低開銷使得可以在所有實時數(shù)據(jù)包、顯式探針包或抽樣數(shù)據(jù)包上啟用CSIG。這是一個重要的能力,因為它允許直接量化數(shù)據(jù)包本身所經(jīng)歷的瓶頸,而不是依賴于探針。然而,對于需要這種可見性的部署來說,利用探針或抽樣數(shù)據(jù)包上的CSIG仍然是一種選擇。

CSIG的設(shè)計旨在執(zhí)行比較和替換(或更一般地進行讀取-修改-寫入以供將來的擴展),帶有固定大小的標頭。因此,與在每個跳躍點追加信息的方案不同,CSIG不受網(wǎng)絡(luò)路徑中跳數(shù)(即網(wǎng)絡(luò)直徑)的限制。

信號設(shè)計

CSIG的信號設(shè)計側(cè)重于簡單的、由用例驅(qū)動的聚合信號。

CSIG允許單個數(shù)據(jù)包只攜帶一個擁塞信號。為了在最終主機上獲取多個信號,它利用了最終主機可以在流的多個數(shù)據(jù)包中請求不同類型信號的事實。相比之下,其他方案往往會在每個數(shù)據(jù)包上負載大量信息,包括有關(guān)多個信號的元數(shù)據(jù),這可能會限制功能。此外,CSIG標記的格式也是可擴展的,這意味著它可以適應(yīng)未來的額外信號類型和locator metadata,而不損害CSIG設(shè)計的優(yōu)勢。

緊湊CSIG設(shè)計的一個獨特特點是能夠完全配置信號值bucketing,從而以有限的位數(shù)實現(xiàn)高效的信號表示。例如,編碼可以調(diào)整為在對應(yīng)用程序更重要的值范圍上提供更大的細粒度,在對應(yīng)用程序不太重要的范圍上提供更低的細粒度。同樣,locator metadata可以通過攜帶與應(yīng)用程序相關(guān)的少量壓縮的網(wǎng)絡(luò)瓶頸屬性位來高效表示。而擴展CSIG則使用統(tǒng)一的信號量化以獲得更高的精度,并提供更大的位寬來定義信號和locator metadata,從而提供更靈活性。

用戶場景

CSIG的業(yè)務(wù)場景包括擁塞控制、流量管理和網(wǎng)絡(luò)調(diào)試等。在CSIG出現(xiàn)之前,這些場景通常使用端到端測量的信號(例如丟包率和延遲)或來自網(wǎng)絡(luò)設(shè)備的帶外信號(例如端口利用率)。CSIG通過增加顯式的帶內(nèi)測量,提供了性能、效率和調(diào)試能力的提升。

在此文檔中,我們介紹了第5節(jié)中定義的三個信號的用例。信號的核心是對瓶頸的定義。隨著時間的推移,我們認為會出現(xiàn)其他信號定義,這些信號將定義一個鏈路瓶頸,例如鏈路上的最大共享流數(shù)。對于這些新信號,locator metadata可以繼續(xù)提供關(guān)于鏈路瓶頸的屬性,例如端口容量。

擁塞控制

CCA(Congestion Control Algorithms)可以以至少兩種不同的方式利用CSIG信號。首先,現(xiàn)有的CCA可以使用CSIG值來解決端到端信號的盲區(qū),如丟包、延遲和傳遞速率。因為大多數(shù)生產(chǎn)網(wǎng)絡(luò)都部署了一些形式的端到端擁塞控制,包括Swift和BBR。第二種使用CSIG的方式設(shè)計完全新的擁塞控制算法,這些算法以CSIG作為其主要信號。下面我們重點討論第一類情況。

端到端CCA有多種形式,為了簡單起見,我們以Swift CC作為基準來描述用例。Swift是一種基于延遲的擁塞控制,它使用由網(wǎng)卡硬件時間戳進行準確的往返時間(RTT)測量。這些信號可以應(yīng)用于其他CCA,不限于Swift。

在無丟包網(wǎng)絡(luò)和使用分組散布的網(wǎng)絡(luò)中利用CSIG進行擁塞控制的解釋和應(yīng)用是未來研究的課題。

使用端到端擁塞控制中的最大每跳延遲

Swift中使用的端到端RTT測量包括流路徑上所有跳躍的排隊延遲,包括正向和反向路徑。使用集中延遲信號的一個結(jié)果是,流在回應(yīng)可能無法直接控制的延遲時會減小發(fā)送速率。此外,在流的路徑上可能存在多個擁塞鏈路的部署中,希望按照沿流路徑的最大每跳延遲max(PD)調(diào)節(jié)流的發(fā)送速率。將端到端測量的延遲替換為瓶頸延遲的Swift方程式如下:

// 當瓶頸跳躍延遲超過所選目標延遲時減小擁塞窗口

如果(max(PD)>目標延遲)則

md = beta *(max(PD) -目標延遲)/ max(PD)

cwnd =(1- md)* cwnd

Poseidon是文獻中提出的一種擁塞控制算法,它通過減小擁塞窗口中的最大每跳延遲來減小其擁塞控制響應(yīng)。通過在擁塞控制響應(yīng)中增加瓶頸信息,POSEIDON流在存在反向路徑擁塞和跨多個網(wǎng)絡(luò)跳躍擁塞時實現(xiàn)更高的流量吞吐量。[POSEIDON]中的算法1詳細介紹了在增加和減少擁塞窗口時使用最大每跳延遲的方法。

使用端到端擁塞控制中的最大鏈路利用率

端到端擁塞控制使用啟發(fā)式算法確定擁塞窗口的增加量,例如在Swift的情況下,當測量的往返時間低于目標延遲時,Swift按每個往返時間增加一次擁塞窗口。BBR通過測量的傳輸速率的函數(shù)來增加速率。

這些啟發(fā)式方法的問題在于它們無法完全正確地進行速率或窗口調(diào)整,要么過低要么過高。速率過低意味著即使瓶頸鏈路利用率低,傳輸仍然需要更長的時間才能完成,而過高則會導致不必要的排隊延遲和丟包。

在下面的例子中,我們將最大利用率信號集成到Swift的擁塞窗口更新公式中,以便在瓶頸鏈路利用率低的情況下更快地自適應(yīng)增加。擁塞窗口的演變?nèi)缦滤荆?/p>

// 根據(jù)利用率余量比例增加擁塞窗口

if (rtt < target_rtt) then

fcwnd <-- fcwnd + additive_increment

        + kLambda . fcwnd . (1 - max(U/C))

例如,Swift中固定的加性增量(rate<--rate+AdditiveIncrement)意味著使用400 Mbps的加性增量,需要200個RTT才能獲得80 Gbps的帶寬。而使用瓶頸鏈路利用率的CSIG則只需要不到10個RTT就可以安全地增加到80 Gbps。

另外,E2E CC使用啟發(fā)式方法確定新建立連接的初始傳輸速率。過慢的初始速率會導致傳輸時間過長,同時浪費可用帶寬,而過快的初始速率會引起隊列延遲和丟包。對于已經(jīng)空閑了多個往返時間的連接開始的傳輸,也存在同樣的困境。

當我們事先知道多路復用的程度較低,即在任何時刻只有少數(shù)幾個流共存于鏈路上時,傳輸開始后立即利用瓶頸帶寬可以快速完成傳輸。這對于傳輸在出現(xiàn)隊列溢出時也能快速恢復任何丟失的數(shù)據(jù)包的傳輸特別有幫助。

以一個空的200Gbps網(wǎng)絡(luò)為例,一個單一的傳輸可以在第二個RTT內(nèi)完全使用200Gbps的帶寬,因為第一個RTT中的CSIG反饋表明瓶頸鏈路上有200Gbps的可用帶寬。

CSIG的min(ABW)瓶頸帶寬允許傳輸以線速率安全啟動。

CSIG通過攜帶瓶頸鏈路信號和瓶頸locator metadata來編碼每個流的路徑信息。這個路徑級別的信息是直接從應(yīng)用數(shù)據(jù)包中獲取的,而不是通過合成探測進行的,并且可以直接歸屬于該流,對于流量工程和應(yīng)用性能調(diào)試非常有價值。

在負載均衡和多路徑工作中,CSIG傳遞了與流相關(guān)的瓶頸鏈路信號和瓶頸locator metadata,以實現(xiàn)路由決策和流量均衡。

數(shù)據(jù)中心的拓撲結(jié)構(gòu)采用多樣化的路徑連接任意的源目的地對。傳輸使用的技術(shù)包括保護性負載平衡(PLB)和多路徑(RFC8684),以在多條路徑上分散流量。傳輸中的負載平衡和多路徑使用端到端信號和啟發(fā)式算法來選擇使用哪些路徑以及在每個路徑中傳輸多少流量。

利用沿著多樣化路徑的瓶頸鏈路的CSIG信號,負載平衡和多路徑方案可以選擇低擁塞的高質(zhì)量路徑,并以擁塞感知的方式在它們之間分散流量。

locator metadata還可以用于區(qū)分擁塞和核心網(wǎng)絡(luò)擁塞,從而調(diào)整負載平衡/多路徑動作。例如,通過瓶頸和鏈路方向?qū)傩?,可以確定最后一跳是否是瓶頸。當最后一跳是瓶頸時,流級別的負載平衡/多路徑動作可能無效,并且實際上可能會加劇incasts(擁塞峰值)。這種情況下,可能需要應(yīng)用層負載平衡或作業(yè)調(diào)度技術(shù)來分發(fā)流量。但是,當已知擁塞存在于核心網(wǎng)絡(luò)時,流級別的負載平衡/多路徑動作可以繞過擁塞區(qū)域,并提高性能。

流量工程通過在源目的地對之間劃分合適帶寬的路徑。數(shù)據(jù)中心內(nèi)的例子包括數(shù)據(jù)中心網(wǎng)絡(luò)互連層(DCNI)。CSIG可以提供細粒度的路徑級別信息,包括短時尺度的突發(fā)擁塞,以供流量工程系統(tǒng)使用。通過對空間和時間上跨流量進行匯總的CSIG信號,流量工程可以在數(shù)據(jù)中心級別選擇路徑和平衡流量,以適應(yīng)突發(fā)流量,如機器學習。

應(yīng)用程序通常抱怨網(wǎng)絡(luò)速度慢,但很難確定造成問題的具體網(wǎng)絡(luò)段。特別是對于規(guī)模較大的數(shù)據(jù)中心,其中的流量可以經(jīng)過多達九跳節(jié)點。對于具有數(shù)千個流量和各種源目的地對的應(yīng)用程序而言,找出瓶頸所在以及路徑在何種時間尺度上構(gòu)成瓶頸就像在海量數(shù)據(jù)中尋找針一樣困難。

針對應(yīng)用程序的網(wǎng)絡(luò)流量,具有瓶頸定位器的CSIG信息可以快速準確地回答為什么流量慢和網(wǎng)絡(luò)/路徑瓶頸在哪里。

還可以在類似于PINGMESH的網(wǎng)狀探測器系統(tǒng)上啟用CSIG,以在任意兩個服務(wù)器之間的端到端探測測量中增加鏈路瓶頸信息,以幫助故障排除。

關(guān)于安全性的考慮

只有可信的發(fā)送者主機才能構(gòu)造、初始化和向經(jīng)授權(quán)的流中插入CSIG tag。根據(jù)部署情況,授權(quán)可以在網(wǎng)絡(luò)適配器或交換機上進行,類似于防火墻規(guī)則??梢栽谟蜻吔缣幨褂肅SIG剝離作為圍欄規(guī)則,以確保未經(jīng)授權(quán)的CSIG tag不會穿越這些邊界傳播。

私有網(wǎng)絡(luò)中的惡意或損壞的網(wǎng)絡(luò)設(shè)備可能會插入任意的CSIG值,或者在中轉(zhuǎn)節(jié)點的數(shù)據(jù)包中插入CSIG tag。我們期望有檢查機制來識別和排除私有網(wǎng)絡(luò)中的非功能性或惡意網(wǎng)絡(luò)設(shè)備,因為它們可能比傳播具有誤導性的CSIG值更具有危害性。

結(jié)論

隨著對數(shù)據(jù)中心敏感于延遲和帶寬使用的應(yīng)用程序的部署增加,例如AI/ML/HPC工作負載和基于RDMA的應(yīng)用程序,在動態(tài)變化的流量模式下,僅依賴端到端信號是不夠的。網(wǎng)絡(luò)設(shè)備向終端主機提供簡單而及時的信號可以增強和優(yōu)化終端主機傳輸,充分利用數(shù)據(jù)中心的帶寬。CSIG是一種在網(wǎng)絡(luò)中分發(fā)擁塞信息的簡單、實用和可部署的協(xié)議,它建立在先前工作的成功方面基礎(chǔ)上,并以擁塞控制、流量管理和網(wǎng)絡(luò)調(diào)試等使用案例為基礎(chǔ)。

附錄A

CSIG信號編碼示例,以下表格演示了一個 3 位信號值的編碼示例。請注意,這僅是一個示例。對于特定部署而言,對于不同用例,

其編碼是特定于情景的。請注意,CSIG 標簽支持緊湊格式和擴展格式中 5 位(20 位)信號值大小。

值 min(ABW/C) min(ABW) max(PD)


0x0 0%-1% 0-1Gbps 0-10us

0x1 1%-5% 1-5Gbps 10-50us

0x2 5%-10% 5-10Gbps 50-100us

0x3 10%-20% 10-20Gbps 100-200us

0x4 20%-50% 20-50Gbps 200-400us

0x5 50%-75% 50-75Gbps 400-800us

0x6 75%-90% 75-90Gbps 800-2000us

0x7 90%-100% >90 Gbps >2000us

術(shù)語

ABW:可用帶寬

AQM:主動隊列管理

CCA:擁塞控制算法

Connection / Flow:一個5個元組的傳輸連接,例如TCP連接

CSIG:擁塞信號

CSIG data fields:CSIG tag中的字段,不包括TPID

CSIG packets:包含CSIG tag和可選的CSIG reflection頭的數(shù)據(jù)包

CSIG-capable path:如果路徑上的所有中轉(zhuǎn)設(shè)備都支持CSIG協(xié)議,并且終端主機至少支持CSIG數(shù)據(jù)包的中轉(zhuǎn),則該路徑被稱為CSIG-capable

CSIG-tagged packets:包含CSIG tag的數(shù)據(jù)包

CSIG-domain:安全網(wǎng)絡(luò)部署域,其中域中的所有設(shè)備都具有完全的CSIG支持或通過CSIG支持通過?{.pilcrow}

PD: 每跳延遲

E2E: 端到端

IPSec: Internet協(xié)議安全

MTU: 最大傳輸單元

MSS: 最大段大小

NIC: 網(wǎng)絡(luò)接口卡

Packet Path: 給定數(shù)據(jù)包的逐端口網(wǎng)絡(luò)路徑,指定為一系列設(shè)備接口?{.pilcrow}

PSP: PSP安全協(xié)議

TPID: 標簽協(xié)議ID

TE: 流量工程

Transit device: 在CSIG數(shù)據(jù)包路徑中的任何交換機、路由器或中間盒?{.pilcrow}

WRR: 加權(quán)輪詢

原文:https://datatracker.ietf.org/doc/draft-ravi-ippm-csig

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容