畢海霞
(西安電子工程研究所 西安 710100)
當(dāng)前戰(zhàn)爭(zhēng)中,多軍兵種協(xié)同的需求越來(lái)越迫切,協(xié)同作戰(zhàn)所需的傳輸信息量急劇上升,傳輸業(yè)務(wù)種類(lèi)也越來(lái)越多。自組網(wǎng)因其無(wú)中心、自組織、多跳路由和動(dòng)態(tài)拓?fù)涞奶卣鳎W(wǎng)絡(luò)快速部署、抗毀性強(qiáng)和組網(wǎng)靈活等優(yōu)點(diǎn),成為了近年來(lái)軍事信息化應(yīng)用中的研究熱點(diǎn)。自組網(wǎng)的網(wǎng)絡(luò)協(xié)議分為物理層,數(shù)據(jù)鏈路層,網(wǎng)絡(luò)層,傳輸層和應(yīng)用層四部分。應(yīng)用層的設(shè)計(jì)高效與否會(huì)影響整個(gè)自組網(wǎng)系統(tǒng)的性能,本文就此開(kāi)展研究,提出了一種適用于自組網(wǎng)的流媒體應(yīng)用層設(shè)計(jì)。
自組網(wǎng)應(yīng)用層是一套基于PC 或嵌入式平臺(tái)的軟件系統(tǒng),主要實(shí)現(xiàn)通信業(yè)務(wù)、運(yùn)維管理類(lèi)兩部分功能。通信業(yè)務(wù)實(shí)現(xiàn)網(wǎng)絡(luò)通信功能,主要包括語(yǔ)音、視頻、撥號(hào)通話(huà)、短消息、01 數(shù)據(jù)、02 指令通信功能;此外,運(yùn)維管理類(lèi)用戶(hù)信息管理可以從點(diǎn)名業(yè)務(wù)中獲取應(yīng)用層用戶(hù)信息,包括用戶(hù)狀態(tài)、漫游狀態(tài)等信息等。
網(wǎng)絡(luò)管理包括拓?fù)滹@示、用戶(hù)信息管理、網(wǎng)絡(luò)參數(shù)配置和自組網(wǎng)設(shè)備狀態(tài)管理四部分功能,其中拓?fù)滹@示實(shí)現(xiàn)點(diǎn)到點(diǎn)鏈路查詢(xún)、業(yè)務(wù)拓?fù)洳樵?xún)和實(shí)時(shí)拓?fù)洳樵?xún),分別反映網(wǎng)絡(luò)本地節(jié)點(diǎn)和任意另外一個(gè)節(jié)點(diǎn)間的鏈路連接信息,網(wǎng)絡(luò)傳輸業(yè)務(wù)的連接信息和即時(shí)的網(wǎng)絡(luò)拓?fù)溥B接信息;用戶(hù)信息管理通過(guò)點(diǎn)名及自組網(wǎng)設(shè)備狀態(tài)管理功能獲取自組網(wǎng)用戶(hù)信息,生成用戶(hù)信息數(shù)據(jù)庫(kù),一方面為通信業(yè)務(wù)類(lèi)功能提供通信時(shí)所需的通信錄,另一方面為運(yùn)維管理類(lèi)功能提供網(wǎng)絡(luò)維護(hù)時(shí)所需的用戶(hù)信息;網(wǎng)絡(luò)參數(shù)配置主要對(duì)自組網(wǎng)設(shè)備的IP 地址、網(wǎng)關(guān)地址、頻段及頻點(diǎn)等信息進(jìn)行配置。
ANI(Application Network Interface)接口及隊(duì)列調(diào)度,對(duì)通信業(yè)務(wù)、網(wǎng)絡(luò)管理及運(yùn)維支撐三部分功能產(chǎn)生及收到的數(shù)據(jù)包進(jìn)行封包或解包,并根據(jù)業(yè)務(wù)的優(yōu)先級(jí)進(jìn)行發(fā)送和接收隊(duì)列的調(diào)度。
自組網(wǎng)應(yīng)用層通信示意圖如下所示。對(duì)音視頻業(yè)務(wù),應(yīng)用層采集攝像頭和話(huà)筒數(shù)據(jù)后,進(jìn)行音視頻編碼,然后在網(wǎng)絡(luò)協(xié)議控制下,進(jìn)入通信網(wǎng)絡(luò)進(jìn)行傳輸,對(duì)端收到音視頻數(shù)據(jù),進(jìn)行解碼及恢復(fù)工作;對(duì)數(shù)據(jù)類(lèi)通信業(yè)務(wù),應(yīng)用層接收到數(shù)據(jù)后,在網(wǎng)絡(luò)協(xié)議處理后,進(jìn)入通信網(wǎng)絡(luò)傳輸至對(duì)端;對(duì)網(wǎng)絡(luò)管理類(lèi)及運(yùn)維支撐類(lèi)數(shù)據(jù),應(yīng)用層進(jìn)行解析后,與底層協(xié)議進(jìn)行交互,或進(jìn)入通信網(wǎng)路。
通過(guò)對(duì)應(yīng)用層軟件功能進(jìn)行分析,可將其分解為以下子功能:
(1)實(shí)現(xiàn)VOIP 語(yǔ)音及視頻,包括語(yǔ)音及視頻的采集、編碼及封包和解包。
(2)實(shí)現(xiàn)對(duì)通信業(yè)務(wù)的差異化處理(封裝ANI頭,不同的優(yōu)先級(jí)及QoS 處理策略),并實(shí)現(xiàn)網(wǎng)絡(luò)管理及運(yùn)維支撐類(lèi)業(yè)務(wù)的功能。
(3)實(shí)現(xiàn)一個(gè)可移植、穩(wěn)健的平臺(tái),功能包括操作系統(tǒng)適配,socket 抽象,消息包管理,進(jìn)程監(jiān)控,定時(shí)器管理及日志等。
(4)實(shí)現(xiàn)UI用戶(hù)界面,便于用戶(hù)操作。
綜上分析,應(yīng)用層邏輯架構(gòu)如下圖所示。

