周 鵬
(92124部隊,大連 116000)
隨著網(wǎng)絡(luò)的快速發(fā)展,視頻流的實時傳輸成為網(wǎng)絡(luò)環(huán)境中的重要應(yīng)用熱點之一,與之對應(yīng)的網(wǎng)絡(luò)環(huán)境傳輸體系框架,也必須隨之作出必要的調(diào)整。曾經(jīng)依賴TCP/IP協(xié)議機制的網(wǎng)絡(luò),在今天而言開始變得不再適用。如何構(gòu)建起適應(yīng)當(dāng)前流媒體傳輸?shù)木W(wǎng)絡(luò)環(huán)境,成為領(lǐng)域內(nèi)共同關(guān)注的一個重要問題。
對于當(dāng)前網(wǎng)絡(luò)環(huán)境而言,為了能夠?qū)崿F(xiàn)高清視頻流媒體的傳輸,多采用MPEG-4標(biāo)準(zhǔn)展開工作,該標(biāo)準(zhǔn)以其自身的高壓縮率、高質(zhì)量和低傳輸率所著稱,成為下一代流媒體傳輸?shù)氖走x格式和操作標(biāo)準(zhǔn)。在MPEG-4應(yīng)用的流媒體傳輸環(huán)境中,對于時延和丟包率都有比較高的要求,但是傳統(tǒng)的TCP/IP協(xié)議機制在這一方面無法做到令人滿意。TCP/IP協(xié)議采用了面向連接的重傳機制,其建立的時候需要通過三次握手流程才能正常展開工作,因此從連接建立開始,就已經(jīng)造成了比較大的時延問題發(fā)生。同時,在流媒體傳輸領(lǐng)域中,UDP 協(xié)議也不適用。雖然UDP協(xié)議的傳輸時延較小,但是在該框架之下,其并未對數(shù)據(jù)包進(jìn)行編號,因此差錯控制也就無從談起,數(shù)據(jù)傳輸過程中盡量交付的態(tài)度,以及UDP在擁塞控制上的工作嚴(yán)重不足,都成為其無法適應(yīng)流媒體傳輸環(huán)境。
在這樣的背景之下,實時傳輸協(xié)議(RTP,Real-time Transport Protocol)的應(yīng)用可謂是一種必然,這是一種專門為多媒體數(shù)據(jù)實現(xiàn)實時傳輸而設(shè)計的網(wǎng)絡(luò)協(xié)議,并且有對應(yīng)的配套實時傳輸控制協(xié)議(RTCP,Real-time Transport Control Protocol)來展開傳輸控制工作。RTP能夠提供一對一或者一對多的網(wǎng)絡(luò)傳輸服務(wù),同時可以提供時間戳來對流同步進(jìn)行控制,適用于當(dāng)前點播和組播實時流媒體數(shù)據(jù)的傳輸。RTP能夠工作在UDP環(huán)境之上,也可以工作在TCP或者ATM協(xié)議上,相對而言對于環(huán)境的要求比較寬松。RTP在工作的時候與RTCP形成互補,由前者實現(xiàn)數(shù)據(jù)的傳輸,而由后者來實現(xiàn)對于傳輸過程的控制。在傳輸會話的過程中,各會話參與端會定期發(fā)送RTCP數(shù)據(jù)包傳輸統(tǒng)計反饋信息,其中包括對發(fā)包、丟包以及時延等方面的信息,并且整個系統(tǒng)來依據(jù)這些信息,實現(xiàn)進(jìn)一步的控制,調(diào)節(jié)整個數(shù)據(jù)傳輸系統(tǒng)的發(fā)送速率等細(xì)節(jié)。
以RTP在UDP上建立連接展開工作的過程為例。RTP和RTCP需要使用各自獨立的數(shù)據(jù)端口,二者多選用相鄰端口展開工作。數(shù)據(jù)傳輸?shù)臅r候,對應(yīng)的流媒體數(shù)據(jù)首先采用RTP 協(xié)議進(jìn)行封裝,形成RTP數(shù)據(jù)包,而后發(fā)送到對應(yīng)的RTP端口,交給下一層協(xié)議處理,即UDP協(xié)議。關(guān)于數(shù)據(jù)包的對應(yīng)統(tǒng)計信息,則同時打包形成RTCP數(shù)據(jù)包,發(fā)送至對應(yīng)的RTCP端口,并且交由下一層數(shù)據(jù)傳輸協(xié)議進(jìn)行處理。在UDP層展開傳輸,將數(shù)據(jù)與控制信息的數(shù)據(jù)包送達(dá)目標(biāo)節(jié)點。對于RTP協(xié)議而言,其本身并不限制數(shù)據(jù)包的最大長度,因此傳輸過程中的負(fù)荷均由下層協(xié)議決定。
將RTP協(xié)議MPEG-4數(shù)據(jù)傳輸標(biāo)準(zhǔn)進(jìn)行融合使用,對于流媒體數(shù)據(jù)的傳輸有著積極的意義,但是想要實現(xiàn)這種融合,首先需要將MPEG-4視頻數(shù)據(jù)封裝成一個RTP數(shù)據(jù)包,而后才能經(jīng)由下層協(xié)議傳輸。相對于MPEG-1/2,MPEG-4不需要特殊的頭部字段,因此其典型的RTP數(shù)據(jù)格式參見圖1。

圖1 RTP協(xié)議下的MPEG-4數(shù)據(jù)包格式
在數(shù)據(jù)包的形成過程中,首先需要在數(shù)據(jù)內(nèi)容上加上時間、同步等相關(guān)控制信息。行業(yè)內(nèi)對于這一領(lǐng)域的研究眾多,包括以固定長度進(jìn)行數(shù)據(jù)封裝,或者將一個宏塊打包進(jìn)RTP數(shù)據(jù)包中,不同的打包方式,都有著不同的優(yōu)劣勢,成為該領(lǐng)域技術(shù)進(jìn)步的重要標(biāo)志。發(fā)展至今,通常的做法是考慮針對每一個VOP進(jìn)行編碼打包,同時限制其不能超過當(dāng)前網(wǎng)絡(luò)路徑的MTU(Maxium Transit Unit),這樣做既可以提升整體效率,又充分利用了MPEG-4標(biāo)準(zhǔn)的編碼特征。
在擁塞控制方面,數(shù)據(jù)接收端可以依據(jù)RTP數(shù)據(jù)包的接收情況,來生成RTCP接收報告RR,并且將RR定期發(fā)送至數(shù)據(jù)發(fā)送端,形成通告網(wǎng)絡(luò)環(huán)境的材料,便于數(shù)據(jù)發(fā)送端來依據(jù)對應(yīng)的控制算法展開對于輸出碼率的調(diào)節(jié),最終實現(xiàn)擁塞控制。
對于流媒體的傳輸,是一個網(wǎng)絡(luò)環(huán)境不斷適應(yīng)和改善的過程,只有保持對先進(jìn)技術(shù)的警惕,切實從實際發(fā)展瓶頸出發(fā),才能展開有針對性的改善,才能推動該領(lǐng)域的進(jìn)步。