国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
RTP協(xié)議

流(Streaming)是近年在Internet上出現(xiàn)的新概念,其定義非常廣泛,主要是指通過網(wǎng)絡(luò)傳輸多媒體數(shù)據(jù)的技術(shù)總稱。

流式傳輸分為兩種

  • 順序流式傳輸  (Progressive Streaming)
  • 實(shí)時(shí)流式傳輸  (Real time Streaming)

實(shí)時(shí)流式傳輸是實(shí)時(shí)傳送,特別適合現(xiàn)場事件?!皩?shí)時(shí)”是指在一個(gè)應(yīng)用中數(shù)據(jù)的交付必須與數(shù)據(jù)的產(chǎn)生保持精確的時(shí)間關(guān)系,這需要相應(yīng)的協(xié)議支持,這樣RTP和RTCP就相應(yīng)的出現(xiàn)了。

RTP全名:Real-time Transport Protocol(實(shí)時(shí)傳輸協(xié)議)。它是IETF提出的一個(gè)標(biāo)準(zhǔn),對(duì)應(yīng)的RFC文檔為RFC3550。

  • RFC3550定義了RTP,也定義了配套的實(shí)時(shí)傳輸控制協(xié)議RTCP(Real-time Transport Control Protocol)。
  • RTP用來為IP網(wǎng)上的語音、圖像、傳真等多種需要實(shí)時(shí)傳輸?shù)亩嗝襟w數(shù)據(jù)提供端到端的實(shí)時(shí)傳輸服務(wù)。
  • RTP為Internet上端到端的實(shí)時(shí)傳輸提供時(shí)間信息和流同步,但并不保證服務(wù)質(zhì)量,服務(wù)質(zhì)量由RTCP來提供。

詳細(xì)的協(xié)議參考:

鏈接:https://pan.baidu.com/s/10fMJI8AQFZAqvUChBpVD_g 
提取碼:rd1v 

 

RTP協(xié)議原理:較簡單,負(fù)責(zé)對(duì)流媒體數(shù)據(jù)進(jìn)行封包并實(shí)現(xiàn)媒體流的實(shí)時(shí)傳輸,即它按照RPT數(shù)據(jù)包格式來封裝流媒體數(shù)據(jù),并利用與它綁定的協(xié)議進(jìn)行數(shù)據(jù)包的傳輸。

RTCP原理:向會(huì)話中的所有成員周期性地發(fā)送控制包來實(shí)現(xiàn)的,應(yīng)用程序通過接收這些控制數(shù)據(jù)包,從中獲取會(huì)話參與者的相關(guān)資料,以及網(wǎng)絡(luò)狀況、分組丟失概率等反饋信息,從而能夠?qū)Ψ?wù)質(zhì)量進(jìn)行控制或者對(duì)網(wǎng)絡(luò)狀況進(jìn)行診斷。

RTP在端口號(hào)1025到65535之間選擇一個(gè)未使用的偶數(shù)UDP端口號(hào),而在同一次會(huì)話中的RTCP則使用下一個(gè)基數(shù)UDP端口號(hào)。

默認(rèn)端口號(hào):    RTP:5004    RTCP:5005

從下圖可看出RTP被劃分在傳輸層,它建立在UDP上。同UDP協(xié)議一樣,為了實(shí)現(xiàn)其實(shí)時(shí)傳輸功能,RTP也有固定的封裝形式。RTP用來為端到端的實(shí)時(shí)傳輸提供時(shí)間信息和流同步,但并不保證服務(wù)質(zhì)量。服務(wù)質(zhì)量由RTCP來提供。

2 RTP協(xié)議封裝

多媒體處理流程

從開發(fā)者的角度看,RTP 應(yīng)當(dāng)是應(yīng)用層的一部分。

RTP實(shí)現(xiàn)者在發(fā)送RTP數(shù)據(jù)時(shí),需先將數(shù)據(jù)封裝成RTP包,而在接收到RTP數(shù)據(jù)包,需要將數(shù)據(jù)從RTP包中提取出來。

下圖為RTP部格式:

