2011-06-07 16:30:58微笑的魚

P2P網絡應用層多播樹的建立及維護

  應用層多播樹的建立和維護是P2P網絡拓撲結構建立的關鍵。在PZP流媒體中,首要問題是將服務器和參與服務的節點組織成應用層多播 (Application-Layer Multicast,ALM)樹。多播樹的建立算法將直接決定流媒體直播系統的連接效率。因此,有必要深人研究應用層多播樹的建立和維護算法。
  對面向Internet流媒體技術,最簡單的解決辦法是為每個申請者建立一條發送視頻流的鏈接。但太耗費帶寬,又不能支持大量觀眾實時收看,申請者接收到的將是低質量視頻組播相對而言是一種好的解決方法,但Internet中多數ISP不支持IP組播,造成其發展受限。應用層組播克服了IP組播的缺陷:無需更改網絡協議和網絡設備的配置,在客戶機間復制和轉發數據,數據報沿邏輯鏈路轉發,數據路由、復制、轉發功能均由客戶機完成,客戶機間建立一個疊加在IP網絡上、實現組播業務邏輯功能性網絡,要實現這樣的功能,就必須建立對應的應用層多播樹。現階段,已經有一些學者開始進行應用層多播樹的建立的研究,并取得了一定的成果。
  本文首先介紹P2F網絡中應用層多播技術研究的相關工作,然后在比較現有多播樹建立方案的基礎上,設計出適用于P2P流媒體直播系統的應用層多播樹建立和維護方案,并分析了其性能。
  1、相關工作應用層多播的研究,作為覆蓋網絡研究的一個方向,是國際上剛剛興起的研究熱點。很多大學和研究院都在進行這方面的研究。從2000年6月,卡耐基梅隆大學的 Y.H Chu在ACMSIGMETRICS上發表了一普羅出售氣密窗,鋁門窗,採光罩,隔音窗篇端系統多播的論文開始,標志著應用層多播開始進人了熱點研究。2001年Ratnasamy在 ACMSIGCOMM上發表了基于Peer-to-Peer網絡的應用層多播論文CAN Multicaste S.Q.Zhang也在NOSSDAV上發表了基于Peer-to-Peer網絡的應用層多播的論文Bayeuxo 2002年,SumanBanerjee在ACM SIGCOMM上發表了基于 NICE應用層多播的論文。在這些論文中,研究學者都提出了自己的應用層多播實現思路,對應用層多播路由協議中多播樹計算算法進行了研究。這些應用層多播方案具有不同的特點,適用的范圍也不相同。其中對于Peer-to-Peer覆蓋網絡上的應用層多播研究還處于探索階段。
  目前在Peer-to-Peer網絡上實現的應用層多播方案主要有三種;CAN Multicast,Scribe}Bayeux。它們都是在基于動態哈希路由的Peer-to-Pee:網絡上實現的,其中CAN Multicast是在CAN之上實現的,Scribe是在Pastry上實現的,Bayeux是在Tapestry上實現的。這幾種方案都充分利用了Peer-to-Pee:網絡的路由機制,因此只需增加少量的模塊就可以實現多播功能。與原先的Peer-to-Peer網絡相比,只增加少量的開銷就實現了多播功能,同時繼承了Peer-to-Peer網絡的支持大規模、支持成員動態變化的特性。可用于分布式仿真、多方實時游戲、大規模協作應用等,但這三種方案對于應用層多播的模型、性能分析、性能優化都沒有進行研究。
  2、應用層多播樹方案分析2.1單樹結構的ALM方案單樹結構的ALM方案包含小規模的多源ALM方案和大規模的單源組ALM方案。小規模的多源ALM方案多應用于視頻會議。將用戶節點組成一個應用層 mesh,周期性檢查mesh中的連接質量,mesh上以數據源為根,根據帶寬、時延各自構造生成樹。可以針對每個源單獨優化,每個成員維護一個組成員列表,可靠性高,但開銷大,擴展性差。
  大規模的單源組ALM方案中,最具代表性的就是NICE,Zigzag BALM樹構建方案。兩者的思路都是”分層”(Hierarchi-c全晟倉儲倉儲設備 雅豐微晶瓷al),”分群”(Cluster),成員只和少量固定數目的節點聯系。NICE(如圖1)的維護管理具有分布性和自治性,節點的維護負載較輕,且節點的退出只影響局部節點,不影響根節點。缺點是層次越高的節點負載越重,如最高層的節點的度數達到(logN),當系統規模很大時,這會成為系統的瓶頸。
  Zigzag(如圖2所示)與NICE相似,兩者在每個節點的平均維護負載都為。閃,樹的高度都為0(logN)。但Zigzag解決了NICE存在的瓶頸問題。其改進點為:Zigzag中Clusfe:的管理和數據分發由不同節點完成,而NICE將兩功能統一在一個節點上。改進后,多播樹中節點所帶子節點數目最多為 0(k2),與參與多播樹的節點數目無關。、3.2節點離開和失效恢復算法由于網絡的動態特性,每個節點都處在不穩定的狀態,隨時有可能退出P2P網絡。在節點的退出方式上,可以分為正常退出和非正常退出。無論節點是哪種方式退出,都會影響到P2P網絡直播。因此,我們需要在節點退出后進行節點失效恢復。在本系統中,每個節點除了保存父節點和子節點的信息,同時還保存自己的備用父節點的信息,當父節點離開時可以便捷的用備用父節點代替父節點。對于正常的退出,節點離開恢復算法如下:
  1)節點向服務器發送退出消息,同時,節點還向所有的直接子節點發送退出消息。
  2)子節點在接收到該退出消息后,立刻搜索其資源信息表,獲取備用父節點的IP地址及端口號,嘗試與其建立連接。
  3)若備用父節點仍然存在于網絡中,并可提供服務,則用備用父節點替代父節點繼續提供媒體數據服務,并向服務器石敢當石材餐桌 小三通提供發送消息,申請新的備用父節點。
  4)若備用父節點已經離開網絡或由于直接子節點數達到上限等原因不可提供服務,則向服務器發送重新連接請求,由服務器按照新節點加人算法提供新的父節點和備用父節點信息,重新加人到P2P網絡中。