【正文】
得到了相應(yīng)地提高。節(jié)點 i在網(wǎng)絡(luò)中本地上傳的帶寬,決定了節(jié)點能夠服務(wù)的節(jié)點總數(shù),上行帶寬除以請求帶寬,所得商即可連接的子節(jié)點數(shù)。 多播樹生成算法設(shè)計 當(dāng)一個語音服務(wù)器新開放時,只有一個服務(wù)器作為多人語音多播樹的根,若有 N個用戶請求收聽,那么構(gòu)建初始的多播樹有兩種方法:一種是一次綜合考慮前 N個節(jié)點的加入請求,根據(jù)這 N個節(jié)點的特性構(gòu)建一顆高性能高效率的多播樹,然后再依到達(dá)順序一個一個地處理后來節(jié)點的加入和樹中節(jié)點的離開;第二種是采取貪心算法,即邊加入邊生成,把當(dāng)前請求加入的節(jié)點按序組織成隊列,一個一個地加入到多播樹中,每一次加入都選擇 在當(dāng)前看來是最好的 位置 。 (2)對處于 NAT 后的節(jié) 點的特殊處理 NAT即“網(wǎng)絡(luò)地址轉(zhuǎn)換”,是一種把內(nèi)部私有網(wǎng)絡(luò) IP地址映射成公網(wǎng) IP地址的技術(shù),它允許一個機構(gòu)以一個公用 IP地址出現(xiàn)在 Inter上。若 F節(jié)點有 NAT子節(jié)點,則轉(zhuǎn)發(fā)音頻數(shù)據(jù)包給子節(jié)點。節(jié)點根據(jù)接收到的信息更新自己所維護的實時信息,例如到服務(wù)器的延時、可用帶寬、在線時長等;索引服務(wù)器根據(jù)接收到的所有普通節(jié)點的信息,更新自身維護的節(jié)點列表和相關(guān)信息 [24]。所以從單個節(jié)點的角度來看,節(jié)點是連續(xù)運行的。通過命令可以執(zhí)行如停止模擬器的運行、監(jiān)視系統(tǒng)的狀態(tài)等操作。 索 引 管 理 子 模 塊 節(jié) 點 列 表 自身信息 相連節(jié)點 與 節(jié) 點 通 信 發(fā) 送 接 受 節(jié) 點 節(jié) 點 媒體數(shù)據(jù)傳輸子模塊 第 23 頁 節(jié)點組織與管理模塊 節(jié)點組織和管理模塊在 P2P多人語音系統(tǒng)中是一個非常重要的模塊,它主要包括節(jié)點的加入(把多播樹的生成也算進(jìn)節(jié)點的加入模塊)、節(jié)點的退出等模塊,如圖 。 設(shè)定節(jié)點加入 /離開的時刻表如表 所示,啟動仿真系統(tǒng)。 心跳包的發(fā)送接受線路圖如圖 所示,心跳包內(nèi)容如下: A) 發(fā)送方的網(wǎng)絡(luò) IP 地址; B) 目的方的網(wǎng)絡(luò) IP 地址; C)往返 時延 RTT; D)上行帶寬 Bi,可用帶寬 Fi,請求帶寬 R; E)節(jié)點的在線時長 Ti。 圖 多人語音仿真系統(tǒng)的功能模塊圖 網(wǎng)絡(luò)與媒體數(shù)據(jù)傳輸管理模塊 網(wǎng)絡(luò)管理模塊包含索引管理子模塊和媒體數(shù)據(jù)傳輸子模塊,如圖 所示。 Max delay與 Min delay可以根據(jù)需要進(jìn)行調(diào)整。第一部分重點介紹基于 P2P的多人語音系統(tǒng)的設(shè)計原則,系統(tǒng)的基本原理以及系統(tǒng)的拓?fù)浣Y(jié)構(gòu)。 (1)節(jié)點正常退出 若收聽者向服務(wù)器發(fā)出退出請求,即葉子節(jié)點退出,那么葉子節(jié)點可直接離開多播樹,而不需要對多播樹進(jìn)行重構(gòu),然后更新索引服務(wù)器和其父節(jié)點中的信息即可。若有具有一定上行帶寬(不小于請求帶寬)的新節(jié)點 F請求加入,當(dāng)多播樹不具有能力服務(wù) F節(jié)點而樹中又存在 NAT節(jié)點時,做如下處理:從索引服務(wù)器獲取 NAT節(jié)點的列表,按照 NAT節(jié)點到服務(wù)器的延 時從小到大的順序遍歷所有 NAT節(jié)點,嘗試將 F節(jié)點接在當(dāng)前 NAT節(jié)點和其父節(jié)點之間。一般情況下,節(jié)點的選擇是多種策略的折中。 Fi=BiCi*R。整個系統(tǒng)的拓?fù)浣Y(jié)構(gòu)如圖 所示,可見其網(wǎng)絡(luò)結(jié)構(gòu)是典型的樹狀結(jié)構(gòu)。 4) 能夠在能力不同的節(jié)點間均衡負(fù)載。 本章小結(jié) 隨 著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,流媒體技術(shù)必將成為未來網(wǎng)絡(luò)的一項關(guān)鍵技術(shù)。其次,應(yīng)用層 多播系統(tǒng)通過節(jié)點間的相互傳遞來發(fā)送信息 , 節(jié)點間全部采用單播連接,因此需要盡量減少信息在網(wǎng)絡(luò)中的傳輸路徑,以減少信息到達(dá)接受者的延遲和網(wǎng)絡(luò)負(fù)荷。這類網(wǎng)絡(luò)的代表系統(tǒng)是 Skype[16]。在完全分布式非結(jié)構(gòu)化拓?fù)涞?P2P網(wǎng)絡(luò)模型中,每個節(jié)點都具有相同的功能,因而節(jié)點也稱對等點。在 P2P網(wǎng)絡(luò)環(huán)境中,成千上萬臺彼此連接的計算機都處于對等的地位,各節(jié)點具有相同的責(zé)任和能力,并協(xié)同完成特定任務(wù)。用戶對它的要求也將越來越高,因此,必須研究出一種高效的、高質(zhì)量的 P2P流媒體直播系統(tǒng)來滿足用戶的需求。這幾種方案都充分利用了 Peer to Peer 網(wǎng)絡(luò)的路由機制,因此只需增加少量的模塊就可以實現(xiàn)多播功能。伯克利大學(xué)和 普度大學(xué)則致力于對多源的 P2P流媒體傳輸?shù)难芯恳踩〉昧艘欢ǖ贸删?,此外,也有一些研究機構(gòu)將傳統(tǒng)的流媒體技術(shù)運用于 P2P系統(tǒng)。 peer之間相互協(xié)作,并為其他 peer提供服務(wù),將服務(wù)器的負(fù)載分散到 peer中,從而有效地減輕了服務(wù)器的負(fù)載和減少了網(wǎng)絡(luò)帶寬的消耗,極大地提高了系統(tǒng)的可擴展性。 關(guān)鍵詞 : 多人語音; P2P; 應(yīng)用層多播; 多播樹 第 II 頁 Abstract In recent years, as the rapid development of puter works and munication technology, high work bandwidth requirements of streaming media technology is also advancing fast, and the research and application of multiperson phoic system have bee one of current hot spots. In traditional multiperson phoic system, usually adopts C/S(Client/Server) pattern, namely the user clicks the pronunciation server to listen, then the pronunciation server gives the audio frequency class to the user by the unicast way. It has several malpractices: 1) Large amounts of data stores and transports on the sever, which not only has a very high request to the central server39。在一般情況下系統(tǒng)能夠向用戶提 供較高質(zhì)量的音頻服務(wù),具有良好的可擴展性,但由于均衡負(fù)載的能力不夠,性能的穩(wěn)定性有待提高。基于 P2P模式的流媒體系統(tǒng)利用了 P2P網(wǎng)絡(luò)的優(yōu)點,用戶相互共享彼此擁有的流媒體資源,既是播放者,又是流媒體資源提供者,共同參與系統(tǒng)的服務(wù),整個系統(tǒng)的服務(wù)能力隨著用戶數(shù)量的增加而增加。美國斯坦福大學(xué)、馬塞諸塞大學(xué)以及微軟研究院對單源的 P2P流媒體傳輸展開了研究并取得一定的成績。它們都是在基于動態(tài)哈希路由的 Peer to Peer 網(wǎng)絡(luò)上實現(xiàn)的,其中 CAN Multicast 是在 CAN 之上實現(xiàn)的, Scribe 是在 Pastry 上 實現(xiàn)的, Bayeux 是在 Tapestry 上實現(xiàn)的。 第 5 頁 第二章 多人語音系統(tǒng)中的關(guān)鍵技術(shù) P2P網(wǎng)絡(luò)是當(dāng)代網(wǎng)絡(luò)發(fā)展的趨勢,而將 P2P技術(shù)應(yīng)用到流媒體服務(wù)中能更好地實現(xiàn)其迅速、穩(wěn)定、高清晰度的特點。 P2P 技術(shù)的概念 P2P(Peerto Peer)即對等計算或?qū)Φ染W(wǎng)絡(luò) [10],是一種用于不同計算機之間、不經(jīng)過中繼設(shè)備直接交換數(shù)據(jù)或服務(wù)的技術(shù)。 (2)完全分布式非結(jié)構(gòu)化拓?fù)?[13] 完全分布式非結(jié)構(gòu)拓?fù)涞?P2P網(wǎng)絡(luò)采用了隨機圖的組織方式來形成一個松散的網(wǎng)絡(luò),這種 結(jié)構(gòu)對網(wǎng)絡(luò)動態(tài)變化有較好的容錯能力?;旌鲜?P2P拓?fù)浣Y(jié)合了集中式和分布式 P2P形式的優(yōu)點,在設(shè)計思想和處理能力上都得到了進(jìn)一步的優(yōu)化。 P2P網(wǎng)絡(luò)中節(jié)點的具有高度動態(tài)性,隨時都有可能有節(jié)點失效或下線,由于應(yīng)用層多播系統(tǒng)需要依靠 P2P系統(tǒng)的節(jié)點轉(zhuǎn)發(fā)信息 , 所以節(jié)點的突然失效會導(dǎo)致信息丟失 ,使多播服務(wù)中斷?!笆А惫?jié)點是指在斷電、斷網(wǎng)等情況下,節(jié)點沒有發(fā)出退出組播組的請求但又無法正常運行,一般通過定時發(fā)送“心跳包”來實現(xiàn)失效節(jié)點的檢測。系統(tǒng)應(yīng)該能夠充分利用網(wǎng)絡(luò)邊緣/客戶端用戶的資源。系統(tǒng)可分為三層,從高到低依次是服務(wù)器(包括索引服務(wù)器和音頻數(shù)據(jù)源)、轉(zhuǎn)播 Peer、收聽 Peer,以下將轉(zhuǎn)播 者和收聽者稱為普通節(jié)點。決定了節(jié)點 i還能服務(wù)的節(jié)點數(shù)目,即還可連接多少個新的子節(jié)點。如果希望音頻服務(wù)的延遲小,則可以以延時為主要考慮因素選擇父節(jié)點;如果希望得到高質(zhì)量的音頻服務(wù),則可選擇能夠提供高帶寬的父節(jié)點,這樣就不會發(fā)生丟包等情況。 通過查詢索引服務(wù)器可以獲取一張記錄了多播樹中所有 NAT節(jié)點的列表。因此,需要在節(jié)點退出后重構(gòu)多播樹,進(jìn)行節(jié)點失效恢復(fù) 。 本章主要介紹多人語音系統(tǒng)的方案設(shè)計和基于 P2P的應(yīng)用層多播樹的算法設(shè)計。 D)節(jié)點延時( Delay) 任意兩個節(jié)點之間的延時是介于系統(tǒng)定義的最大延時( max delay)和最小延時( min delay)之間的一個隨機值。這四個模塊相互支撐,協(xié)同工作,缺一不可,其中核心為節(jié)點組織與管理模塊。節(jié)點根據(jù)接收到的信息更新自己所維護的實時信息,例如到服務(wù)器的延時、可用帶寬、在線時長等;索引服務(wù)器根據(jù)接收到的所有普通節(jié)點的信息,更新自身維護的節(jié)點列表和相關(guān)信息。觀察系統(tǒng)是否能夠生成多播樹,并進(jìn)行動態(tài)維護。 圖 節(jié)點組織與管理模塊 節(jié)點的加入 節(jié)點加入的算法在第三章已經(jīng)詳細(xì)描述,過程的流程圖如圖 所示。每個命令只需要實現(xiàn) Command 接口即可。 C)節(jié)點( Node) 每個節(jié)點都有一個全局標(biāo)識的標(biāo)識,稱為 nodeID,通過 nodeID 可以唯一確定一個節(jié)點。 (3)節(jié)點的非正常退出 節(jié)點的異常退出就是最主要的一種變故,應(yīng)用 心跳檢測機制來輪詢這種故障,某節(jié)點超過規(guī)定時間沒有收到從其父節(jié)點處轉(zhuǎn)發(fā)來的數(shù)據(jù),就給父節(jié)點發(fā)送檢測信息,看父節(jié)點是否斷開了連接,若該父節(jié)點由于異常退出了網(wǎng)絡(luò),系統(tǒng)就A B C D F E G I J E節(jié)點請求離開 A B C D F G I J H K H K 第 18 頁 會啟動處理正常退出的重構(gòu)算法,并通知服務(wù)器節(jié)點的離開。算法結(jié)束。 NAT設(shè)備允許私網(wǎng)主機主動向公網(wǎng)主機發(fā)送連接請求,但拒絕公網(wǎng)主機主動與私網(wǎng)主機進(jìn)行直接連接。 由于在一個典型的 P2P網(wǎng)絡(luò)中,網(wǎng)絡(luò)中的節(jié)點來自各 個不同域,節(jié)點可能在任一時間加入或離開網(wǎng)絡(luò),導(dǎo)致網(wǎng)絡(luò)具有很大的動態(tài)性和不可控性 ,所以應(yīng) 采取后者,生成多播樹的過程即加入節(jié)點的過程。節(jié)點至少需要R的上行帶寬才具有服務(wù)其它節(jié)點的能力。 拓?fù)浣Y(jié)構(gòu) 在 P2P多人語音系統(tǒng)的體系結(jié)構(gòu)中, P2P網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)直接決定了該服務(wù)系統(tǒng)的響應(yīng)效率及服務(wù)質(zhì)量。流媒體數(shù)據(jù)流具有三個特點:連續(xù)性、實時性、時序性,即數(shù)據(jù)流具有嚴(yán)格的前后時序關(guān)系,如果一個數(shù)據(jù)包在播放之后到達(dá),則沒有任何意義。 組播節(jié)點的維護方法 組播節(jié)點的維護包括節(jié)點的加入、退出、“失效”節(jié)點的檢測 [20]。和 IP組播增加網(wǎng)絡(luò)機制的方法不同,應(yīng)用層組播的基本思想是保持 Inter原有的簡單、單播的轉(zhuǎn)發(fā)模型,由端系統(tǒng)來實現(xiàn)組播轉(zhuǎn)發(fā)的功能。關(guān)鍵字存儲其虛擬地址與關(guān)鍵字匹配或者相近的節(jié)點上。中心化拓?fù)渥畲蟮膬?yōu)點是維護簡單、發(fā)現(xiàn)效率高。 IP組播源把數(shù)據(jù)包發(fā)送到特定組播組,而只有屬于該組播組的地址主機才能接收到該數(shù)據(jù)包,在整個網(wǎng)絡(luò)的任何一條物理鏈路上只傳送單一的數(shù)據(jù)包。 第三章詳細(xì)描述基于 P2P 的應(yīng)用層組播樹的算法設(shè)計。在這些論文中 , 研究學(xué) 者都提出了自己的應(yīng)用層多播實現(xiàn)思路,對應(yīng)用層多播路由協(xié)議中多播樹計算算法進(jìn)行了研究。 國內(nèi)外研究現(xiàn)狀 目前, P2P技術(shù)在國內(nèi)外已經(jīng)有了突飛猛進(jìn)的發(fā)展,很多領(lǐng)域己經(jīng)成功的應(yīng)用它解決了 C/S模式存在的瓶頸,從目前的應(yīng)用來看, P2P的優(yōu)勢還主要體現(xiàn)在大范圍的資源的共享和搜索上 [2]。面對日益增長的用戶數(shù)量,如何構(gòu)建具有可擴展能力的流媒體服務(wù)系統(tǒng)成為亟待解決的問題。 而 引入 P2P和應(yīng)用層多播技術(shù),作為多人語音系統(tǒng)的支撐技術(shù),則可以突破這些限制,有效地解決上述問題。 Application Layer Multicast。但太耗費帶寬,又不能支持大量觀眾實時收看,申請者接收到的將是低質(zhì)量視頻。 3) 分層流媒體雖然在 IP組播中已經(jīng)得到深入研究,但是在應(yīng)用層組播中的研究才剛剛起步。 本文的研究內(nèi)容 本文研究了如何利 用 P2P技術(shù)和應(yīng)用層多播技術(shù)來構(gòu)建一種具有可擴展服務(wù)能力的多人語音系統(tǒng)。 服務(wù)器集群方式 [6]是將各自獨立的、同構(gòu)或異構(gòu)的一組計算機連接起來提供一個高性能的應(yīng)用平臺,來協(xié)同完成特定的任務(wù)。 P2P 網(wǎng)絡(luò)中拓?fù)浣Y(jié)構(gòu)的研究 拓?fù)浣Y(jié)構(gòu)是指分布 式系統(tǒng)中各個節(jié)點或計算單元之間的物理或邏輯的互聯(lián)關(guān)系,節(jié)點之間的拓?fù)浣Y(jié)構(gòu)一直是確定系統(tǒng)類型的重要依據(jù)。另一個問題是由于采用 TTL、洪泛、隨機漫步,這種拓?fù)涞木W(wǎng)絡(luò)直徑不可控,可擴展性差 [14]。 P2P流媒體技術(shù)主要優(yōu)勢在于降低對服務(wù)器處理能力 和服務(wù)器上傳帶寬的要求,節(jié)約了主干網(wǎng)絡(luò)傳輸帶寬。因此,有必要深入研究應(yīng)用層多播樹的建立和維護算法 [19]。第二部分重點介紹應(yīng)用層多播技術(shù),主要包括應(yīng)用層多播技術(shù)的概念、組播節(jié)點的組織方法 和維護方法。首先, 服務(wù)器 S(在這里不區(qū)分索引服務(wù)器和音頻數(shù)據(jù)源,統(tǒng)一為服務(wù)器 S)將音頻文件按照一定的格式劃分成很多個固定大小的音頻數(shù)據(jù)段,然后將最近的幾分鐘數(shù)據(jù)放到自身的緩存區(qū)中,為以后前來請