*****************************************************

1)        V:RTP協(xié)議的版本號(hào),占2位,當(dāng)前協(xié)議版本號(hào)為2

2)        P:填充標(biāo)志,占1位,如果P=1,則在該報(bào)文的尾部填充一個(gè)或多個(gè)額外的八位組,它們不是有效載荷的一部分。

3)        X:擴(kuò)展標(biāo)志,占1位,如果X=1,則在RTP報(bào)頭后跟有一個(gè)擴(kuò)展報(bào)頭

4)        CC:CSRC計(jì)數(shù)器,占4位,指示CSRC 標(biāo)識(shí)符的個(gè)數(shù)(作用信源CSRC計(jì)數(shù)器)

5)        M: 標(biāo)記,占1位,不同的有效載荷有不同的含義,對(duì)于視頻,標(biāo)記一幀的結(jié)束;對(duì)于音頻,標(biāo)記會(huì)話的開始。(對(duì)于分組中的重要事件可用該位標(biāo)識(shí))

6)        PT: 有效荷載類型,占7位,用于說明RTP報(bào)文中有效載荷的類型,如GSM音頻、JPEM圖像等,在流媒體中大部分是用來區(qū)分音頻流和視頻流的,這樣便于客戶端進(jìn)行解析。

詳細(xì)參考:https://blog.csdn.net/qq_40732350/article/details/88374707

7)        序列號(hào):占16位,用于標(biāo)識(shí)發(fā)送者所發(fā)送的RTP報(bào)文的序列號(hào),每發(fā)送一個(gè)報(bào)文,序列號(hào)增1。這個(gè)字段當(dāng)下層的承載協(xié)議用UDP的時(shí)候,網(wǎng)絡(luò)狀況不好的時(shí)候可以用來檢查丟包。同時(shí)出現(xiàn)網(wǎng)絡(luò)抖動(dòng)的情況可以用來對(duì)數(shù)據(jù)進(jìn)行重新排序,序列號(hào)的初始值是隨機(jī)的,同時(shí)音頻包和視頻包的sequence是分別記數(shù)的。

8)        時(shí)戳(Timestamp):占32位,必須使用90 kHz 時(shí)鐘頻率。時(shí)戳反映了該RTP報(bào)文的第一個(gè)八位組的采樣時(shí)刻。接收者使用時(shí)戳來計(jì)算延遲和延遲抖動(dòng),并進(jìn)行同步控制。

9)        同步信源(SSRC)標(biāo)識(shí)符:占32位,用于標(biāo)識(shí)同步信源。該標(biāo)識(shí)符是隨機(jī)選擇的,參加同一視頻會(huì)議的兩個(gè)同步信源不能有相同的SSRC。

10)    特約信源(CSRC)標(biāo)識(shí)符:每個(gè)CSRC標(biāo)識(shí)符占32位,可以有0~15個(gè)。每個(gè)CSRC標(biāo)識(shí)了包含在該RTP報(bào)文有效載荷中的所有特約信源。

注:基本的RTP說明并不定義任何頭擴(kuò)展本身,如果遇到X=1,需要特殊處理

 

取一段碼流如下:

 

80 e0 00 1e 00 00 d2 f0 00 00 00 00 41 9b 6b 49 €?....??....A?kI

e1 0f 26 53 02 1a ff06 59 97 1d d2 2e 8c 50 01 ?.&S....Y?.?.?P.

cc 13 ec 52 77 4e e50e 7b fd 16 11 66 27 7c b4 ?.?RwN?.{?..f'|?

f6 e1 29 d5 d6 a4 ef3e 12 d8 fd 6c 97 51 e7 e9 ??)????>.??l?Q??

cfc7 5e c8 a9 51 f6 82 65 d6 48 5a 86 b0 e0 8c ??^??Q??e?HZ????

其中,

80               是V_P_X_CC

e0               是M_PT

00 1e          是SequenceNum

00 00 d2 f0 是Timestamp

00 00 00 00是SSRC

把前兩字節(jié)換成二進(jìn)制如下

