時(shí)間敏感網(wǎng)絡(luò)的關(guān)鍵技術(shù)——整形器
越來(lái)越多人似乎對(duì)TSN(時(shí)間敏感網(wǎng)絡(luò))感興趣了,大家希望有一些通俗易懂的介紹。不過(guò),通俗易懂也非易事,前幾期曾經(jīng)寫(xiě)到了TSN的目標(biāo)和任務(wù),延遲測(cè)量、標(biāo)準(zhǔn)幾個(gè)話(huà)題,現(xiàn)在繼續(xù)試圖通過(guò)“更為簡(jiǎn)單的方式”來(lái)介紹一下TSN的關(guān)鍵問(wèn)題—整形器(Shaper)這個(gè)話(huà)題。
一、為什么需要一個(gè)網(wǎng)絡(luò)?
關(guān)于TSN,也有些人問(wèn)為什么要一個(gè)網(wǎng)絡(luò)?因?yàn)楝F(xiàn)在的實(shí)時(shí)數(shù)據(jù)和非實(shí)時(shí)數(shù)據(jù)都是不在一個(gè)網(wǎng)絡(luò)里傳輸?shù)模虼?,如果采用TSN就可以只用一個(gè)網(wǎng)絡(luò)接口了,其實(shí),這個(gè)非常容易理解——當(dāng)年為何要開(kāi)發(fā)現(xiàn)場(chǎng)總線(xiàn)?最直觀(guān)的好處就是接線(xiàn)少,為此產(chǎn)生的接頭也少,設(shè)備的體積也可以做的再小一些,能耗也會(huì)更低一些,你說(shuō)這有什么意義?
如果有1億個(gè)設(shè)備之前需要連接,設(shè)備-設(shè)備間平均電纜長(zhǎng)度10米,那么節(jié)省的電纜就能繞地球25圈。這個(gè)很重要,牽扯到技術(shù)的經(jīng)濟(jì)性,不得不多說(shuō)幾句,下面是這次的正題,關(guān)于整形器的事情。
二、數(shù)據(jù)隊(duì)列排序
TSN是一個(gè)“橋接”網(wǎng)絡(luò),就是有中間的交換機(jī)連接的,對(duì)于各種實(shí)時(shí)以太網(wǎng)而言,為了實(shí)時(shí)性,都是通過(guò)Hub連接,Hub屬于直接端口轉(zhuǎn)發(fā)的,而交換機(jī)就有數(shù)據(jù)隊(duì)列,就像奧運(yùn)會(huì)每個(gè)國(guó)家都要進(jìn)入主席臺(tái)亮個(gè)相,每個(gè)隊(duì)列的數(shù)據(jù)都是有標(biāo)配的,他的入場(chǎng)順序雖然按字母順序,但東道國(guó)在最后一個(gè)出場(chǎng),這就是隊(duì)列里的排列策略,而且每個(gè)國(guó)家的隊(duì)列也有標(biāo)配,就是旗手、國(guó)旗就是這個(gè)隊(duì)列的標(biāo)識(shí)—代表哪個(gè)國(guó)家,后面就是參賽選手,屬于數(shù)據(jù)負(fù)載,大的國(guó)家參與的項(xiàng)目多,就隊(duì)伍比較大,小國(guó)家比如什么薩爾多瓦,可能就幾個(gè)人跳著舞過(guò)來(lái)了。
數(shù)據(jù)進(jìn)入交換機(jī)后形成隊(duì)列,然后隊(duì)列的數(shù)據(jù)怎么被傳輸,這個(gè)策略由“Shaper”來(lái)決定的,這個(gè)Shaper,翻譯為整形器也可以,或者賦形器也行,確定的翻譯似乎也沒(méi)有。
我們知道TSN是IEEE802.1Q發(fā)展起來(lái)的,IEEE802.1Q代表大的標(biāo)準(zhǔn)族,Qxx代表子集,IEEE802.1Q的大致發(fā)展順序如下:
圖1嚴(yán)格優(yōu)先級(jí)(IEEE802.1Q-1998)
圖2加權(quán)優(yōu)先級(jí)(IEEE802.1Qaz)
圖3基于信用的整形器IEEE802.1Qat(采用信用來(lái)評(píng)估發(fā)送,整形的兩個(gè)隊(duì)列可以有最高優(yōu)先權(quán))
圖4時(shí)間感知整形器(IEEE802.1Qbv-增加了門(mén)控制器和VIP通道)
圖5周期性排隊(duì)與轉(zhuǎn)發(fā)(IEEE802.1Qch)
下面略微詳細(xì)地介紹一下這幾個(gè)整形器,再增加一個(gè)IEEE802.1Qbu+IEE
E802.3br搶占式機(jī)制。
三、整形器的詳細(xì)介紹
1.CBS基于信用的整形器
汽車(chē)行業(yè)最開(kāi)始做的叫做IEEE802.1AVB,它由幾個(gè)標(biāo)準(zhǔn)共同構(gòu)成,前面說(shuō)過(guò)的時(shí)鐘同步IEEE802.1AS是一個(gè),其中IEEE802.1Qav(采用FQTSS-為時(shí)間敏感數(shù)據(jù)流進(jìn)行轉(zhuǎn)發(fā)和隊(duì)列排序),即為時(shí)間敏感型數(shù)據(jù)提供“Shaping”-整形,也可以理解為“整容”,在這里它采用了一個(gè)稱(chēng)為CBS(Credit-BasedShaper)整形器,簡(jiǎn)單說(shuō),除了其它BestEffort外,有兩個(gè)隊(duì)列被賦予較高的優(yōu)先級(jí),這兩個(gè)隊(duì)列依據(jù)Credit進(jìn)行數(shù)據(jù)的交替?zhèn)鬏?,例如你是A隊(duì)列,如果沒(méi)有在傳輸你的信用會(huì)以idleSlope的速率增加,當(dāng)你的隊(duì)列正在傳輸數(shù)據(jù)時(shí),你的信用會(huì)以SendSlope的速率下降,當(dāng)你的隊(duì)列傳輸完成時(shí),你的信用就清0,你的信用低于B隊(duì)列,你等待時(shí)間越長(zhǎng)你的信用越高,因此,不會(huì)因?yàn)閯e人優(yōu)先級(jí)高就輪不到你了。
圖6CBS整形器的工作
CBS限制每個(gè)整形流量類(lèi)別不超過(guò)其預(yù)先配置的帶寬限制(由于帶寬密集型應(yīng)用,例如音頻和視頻,最大帶寬的75%)。CBS與SRP(StreamReservedProtocol-流預(yù)留協(xié)議,這個(gè)也需要單獨(dú)介紹,因?yàn)樗菍儆贗EEE802.1Qat作為IEEE802.1Q的基礎(chǔ)協(xié)議)結(jié)合使用可將每個(gè)橋的延遲限制在250μs以下??偟膩?lái)說(shuō),IEEE802.1Qav以太網(wǎng)AVB標(biāo)準(zhǔn)保證A類(lèi)的最差情況下延遲低于2毫秒,B類(lèi)低于50毫秒,最多7個(gè)網(wǎng)絡(luò)跳躍。
不過(guò),CBS缺點(diǎn)是這種機(jī)制下平均延遲會(huì)增加,盡管CBS限制每個(gè)整形器流量類(lèi)別不超過(guò)預(yù)先配置帶寬限制(對(duì)于帶寬密集型最大帶寬75%),并且采用CBS與SRP結(jié)合可以讓每個(gè)橋接延遲現(xiàn)在在250μs以下,不過(guò)這對(duì)于工業(yè)應(yīng)用而言還是延遲太大,因此,工業(yè)網(wǎng)絡(luò)參考的是Qbv和Qbu+802.3br的整形器。
(1)汽車(chē)行業(yè)會(huì)讓TSN快速成長(zhǎng)
不過(guò),大家要注意,TSN在汽車(chē)行業(yè)的大量使用的話(huà)會(huì)對(duì)TSN有非常大的推進(jìn)作用,目前已經(jīng)在進(jìn)入測(cè)試運(yùn)行階段(你們知道,汽車(chē)行業(yè)列裝可是需要非常長(zhǎng)的測(cè)試驗(yàn)證周期的,不是隨便上車(chē)就用的),像大牌廠(chǎng)商Audi、BMW、Benz這種總是要為天下先的德國(guó)大牌已經(jīng)開(kāi)始進(jìn)入應(yīng)用階段了,而且,據(jù)說(shuō)目前汽車(chē)行業(yè)對(duì)TSN的意見(jiàn)比較統(tǒng)一,因?yàn)镃AN總線(xiàn)帶寬已經(jīng)不能勝任未來(lái)輔助駕駛(ADAS)的需求了,汽車(chē)邁入“以太網(wǎng)”時(shí)代已然指日可待了—前幾天和石林才聊起這個(gè)TSN在汽車(chē)行業(yè)的應(yīng)用,他就摔給我一條消息“三星在歐洲車(chē)展宣布成立汽車(chē)產(chǎn)業(yè)發(fā)展基金,投了9000萬(wàn)美元給TTTech,因?yàn)楹笳邽閵W迪提供了車(chē)載以太網(wǎng)系統(tǒng)”,說(shuō)的就是TSN。
汽車(chē)要是用上TSN,那就未來(lái)前景誘人了,因?yàn)橐粋€(gè)車(chē)上面得多少個(gè)TSN節(jié)點(diǎn)?。可僬f(shuō)也得30個(gè)吧?想想TSN的芯片提供商們一定在算,全球有5000萬(wàn)臺(tái)車(chē),以后每個(gè)車(chē)30個(gè)節(jié)點(diǎn),那就是15億個(gè)芯片的需求??!
這個(gè)潛在的市場(chǎng)會(huì)讓TSN的成本降低的,想想當(dāng)年,CAN總線(xiàn)在汽車(chē)行業(yè)的大量應(yīng)用才讓CAN總線(xiàn)在其它的領(lǐng)域變得經(jīng)濟(jì)—是的,只有規(guī)模才能經(jīng)濟(jì)。
2.時(shí)間感知整形器TAS
IEEE802.1Qbv定義了TAS(TimeAwarenessShaper),如圖7,在TAS的整形器中,GCL(GateControlList)周期性的控制門(mén)的開(kāi)/關(guān),TAS需要從發(fā)送方(Talker)到接收方(Listener)中間的所有網(wǎng)橋進(jìn)行時(shí)間同步,對(duì)于橋中的每個(gè)端口,TAS根據(jù)已知且商定的時(shí)間表進(jìn)行開(kāi)關(guān)驅(qū)動(dòng)動(dòng)作,而數(shù)據(jù)調(diào)度則可以根據(jù)每個(gè)節(jié)點(diǎn)及隊(duì)列的優(yōu)先級(jí)進(jìn)行定義,在IEEE802.1Qbv的實(shí)現(xiàn)中,那些需要實(shí)時(shí)傳輸?shù)臄?shù)據(jù)流通常被第一個(gè)安排進(jìn)行傳輸,這就是所謂的“ScheduleTrafficQuene”,需要在時(shí)間調(diào)度配置時(shí)預(yù)先予以確定,而另一個(gè)數(shù)據(jù)隊(duì)列稱(chēng)為“ReservedTraffic”——可以理解為預(yù)留通道,它并非周期性的,但是,可能一來(lái)就得緊急走,就像高速公路的應(yīng)急通道一樣,平時(shí)不用,但是遇到消防車(chē)、救護(hù)車(chē)的時(shí)候這個(gè)車(chē)道可以被拿來(lái)用,因?yàn)檫@種事情并非周期性發(fā)生,但是,它發(fā)生的時(shí)候又別緊急。
當(dāng)然,TAS可以和CBS整形器混用-像圖8,除了原定計(jì)劃的Schedule和Reserved外,還可以增加一個(gè)CBS整形器對(duì)其隊(duì)列內(nèi)部的數(shù)據(jù)進(jìn)行按照信用的排序調(diào)度。
圖7TAS時(shí)間感知整形器
圖8即是一個(gè)TAS門(mén)控制機(jī)制與CBS的混合機(jī)制
圖8TAS+CBS混合的整形器
工業(yè)領(lǐng)域的開(kāi)發(fā)者通常會(huì)基于Qbv機(jī)制來(lái)開(kāi)發(fā)整形器,在時(shí)鐘同步和門(mén)控制的基礎(chǔ)上,融合各種數(shù)據(jù)流調(diào)度方式,可以將CBS、CQF等進(jìn)行整合構(gòu)成自身的應(yīng)用,而另一方面IEC60802工作組也將會(huì)協(xié)同各個(gè)企業(yè)進(jìn)行互操作的統(tǒng)一規(guī)范與標(biāo)準(zhǔn)。
3.搶占幀機(jī)制IEEE802.1Qbu+IEEE802.3br
在IEEE802.1Qbv中所采用的TAS整形器存在一個(gè)問(wèn)題,就是“Guardband”,因?yàn)槌薙cheduled和Reserved幀外,其它隊(duì)列的稱(chēng)為“BestEffort”。這些是非周期性的數(shù)據(jù)幀,因此,它們的特點(diǎn)就是“雖然,他們的時(shí)間要求并非嚴(yán)格,但是你不知道它什么時(shí)候需要傳輸”,但是為了確保嚴(yán)格時(shí)間要求的數(shù)據(jù)傳輸時(shí),網(wǎng)絡(luò)是可用的,即空閑的,因此,Qbv給每個(gè)周期預(yù)留了一個(gè)“標(biāo)準(zhǔn)以太網(wǎng)”幀作為“GuardBand”稱(chēng)為保護(hù)帶寬,這個(gè)長(zhǎng)度要說(shuō)起來(lái),對(duì)于千兆網(wǎng)絡(luò)而言,這個(gè)Guardband所預(yù)留的1.5kb也是需要大約1.25微秒左右的時(shí)間損耗的。為了節(jié)省這么點(diǎn)帶寬,TSN工作組的人們又開(kāi)發(fā)了搶占式MAC的IEEE802.1Qbu+IEEE802.3br的搶占式MAC的方式,以便能夠不要浪費(fèi)這些帶寬。
圖9搶占式MAC的結(jié)構(gòu)
對(duì)于圖9而言,MAC層分為eMAC(快速)和pMAC(可被搶占),它可以使得以太網(wǎng)幀被最小到64字節(jié)的傳輸,這也同樣為了保護(hù)高優(yōu)先級(jí)隊(duì)列的傳輸特性,因?yàn)槿绻诟邇?yōu)先級(jí)需要傳輸時(shí),前面有一個(gè)低優(yōu)先級(jí)隊(duì)列正在傳輸數(shù)據(jù),而且,它還特別長(zhǎng),占用較多的傳輸時(shí)間,它就可以搶占方式獲得傳輸,而被搶占的則會(huì)拆分,然后在下一個(gè)時(shí)段傳輸。
當(dāng)然,對(duì)于被搶占幀而言,其傳輸必須以完整的幀方式匯合,這中間牽扯到重新的分包和CRC校驗(yàn),然后再到MAC聚合層進(jìn)行重新封裝為完整包。搶占式MAC這種機(jī)制主要解決低優(yōu)先級(jí)隊(duì)列對(duì)于高優(yōu)先級(jí)隊(duì)列傳輸?shù)挠绊?,?dāng)然了搶占式機(jī)制也可以與TAS整形器混用,如圖10所示。
圖10TAS+搶占式MAC的混合模式
當(dāng)然對(duì)于搶占式機(jī)制而言,需要橋節(jié)點(diǎn)和終端節(jié)點(diǎn)支持LLDP(IEEE802.1AB-鏈路層發(fā)現(xiàn)協(xié)議),因此802.1Qbu+802.3br這個(gè)是需要交換機(jī)在硬件上的支持能力的,也不知道會(huì)增加多少硬件成本。
4.IEEE802.1Qch運(yùn)行的CQF整形器
為了提高數(shù)據(jù)的確定性,人們繼續(xù)努力尋找一種更為有效的整形器,在IEEE802.1Qbv和Qci基礎(chǔ)上設(shè)計(jì)了CQF機(jī)制,并定義為IEEE802.1Qch標(biāo)準(zhǔn),CQF是CyclicQueuingandForwarding,即周期性排隊(duì)與轉(zhuǎn)發(fā)機(jī)制,這個(gè)機(jī)制由Qci-用于流濾波與監(jiān)測(cè)標(biāo)準(zhǔn)對(duì)入口的隊(duì)列進(jìn)行處理,然后在隊(duì)列里將2個(gè)緩沖(也可以是3個(gè)或更多),其核心機(jī)制在于“數(shù)據(jù)包每個(gè)周期在每個(gè)橋僅走一步”,如果選擇4和5兩個(gè)隊(duì)列,則這兩個(gè)隊(duì)列對(duì)數(shù)據(jù)進(jìn)行排隊(duì),在同一跳轉(zhuǎn)節(jié)點(diǎn)上,隊(duì)列4的門(mén)是寫(xiě)入數(shù)據(jù),而對(duì)隊(duì)列5發(fā)送數(shù)據(jù),而到了下一個(gè)周期,隊(duì)列4發(fā)送,而隊(duì)列5則接收數(shù)據(jù),這樣,交替開(kāi)關(guān)4和5隊(duì)列的門(mén),這樣就可以形成一個(gè)TAS中的GateControlList所開(kāi)/關(guān)的門(mén)會(huì)使得隊(duì)列形成一個(gè)周期性排隊(duì),轉(zhuǎn)發(fā)的過(guò)程,這使得整個(gè)數(shù)據(jù)的延遲為一個(gè)傳輸過(guò)程+一個(gè)跳轉(zhuǎn)過(guò)程的延遲,即,數(shù)據(jù)傳輸?shù)难舆t被“確定”了。
圖11CQF的排隊(duì)機(jī)制
下面幾張圖用于顯示數(shù)據(jù)包各個(gè)End節(jié)點(diǎn)經(jīng)過(guò)橋節(jié)點(diǎn)然后數(shù)據(jù)的整個(gè)傳輸過(guò)程,分為四個(gè)周期,每個(gè)周期中,數(shù)據(jù)包僅移動(dòng)一步。
圖12CQF機(jī)制中數(shù)據(jù)包每個(gè)周期經(jīng)過(guò)一個(gè)橋
圖12顯示了各個(gè)終端節(jié)點(diǎn)的數(shù)據(jù)經(jīng)過(guò)橋節(jié)點(diǎn)的過(guò)程,我們可以看到每個(gè)顏色的數(shù)據(jù)包在每個(gè)周期里僅移動(dòng)經(jīng)過(guò)每個(gè)橋(Hop)。
Qci是按照流量進(jìn)行過(guò)濾和監(jiān)測(cè)(Per-StreamFilteringandPolicing),它是處于隊(duì)列的入口端與排隊(duì)前的處理部分。它的角色就是在數(shù)據(jù)進(jìn)入隊(duì)列時(shí)進(jìn)行過(guò)濾與監(jiān)測(cè)處理,包含了三個(gè)主要的功能:
圖13Qci的功能(藍(lán)色部分)
(1)通過(guò)MAC地址、目標(biāo)地址、VLAN和/或IP地址組件識(shí)別特定的數(shù)據(jù)流;
(2)基于每個(gè)端口輸入調(diào)度來(lái)接受或放棄數(shù)據(jù),正確的包必須正確的時(shí)間窗口內(nèi)到達(dá)并在正確的端口被接收
(3)指派數(shù)據(jù)包到一個(gè)輸出隊(duì)列選擇器。
在Qci中對(duì)數(shù)據(jù)進(jìn)入隊(duì)列進(jìn)行預(yù)先的判斷,然后排隊(duì)轉(zhuǎn)發(fā)構(gòu)成整個(gè)CQF機(jī)制,這個(gè)在IEEE定義為IEEE802.1Qch標(biāo)準(zhǔn)。
CQF也可以與搶占機(jī)制進(jìn)行配合,使得可以在隊(duì)列中避免低優(yōu)先級(jí)反轉(zhuǎn)壓制高優(yōu)先級(jí)數(shù)據(jù)的傳輸。
5.ATS-IEEE802.1Qcr
為了解決非周期性數(shù)據(jù)的傳輸零擁堵丟包問(wèn)題,并且對(duì)于周期性的數(shù)據(jù)傳輸而言,網(wǎng)絡(luò)的嚴(yán)格時(shí)鐘同步和隊(duì)列保護(hù)帶寬等原因無(wú)法最大的使用到網(wǎng)絡(luò)帶寬,又進(jìn)一步優(yōu)化那些對(duì)于時(shí)間同步非嚴(yán)苛任務(wù)的帶寬利用,開(kāi)發(fā)了ATS整形器,在IEEE802.1Qcr中定義,IEEE802.1Qcr是一個(gè)異步數(shù)據(jù)流整形器ATS(AsynchronousTrafficShaper),它的是一個(gè)基于緊急度的調(diào)度器(UrgencyBasedScheduler),ATS旨在通過(guò)每跳重塑TSN數(shù)據(jù)流,ATS并不要求橋和終端節(jié)點(diǎn)同步,對(duì)于高實(shí)時(shí)要求和非實(shí)時(shí)業(yè)務(wù)混合業(yè)務(wù)模式下,ATS也能保持帶寬的最大利用率。
圖14ATS的處理機(jī)制
它采用了一種稱(chēng)為RCSD(速率控制服務(wù)規(guī)則),RCSD是一種非工作保存類(lèi)的分組服務(wù)規(guī)程,包括速率控制靜態(tài)優(yōu)先級(jí)和速率控制的最早期限優(yōu)先。RCSD分組調(diào)度由兩部分組成:速率控制器實(shí)現(xiàn)速率控制策略,調(diào)度器根據(jù)一些調(diào)度策略實(shí)現(xiàn)分組調(diào)度,例如靜態(tài)優(yōu)先級(jí),先到先服務(wù)或最早到期日期。通過(guò)分離速率控制器和調(diào)度器,RCSD有效地將每個(gè)流的帶寬與其延遲界限解耦,即,為單個(gè)流分配規(guī)定量的帶寬與延遲界限無(wú)關(guān)。因此,RCSD可以支持低延遲和低帶寬流。
引入為了解決相對(duì)于CBS/TAS-時(shí)間感知整形器屬于Time-Trigged,那么ATS則屬于Event-Trigged方式,各個(gè)整形器基于數(shù)據(jù)調(diào)度的不同應(yīng)用需求而設(shè)計(jì),而且是可以混用的。