孫 力
[摘要]數字視頻廣播(DVB)是一種重要的數字電視系統業務,在以后的信息社會中數字廣播技術將占據重要的位置。對DVB數據廣播的具體協議實現進行研究。
[關鍵詞]數字視頻廣播 協議 實現
中圖分類號:TN93文獻標識碼:A文章編號:1671-7597(2009)0520094-01
大多數通訊協議都是基于雙向的點對點(point to point)通訊。雖然它們通過交互式的認證過程確保了傳輸的可靠性,但是它們不適合用來同時將同樣的信息傳輸給大量的觀眾。如果我們將這些數據通過一條帶寬受控的信道以廣播的方式發送出去,并且使得只有被授權的用戶才能夠接收到,就可使得所有的數據只發送一次,而且可以控制接收者卻不限制接收的人數,這將省去為每個接收者建立專門的連接,無論在效率上還是經濟效益上都是極明顯的。所以說,數據廣播是數據通訊的一種方式(協議)而不是一種物理意義上的傳送。其傳送的媒體可以是多種,包括衛星、有線等等。鑒于數據廣播的重要性,歐洲的DVB、美國的ATSC以及日本的ISDB(綜合業務數字廣播)在這一領域展開了激烈的爭奪。其中DVB標準在1999年6月正式成為歐洲標準時交互業務標準就是歐洲電信的標準(ETS)。下面談談DVB數據廣播的具體協議實現。
一、數據管道
數據管道是一種異步數據傳送機制,數據被直接插入到MPGE-2的傳送包負載中。這種機制中并沒有給出關于數據的分段和重組定義而是留給了應用自己定義。舉個例子,TS包頭中的負載起始標志(payload_unit_start
_indieator)可以被用來標志數據包的開始,而傳送優先級標志(transport-prioriyt)可以被用來標志數據包的結束。至于如何將數據通過管道及時地傳送則不在協議中規定而由應用自己保證。
數據服務將通過一個或多個數據廣播描述子來說明對數據管道的應用。每一個描述子通過成份標志來唯一標志一個特定的數據管道。而且,這個成份標志必須和可能在程序映射表(PMT)中提供的流標志描述子(st
ream_identifier_descriptor)中的成份標志完全一致。流標志描述子用來指明哪一個流使用了數據管道,DVB標準中定義了關于數據廣播描述子的具體使用,而對于在MPT中的流類型(steram-type)的描述DVB沒有定義具體值。在DVB的具體應用中,數據管道機制用來傳送任意用戶自定義的數據類型。
二、數據流
數據流分成三種:異步數據流,從同步數據流和同步數據流。無論哪種,最終都是被插入到MPGE-2傳送流的分組原始流(PES)層進行傳送。異步數據流用來傳送沒有定時要求的數據流,在使用分組原始流層進行數據傳送時需要遵循的語法如下:
Serteam-id該字段必須設置為0xBF,表示是私有流;PES-paeket-length:這個16比特的字段必須設置為非0值。同步數據流用于傳送在接收端輸出數據碼率必須嚴格精確控制的應用。接收端的時鐘通過MPEG標準定義的節目參考時鐘(PCR)機制和發送端實現同步,通過分組原始流層的數據包結構來進行數據傳遞。這種結構提供一個9比特的顯示時間標簽擴展(TPS_extension)字段用來精確定位數據訪問單元,這和視音頻訪問單元是類似的。單元的大小可以是比特,也可以是字節或多個字節,完全取決于具體應用。
從同步數據流和同步數據流應用的區別在于從同步數據流傳送的數據流需要和其他的MPGE-2的打包原始流嚴格同步,其余的類似。和數據管道一樣,無論同步數據流還是異步數據流都是通過一個或多個數據廣播描述子來說明對數據流的應用。每一個描述子通過成份標志來唯一標志一個特定的數據流。而且,這個成份標志必須和可能在程序映射表(PMT)中提供的流標志描述子描述子中的成份標志完全一致。流標志描述子用來指明哪一個流使用了數據流。DVB中同樣定義了關于數據廣播描述子的具體使用。無論是同步還是異步數據流都必須在PMT中設置流類型為0x06或者采用用戶自定義的數值。
三、多協議封裝
多協議封裝(MEP)提供一種基于MPGE-2傳送流的在數字電視廣播網絡中傳送數據的機制。該協議主要的一個應用領域是傳送基于IP協議的數據,也可以通過進行LLC/SNAP封裝來傳遞按其他網絡協議定義的數據流,并適用于unicast,multicast和broadcast等多種傳播方式。這些都是通過一個48位的MAC地址來實現的,但是DVB并沒有規定如何為用戶分配MAC地址。考慮到廣播的實際安全性,封裝協議通過支持對數據包的加密和動態改變MAC地址來保證安全。分段數據是通過數據段結構來傳遞的,并兼容于為私有數據定義的DSM-CC段。這種分段格式提供了一種有效的將數據表映射到MPGE-2傳送流包格式的機制,并且可以在現有的解復用的軟硬件基礎上利用MAC地址方便地實現數據包濾波。分段機制允許將一個數據表分段映射入多個數據段,如果數據表的長度小于或者等于4080字節(包括LLC/SNA
P頭),則數據表可以放入一個數據段而無需分段。對于PI協議數據,由于LLC/SNAP可以被忽略,則MTU(最大傳輸單元)應該被設置成4080,這樣可以讓數據表無需被重新分段,如果考慮LLC/SNAP則MTU應該被設置為4074或者更小。6字節的MAC地址在數據段結構中被劃分成兩個部分,這樣做的目的是為了使接收端方便采用硬件方式進行包濾波。
四、數據輪播
數據集(也有稱數據輪)是一種允許服務器或者某個應用循環地、一次或者多次地發送一組相同數據模塊的服務。如果一個接收者希望訪問其中的某一個特定的模塊,則僅僅需要等到下一次廣播的時候即可。一個典型的數據集的應用是圖文廣播。數據集是定義在DSM-CC的數據集的基礎上的,提供一種循環傳遞數據到接收者的機制。
在數據集中數據被劃分成模塊(modules),每個模塊被劃分成大小完全一樣的塊(block)。除了最后一個塊可能會小一些,一個數據集中其他所有的塊的大小都是一樣的。每個模塊代表邏輯上相互獨立的數據,如文件。根據服務的需要,多個模塊可以組織成一個組(group),類似的多個組可以進一步構成超組。
數據集規范使用到了DSM-CC下載規范中的四條消息;數據存放在下載數據塊消息中,關于模塊的控制信息存放在下載信息說明、下載服務初始化以及下載取消消息中。其中下載服務初始化消息描述一個超組中組的信息,而下載信息說明消息描述一個組中模塊的信息。基于這些控制消息,用戶可以從網絡中獲取模塊的子集,DVB標準定義了如何使用上面四條消息。
參考文獻:
[1]薛鋒、陳萍萍、陳建銘,基于DVB數據廣播系統的軟件結構[J].計算機工程,2002,(03).
[2]劉寶鋒、張文軍,機頂盒應用軟件模塊的設計與實現[J].計算機工程,2004,(08).