1000 0000 1110 0000

按順序解釋如下:

10               是V;

0                 是P;

0                 是X;

0000           是CC;

1                 是M;

110 0000    是PT;

*****************************************************

有效載荷類型:7位,指出后面的RTP數(shù)據(jù)屬于何種格式的應(yīng)用。應(yīng)用層可根據(jù)次類型進(jìn)行處理。

音頻:μ律PCM(0),GMS(3)             A律PCM(8),G.722(9),G728(1)

視頻:活動(dòng)JPEG(26)、H.261(31)、                MPEG1(32)、MPEG2(33)、H.264(96)等

RTCP的主要功能

  • 提供數(shù)據(jù)傳輸質(zhì)量的反饋
  • 為每個(gè)RTP源傳輸一個(gè)固定的識(shí)別符CNAME
  • 知曉成員數(shù)目,控制包的發(fā)送速率
  • 傳輸最小連接控制信息,如參加者標(biāo)識(shí)

RTCP也是用UDP來傳送的,但RTCP封裝的僅僅是一些控制信息,因而分組很短,所以可以將多個(gè)RTCP分組封裝在一個(gè)UDP包中。RTCP有如下五種分組類型:

 

發(fā)送端報(bào)告分組SR(Sender Report)用來使發(fā)送端以多播方式向所有接收端報(bào)告發(fā)送情況。SR分組的主要內(nèi)容有:相應(yīng)的RTP流的SSRC,RTP流中最新產(chǎn)生的RTP分組的時(shí)間戳和NTP,RTP流包含的分組數(shù),RTP流包含的字節(jié)數(shù)。

3 RTP協(xié)議關(guān)鍵技術(shù)

  • 時(shí)間戳
  • 時(shí)延
  • 抖動(dòng)
  • 丟包率
  • 會(huì)話和流兩級(jí)分用

****************************************************************************************************

時(shí)間戳(1)

時(shí)間戳字段是RTP首部中說明數(shù)據(jù)包時(shí)間的同步信息,是數(shù)據(jù)能以正確的時(shí)間順序恢復(fù)的關(guān)鍵。

時(shí)間戳的值給出了分組中數(shù)據(jù)的第一個(gè)字節(jié)的采樣時(shí)間,要求發(fā)送方時(shí)間戳的時(shí)鐘是連續(xù)、單調(diào)增長的,即使在沒有數(shù)據(jù)輸入或發(fā)送數(shù)據(jù)時(shí)也是如此。

在靜默時(shí),發(fā)送方不必發(fā)送數(shù)據(jù),保持時(shí)間戳的增長,在接收端,由于接收到的數(shù)據(jù)分組的序號(hào)沒有丟失,就知道沒有發(fā)生數(shù)據(jù)丟失,而且只要比較前后分組的時(shí)間戳的差異,就可以確定輸出的時(shí)間間隔。

時(shí)間戳(2)

RTCP 中的 SR (Sender Report發(fā)送端報(bào)告)控制分組包含NTP(網(wǎng)絡(luò)時(shí)間)時(shí)間戳和RTP時(shí)間戳可用于同步音視頻媒體流。

RTP時(shí)間戳是依據(jù)鄰近的RTP數(shù)據(jù)包中的時(shí)間戳結(jié)合NTP時(shí)間差得到的。

公式表達(dá)為:RTP_tsi = tsi + NTPi - NTP'i

RTP_tsi表示RTCP中的RTP時(shí)間戳;tsi表示鄰近的RTP包中的時(shí)間戳;NTPi表示RTCP的網(wǎng)絡(luò)時(shí)間戳;NTP'i表示鄰近的RTP包對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)間戳;下標(biāo)表示第i個(gè)源。

時(shí)間戳(3)

因此,i和源j之間的相對(duì)時(shí)差可以表示為:

  1. RTP_tsi - RTP_tsj = ( tsi + NTPi - NTP'i ) - ( tsj + NTPj - NTP'j )
  2. (RTP_tsi – tsi)-( RTP_tsj - tsj) = (NTPi –NTP'i) - (NTPj—NTP'j)