圖1 應(yīng)用層邏輯架構(gòu)
VoIP(Voice Over Internet Protocol)是建立在Internet 基礎(chǔ)上的新型數(shù)字化傳輸技術(shù),是在IP(Internet Protocol)網(wǎng)上進(jìn)行實(shí)時(shí)音視頻,數(shù)據(jù)和文件等業(yè)務(wù)傳輸?shù)募夹g(shù)[1]。
H.323[2]和SIP[3]是VoIP 協(xié)議中最主要的兩種信令面協(xié)議,分別由ITU-T 和IETF 制定。兩者均利用RTP/RTCP(Real-Time Protocol/Real-Time Control Protocol)作為多媒體通信的應(yīng)用層控制協(xié)議,因此,兩者所提供的信令功能類(lèi)似;但由于制定機(jī)構(gòu)不同,兩者在設(shè)計(jì)風(fēng)格上差別巨大。
下表從幾個(gè)方面對(duì)兩種協(xié)議進(jìn)行比較與分析:

表1 H.323 和SIP 協(xié)議比較

續(xù)表
綜上分析,H.323 基于傳統(tǒng)的電話(huà)信令架構(gòu)而設(shè)計(jì),協(xié)議發(fā)展較成熟,但由于架構(gòu)龐雜,難以理解和實(shí)現(xiàn)。并且,H.323 的版本更新必須遵循向前兼容的原則,這意味著,隨著應(yīng)用的不斷更新,即使某些舊特性不再具有應(yīng)用價(jià)值也不會(huì)被淘汰掉,而同時(shí)新特性不斷累加,這無(wú)疑將導(dǎo)致協(xié)議越來(lái)越來(lái)龐雜。而SIP 協(xié)議在設(shè)計(jì)時(shí)遵循了簡(jiǎn)單、開(kāi)放、兼容和可擴(kuò)展等原則。隨著應(yīng)用的發(fā)展,被淘汰的舊的首部和取值將逐漸消失,保證了協(xié)議的簡(jiǎn)潔。同時(shí),SIP 協(xié)議在消息格式上編碼更方便,使得SIP 協(xié)議在擴(kuò)展方面能夠產(chǎn)生更有效率的應(yīng)用。因此,本設(shè)計(jì)中選用SIP 協(xié)議作為VoIP 信令面協(xié)議。
一個(gè)SIP 系統(tǒng)主要由網(wǎng)絡(luò)服務(wù)器和用戶(hù)代理(User Agent)組成。UA(User Agent)也稱(chēng)作SIP 終端,而網(wǎng)絡(luò)服務(wù)器包括代理服務(wù)器、注冊(cè)服務(wù)器和重定向服務(wù)器等。SIP 會(huì)話(huà)主要由這四個(gè)應(yīng)用實(shí)體來(lái)完成[6]。
●用戶(hù)代理
UA 為終端用戶(hù)的通信提供多功能的界面。目前的SIP UA 通常可支持語(yǔ)音,即時(shí)消息和視頻等多種業(yè)務(wù)。其主要功能包括會(huì)話(huà)發(fā)起,會(huì)話(huà)保持,會(huì)話(huà)轉(zhuǎn)接等6]。
●代理服務(wù)器
代理服務(wù)器的主要功能是路由并轉(zhuǎn)發(fā)用戶(hù)的呼叫請(qǐng)求。當(dāng)某用戶(hù)發(fā)起會(huì)話(huà)時(shí),其UA 會(huì)生成一個(gè)SIP 請(qǐng)求消息并發(fā)送至對(duì)應(yīng)的代理服務(wù)器,然后,代理服務(wù)器將請(qǐng)求消息轉(zhuǎn)發(fā)至對(duì)端的UA,從而搭建起用戶(hù)間交互的橋梁[6]。
●重定向服務(wù)器
重定向服務(wù)器的功能不同于代理服務(wù)器。當(dāng)收到用戶(hù)請(qǐng)求時(shí),重定向服務(wù)器并不轉(zhuǎn)發(fā),而是執(zhí)行查找操作,獲得被請(qǐng)求用戶(hù)的地址信息,并將其回復(fù)給請(qǐng)求用戶(hù)。請(qǐng)求用戶(hù)接收到地址信息后,將直接向被請(qǐng)求用戶(hù)發(fā)送會(huì)話(huà)請(qǐng)求[6]。
●注冊(cè)服務(wù)器
注冊(cè)服務(wù)器的主要功能是處理用戶(hù)的注冊(cè)請(qǐng)求,從而完成用戶(hù)地址的更新。當(dāng)用戶(hù)登錄時(shí),UA會(huì)向注冊(cè)服務(wù)器發(fā)送注冊(cè)消息,并將自己的IP 地址告訴注冊(cè)服務(wù)器,注冊(cè)服務(wù)器將用戶(hù)的IP 地址與用戶(hù)綁定,以方便其他用戶(hù)對(duì)其進(jìn)行查找[6]。
傳統(tǒng)的SIP 呼叫流程如下圖所示。

