資源描述:
《RTCP 丟包抖動時延計算原理.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、RTP/RTCP丟包/抖動/時延計算原理1.RTP/RTCP的基本功能介紹l實時傳輸協(xié)議RTP(ATransportProtocolforReal-TimeApplication)提供實時的端對端傳輸業(yè)務(如交互的語音和圖象),包括負載類型標識,序列號,時間戳,傳輸監(jiān)視。l實時傳輸協(xié)議(RTP)本身并不提供任何機制保證實時傳輸或業(yè)務質(zhì)量保證,而是讓底層協(xié)議去實現(xiàn)。lRTP包括兩個緊密相關(guān)的部分:l實時傳輸協(xié)議(RTP-RealTimeTransportProtocol),傳輸有實時特性的信息;lRTP控制協(xié)議(RTCP-RTPControlProtocol),監(jiān)視業(yè)務質(zhì)量和傳輸對話中
2、成員的信息。lRTP/RTCP報文封裝格式為:DL+IP+UDP+RTP/RTCP2.RTP報文統(tǒng)計方法介紹RTP報文發(fā)送統(tǒng)計:lNTP時間標志:64比特,指示了此報告發(fā)送時的壁鐘(wallclock)時刻,它可以與從其它接收者返回的接收報告塊中的時間標志結(jié)合起來,測量到這些接收者的環(huán)路時延。lRTP時間標志:32比特,與以上的NTP時間標志對應同一時刻,但是與數(shù)據(jù)包中的RTP時間標志具有相同的單位和偏移量。l發(fā)送包數(shù):32比特,從開始傳輸?shù)酱薙R包產(chǎn)生時該發(fā)送者發(fā)送的RTP數(shù)據(jù)包總數(shù)。若發(fā)送者改變SSRC識別符,該計數(shù)器重設(shè)。l發(fā)送字節(jié)數(shù):32比特,從開始傳輸?shù)酱薙R包產(chǎn)生時該發(fā)送
3、者在RTP數(shù)據(jù)包發(fā)送的字節(jié)總數(shù)(不包括頭和填充)。若發(fā)送者改變SSRC識別符,該計數(shù)器重設(shè)。RTP報文接收統(tǒng)計:l丟包率:8比特,自從前一SR包或RR包發(fā)送以來,從SSRC_n傳來的RTP數(shù)據(jù)包的損失比例,以固定點小數(shù)的形式表示,小數(shù)點在此域的左側(cè),等于將丟包率乘256后取整數(shù)部分。該值定義為損失包數(shù)被期望接收的包數(shù)除。(對應RTCP消息中的丟包率時,除以256再乘以100即可,如為127,則丟包率為50%。)l累計包損:24比特,從開始接收到現(xiàn)在,從源SSRC_n發(fā)到本源的RTP數(shù)據(jù)包的丟包總數(shù)。該值定義為期望接收的包數(shù)減去實際接收的包數(shù)。l擴展的最高接收序列號:32比特,低16比
4、特包含從源SSRC_n來的最高接收序列號,高16比特用相應的序列號周期計數(shù)器擴展該序列號。l到達間隔抖動:32比特,RTP數(shù)據(jù)包到達時刻統(tǒng)計方差的估計值,以時間標志為單位測量,用無符號整數(shù)表達。到達間隔抖動J定義為一對包中接收者相對發(fā)射者的時間跨度差值的平均偏差。計算方法:若Si是包i的RTP時間標志,Ri是包i以RTP時間標志單位的到達時刻值,對于兩個包i和j,D可以表達為D(i,j)=(Rj-Rj)-(Ri-Si);到達間隔抖動可以在收到從源SSRC_n來的每個數(shù)據(jù)包i后連續(xù)計算,利用該包和前一包i-1的偏差D(按到達順序,而非序號順序),根據(jù)公式J=J+(
5、D(i-1,i)
6、-
7、J)/16計算。循環(huán)計算,生成報告塊時,取當時值。(具體可參考后面的詳細描述)l環(huán)路時延:上一個SR時間標志(LSR):32比特,接收到的來自源SSRC_n的最新RTCP發(fā)送者報告(SR)的64位NTP時間標志的中間32位。若還沒有接收到SR,該域值為零。上一個SR以來的延時(DLSR):32比特,是從收到來自SSRC_n的SR包到發(fā)送此接收報告塊之間的延時,以1/65536秒為單位。若還未收到來自SSRC_n的SR包,該域值為零。環(huán)路時延計算方法:假設(shè)SSRC_r為發(fā)出此接收報告塊的接收者。源SSRC_n可以通過記錄收到此接收報告塊的時刻A來計算到SSRC_r的環(huán)路傳輸時延??梢岳?/p>
8、用最新的SR時間標志(LSR)域計算整個環(huán)路時間A-LSR,然后減去此DLSR域得到環(huán)路傳播時延。(具體可參考后面的詳細描述)l1.丟包率計算的實現(xiàn)2.環(huán)路時延計算的實現(xiàn)3.間隔抖動計算的實現(xiàn)承載軟件根據(jù)協(xié)議計算間隔抖動;上層控制軟件直接使用此值進行打包和告警。備注:RTCP一共有如下5個告警:接收報文丟報率告警發(fā)送報文丟報率告警接收報文間隔抖動告警發(fā)送報文間隔告警接收報文時延告警對于同一個IP地址,告警恢復之前,只上報一種告警;發(fā)送報文相關(guān)的告警是本端計算的,接收報文相關(guān)的告警是對端計算,通過RTCP報文傳送過來的。上報告警的原則如下:計算出的丟包率/時延/抖動如果連續(xù)4個周期大于
9、MML(SETRTCP)設(shè)置的對應告警上限,且同一個IP地址沒有上報RTCP相關(guān)的告警,則上報該告警。如果計算出的相關(guān)值小于MML設(shè)置的告警下限,則恢復告警。參考協(xié)議:RFC1889