由于NTP同步,差值可以反映出兩個(gè)源的相對(duì)時(shí)差。因?yàn)橐讲煌瑏碓吹拿襟w流,必須使得同步他們的絕對(duì)時(shí)間基準(zhǔn),而NTP時(shí)間戳正是這樣的絕對(duì)時(shí)間基準(zhǔn)。

應(yīng)用RTP時(shí)間戳來保證同一來源的媒體流同步。

****************************************************************************************************

時(shí)延

影響時(shí)延的因素有多個(gè)方面:

  • 編解碼
  • 網(wǎng)絡(luò)
  • 防抖動(dòng)緩沖
  • 報(bào)文隊(duì)列

其中有些是固定時(shí)延,如編解碼網(wǎng)絡(luò)速率等;有些是變化的,如防抖動(dòng)緩沖等,固定的時(shí)延可以通過改變編解碼方式和提高網(wǎng)絡(luò)速率來改變,而變化時(shí)延通常采用提高轉(zhuǎn)發(fā)效率來提高。

****************************************************************************************************

抖動(dòng)

到達(dá)時(shí)刻抖動(dòng)J的定義:一對(duì)包中接收機(jī)相對(duì)發(fā)射機(jī)的時(shí)間跨度差值的平均偏差。

該值等于兩個(gè)包相對(duì)傳輸時(shí)間的差值,相對(duì)傳輸時(shí)間是指包的RTP時(shí)間標(biāo)志和到達(dá)時(shí)刻接收機(jī)時(shí)鐘,以同一單位的差值.若Si是包i的RTP時(shí)間標(biāo)志,Ri是包i以RTP時(shí)間標(biāo)志單位的到達(dá)時(shí)刻值。對(duì)于兩個(gè)包i和j,D可以表達(dá)為

 D(i,j) = (Rj - Ri) - (Sj - Si) = (Rj - Sj) - (Ri - Si)

到達(dá)時(shí)刻抖動(dòng)可以在收到從源SSRC_n來的每個(gè)數(shù)據(jù)包i后連續(xù)計(jì)算,利用該包和前一包i-1的偏差D。

根據(jù)公式J(i) = J(i-1) + (|D(i-1,i)| - J(i-1))/16計(jì)算

****************************************************************************************************

丟包率

丟包率是通過計(jì)算接收包數(shù)量和發(fā)送包數(shù)量的比率得到。

流程    

發(fā)送方:每間隔一定時(shí)間讀取每個(gè)發(fā)送通道的發(fā)包數(shù)量和數(shù)據(jù)長度,組成一個(gè)此通道的RTCP報(bào)文發(fā)送給接收方,同時(shí)將發(fā)送數(shù)據(jù)包計(jì)數(shù)清零。    

接收方:收到RTCP包后,讀取接收通道接收到的包數(shù)量,并計(jì)算出丟包率,通過一個(gè)RTCP接收匯報(bào)包發(fā)送給發(fā)送方,同時(shí)對(duì)接收數(shù)據(jù)包計(jì)數(shù)清零。

****************************************************************************************************

會(huì)話和流兩級(jí)分化

一個(gè)RTP會(huì)話包括傳給某個(gè)指定目的地對(duì)的所有通信量,發(fā)送方可能包括多個(gè)。而從同一個(gè)同步源發(fā)出的RTP分組序列稱為流(Stream),一個(gè)RTP會(huì)話可能包含多個(gè)RTP流。

一個(gè)RTP分組在服務(wù)器端發(fā)送出去的時(shí)候總是要指定屬于哪個(gè)會(huì)話和流,在接收時(shí)也需要進(jìn)行兩級(jí)分用,即會(huì)話分用和流分用。

只有當(dāng)RTP使用同步源標(biāo)識(shí)和分組類型把同一個(gè)流中的分組組合起來,才能夠使用序列號(hào)和時(shí)間戳對(duì)分組進(jìn)行排序和正確回放。

 

RTP協(xié)議運(yùn)用

RTP協(xié)議應(yīng)用方案——單播

