摘 要
在移動(dòng)學(xué)習(xí)平臺(tái)中有大量的多媒體數(shù)據(jù)需要傳輸,本文在傳統(tǒng)AIMD算法的基礎(chǔ)上,提出了一種基于RTP/RTCP 協(xié)議的網(wǎng)絡(luò)帶寬自適應(yīng)傳輸算法。可以根據(jù)不同的網(wǎng)絡(luò)狀態(tài),動(dòng)態(tài)調(diào)整增加因子和減少因子的值來(lái)控制碼流率,從而有效的滿足實(shí)時(shí)數(shù)據(jù)的傳輸。
【關(guān)鍵詞】移動(dòng)學(xué)習(xí)平臺(tái) 實(shí)時(shí)流傳輸 RTP/RTCP 擁塞控制
當(dāng)前信息技術(shù)飛速發(fā)展,流媒體技術(shù)已廣泛引用在很多方面。而在基于Android系統(tǒng)的移動(dòng)學(xué)習(xí)平臺(tái)上有大量的多媒體學(xué)習(xí)視頻需要進(jìn)行傳輸,并且對(duì)數(shù)據(jù)的實(shí)時(shí)傳輸有著很高的要求。因此,怎么樣在有限的帶寬條件下,提高多媒體信息的傳輸質(zhì)量,成為了流媒體傳輸工作中的重點(diǎn)。
1 RTP/RTCP 協(xié)議
RTP(Real-time Transport Protocol)實(shí)時(shí)傳輸協(xié)議,是互聯(lián)網(wǎng)上用于多媒體數(shù)據(jù)流的一種傳輸協(xié)議。RTP協(xié)議詳細(xì)描述了在互聯(lián)網(wǎng)中傳遞的視頻和音頻的標(biāo)準(zhǔn)數(shù)據(jù)包格式,能用于單播和多播應(yīng)用中。RTP協(xié)議能提供時(shí)間信息和實(shí)現(xiàn)流同步,但RTP本身并沒(méi)有提供按時(shí)發(fā)送機(jī)制,也不提供流量控制和擁塞控制。這一部分的服務(wù)依靠RTCP來(lái)提供。
RTCP(Real-time Transport Control Protocol) 實(shí)時(shí)傳輸控制協(xié)議,能夠?yàn)镽TP提供流量控制和擁塞控制。當(dāng)啟動(dòng)一個(gè)RTP會(huì)話時(shí),將使用兩個(gè)端口:一個(gè)給RTP,另一個(gè)給RTCP使用。會(huì)話期間,RTCP采用和RTP相同的分發(fā)機(jī)制,所有成員周期性地發(fā)送RTCP信息包。應(yīng)用程序通過(guò)接收信息包,可以獲取參與會(huì)話成員的網(wǎng)絡(luò)狀態(tài)、丟包率等相關(guān)信息,從而動(dòng)態(tài)地改變傳輸速率和有效載荷類型。RTP協(xié)議和RTCP協(xié)議一起配合使用,能以有效的反饋信息和最小的開銷,得到傳輸效率最佳化。因此,特別適合互聯(lián)網(wǎng)上的數(shù)據(jù)的實(shí)時(shí)傳輸。
2 AIMD網(wǎng)絡(luò)擁塞控制算法
眾所周知互聯(lián)網(wǎng)有很多種接入方式,連接速率也各不相同。通信線路的質(zhì)量和網(wǎng)絡(luò)當(dāng)前的擁塞狀態(tài)都會(huì)使用戶使用時(shí)的連接速率發(fā)生變化。在移動(dòng)學(xué)習(xí)平臺(tái)上,為了能夠更好地傳輸視頻和圖像信息,就要求流媒體必須具備能夠適應(yīng)不同傳授速率下提供優(yōu)化圖像數(shù)據(jù)的能力,這樣才能滿足平臺(tái)使用者的需求。
常見(jiàn)的網(wǎng)絡(luò)傳輸一般采用傳統(tǒng)的AIMD算法對(duì)碼流進(jìn)行調(diào)整。AIMD算法是一種加性增長(zhǎng)、乘性減少的控制算法。當(dāng)網(wǎng)絡(luò)擁塞的時(shí)候,算法會(huì)通過(guò)使用一個(gè)乘法因子來(lái)降低碼流的發(fā)送速率,用以降低通道的利用率,從而達(dá)到緩解網(wǎng)絡(luò)擁塞的目的;當(dāng)擁塞解除后,再通過(guò)使用一個(gè)加法因子的方法來(lái)提高碼流的發(fā)送速率,從而提高了信道的利用率。設(shè)置S為降低碼流發(fā)送速率的乘法因子,T為提高碼流發(fā)送速率的加法因子;F(n)和F(n+1)分別表示n時(shí)隙和n+1時(shí)隙碼流的發(fā)送速率;K(n)表示時(shí)隙n內(nèi)的丟包率;h1和 h2分別表示丟包率的兩個(gè)臨界點(diǎn)值。因此AIMD算法可以用下面的公式表示:
根據(jù)AIMD算法,乘法因子S是用來(lái)降低碼流的發(fā)送速率,如果S設(shè)置過(guò)大,碼流發(fā)送速率就會(huì)下降太快,從而造成信道的利用率降低;但是S設(shè)置過(guò)小,網(wǎng)絡(luò)擁塞就得不到緩解。而加法因子T是用于在擁塞解除后提高碼流的發(fā)送速率,如果T設(shè)置過(guò)小,則碼流發(fā)送速率的增長(zhǎng)會(huì)太小,同樣也會(huì)造成網(wǎng)絡(luò)帶寬利用率的下降。
3 網(wǎng)絡(luò)帶寬自適應(yīng)傳輸算法
針對(duì)以上情況,在此提出一種基于RTP/RTCP協(xié)議的實(shí)時(shí)視頻流網(wǎng)絡(luò)帶寬自適應(yīng)傳輸算法。此算法是在AIMD算法的基礎(chǔ)上,根據(jù)網(wǎng)絡(luò)的不同狀態(tài)動(dòng)態(tài)確定乘法因子S和加法因子T的值。通過(guò)服務(wù)器和客戶端交互時(shí),實(shí)現(xiàn)測(cè)算,從而起到控制擁塞的目的。
設(shè)置F為上一次擁塞發(fā)生時(shí)的碼流發(fā)送速率;A用來(lái)判斷恢復(fù)的碼流率是否足夠接近F的閾值;P、Q為常數(shù),其中P的取值范圍是0
1。乘法因子S和加法因子T按照下面的情形進(jìn)行變化:
(1)當(dāng)RTP數(shù)據(jù)流第一次進(jìn)入網(wǎng)絡(luò),把乘法因子S設(shè)為常數(shù),則:
(2)當(dāng)發(fā)生網(wǎng)絡(luò)擁塞時(shí),按照公式1快速降低碼流發(fā)送速率。
(3)當(dāng)擁塞解除時(shí),當(dāng)前碼流率小于上一次擁塞發(fā)生時(shí)碼流發(fā)送速率的一半,并且足夠小時(shí),則要快速增長(zhǎng)碼流發(fā)送速率。即F(n) (4)當(dāng)擁塞解除時(shí),當(dāng)前碼流率大于上一次擁塞發(fā)生時(shí)碼流發(fā)送速率的一半,并且上一次擁塞發(fā)生時(shí)的碼流發(fā)送速率F與當(dāng)前碼流發(fā)送速率F(n)的差額大于恢復(fù)速率的閾值A(chǔ)時(shí),則表示當(dāng)前的碼流發(fā)送速率需要緩慢增長(zhǎng)。即F(n)>F/2,F(xiàn)(n)+P>F,F(xiàn)-F(n)>A,則: (5)當(dāng)擁塞解除時(shí),當(dāng)前碼流率大于上一次擁塞發(fā)生時(shí)碼流發(fā)送速率的一半,并且上一次擁塞發(fā)生時(shí)的碼流發(fā)送速率F與當(dāng)前碼流發(fā)送速率F(n)的差額小于恢復(fù)速率的閾值A(chǔ)時(shí),則表示當(dāng)前的碼流率已接近上一次擁塞時(shí)的速率,信道恢復(fù)正常。即F(n)>F/2,F(xiàn)(n)+P 該算法的基本思想是利用擁塞發(fā)生時(shí)的信息來(lái)控制碼流發(fā)送速率的增幅。乘法因子S和加法因子T的值在以上5種不同條件下,都在動(dòng)態(tài)變化的,從而實(shí)現(xiàn)了動(dòng)態(tài)調(diào)整碼流的發(fā)送速率。 4 結(jié)束語(yǔ) 本文針對(duì)移動(dòng)學(xué)習(xí)平臺(tái)中帶寬有限、多媒體數(shù)據(jù)量大、傳輸質(zhì)量要求高等問(wèn)題,提出了一種網(wǎng)絡(luò)帶寬自適應(yīng)傳輸算法。根據(jù)不同的網(wǎng)絡(luò)狀態(tài),動(dòng)態(tài)調(diào)整增加因子和減少因子的值以調(diào)整碼流的發(fā)送速率,從而提高了多媒體數(shù)據(jù)流在傳輸過(guò)程中的QoS,有效的滿足數(shù)據(jù)在線實(shí)時(shí)傳輸?shù)男枰?/p> 參考文獻(xiàn) [1]張麗娟,楊曉萍,陳虹,張振宇.基于自適應(yīng)參數(shù)設(shè)置的AIMD算法[J].吉林大學(xué)學(xué)報(bào)(信息科學(xué)版),2010(01). [2]郭靜.面向手機(jī)平臺(tái)流媒體傳輸關(guān)鍵技術(shù)研究[D].長(zhǎng)春:長(zhǎng)春理工大學(xué),2013. 作者簡(jiǎn)介 徐暢(1982-),女,湖南省長(zhǎng)沙市人?,F(xiàn)為湖南安全技術(shù)職業(yè)學(xué)院講師。主要研究方向?yàn)橛?jì)算機(jī)技術(shù)。 作者單位 湖南安全技術(shù)職業(yè)學(xué)院 湖南省長(zhǎng)沙市 410151