來源:TSNLAB 微信公眾號
前言:TSN不等同於時間門控調度,TSN有很多種調度機製。筆者的目標,是把這篇文章寫得既足夠簡約,又包含足夠硬核的信息。希望為讀者帶來切實的收獲。
TSN的核心目標是提供有界時延(bounded latency),即報文在網絡中的傳輸時間不會超過一個確定的值,這個值就是時延的“界”,或者說是時延上界。那麼,TSN具體有哪些和有界時延相關的技術呢?(文末會有各個技術的總結。)
首先,與保障時延相關的調度方法,或者說傳輸選擇(transmission selection)機製,位於網絡設備(網橋、交換機、路由器等)中、出端口前排隊的位置。多個隊列基於一定的規則,也就是這個傳輸選擇機製,來判斷下一次調度哪個隊列中的報文。TSN最新的標準、IEEE Std 802.1Q-2018的8.6.8節中,一共定義了五種傳輸選擇機製。其中,絕對優先級(SP,Strict Priority)是最基礎的、也是默認使用的機製。絕對優先級很容易理解:對於優先級為X的隊列,當且僅當所有優先級大於X的隊列均沒有可調度報文時,才允許調度優先級為X的隊列。

增強傳輸選擇(ETS,Enhanced Transmission Selection),允許在多個隊列之間分配帶寬。TSN沒有具體指定ETS所使用的算法。例如經典的加權輪詢(WRR,Weighted Round-robin)、虧空輪詢(DRR,Deficit Round-robin),都符合ETS的描述。

基於信用的整形(CBS,Credit-based Shaping),是AVB時代定義的經典調度方法。它和單速令牌桶(Single-rate token-bucket)機製有點像,但又不完全一樣。以下四句話描述的CBS的運作機製:受到CBS整形的隊列,如果想調度報文,則需取出相當於報文長度的信用量(credit);當且僅當credit非負時,報文可以通過CBS整形器;當credit為負,或隊列中報文積壓時,credit以恒定速率IdleSlope增長;當隊列為空時,credit清零。CBS的效果,是在為特定隊列提供等同於IdleSlope的帶寬的同時,盡可能的“打散”報文,使得低優先級的隊列也能獲得一定的傳輸機會。

異步流量調度(ATS,Asynchronous Traffic Shaping),也和單速令牌桶機製有點像,甚至ATS調度器的關鍵配置參數就是cir(CommittedInformationRate)和cbs(CommittedBurstSize)。簡單來講,cir控製整形器允許通過的整體速率,cbs控製整形器能容忍的突發程度。TSN標準中,ATS核心算法部分寫了一大堆偽代碼,看得人雲裏霧裏,但實際上這段偽代碼本質上就是在描述單速令牌桶的整形機製。不過,ATS的優點在於,通過在報文入隊時運行算法,給報文分配一個允許調度時間(EligibilityTime)。這樣,在傳輸選擇機製進行判斷的時候,不需要再重新執行令牌桶的計算。另外,ATS還有一個調度器組的概念,即多個ATS調度器可屬於一個ATS調度器組。ATS的偽代碼還描述了當ATS調度器組對應一個物理上先入先出(FIFO)隊列時的情況。反過來,ATS調度器不依賴於和硬件調度隊列進行綁定,因此,ATS調度器可以進行靈活的整形,逐流、或逐彙聚流整形,均可。通過使用ATS進行逐跳整形,網絡中不產生大突發和突發彙聚,整體的網絡性能會得到改善。

時間感知整形(TAS,Time-Aware Shaping),或者用中文更順口更常用的說法是就“時間門控”,可謂TSN技術集中的“網紅”了。兩三年前,國內一些場合在討論TSN的時候,甚至潛意識中會把TSN和TAS劃等號。隨著大家對TSN的深入了解,漸漸也能正確認識到TAS隻是TSN技術集中的一個。而且,在標準中,TAS僅僅提供了一種基於時間開關門的機製:對於一個隊列,當它的門(Gate)狀態為開(open)時,可以傳輸報文;反之,門關(close)時,不可傳輸報文;通過門控列表(GCL,Gate Control List),來對各隊列門的開關狀態進行配置。具體如何使用TAS構築方案,TSN標準是完全不限製的。

有時人們會把TAS當成一種方案,即上下遊的網絡設備基於時間同步,控製門控開關在上下遊之間進行良好的配合,為關鍵流量構築一條“特快通道”。這麼說沒錯,但希望各位讀者能夠識別,TSN中定義的TAS機製,和基於TAS構築方案,是兩件事情。

現實場景中,關鍵流量的數目很大,為所有人構建“特快通道”不現實,也沒必要。TSN標準的附錄中,提供了周期排隊轉發(CQF,Cyclic Queuing and Forwarding)作為一種基於TAS構築的方案。在網絡設備的出端口上劃分周期,一個周期相當於一節火車車廂,裏麵可以裝載來自不同流量的報文;zhejiechexianglidesuoyoubaowenzaixiayigewangluoshebeizhongquanbuyingshedaolingyijiechexiangzhong。youyuchexiangdeyingsheguanxishiquedingde,duandaoduandeshiyanjiuyoumeitiaoshangdezhouqisuojuedingle。CQF方案大大簡化了門控編排的難度,但代價是一定程度上犧牲了時延(畢竟TSN的首要目標是保障有界時延,而非低時延)——即車廂到早了,也要等到下一個周期才能發車。

幀搶占(Frame Preemption)屬於“降低時延”的(de)技(ji)術(shu)。尤(you)其(qi)對(dui)於(yu)低(di)速(su)率(lv)鏈(lian)路(lu),一(yi)個(ge)低(di)優(you)先(xian)級(ji)正(zheng)在(zai)發(fa)送(song)的(de)長(chang)報(bao)文(wen),就(jiu)能(neng)阻(zu)擋(dang)高(gao)優(you)先(xian)級(ji)大(da)幾(ji)百(bai)微(wei)秒(miao)。幀(zhen)搶(qiang)占(zhan)使(shi)得(de)高(gao)優(you)先(xian)級(ji)能(neng)夠(gou)打(da)斷(duan)正(zheng)在(zai)傳(chuan)輸(shu)的(de)低(di)優(you)先(xian)級(ji)報(bao)文(wen),大(da)大(da)降(jiang)低(di)了(le)高(gao)優(you)先(xian)級(ji)的(de)時(shi)延(yan)上(shang)界(jie)(假設一個高優先級倒黴蛋,每一跳都剛好被一個低優先級長報文擋住......幀搶占技術就是這個倒黴蛋的小確幸)。當然,幀搶占還可以配合TAS機製,降低保護帶(Guard Band)對於帶寬的消耗。

下圖是上麵提到的五種傳輸選擇機製和一種應用方案的總結。細心的讀者可能會看出,這些機製是存在組合使用的情況的。其實是這樣!TSNbingbuxianzhiduozhongjizhizaizuheshiyongshideshunxuguanxi,genghaodelijiefangshishi,meigejizhidoushibaowentiaodudeyigetiaojian,ruguoduogejizhitongshicunzai,zexutongshimanzutiaojian,cainengtiaoduchudui。

任何調度方法,不論設計的再精美,也不能獨立完成有界時延的保障。舉個最簡單的例子,網絡中所有終端用戶一起“耍流氓”,發送大量的流量,總體都超出了網絡的帶寬容量了,那肯定有人會被丟包。所以,TSN設計了資源管理的機製,來配合調度方方法,形成方案。感興趣的讀者可以閱讀下一篇關於TSN資源管理技術的文章。