轉(zhuǎn)載自:http://shenwy001.blog.163.com/blog/static/162586807201033091135982/
1, TCP為點對點的協(xié)議,這意味著各個客戶需要分開客戶機/服務(wù)器鏈接,因而無法在網(wǎng)絡(luò)級實現(xiàn)對多個客戶機的數(shù)據(jù)廣播。如果有一個數(shù)據(jù)流必須同時被傳送到多個客戶機,服務(wù)器必須傳送數(shù)據(jù)流的副本到各個客戶機,TCP能夠根據(jù)網(wǎng)絡(luò)帶寬和擁擠程度動態(tài)地調(diào)節(jié)傳送速度并重新發(fā)送丟失的數(shù)據(jù)包,這樣雖然保證了數(shù)據(jù)傳輸?shù)目煽啃?,但是對服?wù)器資源耗費較大,在數(shù)據(jù)流大的場合難以保證數(shù)據(jù)流傳輸?shù)膶崟r性。
2, UDP為不可靠傳輸協(xié)議,在發(fā)送端,UDP傳送數(shù)據(jù)的速度僅僅是受應(yīng)用程序生成數(shù)據(jù)的速度,計算機的能力和傳輸帶寬的限制;在接收端,uDP把每個消息段放在隊列中,應(yīng)用程序每次從隊列中讀一個消息段。
UDP協(xié)議不需要維護連接狀態(tài),也不認為每個數(shù)據(jù)包都必須到達接受端,因此網(wǎng)絡(luò)負荷比TCP小,傳輸速度也要比TCP快;但在網(wǎng)絡(luò)越擁擠時,越有更多的數(shù)據(jù)包丟失。
3, RTMP協(xié)議是一個專門為高效傳輸視頻,音頻和數(shù)據(jù)而設(shè)計的協(xié)議。它通過建立一個二進制TCP連接或者連接HTTP隧道實現(xiàn)實時的視頻和聲音傳輸。
共享對象是RTMP數(shù)據(jù)中一種比較重要的數(shù)據(jù)類型,任何客戶端改變數(shù)據(jù)時,共享對象能夠及時更新服務(wù)器端的數(shù)據(jù),這樣,每個客戶端都能夠及時了解到數(shù)據(jù)的變化。
RTMP比傳統(tǒng)媒介服務(wù)器流出的媒介協(xié)議支持更多。它支持可能包含聲音,影像和腳本數(shù)據(jù)從服務(wù)器到客戶和從客戶到服務(wù)器多條線路的動態(tài)傳輸。RTMP對聲音、影像和腳本數(shù)據(jù)分別處理。
聲音和視頻數(shù)據(jù)被分開地緩沖在服務(wù)器中。如果聲音數(shù)據(jù)在聲音緩沖器中達到某一極限,所有在緩沖器中的數(shù)據(jù)將被丟掉,并且最近到達的數(shù)據(jù)被允許開始收集在緩沖中并被送到各個客戶。視頻數(shù)據(jù)被以相似的方式處理,不同是當新的關(guān)鍵幀到達時,緩沖器中數(shù)據(jù)才被清除。在丟掉舊的幀數(shù)據(jù)時,如果發(fā)現(xiàn)客戶端的數(shù)據(jù)有誤,則將新舊兩個不同的幀進行擬合。
RTMP對數(shù)據(jù)給予不同的優(yōu)先級別。在實時交談中,聲音是最重要的,影像給予低優(yōu)先級,而腳本數(shù)據(jù)被給予的優(yōu)先權(quán)介于聲音和影像中間。
RTMP協(xié)議可以創(chuàng)建多個數(shù)據(jù)流,但是每個數(shù)據(jù)流只能有一個方向。
使用RTMP可以構(gòu)建這樣的一個系統(tǒng),客戶端可以同時與RTMP服務(wù)器和應(yīng)用服務(wù)器進行交互,使得服務(wù)端的負荷得以分散,雖然在這種改進的系統(tǒng)結(jié)構(gòu)中,RTMP服務(wù)器的性能要求比較高。
參考文獻:
[1]Giacomo Guilizzoni.Brian Lesser,Joey Lott,et a1.Pro.gramming.Flash.Communication.Server[EB/OL J.0’R·eiuy,2005.
[2]RTMP Specification License Copyright © 2003?2009 Adobe Systems Incorporated. All rights reserved.Published April 2009