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