多播介紹

1、高質量IP視頻直播特點 
隨着網絡技術的發展與普及,全程數字化、網絡化的視頻直播業務已開始應用,如目前在開展的IPTV業務、PC終端上的實時廣播業務、廣播式遠程會議業務等。這些業務由於實時性、視頻質量要求均較高,所以在IP網絡傳輸所佔用的帶寬也較高。 
2、組播技術在實現高質量視頻直播存在的問題 

  利用流媒體技術把實時節目(如現場直播的體育節目)傳送到用戶端,由用戶通過電腦或加上機頂盒的電視機收看是流媒體的重要應用。目前主要的網絡傳輸方式包括單播和組播。由於單播需要建立服務器和客戶端的點對點連接,對服務器及網絡資源的要求較高,所以在大量用戶同時收看同一實時節目的場合較適用組播技術。 
  (1)組播的可靠性不高 
  (2)設備對組播的支持不足 
  (3)組播的可控可管理能力較弱 
3、P2P技術在實現高質量IP視頻直播存在的問題 
  P2P技術具有低成本、高擴展性、高服務質量、高安全性等先天優勢,能夠解決基於C/S架構和CDN架構存在的不可擴展性、投資回報率低、熱點效應等問題。其成功部署應用將促進媒體服務的開展,有助於優化網絡流量,提高現有資源利用率,節省投資,帶來良好的經濟和社會效益。但以P2P實現高質量視頻直播承載也存在相當的劣勢,主要包括: 
  3.1 在ADSL環境下成本優勢不明顯   
  3.2 網絡流量流向難以控制 
  3.3 P2P與組播結合實現高帶寬IP視頻直播技術思路 
  通過前面章節分析可以發現,P2P與組播在承載高帶寬IP視頻直播方面各有優點,也均有不盡人意的地方。二者是否能結合在一起,利用各自的優點而克服其主要缺點?由於P2P是一種應用層的技術,而組播主要是網絡層的技術,我們設計了一個P2P環境下的組播傳輸系統,很好地解決了高帶寬IP視頻直播目前的問題。 
其主要邏輯組件包括: 
  (1)組播服務器。組播服務器負責發送組播流。組播服務器可以是一個分級的邏輯結構,用戶可通過多種方式從中心內容服務器取得內容,如直接與中心內容服務器建立組播路徑,或中心內容服務器通過單播傳送至邊緣內容服務器,用戶端到邊緣服務器建立組播路徑等,這由具體的網絡實現決定。 
  (2)管理服務器。管理服務器負責對整個系統的用戶進行管理。 
  (3)客戶端。客戶端提供內容的本地存儲,並與其餘客戶端建立P2P關係,爲對方提供節目。 
  客戶端接收P2P環境下的組播關鍵流程如下: 
  (1)客戶端1接收組播並緩存 
  客戶端1通過IGMP(Internet Group Management Protocol,互聯網組管理協議)請求加入組播組,緩存了一定時間的節目後再開始播放。 
  在客戶端有兩個緩存,一個緩存保存了接收到的數據包,稱爲原始緩存;另一個緩存把原始緩存的內容複製過來,並解包合成工作的內容,稱爲播放緩存。 
  原始緩存通過檢查UDP包的包號知道哪些數據包是否缺失,如果原始緩存發現了有丟包時,就會向羣內用戶發送請求重發。當原始緩存的包完整後,原始緩存把數據包複製到播放緩存,由播放緩存解包合成圖像內容。 
原始緩存及工作緩存的時間可根據網絡的狀況調整。緩存結構應與具體P2P應用軟件的分片方式相適應,緩存的大小應爲P2P應用軟件分片大小的整數倍。緩存的數據先不進行拆包的工作,保留UDP包的包號,播放時把緩存的內容複製到播放緩存再進行拆包合成。 
  (2)多個客戶端接收同一組播內容 
  客戶端2同樣加入這個組播組,其過程與客戶端1相同。以後加入的客戶端過程類似。 
  (3)管理服務器把客戶端組成羣 
  管理服務器把幾個客戶端歸成一個羣(數量可調,建議5個),在一個羣內的用戶建立點對點的關係。 
  羣指一組建立點對點關係的客戶端,建立羣的目的是爲了組播重傳,當羣中的一個用戶丟失某個數據包時,它將向羣內用戶發送請求重發,羣內用戶從自己的緩存中爲其提供相應數據。 
  考慮到組播丟包時可能是數據網的某個設備或節點出現問題,所以羣內用戶分佈應跨城域網,以避免城域網內某個設備或節點出現問題時影響用戶使用組播。 
  羣的建立由管理服務器統一調度。 
  (4)羣內組播重傳機制 
  當客戶端1發現緩存上的缺少了某個包時(通過包號檢查),它向羣內的所有用戶發送廣播包,詢問哪個用戶有這個包,如果羣內的某用戶有,它將向客戶端1發送這個包,客戶端把這個包放入緩存。如果有多個用戶發送了數據過來,客戶端1將忽略後到的包。重發機制的過程如下: 
  ①客戶端向羣內的所有用戶發送請求,請求別的用戶爲自己發送丟失的數據包,請求信息包括需要的數據的UDP包號; 
  ②羣內用戶接收到請求後,檢查自己的原始緩存,如果有該丟失數據包,則向請求用戶發送該丟失數據包,發送時把丟失的整個UDP數據包(包括UDP包頭)作爲重傳數據包的Payload(淨荷)進行傳送; 
  ③請求重發的客戶端接收到重傳的數據包後,把它放入原始緩存相應隊列; 
  ④請求重發的客戶端只使用首先收到的重發數據包,丟棄其餘數據。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章