在客戶端與媒體服務(wù)器之間建立一個(gè)單獨(dú)的數(shù)據(jù)通道,從一臺(tái)服務(wù)器送出的每個(gè)數(shù)據(jù)包只能傳送給一個(gè)客戶端,這種傳送方式稱為單播。

  • 優(yōu)點(diǎn):便于控制和管理  
  • 缺點(diǎn):每個(gè)用戶必須分別對(duì)媒體服務(wù)器發(fā)送單 獨(dú)的查詢,而媒體服務(wù)器必須向每個(gè)用戶發(fā)送所申請(qǐng)的數(shù)據(jù)包拷貝。這種巨大冗余造成服務(wù)器負(fù)擔(dān)沉重,響應(yīng)需要很長時(shí)間

RTP協(xié)議應(yīng)用方案——廣播

 廣播指的是用戶被動(dòng)地接收流。

在廣播過程中,數(shù)據(jù)包的單獨(dú)一個(gè)拷貝將發(fā)送給網(wǎng)絡(luò)上的所有用戶,客戶端接收流,但不能控制流; 廣播方式中資料包的單獨(dú)一個(gè)拷貝將發(fā)送給網(wǎng)絡(luò)上的所有用戶, 而不管用戶是否需要,會(huì)非常浪費(fèi)網(wǎng)絡(luò)帶寬。    

  • 優(yōu)點(diǎn):簡單    
  • 缺點(diǎn):浪費(fèi)網(wǎng)絡(luò)帶寬

組播技術(shù)構(gòu)建的網(wǎng)絡(luò),允許路由器一次將數(shù)據(jù)包復(fù)制到多個(gè)通道上。采用組播方式,媒體服務(wù)器只需要發(fā)送一個(gè)信息包,所有發(fā)出請(qǐng)求的客戶端即可同時(shí)收到連續(xù)數(shù)據(jù)流而無延時(shí)。

組播吸收了單播和廣播兩種發(fā)送方式的長處,     克服了上述兩種發(fā)送方式的弱點(diǎn)。

  • 優(yōu)點(diǎn):減少網(wǎng)絡(luò)上傳輸?shù)男畔目偭?;網(wǎng)絡(luò)利用效率大大提高,成本大為下降。  
  • 缺點(diǎn):當(dāng)不同的用戶同時(shí)點(diǎn)播同一個(gè)節(jié)目時(shí),由于點(diǎn)播總有先后順序,后點(diǎn)播的用戶依照網(wǎng)絡(luò)中同時(shí)點(diǎn)播此節(jié)目的其它用戶的播放進(jìn)度,這就造成當(dāng)前用戶極有可能從節(jié)目的中間開始看起,很難做到個(gè)性化。

RTP協(xié)議安全

RTP提供的安全性包括保密性、認(rèn)證與完整性、密鑰管理。

保密性

客戶端都支持缺省的加密算法 ,RTCP包頭隨機(jī)附加前綴加以迷惑,CBC模式具有隨機(jī)接入功能,實(shí)現(xiàn)加密的同時(shí)還能保證丟失的包不 被他自己或下一個(gè)包解密。

認(rèn)證與完整性

RTP標(biāo)準(zhǔn)協(xié)議對(duì)任何認(rèn)證過程都不加特別說明,除非在密鑰已知時(shí)采用內(nèi)部認(rèn)證。僅在通過其他方法認(rèn)證RTP流媒體時(shí),命令行認(rèn)證機(jī)制才啟動(dòng)工作。

密鑰管理

由SIP,SAP和SDP協(xié)議完成,這些協(xié)議有強(qiáng)大的認(rèn)證功能和密鑰管理功能。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
RTP協(xié)議分析
RTMP/RTP/RTSP/RTCP的區(qū)別
rtp協(xié)議詳解
實(shí)時(shí)傳輸協(xié)議rtp--孤身我路!
數(shù)字視頻網(wǎng)絡(luò)傳輸層協(xié)議的選擇
基于RTP/RTCP流媒體服務(wù)器技術(shù)研究
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服