圖2 SIP 會(huì)話(huà)的建立過(guò)程
傳統(tǒng)的SIP 協(xié)議采用了C/S 架構(gòu)。由于SIP 協(xié)議用戶(hù)數(shù)目過(guò)于龐大,必須由專(zhuān)門(mén)的服務(wù)器完成用戶(hù)注冊(cè)(用戶(hù)自身信息,包括ID 與地址之間的映射關(guān)系等注冊(cè)于服務(wù)器上),以及用戶(hù)的鑒權(quán),重定向等工作。再通過(guò)邀請(qǐng)(INVITE)流程發(fā)起會(huì)話(huà)建立,協(xié)商雙方的用戶(hù)面(語(yǔ)音)編碼方式、傳輸?shù)刂?端口等信息,為后續(xù)傳輸用戶(hù)面語(yǔ)音幀的RTP/RTCP協(xié)議協(xié)商和分配資源,除此之外,INVITE 流程還包括一系列后續(xù)雙方的行為交互,包括振鈴、轉(zhuǎn)接、接聽(tīng)/拒絕等等。
而自組網(wǎng)應(yīng)用層的需求具有以下幾個(gè)特點(diǎn):,
●節(jié)點(diǎn)數(shù)目少
自組網(wǎng)節(jié)點(diǎn)數(shù)目一般為幾十個(gè)。
●SIP 終端IP 地址固定
由于應(yīng)用場(chǎng)景的特殊性,每個(gè)SIP 終端在使用前必須配置好IP 地址。即使IP 地址發(fā)生變更,也會(huì)通過(guò)網(wǎng)絡(luò)傳輸告知其他相關(guān)SIP 終端。且,每個(gè)SIP 終端上均保存了其他SIP 終端的IP 地址。
●自組網(wǎng)中節(jié)點(diǎn)地位平等
出于抗毀性的考慮,自組網(wǎng)各節(jié)點(diǎn)地位平等,任何一個(gè)節(jié)點(diǎn)損毀都不會(huì)影響其他節(jié)點(diǎn)的通信。如果設(shè)置其中某些節(jié)點(diǎn)作為SIP 網(wǎng)絡(luò)中的服務(wù)器,那如果該節(jié)點(diǎn)被毀,則網(wǎng)絡(luò)將癱瘓。
綜上分析,自組網(wǎng)應(yīng)用場(chǎng)景下,SIP 協(xié)議中的服務(wù)器是不可以也無(wú)需存在的。針對(duì)該需求,剔除服務(wù)器的功能,將SIP 會(huì)話(huà)流程修改如下:

圖3 適用于自組網(wǎng)的SIP 會(huì)話(huà)流程
(1)用戶(hù)A 向用戶(hù)B 通過(guò)“INVITE”消息發(fā)起會(huì)話(huà)請(qǐng)求,會(huì)話(huà)請(qǐng)求消息體中帶有用戶(hù)A 的媒體屬性描述;
(2)用戶(hù)B 振鈴,向用戶(hù)A 返回響應(yīng)消息“180 RINGING”,用戶(hù)A 播放回鈴音;
(3)用戶(hù)B 摘機(jī),并向用戶(hù)A 返回對(duì)“INVITE”請(qǐng)求的響應(yīng)消息“200 OK”,響應(yīng)消息的消息體中帶有用戶(hù)B 的媒體屬性描述;
(4)用戶(hù)A 發(fā)送針對(duì)響應(yīng)消息“200 OK”的ACK 確認(rèn)請(qǐng)求消息。此時(shí),用戶(hù)A 與B 會(huì)話(huà)建立,開(kāi)始進(jìn)行多媒體會(huì)話(huà);
(5)用戶(hù)B 掛機(jī),用戶(hù)B 向用戶(hù)A 發(fā)送Bye 請(qǐng)求消息;
(6)用戶(hù)A 返回對(duì)Bye 請(qǐng)求消息的“200 OK”響應(yīng)消息,通話(huà)結(jié)束。
在流媒體研究中,對(duì)音視頻文件的實(shí)時(shí)傳輸要求較低的時(shí)延和較小的丟包率。基于連接的TCP協(xié)議是一種可靠的傳輸層協(xié)議,但為保證可靠傳輸而設(shè)計(jì)的三次握手機(jī)制,擁塞控制技術(shù)和重發(fā)機(jī)制導(dǎo)致開(kāi)銷(xiāo)增大,時(shí)延增加,無(wú)法很好地支持穩(wěn)定速率的流媒體數(shù)據(jù)的平滑傳輸;而無(wú)連接的傳輸層協(xié)議UDP 沒(méi)有任何QoS 保證,無(wú)法保證數(shù)據(jù)的可靠傳送。為解決上述矛盾,實(shí)現(xiàn)流媒體數(shù)據(jù)在IP 上的實(shí)時(shí)可靠傳輸,需要在傳輸層和應(yīng)用層協(xié)議之間增加一個(gè)通信控制層,即RTP/RTCP[7]協(xié)議。RTP 可提供編碼數(shù)據(jù)的實(shí)時(shí)傳輸,RTCP 則向會(huì)話(huà)中的所有成員周期性地發(fā)送控制信息反饋數(shù)據(jù)傳送情況,以便對(duì)發(fā)送速率,服務(wù)質(zhì)量和擁塞進(jìn)行控制。其端到端傳輸流程描述如下:
音視頻信息經(jīng)編碼器處理后形成多媒體數(shù)據(jù)流,RTP 協(xié)議對(duì)多媒體數(shù)據(jù)進(jìn)行封裝后交由網(wǎng)絡(luò)傳輸。對(duì)端網(wǎng)絡(luò)傳輸模塊接收到多媒體數(shù)據(jù)后交由RTP 協(xié)議進(jìn)行解封處理,然后音視頻解碼模塊對(duì)數(shù)據(jù)進(jìn)行解碼,恢復(fù)原有音視頻信號(hào)。在對(duì)多媒體數(shù)據(jù)進(jìn)行封裝和解封時(shí),RTP 協(xié)議會(huì)根據(jù)數(shù)據(jù)包中所攜帶的載荷類(lèi)型、時(shí)間戳、幀邊界等包頭信息對(duì)音視頻信號(hào)進(jìn)行同步控制。
在多媒體數(shù)據(jù)傳輸過(guò)程中,RTP/RTCP 協(xié)議多運(yùn)行于UDP 協(xié)議之上。這是因?yàn)镽TCP 協(xié)議能實(shí)時(shí)進(jìn)行質(zhì)量和擁塞控制,無(wú)需下層的傳輸層協(xié)議進(jìn)行QoS 保證;同時(shí),UDP 協(xié)議的傳輸時(shí)延低于TCP協(xié)議,能保證多媒體數(shù)據(jù)流的流暢傳輸。當(dāng)然,當(dāng)存在對(duì)可靠性要求非常高的數(shù)據(jù)傳輸需求時(shí),也可將RTP/RTCP 協(xié)議運(yùn)行于TCP 協(xié)議之上,數(shù)據(jù)和控制信令的傳輸即適用于該類(lèi)情況。
圖4(a)表示了RTP/RTCP 與各種網(wǎng)絡(luò)協(xié)議的關(guān)系。
軍事應(yīng)用中,自組網(wǎng)系統(tǒng)的業(yè)務(wù)主要分為音視頻和數(shù)據(jù)兩部分。按照傳統(tǒng)的RTP 使用方法,音視頻一般采用UDP 傳輸,而數(shù)據(jù)和控制指令采用TCP傳輸。考慮到系統(tǒng)對(duì)時(shí)延要求較高,尤其是火控?cái)?shù)據(jù),而TCP 連接建立過(guò)程中需要三次握手,若采用該協(xié)議,將對(duì)時(shí)延指標(biāo)的實(shí)現(xiàn)帶來(lái)巨大壓力。因此,本系統(tǒng)所有通信業(yè)務(wù)的傳輸均采用UDP 協(xié)議。
由于音視頻數(shù)據(jù)對(duì)時(shí)延和抖動(dòng)要求較高,因此,必須使用RTP/RTCP 監(jiān)控?cái)?shù)據(jù)傳輸,保證傳輸質(zhì)量,因此,音視頻傳輸協(xié)議棧定義如圖4(b)所示
由于軍事應(yīng)用中的某些數(shù)據(jù)(比如火指控?cái)?shù)據(jù))對(duì)時(shí)延要求非常高,若使用SIP+RTP/RTCP 的方式進(jìn)行傳輸,則在真正的數(shù)據(jù)傳輸前,必須首先進(jìn)行四次SIP 握手,這將導(dǎo)致時(shí)延大幅增加。因此,建議數(shù)據(jù)傳輸時(shí),不使用SIP 進(jìn)行信令交互,同時(shí),數(shù)據(jù)面協(xié)議中不封裝RTP/RTCP 頭以減小數(shù)據(jù)量。數(shù)據(jù)傳輸協(xié)議棧修改如圖4(c)所示。

