基于IP over TS系統(tǒng)網(wǎng)段內地址擴展技術的研究
1 引言
數(shù)字視頻廣播DVB(Digital Video Broadcasting)提供面向電視和機頂盒的無線廣播數(shù)字電視服務,定義了一套基于動態(tài)影像壓縮標準MEPG-2(Moving pictures Experts Group)傳輸流的數(shù)據(jù)包內封裝數(shù)據(jù)的方法,根據(jù)衛(wèi)星、有線和地面等不同傳輸媒介,DVB標準相應的分為DVB-S、DVB-C和DVB-T等。
IP over TS技術是通過數(shù)字地面電視網(wǎng)絡傳輸IP數(shù)據(jù)業(yè)務的關鍵技術,它采用已有的基于DVB-T的發(fā)射和接收裝置提供無線IP訪問業(yè)務。IP over TS可為用戶提供高速移動(<200 krn/h)狀態(tài)下的遠程(<50 km)網(wǎng)絡訪問接口。以相對低廉的成本解決非固定以太網(wǎng)訪問的接入問題。
IP over TS系統(tǒng)必須提供IP數(shù)據(jù)包和TS數(shù)據(jù)包的封裝能力和地址解析能力。同網(wǎng)段內地址擴展技術主要為要求互聯(lián)的雙方在同一網(wǎng)段內的特殊設備提供地址解析方案。它是IP over TS系統(tǒng)同網(wǎng)段內應用的關鍵技術。
2 問題的引入
圖1為使用IP overTS系統(tǒng)的網(wǎng)絡構架。其中,A端接入以太網(wǎng),為B端提供訪問接口;同時A端和B端接入A1和B1,A1和B1分別為要求接入同一網(wǎng)段內相互通訊的網(wǎng)絡設備。同網(wǎng)段內的地址擴展技術則提供A,B網(wǎng)絡的無縫連接。
3 鏈路擴展法
對于上述模型,在以太網(wǎng)中通常采用鏈路擴展法解決A端和B端網(wǎng)絡的連接問題。常用的設備有集線器和交換機。在無線系統(tǒng)中可提供對底層鏈路的支持來實現(xiàn)以太網(wǎng)連接。因此,鏈路擴展法同樣適用于無線信道。
3.1 鏈路擴展法原理
鏈路擴展法的原理是通過在MAC層截取數(shù)據(jù)包并轉發(fā)以太網(wǎng)底層所有數(shù)據(jù)包。通過對底層鏈路的支持實現(xiàn)同一網(wǎng)段內地址的擴展。
3.2 鏈路擴展法的實現(xiàn)
訪問數(shù)據(jù)鏈路層通常有3種方法:基于BSD的分組過濾器(BPF)、基于SVR4的數(shù)據(jù)鏈路接口(DLPI)和基于Linux的SOCKET_PACKET接口。由于該系統(tǒng)采用嵌入式Linux操作系統(tǒng),所以采用SOCKET_PACKET接口訪問數(shù)據(jù)鏈路層。實現(xiàn)過程為通過創(chuàng)建數(shù)據(jù)鏈路層socket進行數(shù)據(jù)鏈路層的訪問。所有數(shù)據(jù)鏈路層的數(shù)據(jù)進行TS封裝并通過TS無線信道傳輸至對端,對接收到的信號進行解調、解封裝,將數(shù)據(jù)通過SOCKET PACKET接口發(fā)送到交換機,再由交換機轉發(fā)。其程序主要語句為:
3.3 鏈路擴展法的測試
測試上述方法:IP over TS系統(tǒng)采用2 Mb/s的無線信道,其中A端接入教育網(wǎng)內任意交換機并設定其IP地址為同網(wǎng)段內可用IP地址,無線B端通過IP over TS系統(tǒng)接入遠程交換機且IP地址和A端網(wǎng)絡處于同一網(wǎng)段,交換機端連接測試主機B1。A端主機A1每秒發(fā)送300 KBUDP數(shù)據(jù)至主機B1,B1主機同時每秒發(fā)送300 KB UDP數(shù)據(jù)至主機A1。在B端IP over TS系統(tǒng)處統(tǒng)計接收到的有效數(shù)據(jù)總量(UDP協(xié)議發(fā)送的數(shù)據(jù))和信道傳輸數(shù)據(jù)總量。測試結果如圖2所示。
3.4 鏈路擴展法測試分析
從圖2的測試結果看出,鏈路擴展法的主要問題:無線信道的有效數(shù)據(jù)占有率不穩(wěn)且在部分時段明顯下降,導致碼率接近信道容量的實時圖像傳輸出現(xiàn)卡圖或馬賽克。假如所采用的IP over TS系統(tǒng)的無線帶寬為2 Mb/s,在鏈路層進行數(shù)據(jù)包獲取和轉發(fā)通常會遇到ARP數(shù)據(jù)包、各種的廣播以及其他非載荷數(shù)據(jù)。對于2 Mb/s的無線通信鏈路,這些額外數(shù)據(jù)會占用部分傳輸帶寬而導致系統(tǒng)有效數(shù)據(jù)傳輸速率下降。
4 鄰接表法
4.1 鄰接表法原理
鄰接表法基于鏈路擴展法并對其進行改進,鄰接表法過濾了鏈路層的 ARP數(shù)據(jù)包和其他廣播數(shù)據(jù),從而提升了無線信道的傳輸效率。ARP南IP層復用,可解析局域網(wǎng)內任意合法第三層協(xié)議和第二層硬件地址之間的映射關系。當 A端設備訪問B端設備時,由于過濾ARP數(shù)據(jù)包,使得A端設備認為B端設備未在線或通過網(wǎng)關轉發(fā),導致通訊不能正常進行。如果將A端IP over TS系統(tǒng)設定為默認網(wǎng)關,會導致A端的其他設備不能訪問上層以太網(wǎng)??刹捎脗卧霢RP協(xié)議進行同網(wǎng)段內地址擴展解決此問題。由于ARP協(xié)議是建立在友好通信、充分信任基礎上的協(xié)議,因此很容易通過欺騙的手段獲取發(fā)送到其他主機的IP數(shù)據(jù)包。欺騙的整個流程為:(1)統(tǒng)計IP over TS系統(tǒng)兩端分別連接設備的IP地址,分別記錄到對方的鄰接表中;(2)將鄰接表映射到Hash表中,Hash表記錄是否主機在線;(3)當無線的任意一端請求數(shù)據(jù)發(fā)送時發(fā)送ARP協(xié)議,查找Hash表,如果此IP地址存在于鄰接表中,回復ARP協(xié)議進行數(shù)據(jù)發(fā)送欺騙。由于整個網(wǎng)絡被無線鏈路隔開,所以欺騙一定成功;(4)獲取發(fā)送到對端的IP數(shù)據(jù),進行數(shù)據(jù)的TS封裝和轉發(fā);(5)丟棄接收到的其他廣播數(shù)據(jù)。
4.2 鄰接表法實現(xiàn)
讀取NextHost.txt鄰接表,Hash每個IP地址。while(1)
if(截獲以太網(wǎng)數(shù)據(jù))
if(是ARP協(xié)議同時請求IP地址對應的Hash數(shù)據(jù)為真)
以本機Mac地址回復ARP協(xié)議
else if(非廣播數(shù)據(jù))
將數(shù)據(jù)截取到IP層發(fā)送到TS封裝隊列
endwhile
4.3 鄰接表法的測試和分析
鄰接表法的測試方法和鏈路擴展法的測試方法相同,測試結果如圖3所示。
鄰接表法提升了系統(tǒng)有效數(shù)據(jù)載荷,信道有效數(shù)據(jù)的穩(wěn)定性和占有率得到提高。但由于需統(tǒng)計和編制地址鄰接表,每次IP地址變動都要修改鄰接表,導致IP over TS系統(tǒng)應用的靈活性不足。同時,IP over TS系統(tǒng)基于嵌入式系統(tǒng)開發(fā),修改鄰接表的操作較麻煩,因此對于自動分配IP地址和頻繁變動布局的網(wǎng)絡應變能力不夠。
5 自適應鄰接表法
5.1 自適應鄰接表原理
自適應鄰接表法基于鄰接表法。但它解決了鄰接表法中缺乏靈活性的問題。自適應鄰接表法不再需要手動統(tǒng)計IP地址和編輯鄰接表。它自動獲取各自網(wǎng)段中的鄰接表并發(fā)送到對端進行交換,特別適合對移動設備和臨時設備提供無線網(wǎng)絡接入。同時自適應鄰接表法也避免了發(fā)送過多的地址信息數(shù)據(jù)而占用有效數(shù)據(jù)帶寬。自適應鄰接表法如下:(1)系統(tǒng)開機,IP over TS設備向全網(wǎng)段內發(fā)送ARP數(shù)據(jù)包,在一定的時間內(10 s)將收到ARP回復的主機IP地址記錄入存根;(2)IP over TS兩端交換存根,并將交換后的存根進行Hash映射;(3)如果有主機上線,主機將發(fā)送一個ARP消息確保IP地址不沖突。IP over TS系統(tǒng)查找對端IP地址列表。如果此IP地址可用,則將該IP地址加入地址列表存根并準備發(fā)送修改消息至對端。如果此IP地址不可用(對端存在該IP地址);則IP over TS系統(tǒng)回復該ARP消息表明此IP不可用(IP地址存在沖突);(4)IP over TS系統(tǒng)每隔10 min向網(wǎng)絡中的每臺主機廣播ARP數(shù)據(jù)包用來輪詢下線的主機同時修改存根,將修改操作發(fā)至對端網(wǎng)絡。
通過上述4個步驟,IP over TS系統(tǒng)就可知任意時刻網(wǎng)絡兩端的地址信息并確認是否為欺騙,轉發(fā)數(shù)據(jù)包。
5.2 存根交換幀
TS的標準格式由MPEG2標準組制定。其中PID規(guī)定傳輸流中的數(shù)據(jù)類型。PID是在TS幀頭中預留的13比特數(shù)據(jù)。對于第1次存根交換和IP數(shù)據(jù)交換,采用指定PID標識。如果要添加或刪除一臺主機信息,PID的生成規(guī)則如下:
PID 0b00000 0000 0000
添加:0b00001 XXXX xxxx;其中XXXX XXXX表明主機地址。
刪除:0b00010 XXXX xxxx;其中XXXX XXXX表明主機地址。
在該PID出現(xiàn)的情況下,TS中的數(shù)據(jù)只有2種類型:一種是帶有IP數(shù)據(jù)的載荷數(shù)據(jù)包和單純發(fā)送修改消息的數(shù)據(jù)包。這兩種包可通過IP封裝算法進行區(qū)分。同時考慮到A類和B類地址的問題,通過子網(wǎng)掩碼的運算來確定多少個TS修改幀決定一臺主機地址。A類地址需3個TS幀修改一個主機地址,B類地址需2個 TS幀,C類地址需1個。
自適應鄰接表法需2個原始socket協(xié)同工作。ARPsocket用來處理ARP相關的所有消息。IP socket用來捕獲發(fā)往該MAC地址的所有數(shù)據(jù)包。同時,和鄰接表法一樣。自適應鄰接表法由于在無線信道傳輸?shù)倪^程中剔除了MAC層幀頭信息,這樣在無線信道中每傳送1個IP數(shù)據(jù)包就可省14個字節(jié)的流量,進一步提高了系統(tǒng)信道的有效利用率。
5.3 自適應鄰接表實現(xiàn)
5.3.1 數(shù)據(jù)捕獲線程
5.4 自適應鄰接表法的測試及結果分析
自適應鄰接表的測試方法和鏈路擴展法的測試方法相同,測試結果如圖4所示??煽闯觯捎米赃m應鄰接表法后。信道有效數(shù)據(jù)的穩(wěn)定性和占有率都與鄰接表法保持一致,優(yōu)點是增加了系統(tǒng)配置的靈活性。
6 結論
鏈路擴展法可解決IP over TS系統(tǒng)在同網(wǎng)段內地址擴展問題,但對于無線信道該方法存在著有效數(shù)據(jù)占有率不穩(wěn)定且不足的問題。針對這些問題,將鏈路擴展法改進為鄰接表法,同時針對鄰接表法缺失靈活性的問題將其改進為自適應鄰接表法。通過航天某返回艙數(shù)傳鏈路項目的測試表明,自適應鄰接表法可有效解決IP over TS系統(tǒng)在同網(wǎng)段內地址擴展問題,能夠使無線信道的有效數(shù)據(jù)占用率趨于穩(wěn)定并有所提高。將該方法應用在無線信道的實時圖像傳輸系統(tǒng),圖像質量得到了明顯改善。