面向并發(fā)服務(wù)的流媒體訪問控制技術(shù)研究
實(shí)時(shí)數(shù)據(jù)傳輸對(duì)于視頻播放具有非常重要的意義,在各種網(wǎng)絡(luò)特性中時(shí)延參數(shù)占有相當(dāng)?shù)姆萘俊MǔUJ(rèn)為視頻這類應(yīng)用其時(shí)延要求小于20毫秒ms),抖動(dòng)限制在4毫左?lt;SUP>[1][3]。盡管提高網(wǎng)絡(luò)帶寬可以改善網(wǎng)絡(luò)的吞吐量、傳輸延時(shí)等性能,由于視頻數(shù)據(jù)的高容量和視頻信源的高比特率特性,對(duì)于客戶端的服務(wù)質(zhì)量要求來(lái)說(shuō)顯得微不足道。目前針對(duì)視頻服務(wù)質(zhì)量,從傳送層協(xié)議的使用、數(shù)據(jù)的壓縮/解壓、協(xié)同計(jì)算到單播/組播等多方面提出了許多措施??紤]到網(wǎng)絡(luò)傳輸狀況的多樣性,本文重點(diǎn)討論服務(wù)器端的數(shù)據(jù)傳送調(diào)度控制,和并發(fā)服務(wù)的關(guān)鍵技術(shù),盡可能地降低傳輸中的時(shí)延抖動(dòng)問題,提高并發(fā)服務(wù)質(zhì)量,文中最后給出了關(guān)鍵控制代碼和測(cè)試結(jié)果。
本文引用地址:http://cafeforensic.com/article/202298.htm1 信源數(shù)據(jù)的并發(fā)傳輸模型
并發(fā)連接對(duì)于網(wǎng)絡(luò)視頻應(yīng)用來(lái)說(shuō),有別于以往的WEB頁(yè)面式服務(wù)和FTP服務(wù),每個(gè)視頻數(shù)據(jù)流至少需要384kb/s的帶寬甚至更高。同時(shí)傳輸服務(wù)還需要具有一定的余量,防止并發(fā)客戶請(qǐng)求數(shù)達(dá)到峰值、或網(wǎng)絡(luò)短期過載現(xiàn)象。因此合適的服務(wù)模型、良好的服務(wù)策略是優(yōu)質(zhì)服務(wù)的保障。對(duì)即時(shí)的影像流壓縮與傳輸要求來(lái)說(shuō),在服務(wù)模型中還需要針對(duì)網(wǎng)絡(luò)系統(tǒng)的資源限制條件,即網(wǎng)絡(luò)帶寬采取適應(yīng)視頻傳輸?shù)牟呗?,以便處理突發(fā)性事件。
另一個(gè)需要考慮的限制是服務(wù)器提供的并發(fā)連接數(shù)量以及等候處理的發(fā)送調(diào)用。因?yàn)椴l(fā)連接數(shù)量越多,所消耗的未分頁(yè)內(nèi)存池也越多;等候處理的發(fā)送調(diào)用越多,被鎖定的內(nèi)存頁(yè)面也越多,極易超過系統(tǒng)資源的極限。
1.1 服務(wù)器的視頻傳輸服務(wù)特點(diǎn)
視頻傳輸需要較寬的網(wǎng)絡(luò)帶寬,其視頻的壓縮編碼、傳輸信道和網(wǎng)絡(luò)協(xié)議的選擇、IP組播技術(shù)對(duì)傳輸質(zhì)量具有重要的影響作用?;谟?jì)算機(jī)網(wǎng)絡(luò)連接的視頻點(diǎn)播系統(tǒng),其關(guān)鍵就在于多個(gè)站點(diǎn)視頻的網(wǎng)絡(luò)通信問題,要求做到傳輸時(shí)延盡可能小,盡可能少地占用現(xiàn)有的網(wǎng)絡(luò)帶寬,并具有較好的站點(diǎn)數(shù)量規(guī)模化特性。
視頻服務(wù)器對(duì)于用戶的請(qǐng)求,需要在較短的時(shí)間間隔內(nèi)響應(yīng)并傳送所要求的視頻數(shù)據(jù),同時(shí)隨時(shí)準(zhǔn)備響應(yīng)新的請(qǐng)求。因而視頻服務(wù)器的性能直接決定系統(tǒng)的總體性能,為了能同時(shí)響應(yīng)多個(gè)用戶的服務(wù)請(qǐng)求,視頻服務(wù)器需要調(diào)度服務(wù)。并具備接納控制、請(qǐng)求處理、數(shù)據(jù)檢索、按流傳送等多種功能,提供實(shí)時(shí)、連續(xù)穩(wěn)定的視頻流,以確保用戶請(qǐng)求獲得有效服務(wù)。再者,視頻服務(wù)器還需要提供交互服務(wù),如快進(jìn)和快倒等功能,因此視頻服務(wù)器必須滿足視頻流特性使用中的各種要求。
1.2 服務(wù)器的并發(fā)服務(wù)技術(shù)
通??蛻簦?wù)器間的通信過程首先是建立點(diǎn)到點(diǎn)的直接聯(lián)系方式,因此服務(wù)器的負(fù)載能力決定了視頻點(diǎn)播的并發(fā)容量。在客戶機(jī)/服務(wù)器傳輸方式中,在面向連接的通信模式下,服務(wù)器需要打開監(jiān)聽端口,監(jiān)聽網(wǎng)絡(luò)上其它客戶機(jī)向該服務(wù)器發(fā)出的連接請(qǐng)求,當(dāng)收到一個(gè)請(qǐng)求信號(hào)時(shí)與該客戶機(jī)建立一個(gè)連接,之后兩者進(jìn)行交互式的通信。這在客戶端請(qǐng)求較少,同時(shí)數(shù)據(jù)傳輸量不大的情況下傳輸延遲還可以忍受。
對(duì)于實(shí)時(shí)性要求較高的視頻應(yīng)用,一般采用無(wú)連接的通信模式。如MPEG-I按照1.5Mb/s傳輸在滿足觀看需要的情況下其幀數(shù)也要大于10幀以上。另外,當(dāng)多個(gè)用戶同時(shí)申請(qǐng)服務(wù)的時(shí)候,服務(wù)器建立連接分配資源等都需要產(chǎn)生延遲,也就是說(shuō)對(duì)于用戶的響應(yīng)經(jīng)過逐漸積累延遲會(huì)越來(lái)越大。如果請(qǐng)求池不足的話,那么就會(huì)產(chǎn)生客戶的請(qǐng)求丟失。因此,同一時(shí)刻只能處理一個(gè)客戶請(qǐng)求的循環(huán)服務(wù)器方式不適合視頻點(diǎn)播。
如果采用并發(fā)服務(wù)方式[2],在服務(wù)器端用主進(jìn)程去監(jiān)聽客戶機(jī)的連接請(qǐng)求,當(dāng)有客戶機(jī)的連接請(qǐng)求時(shí)通過創(chuàng)建線程的方式獨(dú)立處理客戶機(jī)通信,提高視頻傳輸?shù)膶?shí)時(shí)性。
視頻數(shù)據(jù)的并發(fā)傳輸,實(shí)質(zhì)依賴于服務(wù)器中的傳輸線程,服務(wù)器的操作以建立相應(yīng)的線程實(shí)現(xiàn)服務(wù)為目的,這種服務(wù)模式非常適合復(fù)雜的多任務(wù)請(qǐng)求。從計(jì)算機(jī)操作系統(tǒng)運(yùn)行的角度來(lái)說(shuō),在典型的單處理器主機(jī)上,任務(wù)實(shí)際上并不是同時(shí)執(zhí)行的。內(nèi)核中稱為調(diào)度程序的部分將工作換進(jìn)換出,從而讓所有工作都獲得一輪執(zhí)行。在同一個(gè)時(shí)間間隔內(nèi),并發(fā)模型常?;谑录木幊虒?shí)現(xiàn)。
通常情況下,線程數(shù)量取決于應(yīng)用程序的特定需要,理想情況下線程數(shù)量與處理器數(shù)量相當(dāng)為好,雖然線程數(shù)量無(wú)法保證傳輸質(zhì)量,但線程太少又會(huì)造成傳輸效率低,特別是用戶數(shù)量較多的情況下更為明顯。
從視頻應(yīng)用來(lái)說(shuō),影響視頻傳輸性能的根本原因在于視頻數(shù)據(jù)的連續(xù)傳送和用戶提交給服務(wù)器的請(qǐng)求無(wú)法及時(shí)響應(yīng),超過了網(wǎng)絡(luò)資源節(jié)點(diǎn)容量或服務(wù)器的處理能力。這樣就造成網(wǎng)絡(luò)系統(tǒng)的數(shù)據(jù)包時(shí)延增加、丟棄概率增大、上層應(yīng)用系統(tǒng)性能下降等。主要表現(xiàn)在以下幾方面:
⑴ 并發(fā)連接數(shù)決定系統(tǒng)內(nèi)存資源的消耗,并與CPU的處理能力密切相關(guān)。
⑵ 視頻服務(wù)要求服務(wù)器盡快地把數(shù)據(jù)通過網(wǎng)絡(luò)發(fā)送,盡量減少對(duì)連接請(qǐng)求的處理延遲,以免服務(wù)請(qǐng)求的重發(fā)和丟失。
⑶ 物理鏈路的實(shí)際承載能力也影響并發(fā)連接的處理能力。根據(jù)香農(nóng)信息理論,任何信道帶寬最大值即信道容量:
C=Blog2(1+S/N)(N為信道白噪聲的平均功率,S為信源節(jié)點(diǎn)的平均功率,B為信道帶寬)。所有信源節(jié)點(diǎn)發(fā)送的速率R必須小于或等于信道容量C。如果R>C,則在理論上無(wú)差錯(cuò)傳輸就是不可能的,所以服務(wù)器與網(wǎng)絡(luò)的聯(lián)結(jié)處會(huì)形成傳輸瓶頸。
⑷ 交換機(jī)或路由器的處理能力弱:如果路由器的CPU在執(zhí)行排隊(duì)緩存、更新路由表等功能時(shí),處理速度無(wú)法與高速鏈路匹配,就會(huì)造成服務(wù)失效。
隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大和用戶數(shù)的激增,數(shù)據(jù)流傳輸更趨于頻繁,線程數(shù)量不可能無(wú)限制增加。如果服務(wù)器和客戶之間沒有緩沖余地必然會(huì)出現(xiàn)丟棄數(shù)據(jù)包的情況。當(dāng)數(shù)據(jù)包丟棄時(shí),源節(jié)點(diǎn)端會(huì)超時(shí)、重傳該包。由于沒有得到確認(rèn),源節(jié)點(diǎn)端只能保留數(shù)據(jù)包,結(jié)果緩存會(huì)進(jìn)一步消耗。因此,采用合理的算法與機(jī)制,按需分配傳輸線程占用的網(wǎng)絡(luò)資源對(duì)于網(wǎng)絡(luò)傳輸至關(guān)重要。值得指出的是,帶寬保證是視頻實(shí)時(shí)傳輸?shù)幕A(chǔ),帶寬如果完全均分,每個(gè)站點(diǎn)都得到總帶寬的1/n(設(shè)存在n個(gè)站點(diǎn)),顯然不能適應(yīng)實(shí)際的帶寬需求;因此,有必要根據(jù)重要性、實(shí)時(shí)性分配帶寬使用的優(yōu)先級(jí),利用“流控技術(shù)”達(dá)到帶寬管理的有效性、確保并發(fā)任務(wù)的順利實(shí)施。
評(píng)論