圖4 自組網(wǎng)用戶(hù)面協(xié)議棧圖示
本文分析了應(yīng)用層流媒體協(xié)議的特性,針對(duì)自組網(wǎng)的應(yīng)用需求,進(jìn)行了協(xié)議選型。由于自組網(wǎng)系統(tǒng)具有節(jié)點(diǎn)平等,移動(dòng)性強(qiáng)及無(wú)線(xiàn)傳輸質(zhì)量差的網(wǎng)絡(luò)特性,對(duì)所選擇的SIP 和RTP/RTCP 協(xié)議架構(gòu)及呼叫流程進(jìn)行了修改,使其適用于自組織網(wǎng)絡(luò),是一種可行的自組網(wǎng)流媒體協(xié)議。
[1]郝中偉,郝中娜.基于WEB 的呼叫中心[J].信息技術(shù),2002,(6):61-64.
[2]H.323 Standards.http://www.h323forum.org/standards/.
[3]J.Rosenberg,H.Schulzrinne,G.Camarillo.SIP:Session Initiation Protocol.RFC 3261,IETF,June,2002.
[4]林韜.基于SIP 的多媒體通信研究與實(shí)現(xiàn),[D].北京:北京郵電大學(xué),2009:2-18.
[5]崔學(xué)敏.視頻通信協(xié)議技術(shù)的分析研究與應(yīng)用[D].昆明:昆明理工大學(xué),2007:3-12.
[6]韓磊磊.基于P2P-SIP 的VoIP 關(guān)鍵技術(shù)研究[D].鄭州:解放軍信息工程大學(xué),2010:44-20.
[7]RFC3550,RTP:A Transport Protocol for Real-Time Applications.