縱覽過去的十年,得益于統(tǒng)一的行業(yè)標(biāo)準(zhǔn),,IT行業(yè)的技術(shù)飛速進步,。從最開始的常規(guī)10M網(wǎng)到今天隨處可見的10G高速網(wǎng),網(wǎng)絡(luò)幾乎影響著人們?nèi)粘I畹拿總€角落,。相比之下,,音視頻行業(yè)的發(fā)展卻未盡如人意。為網(wǎng)絡(luò)音頻和視頻傳輸設(shè)立技術(shù)標(biāo)準(zhǔn),,一直是 AV 行業(yè)過去二十年來的目標(biāo),。迄今為止,由于缺乏行業(yè)公認(rèn)的網(wǎng)絡(luò)標(biāo)準(zhǔn)造成有關(guān)空白,,令許多制造商各自為戰(zhàn),,開發(fā)專有解決方案試圖填補這一空白。然而付出未必有回報,,單一技術(shù)無法解決所有數(shù)字音視頻網(wǎng)絡(luò)的難題,。這些解決方案都不可能成為統(tǒng)一的行業(yè)標(biāo)準(zhǔn)。自2005年AVB問世以來為包括音視頻行業(yè)在內(nèi)的所有具有實時傳輸需要的應(yīng)用指明了方向。2012年,,AVB網(wǎng)絡(luò)正式更名為TSN網(wǎng)絡(luò),,從此基于以太網(wǎng)絡(luò)的局域網(wǎng)技術(shù)步入了新紀(jì)元,TSN時間敏感網(wǎng)絡(luò)正式取代傳統(tǒng)以太網(wǎng)登上了歷史的舞臺,。
1) “傳統(tǒng)以太網(wǎng)”的誕生
我們通常認(rèn)為以太網(wǎng)是由鮑勃梅特卡夫(Bob Metcalfe)于1973年提出的,。并于1982年(Ethernet V2)投入商業(yè)市場且很快擊敗了與其同期的令牌環(huán)、FDDI和ARCNET等其他局域網(wǎng)技術(shù)被全球普遍采用,。以太網(wǎng)技術(shù)從根本上解決了在局域網(wǎng)內(nèi)的信息互傳/共享的問題,。然而在創(chuàng)建之初,以太網(wǎng)只考慮了一些非實時的靜態(tài)信息,。例如:文字和圖片,。即便是共享音頻和視頻,但只限于下載和互傳,。
1982年,,第一臺CD機在日本問世。這標(biāo)志著音視頻從此由純模擬走入了“數(shù)字化”,。而1996年由互聯(lián)網(wǎng)工程任務(wù)組(IETF)開發(fā)的RTP(Realtime Transport Protocol)則奠定了音視頻在網(wǎng)絡(luò)中傳輸?shù)幕A(chǔ),,也就是說音視頻又實現(xiàn)了從“數(shù)字化”進化到了“網(wǎng)絡(luò)化”。之后的VoIP正是借用了RTP技術(shù)實現(xiàn)了在全球互聯(lián)網(wǎng)上的“網(wǎng)絡(luò)化數(shù)字通訊”,。
由于本文即將闡述“時間敏感網(wǎng)絡(luò)”,,因此,為了加以區(qū)別,,我們將目前大家所熟知的以太網(wǎng)稱為“傳統(tǒng)以太網(wǎng)”,。那么究竟“傳統(tǒng)以太網(wǎng)”是如何工作的呢?
2) “傳統(tǒng)以太網(wǎng)”的基本原理
首先我們先要搞清楚以太網(wǎng)的工作原理,。以太網(wǎng)是當(dāng)今現(xiàn)有局域網(wǎng)采用的最廣泛的通信協(xié)議標(biāo)準(zhǔn)。以太網(wǎng)絡(luò)使用CSMA/CD(載波監(jiān)聽多路訪問及沖突檢測)技術(shù),,目前通常使用雙絞線(UTP線纜)進行組網(wǎng),。包括標(biāo)準(zhǔn)的以太網(wǎng)(10Mbit/s)、快速以太網(wǎng)(100Mbit/s),、千兆網(wǎng)(1Gbit/s)和10G(10Gbit/s)以太網(wǎng),。它們都符合IEEE802.3。(注:bps=bit/s)
以千兆網(wǎng)(1Gbit/s)為例:假如說交換機的端口帶寬是1Gbps,,則說明每秒可傳輸1000,000,000個二進制的“位”,。大家一定要注意以太網(wǎng)中所有的傳輸都是串行傳輸,就是說在網(wǎng)卡的物理端口會在每一個單位時間內(nèi)“寫入”或是“讀取”一個電位值(0或1),。那么這個單位時間對于1Gbps帶寬來說就是1÷1000,000,000=1ns,。如圖一所示:
圖一
每8個位(bit)相當(dāng)于1個字節(jié)(Byte)。多個字節(jié)(Byte)可以組成一個數(shù)據(jù)幀,。以太網(wǎng)傳輸數(shù)據(jù)是以幀為單位的,。以太網(wǎng)規(guī)定每一個數(shù)據(jù)幀的最小字節(jié)是64byte,,最大字節(jié)是1518byte。實際上每個數(shù)據(jù)幀之間還會有一個12字節(jié)的間隔,。如圖二所示:
圖二
3) 如何理解網(wǎng)絡(luò)帶寬,?
正確理解網(wǎng)絡(luò)帶寬是理解“時間敏感網(wǎng)絡(luò)”的前提。我們先舉個例子:如果我們有10個數(shù)據(jù)流(當(dāng)然每個數(shù)據(jù)流中會有成千上萬個數(shù)據(jù)幀),,每個數(shù)據(jù)流的帶寬是100Mbps,,那么這10個數(shù)據(jù)流可以通過1Gbps的帶寬嗎?我們可以用圖三來表示嗎,?
圖三
首先,,這種表示方法是錯誤的。因為正如我們前文所說,,網(wǎng)絡(luò)是串行的,,而上圖所表示的方法是并行的。這個例子的正確答案是“不一定”,。
如圖四所示才是帶寬的正確表示方法,。在這里,你應(yīng)該把1G的帶寬想象成在理想情況下,,可以有包含總數(shù)為109二進制位的數(shù)據(jù)幀在1秒鐘通過,。通常數(shù)據(jù)幀都不會占用整個帶寬,每一段數(shù)據(jù)流(包含很多的數(shù)據(jù)幀)在單位時間內(nèi)運行,,也就是我們所說的每個數(shù)據(jù)流所占用的帶寬,。一定要記住,網(wǎng)絡(luò)中所有的數(shù)據(jù)幀都是串行通訊,。
圖四
想通了這個問題,,我們假設(shè)如果這10個100M的數(shù)據(jù)流能夠頭尾相連,嚴(yán)格按時間順序排列如圖五所示,,那么答案是:“可以”,。也就是說在理想情況下,這10個100M的數(shù)據(jù)流可以在1Gbps的帶寬下順利傳到對端,。
圖五
但大多數(shù)情況下,,由于帶寬通常是由多個設(shè)備共享的,這也是以太網(wǎng)的優(yōu)勢所在,。而且所有的發(fā)送端沒有基于時間的流量控制,,那么這些發(fā)送端永遠是盡最大可能發(fā)送數(shù)據(jù)幀。這樣來自不同設(shè)備的數(shù)據(jù)流就會在時間上產(chǎn)生重疊,,即我們通常所說的沖突,。如圖六所示,在這種情況下,答案就是:“不行”,。因為所有數(shù)據(jù)流重疊/沖突的部分會遵循QoS優(yōu)先機制進行轉(zhuǎn)發(fā),,一部分的數(shù)據(jù)包肯定會被丟棄。
圖六
在IT專業(yè)里有一個不成文的規(guī)定,。當(dāng)某個交換機的帶寬占用率超過40%時就必須得擴容,,其目的就是通過提高網(wǎng)絡(luò)帶寬來避免擁堵的產(chǎn)生。
4) 什么是QoS?
QoS(Quality of Service)即服務(wù)質(zhì)量,,它提供了針對不同用戶或者不同數(shù)據(jù)流采用相應(yīng)不同的優(yōu)先級,,或者是根據(jù)應(yīng)用程序的要求,保證數(shù)據(jù)流的性能達到一定的水準(zhǔn),。
以太網(wǎng)默認(rèn)的轉(zhuǎn)發(fā)機制叫做“Best Effort”(盡力而為),。也就是說當(dāng)數(shù)據(jù)包抵達端口后,本著先入先出的原則轉(zhuǎn)發(fā),。當(dāng)網(wǎng)絡(luò)的流量稀疏,,這本不是一個問題。但在實際環(huán)境中,,大量的數(shù)據(jù)包極有可能在一瞬間抵達端口,。當(dāng)然,端口可以在一定程度上緩存并延時轉(zhuǎn)發(fā),,但我們一方面是不能容忍過大的延時轉(zhuǎn)發(fā),,另一方面交換機的物理端口緩存也非常小,不可能有效解決大量數(shù)據(jù)包瞬間抵達的問題,。這種情況下,,我們只能對數(shù)據(jù)中比較重要或是強調(diào)實時性的數(shù)據(jù)包進行優(yōu)先轉(zhuǎn)發(fā)。這就要依靠QoS來對所有的數(shù)據(jù)包進行分類和標(biāo)注,,并依據(jù)規(guī)則來進行較為智能的轉(zhuǎn)發(fā),。目前市場上較大多數(shù)的需要低延時的實時傳輸采用QoS這一技術(shù)。但QoS能否徹底解決網(wǎng)絡(luò)擁堵的問題嗎,?
由于Best Effort的機制,,通常具有一定帶寬的一個數(shù)據(jù)流會在每秒中不同時間段傳輸,盡管所占用的帶寬相等,,但在每個時間段上的時間節(jié)點卻不同。如圖七所示,,這樣在多個數(shù)據(jù)流共存的時候,,就會很容易產(chǎn)生帶寬重疊的現(xiàn)象,從而導(dǎo)致丟包,。
圖七
我們所希望看到的是每一個數(shù)據(jù)流都盡可能按照時間順序排序從而有效避免不同數(shù)據(jù)流在同一通道中傳輸時產(chǎn)生重疊,,進而提高帶寬的利用率。如圖八所示:
圖八
我們發(fā)現(xiàn)實時音視頻流恰好是沿等長的時間間隔發(fā)布數(shù)據(jù)的。比如說:一個24比特48K采樣的專業(yè)音頻通道,,每個采樣的時間間隔是20.83 ?s,。如果我們按照每6個采樣封裝成一個數(shù)據(jù)包,那么每個數(shù)據(jù)包的固定間隔就是125 ?s,。每個數(shù)據(jù)包是由兩個部分組成,,數(shù)據(jù)報頭(74字節(jié))+音頻通道采樣數(shù)據(jù)(24字節(jié)X通道數(shù))。
圖九
為了避免帶寬重疊,,我們所需要做的就是將幾個不同的音頻流進行流量整形(Traffic shaping),。以達到提高可靠交付的目的。這里大家要注意,,我指的是流量整形而不是流量控制(Traffic Control),。
比如在一個帶寬里,有非實時數(shù)據(jù)和3個實時數(shù)據(jù)流,。未經(jīng)整形的帶寬,,極易產(chǎn)生重疊。
圖十
而經(jīng)過流量整形每個流所占的帶寬會在同一個時間節(jié)點,。所有的非實時流可以見縫插針提高對帶寬的占用率,。這就是AVB的基本原理。
圖十一
AVB不僅可以對發(fā)送端比如各種音視頻設(shè)備的網(wǎng)絡(luò)端口進行流量整形,,還可以對交換機中的每個轉(zhuǎn)發(fā)節(jié)點進行整形,。從而確保每個音視頻流只占用各自相應(yīng)的帶寬而不對其他數(shù)據(jù)產(chǎn)生影響。
由于以太網(wǎng)的發(fā)明時間太早,,并沒有考慮實時信息的傳輸問題,。盡管RTP能在一定程度上保證實時數(shù)據(jù)的傳輸,但并不能為按順序傳送數(shù)據(jù)包提供可靠的傳送機制,。因此,,想要對所有的數(shù)據(jù)包進行排序,就離不開對數(shù)據(jù)的緩沖(Buffer),。但一旦采用緩沖的機制就又會帶來新的問題—極大的“延時”,。換句話說,當(dāng)數(shù)據(jù)包在以太網(wǎng)中傳輸?shù)臅r候從不考慮延時,、排序和可靠交付,。這時,建立可靠的傳送機制就成了擺在技術(shù)人員面前的首要問題,。想要解決這些問題,,我們可以簡要概括成以下幾點:
1. 必須采用基于MAC地址的傳輸方式即二層傳輸或是基于IP地址UDP的傳輸方式,從而減小數(shù)據(jù)包的開銷以及降低傳輸延時,。
2. 由于二層傳輸和UDP均不屬于可靠交付,,因此必須依靠QoS來“盡可能”保障可靠交付,。
3. 所有數(shù)據(jù)包需要有“時間戳”(Time Stamp),數(shù)據(jù)抵達后根據(jù)數(shù)據(jù)包頭的“時間戳”進行回放,。因此各個網(wǎng)絡(luò)終端設(shè)備必需進行“時鐘同步”也就是通常所說的時鐘校準(zhǔn),。
4. 數(shù)據(jù)包被轉(zhuǎn)發(fā)時需采用隊列協(xié)議按序轉(zhuǎn)發(fā),從而盡可能做到低延時,。
5) 什么是AVB,?
AVB——以太網(wǎng)音視頻橋接技術(shù)(Ethernet Audio Video Bridging)是IEEE的802.1任務(wù)組于2005開始制定的一套基于新的以太網(wǎng)架構(gòu)的用于實時音視頻的傳輸協(xié)議集。它有效地解決了數(shù)據(jù)在以太網(wǎng)傳輸中的時序性,、低延時和流量整形問題,。同時又保持了100%向后兼容傳統(tǒng)以太網(wǎng),是極具發(fā)展?jié)摿Φ南乱淮W(wǎng)絡(luò)音視頻實時傳輸技術(shù),。其中包括:
1. 802.1AS:精準(zhǔn)時間同步協(xié)議(Precision Time Protocol,,簡稱PTP)
2. 802.1Qat:流預(yù)留協(xié)議(Stream Reservation Protocol,簡稱SRP)
3. 802.1Qav:排隊及轉(zhuǎn)發(fā)協(xié)議(Queuing and Forwarding Protocol,,簡稱Qav)
4. 802.1BA:音視頻橋接系統(tǒng)(Audio Video Bridging Systems)
5. 1722:音視頻橋接傳輸協(xié)議(Audio/Video Bridging Transport Protocol,,簡稱AVBTP)
6. 1733:實時傳輸協(xié)議(Real-Time Transport Protocol,簡稱RTP)
7. 1722.1:負(fù)責(zé)設(shè)備搜尋,、列舉,、連接管理、以及基于1722的設(shè)備之間的相互控制,。
AVB不僅可以傳輸音頻也可以傳輸視頻,。用于音頻傳輸時,在1G的網(wǎng)絡(luò)中,,AVB會自動通過帶寬預(yù)留協(xié)議將其中750M的帶寬用來傳輸雙向420通道高質(zhì)量,、無壓縮的專業(yè)音頻。而剩下的250M帶寬仍然可以傳輸一些非實時網(wǎng)絡(luò)數(shù)據(jù),。用于視頻傳輸時,,可以根據(jù)具體應(yīng)用調(diào)節(jié)預(yù)留帶寬。比如:750M帶寬可以輕松傳輸高清full HD視覺無損的視頻信號,。并且可以在AVB網(wǎng)絡(luò)中任意路由,。
AVB中的802.1AS是1588協(xié)議在二層架構(gòu)下一種具體實現(xiàn)。是AVB協(xié)議集中最重要的一部分,。有關(guān)詳細內(nèi)容,,我會在后續(xù)的文章中詳細描述。
6) TSN和 AVB
很多人聽說過AVB,,但對于TSN卻有些陌生,。實際上,IEEE 802.1任務(wù)組在2012年11月的時候正式將AVB更名為TSN – Time Sensitive Network時間敏感網(wǎng)絡(luò),。也就是說,,AVB只是TSN中的一個應(yīng)用。那么TSN究竟有哪些應(yīng)用呢,?
第一個應(yīng)用就是我們的專業(yè)音視頻(Pro AV),。在這個應(yīng)用領(lǐng)域里強調(diào)的是主時鐘頻率。也就是說,,所有的音視頻網(wǎng)絡(luò)節(jié)點都必須遵循時間同步機制,。
第二個應(yīng)用是在汽車控制領(lǐng)域。目前大多數(shù)的汽車控制系統(tǒng)非常復(fù)雜,。比如說:剎車,、引擎、懸掛等采用CAN總線,。而燈光,、車門、遙控等采用LIN系統(tǒng),。娛樂系統(tǒng)更是五花八門,,有FlexRay和MOST等目前的車載網(wǎng)絡(luò)。實際上,,所有上述系統(tǒng)都可以用支持低延時且具有實時傳輸機制的TSN進行統(tǒng)一管理,。可以降低給汽車和專業(yè)的A/V設(shè)備增加網(wǎng)絡(luò)功能的成本及復(fù)雜性,。
第三個應(yīng)用是商用電子領(lǐng)域,。比如說,你坐在家中,,可以通過無線WIFI連接到任何家中的電子設(shè)備上,,實時瀏覽任何音視頻資料。
最后一個應(yīng)用也是未來最廣泛的應(yīng)用,。所有需要實時監(jiān)控或是實時反饋的工業(yè)領(lǐng)域都需要TSN網(wǎng)絡(luò),。比如:機器人工業(yè)、深海石油鉆井以及銀行業(yè)等等,。TSN還可以用于支持大數(shù)據(jù)的服務(wù)器之間的數(shù)據(jù)傳輸,。全球的工業(yè)已經(jīng)入了物聯(lián)網(wǎng)(Internet of Things,IoT)的時代,,毫無疑問TSN是改善物聯(lián)網(wǎng)的互聯(lián)效率的最佳途徑,。
圖十二
7) AVnu聯(lián)盟(AVnu Alliance)
AVnu是一個行業(yè)聯(lián)盟,成立于2009年,,一直致力于建立和推廣IEEE802.1音視頻橋接 (AVB)網(wǎng)絡(luò)標(biāo)準(zhǔn),。Broadcom、Intel,、Cisco,、Biamp,、Harman均屬于該組織的成員。該組織建立了一整套一致性測試流程從而確保所有基于AVB網(wǎng)絡(luò)架構(gòu)的音視頻設(shè)備之間的兼容性和互通性,。聯(lián)盟成員一同致力于將TSN標(biāo)準(zhǔn)應(yīng)用于Pro AV,、Automotive、Consumer Electronics以及Industrial,。一旦廠家的產(chǎn)品通過了AVnu的嚴(yán)格測試,,就可以在其產(chǎn)品上使用AVnu的logo。