- 論壇徽章:
- 0
|
摘 要
隨著實(shí)時流媒體基礎(chǔ)的進(jìn)一步發(fā)展,普遍使用的TCP和UDP協(xié)議都不能很好的滿足更高性能流媒體信息的傳輸。文章對SCTP、TCP和UDP協(xié)議的性能進(jìn)
行了比較分析,證明了SCTP作為一個通用的、面向連接的、可靠的傳輸層協(xié)議,能夠更好的滿足流媒體數(shù)據(jù)差別傳輸要求,特別是其選擇性有序和多宿性使得流
媒體傳輸性能有明顯改善。
關(guān)鍵詞 SCTP 流媒體 傳輸性能
如今,各種寬帶業(yè)務(wù)隨著網(wǎng)絡(luò)技術(shù)的發(fā)展如雨后春筍般涌現(xiàn)出來,網(wǎng)絡(luò)視頻的實(shí)時傳輸成為網(wǎng)絡(luò)應(yīng)用的熱點(diǎn)之一。特
別是P2P技術(shù)的應(yīng)用和發(fā)展,壓縮后的流媒體信息對于網(wǎng)絡(luò)傳輸層提出了更高的傳輸性能要求。傳統(tǒng)的兩大傳輸層協(xié)議TCP和UDP已經(jīng)不能很好的支持流媒體
的傳輸。SCTP作為一個通用的、面向連接的、可靠的傳輸層協(xié)議,能夠更好的滿足流媒體數(shù)據(jù)差別傳輸要求。特別是其選擇性有序和多宿性使得流媒體傳輸性能
有明顯改善。
1 流媒體壓縮
流媒體(StreamingMedia)即在Internet/Intranet上按時間先后次序傳輸和播
放的連續(xù)音/視頻媒體。流式媒體數(shù)據(jù)流具有三個特點(diǎn):連續(xù)性、實(shí)時性和時序性,其數(shù)據(jù)流具有嚴(yán)格的前后時序關(guān)系。因?yàn)榱魇矫襟w在播放前并不下載整個文件,
只將開始部分內(nèi)容存入內(nèi)存,數(shù)據(jù)流隨時傳送隨時播放,只是在開始播放時有幾秒或十幾秒的啟動延時。采用的壓縮技術(shù)必須使實(shí)時傳輸媒體的傳輸信息量在大大減
少的前提下能不影響在線媒體觀看的效果,所以對壓縮技術(shù)有了很高的要求。同樣的,壓縮技術(shù)使實(shí)時流媒體應(yīng)用成為可能的同時也對媒體信息的傳輸提出了要求。
要了解SCTP與TCP和UDP的性能差異,首先就要簡單了解流媒體壓縮的原理,F(xiàn)在實(shí)時播放系統(tǒng)中主流的
視頻壓縮技術(shù)都用到了幀間壓縮的流壓縮技術(shù),所謂幀間壓縮的流壓縮技術(shù)即通過降低連續(xù)幀之間的相關(guān)性,減少流傳輸?shù)臄?shù)據(jù)量。普遍幀間壓縮的處理方式是把幾
幀圖像取為一組(GOP),通過定義幀,預(yù)測幀實(shí)現(xiàn)數(shù)據(jù)的傳輸。
定義幀:將每組內(nèi)的圖像定義為三種類型,I幀P幀B幀。
預(yù)測幀:將I幀作為基幀,以I幀預(yù)測P幀,以I幀和P幀預(yù)測B幀。
數(shù)據(jù)傳輸:將I幀和預(yù)測的差值信息進(jìn)行存儲和傳輸。
I幀是全幀壓縮編碼幀,在解碼時僅用I幀的數(shù)據(jù)就可以重建圖像,是GOP的基礎(chǔ)幀,一個GOP只有一個I幀,
一個I幀所占的信息量比較的大。P幀是采用運(yùn)動補(bǔ)償?shù)姆椒▊鬏斔c前面I幀或是P幀的差值及運(yùn)動矢量(預(yù)測誤差),如圖1只有通過I幀中的預(yù)測值和預(yù)測誤
差求和之后才能構(gòu)建P幀。B幀是通過前面I幀或是P幀和后面的P幀來進(jìn)行重建。
所以在傳輸?shù)倪^程,對這三類的不同幀數(shù)據(jù)因該采用不同可靠性質(zhì)的傳輸方式。I幀直接關(guān)系到是否整個GOP幀
的恢復(fù),所以I幀不能丟,由于流媒體播放的有序性導(dǎo)致I幀信息的傳輸必須是有序的。因?yàn)镮幀只對本GOP中的幀信息的解碼提供恢復(fù)信息,如果在GOP幀組
在被解壓的時候沒有收到當(dāng)前GOP的I幀,這個GOP就只能成為了無效的信息,直接影響了媒體播放的連續(xù)性,所以必須保證I幀傳輸?shù)目煽啃。相反對于P幀
和B幀的傳輸就沒有像I幀那樣注重可靠性,當(dāng)然我們可以從解碼方式中看到P幀在傳輸?shù)倪^程中其可靠性要高于B幀。同時,對P幀和B幀沒有嚴(yán)格的時序性要
求,只要在GOP被提交的之前P幀和B幀到達(dá)了接收端,就能被解壓成為有效信息。直觀的看出他們之間的重要關(guān)系I≥P≥B。
2 不同傳輸協(xié)議性能傳輸方案比較
當(dāng)大概解了流媒體的壓縮技術(shù)后,我們可以發(fā)現(xiàn)普遍應(yīng)用現(xiàn)在通信網(wǎng)絡(luò)的兩大傳輸層協(xié)議TCP和UDP都不能很
好的支持被壓縮后的流媒體信息的傳輸。例如傳輸一組圖像,如果通過TCP協(xié)議傳輸,從TCP協(xié)議傳輸方式中我們發(fā)現(xiàn),它只能提供有序可靠性傳輸網(wǎng)絡(luò),所以
它必定不可能區(qū)分這一組圖像中的I幀在傳輸中的重要優(yōu)先級高于B幀和P幀,從而維護(hù)了許多本不需要可靠有序的媒體信息。同樣的如果通過UDP傳送,雖然能
夠?qū)Σ糠置襟w信息,如B幀,P幀,提供高效的傳輸機(jī)制,但是不能保證I幀這類流媒體控制信息的有序,可靠的傳輸,這樣帶來的結(jié)果也將是不可挽回的。
2.1 基于TCP/UDP傳輸過程
因此對于流媒體在傳輸層協(xié)議上的選擇,適用的傳輸機(jī)制就是TCP和UDP的互補(bǔ),控制信息通過TCP進(jìn)行傳送,數(shù)據(jù)信息通過UDP進(jìn)行傳送;蚴窃趹(yīng)用層通過RTP,RTCP等協(xié)議規(guī)范,然后由UDP負(fù)責(zé)流媒體信息再補(bǔ)傳輸層的傳輸。
如
圖1,傳統(tǒng)的基于UDP/TCP的流媒體傳輸機(jī)制,由于TCP/UDP傳輸協(xié)議對流媒體實(shí)時播放的支持不足。需要通過大量其他協(xié)議的合作部署才能支持實(shí)時
流媒體的點(diǎn)播和播放。但是通過整合多個輔助傳輸協(xié)議的流媒體傳輸方案需要通過大量控制信息的交互作為實(shí)現(xiàn)的代價。特別是在媒體信息傳輸這個傳輸機(jī)制中,調(diào)
用RTP進(jìn)行流媒體數(shù)據(jù)傳輸中的時間同步和流同步的實(shí)現(xiàn)。但是RTP由于并不能提供流量控制和擁塞控制的操作,使得必須還要通過RTCP協(xié)議進(jìn)行對數(shù)據(jù)傳
輸?shù)谋O(jiān)控。而為了維護(hù)RTCP對流量控制和擁塞控制的功能,則要通過周期性的發(fā)送RTCP數(shù)據(jù)包,進(jìn)行對RTP流媒體數(shù)據(jù)包的發(fā)送數(shù)量,丟包數(shù)量等網(wǎng)絡(luò)傳
輸性能信息的統(tǒng)計(jì)。這樣的傳輸機(jī)制使得網(wǎng)路中真正傳輸?shù)膶?shí)時流媒體信息率降低,并可能導(dǎo)致網(wǎng)絡(luò)傳輸性能的統(tǒng)計(jì)信息包和流媒體數(shù)據(jù)信息包對有限網(wǎng)絡(luò)帶寬在發(fā)
生擁塞情況時產(chǎn)生競爭,加劇網(wǎng)絡(luò)的擁塞。同時由于在傳輸層是通過基于不可靠傳輸?shù)腢DP協(xié)議機(jī)制,使得對流媒體信息中要求可靠有序的信息需要通過傳輸播放
控制信號的RTSP/TCP傳輸通道。
2.2 基于SCTP傳輸過程
對于SCTP來說流媒體在傳輸層得到了直接全面的傳輸支持。由于其支持分流和選擇性有序傳輸?shù)奶匦裕芎玫慕Y(jié)
合了TCP和UDP在流媒體傳輸上的各自優(yōu)勢,而且在SCTP獨(dú)有的選擇性的可靠傳輸功能,使得流媒體的控制信息和不同的數(shù)據(jù)信息可以在不同的SCTP流
中按不同的可靠性級別進(jìn)行傳輸。 如圖2,通過引入具有強(qiáng)大流媒體傳輸支持功能的SCTP傳輸協(xié)議,將大大的簡化實(shí)時流媒體的播放機(jī)制,減少了基于TCP/UDP實(shí)時流媒體播放機(jī)制中的大量并非流媒體信息數(shù)據(jù)的傳輸消耗。
通過將HTTP移植到基于SCTP的傳輸協(xié)議上,使得對于瀏覽器和網(wǎng)站服務(wù)器之間建立的SCTP會話支持多流的性質(zhì)。這樣為客戶請求在線點(diǎn)播的連接消息單獨(dú)分配一個流傳輸通道,提高服務(wù)器的響應(yīng)效率。
在RTSP/TCP的傳輸機(jī)制通道中媒體服務(wù)端和客戶端就只需要維護(hù)建立流媒體數(shù)據(jù)傳輸前的初始化控制信息(如對媒體接收端的接收端口號和地址,媒體解碼
類型,RTSP會話標(biāo)志號等)和用戶在線觀看時的播放控制信息(如暫停,前進(jìn),到退等)。同時,通過控制信息之間是否相關(guān)的判斷,可以為不相關(guān)的控制信息
提供不同的通訊流通道,減輕head-of-line blocking的影響。
在流媒體數(shù)據(jù)傳輸?shù)耐ǖ郎现恍枰玫絣ight weight
RTP和SCTP協(xié)作的機(jī)制,就能夠完成實(shí)時流媒體的高效傳輸,而且通過減少了RTCP協(xié)議中為了進(jìn)行流控制和擁塞檢測而維護(hù)的大量網(wǎng)絡(luò)傳輸性能上的包發(fā)
送信息,為流媒體的傳輸讓出了傳輸?shù)膸。同時,由于SCTP提供多流的傳輸機(jī)制,使得不同的流媒體數(shù)據(jù)信息可以在不同的數(shù)據(jù)流通道里面進(jìn)行傳輸,實(shí)現(xiàn)了
部分原來RTP進(jìn)行維護(hù)的異類媒體信息(如視頻信號和音頻信號)分流傳輸?shù)墓δ,在一定程度上簡化了RTP協(xié)議的實(shí)現(xiàn)。而且,由于改進(jìn)后的SCTP能夠支
持選擇性的可靠傳輸,使得不同可靠度的媒體信息能夠被區(qū)分發(fā)送,提高了流媒體數(shù)據(jù)在接收端的還原能力。
3 SCTP流媒體傳輸性能優(yōu)勢
從上面的傳輸過程比較不難看出,與TCP/UDP相比較有著比較明顯的優(yōu)勢。具體如下:
3.1 SCTP與TCP比較傳輸性能優(yōu)勢
雖然SCTP和TCP都是可靠的傳輸層協(xié)議,但是在支持流媒體的傳輸上面,SCTP的協(xié)議特性遠(yuǎn)遠(yuǎn)優(yōu)于
TCP。TCP在支持流媒體傳輸上出現(xiàn)的不足,主要是其因?yàn)閿?shù)據(jù)包的發(fā)送有嚴(yán)格的順序控制。因此,對那些需要在一個連接中同時支持多個邏輯上獨(dú)立的不同可
靠級別的信息流傳送的流媒體傳輸?shù)膽?yīng)用上,SCTP就特別有用,使實(shí)時流媒體得到更高效,更安全,更穩(wěn)定的在線播放的效果。具體表現(xiàn)在:
● SCTP的四次握手
通過SCTP的四次握手流媒體的傳輸將比TCP更快的啟動。減少了在線用戶的等待時間。雖然SCTP
比TCP在會話建立的過程中多了一次確認(rèn)的過程,但是在第一次交互過后,SCTP的確認(rèn)包就可以負(fù)載有效媒體信息,這樣比TCP更早開始終端之間的媒體信
息的傳輸。使用戶在線接收媒體的響應(yīng)時間縮小。
通過SCTP四次握手中的cookie機(jī)制,使得提供實(shí)時流媒體的服務(wù)器變的更加的可靠。基于TCP的服務(wù)器容易受到盲目SYN攻擊,耗盡了服務(wù)器的資源而不能為真正的用戶提供媒體播放的功能。
● 無序多通道的可靠傳輸
通過SCTP無序的可靠傳輸使實(shí)時流媒體的播放連續(xù)性加強(qiáng)。我們知道TCP的可靠性是通過安序的每個包的反饋
建立起來的,這種有序可靠機(jī)制遇到網(wǎng)絡(luò)擁塞的時候,大大影響了實(shí)時流媒體的穩(wěn)定性。同時流媒體也并不需要這樣的高強(qiáng)度的可靠性傳輸,在一定范圍類的丟包而
導(dǎo)致的失真現(xiàn)相是很難被媒體的觀看者察覺到。同時通過STCP支持多傳輸流傳輸?shù)墓δ。使音頻信號和視頻信號得到分開傳輸,減少了聲音和圖像同時失真的幾
率。
● 選擇性的反饋(SACK)
選擇性的反饋為流媒體信息的傳輸讓出了更多的帶寬。由于SCTP并不是像TCP每個ACK消息中只能指明最早的丟失包的情況,更一次能將所有丟包和重傳包信息的SCTP的ACK數(shù)據(jù)相比,后者更加的優(yōu)化,明顯減少了反饋包的個數(shù)和反饋信息所占的帶寬。
通過選擇性反饋,使得在發(fā)送端能夠更詳盡地知道當(dāng)前發(fā)送包的情況,及時的釋放已經(jīng)發(fā)送成功的數(shù)據(jù)包,為后續(xù)的發(fā)送數(shù)據(jù)騰出緩存空間,有效避免了無意義的重發(fā)和提高了丟包重發(fā)效率。
● 支持多宿性終端
支持多宿終端,使得流媒體的發(fā)送者和接收者建立的會話更加的穩(wěn)固。即使時出現(xiàn)主傳輸?shù)刂凡坏竭_(dá)的網(wǎng)絡(luò)問題,也可以通過啟用備用的傳輸?shù)刂愤M(jìn)行修復(fù)。提高了流媒體傳輸?shù)姆(wěn)定性。
3.2 SCTP與UDP比較性能優(yōu)勢
現(xiàn)在主流的流媒體的傳輸方案是RTP(Real-time transport protocol
)/UDP。由于RTP只能保證數(shù)據(jù)的實(shí)時傳輸,只是在包頭加上了一些支持實(shí)時性的信息,如(序列號,時間戳等)并不能為順序傳輸?shù)臄?shù)據(jù)包提供可靠的傳輸
機(jī)制。在RTP和UDP的搭檔基礎(chǔ)上還要用到RTCP(Real-time transport control
protocol)提供可靠的傳輸機(jī)制,以及流量和擁塞的監(jiān)控。
而如果我們用SCTP來替代UDP,則只需要RTP和SCTP兩個機(jī)制就可以很好的支持流媒體的傳輸。因?yàn)?br />
SCTP具有無序可靠傳輸?shù)墓δ,可以使達(dá)到的接收端的數(shù)據(jù)包不用等待前面的數(shù)據(jù)包就可以直接提交到應(yīng)用層,提高了數(shù)據(jù)的傳輸效率。特別PRSCTP中對
不同流設(shè)定不同的可靠性級別,極大的提高了SCTP的傳輸效率的改進(jìn),完全可以取代UDP在流媒體傳輸上的地位。同時由于SCTP是支持單一會話多流通訊
的維護(hù),這樣使得同步接收多個RTP流成為一件非常容易的事情,只需要使得每個RTP流對應(yīng)到每個SCTP數(shù)據(jù)流就可以了。
在RTP/SCTP的流媒體傳輸方案中,不僅控制信號和媒體信息,音頻信號和視頻信號得到了分流的處理,并且可以對每個SCTP流通道上信息的可靠程度進(jìn)行設(shè)定。簡化了傳輸機(jī)制的同時,提高了傳輸?shù)男。同時由于SCTP的多宿性,為實(shí)時流媒體的傳播提供了更高的穩(wěn)定性。
3.3 SCTP無序可靠傳輸服務(wù)
在SCTP的協(xié)議制定中加入了無序可靠的傳輸機(jī)制。這個功能在流媒體傳輸?shù)闹С种袑⒌骄薮蟮淖饔。有無序可靠傳輸在傳輸層的支持,甚至不需要在PRSCTP中加入的選擇性可靠傳輸?shù)墓δ芏伎梢詾榱髅襟w提供高效傳輸性能。
通過多數(shù)據(jù)流實(shí)現(xiàn)會話的可靠無序的傳輸方式,當(dāng)大量的流通道被開通傳輸數(shù)據(jù)之后,很好的打斷信息之間的連續(xù)性
要求,使得被收到的數(shù)據(jù)包立即就被遞交到應(yīng)用層的效率得到提高。這樣我們就可以把判斷是否將收到的數(shù)據(jù)丟失的權(quán)利從傳輸層移交給應(yīng)用層的解碼器通過其當(dāng)前
的解碼效率和解碼緩存器內(nèi)存有的需解碼的數(shù)據(jù)進(jìn)行判斷是否某些數(shù)據(jù)包的延遲已經(jīng)導(dǎo)致其失去了解碼的效用。這樣就保證了,在網(wǎng)絡(luò)傳輸擁塞情況不是很嚴(yán)重的時
候,同時在接收端的解碼緩存區(qū)較大的情況下,數(shù)據(jù)的利用率將是最優(yōu)化的。通過這個丟包機(jī)制作出的丟包判斷反映了用戶播放的實(shí)時性能要求。因?yàn)橹挥薪獯a緩沖
區(qū)和當(dāng)前解碼效率做出的丟包決定才直接決定哪些沒有到達(dá)接收終端的媒體數(shù)據(jù)失去播放的效率。同時這個機(jī)制在一定程度上緩解了網(wǎng)絡(luò)的傳輸壓力,由于解壓緩存
區(qū)為數(shù)據(jù)在網(wǎng)絡(luò)擁塞比較嚴(yán)重的時候贏得較多的傳輸時間,同時在網(wǎng)絡(luò)傳輸性能較優(yōu)的時候,通過緩存機(jī)制預(yù)存儲了解碼數(shù)據(jù)信息。
4 小結(jié)
SCTP是為傳輸信令業(yè)務(wù)流而開發(fā)的一個新的傳輸層協(xié)議。它為網(wǎng)絡(luò)數(shù)據(jù)的傳輸提供了一種選擇性可靠的傳輸途徑。通過選擇性反饋,多流通道,無序遞交和多宿
性等協(xié)議上的優(yōu)化,使其在流媒體的傳輸上業(yè)務(wù)上體現(xiàn)出優(yōu)異的性能。通過本文簡單比較看出在流媒體控制信息傳輸方面它優(yōu)于UDP,因?yàn)樗梢蕴峁︰DP所沒
有的可靠性傳輸優(yōu)勢。在流媒體數(shù)據(jù)信息傳輸上面它優(yōu)于TCP,因?yàn)樗目煽啃钥梢缘玫竭x擇,彌補(bǔ)TCP安序重發(fā)機(jī)制在流媒體傳輸應(yīng)用中的缺陷。同時通過其
支持多宿性的發(fā)送機(jī)制,使得媒體信息的傳輸變的更為可靠。相信在不久的將來SCTP得到更大的運(yùn)用,取代TCP成為新一帶的易于可靠性傳輸?shù)膫鬏攲訁f(xié)議,
并取代基于TCP/UDP傳輸協(xié)議的流媒體傳輸方案,為流媒體的傳輸業(yè)務(wù)提供一個穩(wěn)定,高效的傳輸層支持,促進(jìn)實(shí)時流媒體的發(fā)展和應(yīng)用,同時流媒體傳輸業(yè)
務(wù)也將會因?yàn)镾CTP協(xié)議機(jī)制上的支持而得到更好的應(yīng)用和發(fā)展。
參考文獻(xiàn)
[1] R.Stewart,QB,Xie,Stream Control Transmission Protocol,A Reference
Guide
[2] T. Friedman et al. RTP: Control Protocol Extended report [S]. RFC
3611 2003
[3] H.Schulzrinne,et al,RTP Profile for Audio and Video Conferences
with Minimal Control RFC 1890.January 1996
[4] 趙進(jìn),葉梧等,RTP/RTCP流媒體服務(wù)器技術(shù)研究,中國有線電視,2004.01:6-9
[5] 沈承東,譚慶平; MPEG4 的數(shù)字視頻監(jiān)控系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn),計(jì)算機(jī)工程,2002.08
[6] 詹峰,基于PR-SCTP的視頻流媒體傳輸,華北工學(xué)院學(xué)報,2004.05
[7] 劉浩棟,基于 RTP/RTCP 協(xié)議的 IP 視頻系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn),計(jì)算機(jī)應(yīng)用研究,2002.10
[8] 安建偉,基于UML的軟件系統(tǒng)建模研究,碩士論文,2002.04
[9] 張?jiān)? 史浩山, 分布式智能視頻監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn),計(jì)算機(jī)應(yīng)用研究, 1999. 11:98-101
[10] 計(jì)文平, 郭寶龍, 數(shù)字視頻壓縮編碼的國際標(biāo)準(zhǔn),計(jì)算機(jī)應(yīng)用研究, 2003.04:1-5
本文來自ChinaUnix博客,如果查看原文請點(diǎn):http://blog.chinaunix.net/u1/34831/showart_2182611.html |
|