來源:TSNLAB 微信公眾號
很多時候人們會把TSN和由IEEE 802.1Qbv定義的TSN門控調度劃等號。關於這點我在很多場合很多途徑都不厭其煩的表達過,TSN是一係列技術的集合,Qbv門控隻是其中一項名聲很響亮的技術。從數據麵調度的角度,TSN還有幾種不同的調度方式。
當然,這不是我們今天話題的重點。我們今天就談Qbv門控調度以及如何理解門控調度的編排。
1.門控編排可以看做是一個純數學問題,學術界很熱衷於研究。
可以用道路交通舉例類比,如下圖所示:已知每個小汽車通過路口的時間(類比於存儲轉發時延+設備固有時延)、從一個路口到下一個路口的時間(類比於鏈路時延),已知小汽車要求抵達機場的最晚時間(類比於時延需求),問如何在各個路口規劃讓哪個小汽車先通過(類比於TSN門控規劃,如讓小車A、B在路口甲分別進入隊列a、隊列b,隊列a在1-2s開門,讓小車A通過,隊列b在2.5-3.5s開門,讓小車B通過)。
在進行規劃的時候,有一個簡單的原則,就是“誰更著急,讓誰先走;誰不著急,就可以等等”。
試想,在有幾百個路口、幾千台小車的情況下,這個問題確實會變得無比複雜。

2.實際場景的約束,帶來的是門控編排問題的極大簡化
約束1:不是所有“小車”都要保障。TSN相xiang比bi於yu當dang前qian的de總zong線xian類lei解jie決jue方fang案an而er言yan,最zui大da的de優you勢shi在zai於yu能neng為wei部bu分fen流liu提ti供gong確que定ding性xing低di時shi延yan服fu務wu的de同tong時shi,混hun合he承cheng載zai其qi它ta流liu量liang。也ye就jiu是shi說shuo,在zai進jin行xing門men控kong規gui劃hua時shi,我wo們men僅jin僅jin考kao慮lv關guan鍵jian流liu即ji可ke。
約束2:使用Qbv保障的流量都有穩定的周期特征。如果流量是音視頻類的,有顯著的波動和突發特性,則適合使用異步QoS類調度,TSN或者說802.1Q的標準轉發流程裏定義了優先級調度、帶寬分配調度(如加權輪詢)、CBS整形器、ATS整形器。如果流量是事件觸發的,但對時延的要求又特別特別高的話,適合使用SP調度,視情況配合幀搶占甚至cut through轉發。
約束3:無法編排端側行為。也就是說,網絡(至少在短期內)不能決定,例如讓小車A在1s發車,小車B在2s發車,這樣他們在路口自然就錯開了。因此,對於關鍵流,並不需要費勁心思把它們的報文編入不同的隊列,分配“誰先誰後”;而可以讓他們進入一個隊列,誰先到就趕緊先走。由於約束1的存在,網絡對於關鍵流而言,一定是輕載的。這時候,對於關鍵流量進行“你明明可以走,但我偏要你多等等,這樣下一跳才不會有突發”的這種操作很可能“費力不討好”。在一跳上因為基於時間的整形多等了100us的話,可能“一輩子”都追不回來了。 也許在未來,更多的端側設備支持和網絡的協同編排後,可以通過在端側合理的“負載分擔“,即通過編排合理地把發送相位錯開,避免報文在網絡中突發到一起,從而進一步提高網絡性能和對關鍵流的容量。
3.Qbv時間整形器的本質:整的是非關鍵流報文,不是整關鍵流報文
這就好比,領導出行,交通管製,從來我們都是紅燈,領導通行方向都是綠燈。同樣,Qbv提(ti)升(sheng)關(guan)鍵(jian)流(liu)時(shi)延(yan)性(xing)能(neng)保(bao)障(zhang)的(de)關(guan)鍵(jian),就(jiu)是(shi)要(yao)避(bi)免(mian)低(di)優(you)先(xian)級(ji)對(dui)高(gao)優(you)先(xian)級(ji)報(bao)文(wen)的(de)阻(zu)擋(dang),即(ji)在(zai)高(gao)優(you)先(xian)級(ji)報(bao)文(wen)到(dao)來(lai)之(zhi)前(qian),把(ba)低(di)優(you)先(xian)級(ji)的(de)隊(dui)列(lie)關(guan)閉(bi)。而(er)高(gao)優(you)先(xian)級(ji)隊(dui)列(lie)要(yao)不(bu)要(yao)關(guan),什(shen)麼(me)時(shi)候(hou)關(guan),並(bing)不(bu)重(zhong)要(yao),高(gao)優(you)先(xian)級(ji)隊(dui)列(lie)一(yi)直(zhi)開(kai)著(zhe)門(men),又(you)有(you)什(shen)麼(me)影(ying)響(xiang)呢(ne)(就像SP調度裏麵,高優先級永遠是高優先級,又有什麼關係呢),wufeidajiayiqikaimendeshihou,jixushiyongyouxianjihuolunxuntiaodueryi,daikuanbuhuibeilangfei。ruguozhendeesilediyouxianji,yaomejiushiyinweigaoyouxianjiqueshiyaozhanyongzugouduodedaikuan,nameibanfa,kuorongba;要麼是因為高優先級的端側行為錯誤,那這個屬於入口policing的任務(如Qci),而不是出口調度器的任務。 下圖是一個門控示例,在每個周期內根據關鍵報文要到達的時間相位規劃了兩個“特快通道”時隙。

與此同時,嚴格優先級調度雖然是一種簡單有效的調度方法,但是,一個1500Byte的低優先級以太幀,在100M、1G帶寬上,最多可以給高優先級關鍵流量帶來120us、12us的時延。不要小看這點時延,在工業控製的角度,尤其是對於控製精度要求最高的同步運動控製等場景,可能會造成很大的影響。
讀完這篇,請先消化一下;下一篇,我們會結合一個具體案例來講解。