趙翊凡 張競艷
摘 要:文章通過研究RTP/RTCP協(xié)議,闡述了為了提高在E-learning系統(tǒng)中實(shí)時(shí)音視頻數(shù)據(jù)的傳輸率、播放質(zhì)量,對(duì)其協(xié)議進(jìn)行優(yōu)化設(shè)計(jì)的思路和方法。實(shí)踐證明,進(jìn)行優(yōu)化處理后,效果明顯,實(shí)現(xiàn)了預(yù)期目標(biāo)。
關(guān)鍵詞:RTP;RTCP;簡化;報(bào)文格式
E-Learning學(xué)習(xí)模式已經(jīng)成為了現(xiàn)代教育、教學(xué)的重要形式?,F(xiàn)在,許多教育培訓(xùn)機(jī)構(gòu)、職業(yè)認(rèn)證機(jī)構(gòu)等都在使用E-learning相關(guān)產(chǎn)品。在E-Learning系統(tǒng)中主要的功能涉及到教師的教學(xué)音視頻、電子教案等資料,學(xué)生的提問、作業(yè)等信息的傳輸,要保證實(shí)現(xiàn)和真實(shí)教學(xué)一樣好的教學(xué)效果,音視頻等數(shù)據(jù)量比較大的多媒體數(shù)據(jù)傳輸就要保證流暢、清晰,這就涉及到最關(guān)鍵的問題實(shí)時(shí)傳輸。在我們開發(fā)的E-learning系統(tǒng)中主要是利用RTP/RTCP協(xié)議來解決實(shí)時(shí)數(shù)據(jù)傳輸?shù)膯栴},同時(shí)我們對(duì)RTP/RTCP協(xié)議進(jìn)行了優(yōu)化處理。
1 RTP/RTCP協(xié)議介紹
實(shí)時(shí)傳輸協(xié)議RTP(Real-time Transport Protocol):它能夠?qū)崿F(xiàn)單播、組播、多播等任一網(wǎng)絡(luò)環(huán)境中的流媒體數(shù)據(jù)實(shí)時(shí)傳輸,專門提供端到端的實(shí)時(shí)數(shù)據(jù)傳輸服務(wù),主要用于E-Learning、VoIP等實(shí)時(shí)多媒體應(yīng)用領(lǐng)域。
實(shí)時(shí)傳輸控制協(xié)議RTCP(Real-time Transport Control Protocol):它用來控制RTP傳輸質(zhì)量。它所提供的控制信息不同RTCP報(bào)文也不同的。
RTP只負(fù)責(zé)傳輸,不保證數(shù)據(jù)傳輸質(zhì)量,而RTCP則周期性地向發(fā)送方提供數(shù)據(jù)傳輸質(zhì)量的反饋信息,根據(jù)傳輸情況動(dòng)態(tài)調(diào)整發(fā)送方發(fā)送數(shù)據(jù)的參數(shù)以提高傳輸質(zhì)量。RTP和RTCP兩者相互配合完成實(shí)時(shí)數(shù)據(jù)的傳輸,這種工作方式能以有效的反饋和最小的開銷使傳輸效率達(dá)到最佳狀態(tài),因而特別適合傳送在線的實(shí)時(shí)數(shù)據(jù)。
2 RTP/RTCP協(xié)議優(yōu)化的必要性
盡管RTP/RTCP協(xié)議對(duì)實(shí)時(shí)數(shù)據(jù)傳輸很適合,但是利用現(xiàn)有的標(biāo)準(zhǔn)RTP/RTCP協(xié)議來實(shí)視其功能并不是最優(yōu)的。在網(wǎng)絡(luò)協(xié)議中,報(bào)文頭部決定了協(xié)議要傳輸?shù)膬?nèi)容和實(shí)現(xiàn)的功能。通過研究RTP/RTCP頭看出它們的報(bào)文頭部有一部分字節(jié)在整個(gè)傳輸期間保持不變,這正是降低數(shù)據(jù)傳輸率的主要原因。所以為了保證系統(tǒng)中實(shí)時(shí)數(shù)據(jù)傳輸率和傳輸質(zhì)量,我們對(duì)RTP/RTCP協(xié)議進(jìn)行了優(yōu)化處理。
3 RTP/RTCP協(xié)議優(yōu)化處理
3.1優(yōu)化RTP報(bào)文格式
具體定義如下:
因?yàn)闃?biāo)準(zhǔn)RTP報(bào)文中在數(shù)據(jù)傳輸過程中CC、X和P三個(gè)字段保持不變,所以去掉這三個(gè)字段;因?yàn)閰f(xié)議中RTP報(bào)文中規(guī)定了在實(shí)時(shí)數(shù)據(jù)流封裝過程中DATA數(shù)據(jù)幀的最大長度,封裝時(shí)如果遇到了音視頻數(shù)據(jù)幀,并且其長度超出規(guī)定的DATA域容量,就要對(duì)數(shù)據(jù)幀進(jìn)行分片處理,所以在RTP報(bào)文中添加一個(gè)長度為6bit的TOTAL字段,用該字段存儲(chǔ)該數(shù)據(jù)幀的分片數(shù)目;重新將SSRC字段定義為為16bit;增加了一個(gè)16bit的START字段,用于存儲(chǔ)對(duì)數(shù)據(jù)幀進(jìn)行分片后的第一個(gè)分片的SEQENCE值,在數(shù)據(jù)幀的傳輸過程中SEQUENCE和TOTAL字段一起配合使用,以方便對(duì)RTP報(bào)文進(jìn)行分組容錯(cuò)處理;時(shí)間戳TIMESTAMP字段保留。
3.2 優(yōu)化RTCP報(bào)文格式
RTCP報(bào)文負(fù)責(zé)提供通信雙方的反饋信息,RTCP協(xié)議有三種不同類型的應(yīng)用報(bào)文。我們優(yōu)化以后的RTCP報(bào)文有相同的首部,其中RTCP包含的P和RC兩個(gè)字段合并做保留字段使用。
3.2.1 發(fā)送方報(bào)文格式
因?yàn)閼?yīng)用協(xié)議不用同步處理發(fā)送方向接收方提供的數(shù)據(jù)流,因而發(fā)送方報(bào)文中包含的時(shí)間信息的字段就失去意義,所以去掉。
發(fā)送方要對(duì)實(shí)際發(fā)送的RTP分組數(shù)量進(jìn)行統(tǒng)計(jì),接收方要根據(jù)該統(tǒng)計(jì)結(jié)果和它實(shí)際接收的分組數(shù)量進(jìn)行比較,以便根據(jù)接收情況及時(shí)了解當(dāng)前網(wǎng)絡(luò)傳輸狀態(tài),然后進(jìn)行必要的處理。所以發(fā)送方報(bào)文中最后一個(gè)字段定義為表示統(tǒng)計(jì)發(fā)送方發(fā)送數(shù)據(jù)包的數(shù)量。
3.2.2 接收方報(bào)文格式
接收方要依據(jù)RTP分組數(shù)據(jù)的丟失情況來判斷網(wǎng)絡(luò)擁塞狀態(tài),所以我們把接收方報(bào)文中最后一個(gè)字段定義為表示RTP分組丟失率,同時(shí)去掉標(biāo)準(zhǔn)協(xié)議中有關(guān)延遲、抖動(dòng)等信息的字段。
3.2.3 應(yīng)用報(bào)文格式
應(yīng)用報(bào)文主要負(fù)責(zé)傳遞通信雙方在應(yīng)用程序中所生成的信息。簡化該類報(bào)文主要是實(shí)現(xiàn)兩個(gè)功能。首先,該報(bào)文中要包含自身需緊急處理的信息,比如當(dāng)接收方發(fā)現(xiàn)數(shù)據(jù)幀在傳輸過程中發(fā)生分片丟失,那么接收方會(huì)立即生成該類報(bào)文向發(fā)送方報(bào)告數(shù)據(jù)幀丟失情況。其次,接收方應(yīng)用程序也通過該類報(bào)文對(duì)發(fā)送方數(shù)據(jù)源提供亮度、對(duì)比度等控制信息。應(yīng)用程序自定義報(bào)文格式如表4所示。
以上優(yōu)化RTP/RTCP協(xié)議后,我們對(duì)其報(bào)文進(jìn)行了分組封裝、容錯(cuò)處理,經(jīng)過對(duì)E-learning系統(tǒng)進(jìn)行運(yùn)行、測(cè)試,事實(shí)證明,RTP/RTCP協(xié)議優(yōu)化處理后,實(shí)時(shí)音視頻的數(shù)據(jù)傳輸率大大提高了,方便了教師和學(xué)生更好地利用此系統(tǒng)進(jìn)行更有效地互動(dòng)交流。通過這一次的嘗試也真正體會(huì)到RTP/RTCP協(xié)議在E-learning這種協(xié)作學(xué)習(xí)系統(tǒng)中傳輸實(shí)時(shí)多媒體數(shù)據(jù)的優(yōu)勢(shì)。
參考文獻(xiàn)
[1]李烏江.RTP在遠(yuǎn)程視頻傳輸中的應(yīng)用研究[D].哈爾濱:哈爾濱工程大學(xué),2009.
[2]岑慧.RTP協(xié)議在3G多媒體移動(dòng)通信中的應(yīng)用研究[D].浙江:浙江工業(yè)大學(xué),2010.