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