目前衛(wèi)星傳送的信號(hào)不僅有常用的音視頻信號(hào),有其他可能含有關(guān)鍵信息的信號(hào),在這些信息的獲取過(guò)程中對(duì)DVB傳送的IP數(shù)據(jù)進(jìn)行分析有著重要的意義。本文首先對(duì)DVB數(shù)據(jù)廣播的方式進(jìn)行了概述,然后對(duì)多協(xié)議封裝的原理進(jìn)行了說(shuō)明,最后結(jié)合實(shí)例說(shuō)明了這種封裝模式的應(yīng)用,說(shuō)明了信息獲取的方法。
1 引言
當(dāng)前,DVB的應(yīng)用已經(jīng)十分普及,尤其是用于傳送廣播電視節(jié)目的設(shè)備幾乎已經(jīng)遍布各地,這為應(yīng)用DVB標(biāo)準(zhǔn)傳達(dá)其他格式的數(shù)據(jù)提供了硬件基礎(chǔ)。而DVB標(biāo)準(zhǔn)地其傳送的數(shù)據(jù)包載荷的具體內(nèi)容并沒(méi)有進(jìn)行具體規(guī)定,這種開(kāi)放性使得他成為多種格式數(shù)據(jù)的載體,除了廣播和電視節(jié)目外,也可用來(lái)完成數(shù)據(jù)檢索、郵件服務(wù)、視頻會(huì)議、遠(yuǎn)程教育、電子商務(wù)、電子收費(fèi)、遠(yuǎn)程醫(yī)療等業(yè)務(wù)。而軍用信息的傳送對(duì)信息獲取有更大的價(jià)值。
2 DVB數(shù)據(jù)廣播協(xié)議結(jié)構(gòu)模型
DVB(Digital Video Broadcast)系統(tǒng)提供了在各種不同的傳輸媒介傳送MPEG傳輸流的手段,這些傳輸流一般都包含MPEG-2音視頻內(nèi)容。這種傳送音視頻節(jié)目是應(yīng)用得最多也最成熟的,在邊遠(yuǎn)地區(qū)提供了方便的低成本的接入方式,尤其是在"村村通"工程中發(fā)揮了巨大的作用。而以IP數(shù)據(jù)為主的數(shù)據(jù)傳送業(yè)務(wù)是對(duì)基于DVB傳輸標(biāo)準(zhǔn)MPEG-2的重要擴(kuò)展。在IP數(shù)據(jù)包中又可以封裝網(wǎng)頁(yè)、郵件、語(yǔ)音等多種數(shù)據(jù)。針對(duì)不同的應(yīng)用需求,DVB規(guī)定了6種業(yè)務(wù)模式:數(shù)據(jù)管道(data piping)、數(shù)據(jù)流(data streaming)、多協(xié)議封裝(Multi-protocol encapsulation,MPE)、數(shù)據(jù)輪放(data carousels),對(duì)象輪放(data carousels)和用戶(hù)定義服務(wù)(registered service)。而對(duì)應(yīng)于這6種業(yè)務(wù)模式有相應(yīng)的傳輸規(guī)范,構(gòu)成了DVB數(shù)據(jù)廣播協(xié)議結(jié)構(gòu)模型。這些方式有不同的應(yīng)用條件,其中的多協(xié)議封裝一般被用來(lái)傳送其他各式的數(shù)據(jù),實(shí)際中用得較多的是傳送IP數(shù)據(jù)。這些數(shù)據(jù)在傳送時(shí)候被封裝成封裝成數(shù)據(jù)包。
DVB標(biāo)準(zhǔn)的數(shù)據(jù)包的格式分為基于TS包、基于PES包和基于MPEG-2數(shù)據(jù)片3種格式。其中基于TS包格式,其固定長(zhǎng)度為188 B,基于么有數(shù)據(jù)機(jī)制,數(shù)據(jù)管道采用這種方式;基于PES包格式是MPEG-2提供的一種長(zhǎng)度可變的打包方式,最大包長(zhǎng)為64 kB,提供數(shù)據(jù)流精確同步機(jī)制,所以DVB多選擇PES用于同步和被同步的碼流傳輸;贛PEG-2數(shù)據(jù)片也是長(zhǎng)度可變的打包方式,最大包長(zhǎng)為4 kB,多協(xié)議封裝和輪放采用這種打包方式。
3 多協(xié)議封裝
多協(xié)議封裝規(guī)范支持在DVB信道上傳輸符合其他通信協(xié)議的數(shù)據(jù),他針對(duì)IP包進(jìn)行了優(yōu)化,也可用于傳輸其他網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)。利用DVB多協(xié)議封裝可以實(shí)現(xiàn)單點(diǎn)廣播(數(shù)據(jù)包發(fā)給單一接收者)、多點(diǎn)廣播(發(fā)給一組接收者)、廣播(發(fā)給所有接收者)。 一個(gè)數(shù)據(jù)片可以包含許多具有同一個(gè)PID的MPEG包。在MPEG包的凈荷中,報(bào)文依次緊湊排列。這就需要利用圖1中NMP字節(jié)來(lái)指示下一個(gè)報(bào)文的起始位置。如果該字節(jié)的值不為零,凈荷單元起始位將被后移,后移的位置由該字節(jié)的值說(shuō)明,如果該字節(jié)的值為0,即十六進(jìn)制的0x00,說(shuō)明其后緊接著的就是MPE包。MPE包包括MPE包頭和MPE負(fù)載,MPE包頭為12個(gè)字節(jié),一般以"3E"開(kāi)始。MPE負(fù)載又包括IP包頭和IP包負(fù)載,IP包頭為20個(gè)字節(jié)。IP包負(fù)載一般由TCP/UDP包頭和TCP/UDP包負(fù)載組成,IP包頭中第十個(gè)字節(jié)指明了所用的傳輸層的協(xié)議是TCP還是UDP等,其他各字節(jié)含義將在后面說(shuō)明。這種嵌套方式的數(shù)據(jù)封裝格式如圖1所示。
表1是MPE包頭的部分字段,table_id的值一般為3E,說(shuō)明MPE報(bào)的開(kāi)始。section_syntax_indicator置"1"說(shuō)明使用CRC校驗(yàn),privator_indicator置"0",resetved置"11",section_length說(shuō)明該MPE報(bào)的長(zhǎng)度,包括CRC校驗(yàn)的4個(gè)字節(jié)。MAC_address_6是目的MAC地址的最低字節(jié),目的MAC地址共六個(gè)字節(jié),依次是MAC_address_1到MAC_address_6,分別對(duì)應(yīng)于MAC的六個(gè)字節(jié)。payload_scrambhng_control和address_scrambling_control分別定義負(fù)載和MAC地址的加密模式,他們的值為"0X00"時(shí)說(shuō)明負(fù)載沒(méi)有加密,MAC地址也沒(méi)有加密。
IP協(xié)議是網(wǎng)絡(luò)層的協(xié)議,在網(wǎng)絡(luò)層上的運(yùn)輸層中的協(xié)議有TCP、UDP等,如圖2所示。具體的協(xié)議類(lèi)型在IP包頭的"協(xié)議"字段即第十個(gè)字節(jié),該字段說(shuō)明使用何種類(lèi)型的傳輸層協(xié)議。當(dāng)他的值為"0x06"時(shí)說(shuō)明傳輸層使用的是TCP協(xié)議;當(dāng)他的值為"0x11"時(shí)說(shuō)明傳輸層使用的是UDP協(xié)議。而TCP協(xié)議和UDP協(xié)議又分別對(duì)應(yīng)于具體的應(yīng)用層協(xié)議,如TCP協(xié)議常對(duì)應(yīng)于應(yīng)用層的SMTP,HTTP,TELNET等協(xié)議,而UDP協(xié)議常對(duì)應(yīng)于應(yīng)用層的DNS,RIP等協(xié)議。該字段在對(duì)收到的衛(wèi)星數(shù)據(jù)進(jìn)行分類(lèi)接收并還原的過(guò)程中非常重要。IP包和TCP包的解析按各自的封裝格式進(jìn)行,在他們的包頭中指明了發(fā)送方和接收方的IP地址、段長(zhǎng)度、包頭長(zhǎng)度、協(xié)議類(lèi)型、發(fā)送方和接收方端口號(hào)、數(shù)據(jù)偏移等。具體字節(jié)含義可在相關(guān)協(xié)議中查看。
下面對(duì)一段多協(xié)議封裝的IP數(shù)據(jù)進(jìn)行分析。數(shù)據(jù)首先要從DVB信道中進(jìn)行采集,由于目前常用的DVB信號(hào)的符碼率可達(dá)到90 Mb/s,所以需要使用高速的數(shù)據(jù)采集設(shè)備才能采到完整的連續(xù)的數(shù)據(jù)包。采集下來(lái)的數(shù)據(jù)在保存的過(guò)程中數(shù)據(jù)也不能有丟失或錯(cuò)誤,這樣才能保證分析的正確。
下面結(jié)合實(shí)際數(shù)據(jù)進(jìn)行分析。采集下來(lái)的數(shù)據(jù)需要使用能對(duì)二進(jìn)制數(shù)據(jù)進(jìn)行編輯的軟件進(jìn)行查看和分析。如圖3所示,該圖是數(shù)據(jù)分析軟件的界面,他顯示了MPE數(shù)據(jù)包的詳細(xì)內(nèi)容,其中第一行前面四個(gè)字節(jié)是MPE數(shù)據(jù)包的包頭,從中可看出,該段數(shù)據(jù)的PID值為"0x195",第五個(gè)字節(jié)"0X08"說(shuō)明該MPE數(shù)據(jù)片在8個(gè)字節(jié)后以"3E"開(kāi)始,其后的"0X041"說(shuō)明該MPE數(shù)據(jù)片長(zhǎng)度為65。第二行的"47、14、00、76、06、00"是目的MAC從低到高依次排列的6個(gè)字節(jié)。MPE數(shù)據(jù)包包頭共12個(gè)字節(jié)。緊接著MPE數(shù)據(jù)包包頭的是20個(gè)字節(jié)的IP包頭,以"0X45"開(kāi)始,"4"說(shuō)明是IPv4數(shù)據(jù)包,"5"說(shuō)明5個(gè)單位共20個(gè)字節(jié),"0X00 34"說(shuō)明該IP包長(zhǎng)度為52個(gè)字節(jié)。IP包頭中的第十個(gè)字節(jié)"0X06"說(shuō)明該IP包承載的是TCP協(xié)議,包頭的后十個(gè)字節(jié)是源地址和目的地址,分別為"4524 FA 09"和"CA AE 9A CB",即69.36.250.09是源IP地址,而202.174.154.203是目的IP地址。緊接著IP包頭的是20個(gè)字節(jié)的TCP包頭。首先是各2個(gè)字節(jié)源端口和目的端口"00 50"和"CD F2",即源端口是80,目的端口是52722,可見(jiàn)源端口是常用的http協(xié)議的80端口。然后是各4個(gè)字節(jié)的發(fā)送序號(hào)和接收序號(hào)"A9 60 A2 48"和"1A C8 C9 60"。TCP包中的第十三個(gè)字節(jié)中的"8"說(shuō)明數(shù)據(jù)偏移為32個(gè)字節(jié),即頭部結(jié)束后還有12個(gè)字節(jié)才是載荷數(shù)據(jù)。
圖4是一份計(jì)數(shù)指示從0X14到0X1A的連續(xù)的IP數(shù)據(jù)片,每行設(shè)置為顯示204個(gè)字節(jié),正好為DVB的MPEG傳送流的包長(zhǎng),所以每行開(kāi)始的都是同步字節(jié)"7E"。各行第四個(gè)字節(jié)為連續(xù)計(jì)數(shù)字段,可見(jiàn)他們是同一數(shù)據(jù)包的不同分段。負(fù)載在第一行開(kāi)始,由第二個(gè)字節(jié)中的"4"指示。該行第四個(gè)字節(jié)"00"說(shuō)明從其后第一個(gè)字節(jié)開(kāi)始就是MPE數(shù)據(jù)片,以"3E"開(kāi)始的12個(gè)字節(jié)為MPE包頭,其中"5E9"指示數(shù)據(jù)片長(zhǎng)度為0x5E9,即1513。網(wǎng)卡地址為00D0D73003D7。緊接著的是IP包,以"45 00"開(kāi)始。
圖5是一段含有用戶(hù)登錄文本信息的IP數(shù)據(jù)片,負(fù)載字段記錄有用戶(hù)登錄的日期、服務(wù)器名、數(shù)據(jù)長(zhǎng)度等信息。在衛(wèi)星DVB信號(hào)中承載的多種數(shù)據(jù)如郵件、圖片等等業(yè)務(wù)都可以從負(fù)載中提取出來(lái)。
4 結(jié) 語(yǔ)
本文結(jié)合DVB多協(xié)議封裝的EN300468協(xié)議對(duì)數(shù)據(jù)封裝的格式進(jìn)行了詳細(xì)分析,并針對(duì)負(fù)載的具體類(lèi)型結(jié)合IP協(xié)議、TCP協(xié)議、UDP協(xié)議對(duì)具體數(shù)據(jù)進(jìn)行了逐字段的分析,最后得到了可用于提取關(guān)鍵信息的數(shù)據(jù)。這些數(shù)據(jù)在DVB的傳送流中都是以二進(jìn)制形式連續(xù)存在的,在實(shí)際工作中要想獲取負(fù)載中的有用的信息必須采用逐層剝離的方法用軟件來(lái)自動(dòng)實(shí)現(xiàn)。這種方法在衛(wèi)星DVB數(shù)據(jù)承載的多業(yè)務(wù)數(shù)據(jù)的自動(dòng)接收和分類(lèi)等工作中是非常重要的。
作者:高毫林,黃焱
(解放軍信息工程大學(xué) 信息工程學(xué)院 河南 鄭州 450002)
來(lái)源:《現(xiàn)代電子技術(shù)》