來源:TSNLAB 微信公眾號
大約3、5年前,坊間流傳最多的說法,是TSN(特指Qbv門控方案)編bian排pai太tai難nan。關guan於yu這zhe件jian事shi情qing,在zai之zhi前qian的de文wen章zhang我wo們men也ye不bu斷duan表biao達da過guo觀guan點dian,主zhu要yao是shi早zao年nian間jian研yan究jiu者zhe把ba編bian排pai的de模mo型xing建jian立li的de很hen精jing細xi,而er後hou來lai隨sui著zhe研yan究jiu的de深shen入ru、算法的不斷演進,更主要是引入了更多真實工程約束而帶來了簡化,所以目前帶編排能力的網絡控製器已經有不少了。
而近期,坊間流傳更多的則變成了當前業界缺少TSN的端設備,所以TSN應用比較困難。其實這說的沒錯。
那麼我們如果想在當前狀態下盡量加速TSN的應用落地,首當其衝的問題是,TSN的端到端應用落地,一定要支持TSN的端嗎?怎樣的端才叫做“支持TSN”呢?
要解答這個問題,我們首先要明確,什麼是TSN端到端應用?從TSN——時間敏感網絡的角度來看,最核心的,就是這個TSN網絡可以為關鍵業務提供端到端的“時間敏感”服務,即提供端到端報文傳輸的確定性,而確定性又包含了提供“有界時延”和“零丟包”。這裏TSN技術集合裏,需要用到的關鍵技術,一個就是時延相關的(各種調度機製),一個就是資源預留相關的(核心是使得網絡可以識別關鍵業務,給出對應的服務)。
講人話,什麼是TSN端到端應用?網絡可以:1、識別關鍵業務;2、給出特定的服務。具體到例如一個TSN交換機上,則為:1、交換機入口處識別關鍵業務,放入特定隊列;2、交換機出口處保障關鍵業務隊列有足夠的受調度的資源,不會丟包,並通過優先級、門(men)控(kong)調(tiao)度(du)等(deng)方(fang)式(shi),保(bao)障(zhang)關(guan)鍵(jian)報(bao)文(wen)的(de)排(pai)隊(dui)時(shi)間(jian)上(shang)限(xian)不(bu)超(chao)過(guo)其(qi)需(xu)求(qiu)。而(er)端(duan)側(ce)用(yong)戶(hu)的(de)感(gan)知(zhi)是(shi),網(wang)絡(luo)對(dui)我(wo)的(de)關(guan)鍵(jian)業(ye)務(wu)的(de)傳(chuan)輸(shu),滿(man)足(zu)了(le)我(wo)的(de)確(que)定(ding)性(xing)要(yao)求(qiu)。
那我們認為,滿足這樣特征的一個網絡,或者說一個由端和網組成的係統,就是一個成功的TSN端到端應用。
上麵對於網絡需要關注的1、2兩條,其實不論是IEEE 802.1的標準定義,還是學術界的研究,還是各廠商之間的競爭力宣傳,更多都聚焦在第2條上。我們聽到過太多關於TSN門控編排以及編排算法的探討,關於CBS、ATS等異步整形方案的研究和實踐,等等。而對於第1條,可能它更像是一個工程問題。但是,這第1條,其實是TSN端到端應用的“1”,而第二條,則是後麵的“0”。沒有1,後麵加再多0也沒有用。
因此,關於最開始的問題:TSN的端到端應用落地,一定要支持TSN的端嗎?怎樣的端才叫做“支持TSN”呢?我們可以轉而思考為網絡如何在當前端設備的狀態下搞定上麵提出的“識別關鍵業務”、“給出特定的服務”這兩件事。而“給出特定的服務”其實是純網絡設備的問題,則問題進一步轉化為,“如何在不引入對端側設備的升級要求的情況下,讓網絡能夠正確地識別關鍵業務”。(注:本文中的關鍵業務,可以是一個或多個業務,也可以是一類或多類業務。相應地,網絡中也存在一個或多個、一類或多類非關鍵業務。)
我們按TSN的應用場景分開來看。
1、在車載網絡、機載網絡中,關鍵終端及其業務不會突然發生變化,可以提前知道關鍵業務有哪些、從哪兒來、到哪兒去、是什麼流量特征,故允許網絡靜態預配置,來實現TSN。
2、在運營商網絡中(包含而不限於移動前傳、承載網等),其實TSN端到端應用的效果,和當初IntServ非常相像,而由於此類網絡中流量的多樣性和複雜性,使得問題變得比較複雜。後麵可以獨立寫篇文章來討論。
3、最後是受關注度比較高的工業自動化網絡,這裏的情況也比較複雜。當前的端設備在選擇網絡方案時,基本要在主流的PROFINET、EtherNet/IP、EtherCAT等工業以太網協議中選擇一個或多個進行支持,而這些協議背後的生態圈,是否向TSN演進、演進的速度,是各生態圈背後的主要玩家來決定的。所以,還是在不改變、不預設端設備本身的條件下,我們可以發現有流量自學習與組態協同兩種方法來解決上麵的問題。
由於工業以太網協議,使用標準的Ethernet幀格式,對於多數工業以太網協議,通用的交換機或TSN交換機正常識別並轉發這些工業以太網報文是沒有問題的。並且用於工業控製的流量(PLC東西向:PLC-PLC;PLC南向:PLC-IO)往(wang)往(wang)具(ju)有(you)明(ming)確(que)的(de)周(zhou)期(qi)特(te)征(zheng),所(suo)以(yi),流(liu)量(liang)自(zi)學(xue)習(xi)方(fang)案(an)的(de)核(he)心(xin),就(jiu)是(shi)利(li)用(yong)網(wang)絡(luo)設(she)備(bei)的(de)能(neng)力(li),識(shi)別(bie)這(zhe)些(xie)關(guan)鍵(jian)流(liu)量(liang),學(xue)習(xi)其(qi)特(te)征(zheng)。由(you)此(ci)可(ke)以(yi)實(shi)現(xian)上(shang)述(shu)第(di)1條“交換機入口處識別關鍵業務,放入特定隊列”。同時,學習到的特征,可以上報給TSN網絡控製器(例如CNC),進而幫助網絡進行調度方法的編排,由此可以實現上述第2條“交換機出口處保障關鍵業務隊列有足夠的受調度的資源,不會丟包,並通過優先級、門控調度等方式,保障關鍵報文的排隊時間上限不超過其需求”。當然,流量自學習的方法,有其約束,是一種過渡方案。
而好的方案則是組態協同。所謂組態,就是工業用戶需要在自動化軟件上進行的網絡組態、工藝組態、PLC編程、HMI組態等一係列操作。其中,在網絡組態的這一步,其實有哪些工業端設備相連,它們的地址、通信周期、通信要求(看門狗)等等信息,對於軟件而言都是確定的信息(不論是用戶配置的,還是使用的默認值)。每個工業以太網協議都有屬於自己的自動化軟件,甚至每個PLC廠商都可以做自己的自動化軟件。因而,隻要自動化軟件的開發方,願意與TSN網絡側進行協同開發,把網絡組態中的信息告知網絡控製器,那麼上麵的第1、2兩條問題自然就可以得到解決。當然,網絡控製器也可以作為一個功能組件,直接包到自動化軟件裏麵。
由此我們回答了“如何在不引入對端側設備的升級要求的情況下,讓網絡能夠正確地識別關鍵業務”這個問題。下一篇文章會介紹流量自學習與組態協同兩個方案的具體實踐,敬請期待。
接下來回到最開頭的問題,TSN的端到端應用落地,一定要支持TSN的端嗎?——答案是,不需要。
怎樣的端才叫做“支持TSN”呢?——如果從支持TSN時間門控端到端編排的角度來看,那這個端需要具備:1、和網絡進行精準時間同步的能力;2、能夠在約定的時間把報文發到網絡介質上。如果這個端,僅僅通過軟件升級,獲取時間同步的能力(1588v2),獲取係統調度的任務搶占的能力,提高係統調度的實時性,那麼一般可以把發包的時間精確到us量級。如果這個端,硬件也升級了,則可以把發包的時間精確到ns量級,並且可以實現多類業務發送時的硬件隊列調度。此外,一個“支持TSN”的端還可以有更多特性。比如,在TSN“分布式用戶、集中式網絡”的配置架構下,TSN端應能夠與CNC(TSN網絡控製器)進行符合標準定義的或類似的用戶網絡信息交互的能力。而在TSN“純分布式”配置架構下,TSN端應支持如SRP、RAP等資源預留協議,直接參與TSN控製麵的工作。再比如,TSN端按照與TSN網絡交互的結果,在發送報文的頭部的特定位置,按照約定對自己進行標識。
話說到這裏,我們也看出來了,端側的所謂TSN的升級,不論是軟件還是硬件,其實是可以提高TSN端到端確定性的性能,是在“1”後麵加“0”。而不論是通過靜態配置、還是流量自學習方案、組態係統方案,都可以實現TSN端到端的那個“1”,而這個過程並不需要端設備額外做什麼。