亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于集群的流媒體緩存代理服務(wù)器系統(tǒng)的制作方法

文檔序號:7589702閱讀:160來源:國知局
專利名稱:基于集群的流媒體緩存代理服務(wù)器系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明屬于計算機(jī)流媒體服務(wù)技術(shù)領(lǐng)域,具體涉及一種基于集群的流媒體緩存代理服務(wù)器系統(tǒng)。
背景技術(shù)
隨著Internet的飛速發(fā)展和近年來寬帶接入技術(shù)的逐漸成熟和普及,視頻點(diǎn)播、遠(yuǎn)程教育、電子商務(wù)等Internet流媒體應(yīng)用變得日益廣泛。雖然流媒體對象的播放可以采取與傳統(tǒng)Web對象(如HTML頁面和GIF圖像)類似的方式,即以下載的方式獲得后再播放,但是,由于流媒體對象通常比較大,這種先下載后播放的方式導(dǎo)致了客戶端較大的播放啟動延遲,影響了流媒體服務(wù)質(zhì)量。為了解決這個問題,一種新技術(shù)——流式播放技術(shù)應(yīng)運(yùn)而生。這種技術(shù)支持邊下載邊播放的流媒體服務(wù)方式,即用戶不必等到整個影片對象都下載完畢,而只需經(jīng)過幾秒至十幾秒的啟動延遲便可開始播放影片。流式傳輸技術(shù)大大縮短了客戶端播放啟動延遲,提高了服務(wù)質(zhì)量,是實(shí)現(xiàn)流媒體技術(shù)的關(guān)鍵,它包括實(shí)時流式傳輸技術(shù)和順序流式傳輸技術(shù)兩種。前者憑借其專門面向網(wǎng)絡(luò)流媒體應(yīng)用設(shè)計而越來越顯出優(yōu)勢,現(xiàn)已成為實(shí)現(xiàn)流媒體的主流技術(shù)。目前,國際上已經(jīng)制定了支持實(shí)時流式傳輸?shù)臉?biāo)準(zhǔn)協(xié)議,主要包括實(shí)時傳輸協(xié)議/實(shí)時傳輸控制協(xié)議RTP(Real Time Transport Protocol)/RTCP(RealTime Transport Control Protocol)、實(shí)時流協(xié)議RTSP(Real Time StreamingProtocol)和資源預(yù)留協(xié)議RSVP(Resource Reserve Protocol)等,這些協(xié)議是實(shí)現(xiàn)實(shí)時流式傳輸?shù)闹饕獦?biāo)準(zhǔn)。事實(shí)證明,實(shí)時流式播放技術(shù)和實(shí)時流媒體協(xié)議標(biāo)準(zhǔn)的制定大大加快了Internet流媒體應(yīng)用普及的步伐。
然而,在流媒體應(yīng)用加速普及的同時,Internet流媒體服務(wù)的用戶數(shù)目也在急劇增長,這不可避免地帶來流媒體服務(wù)器負(fù)載加重、客戶端播放響應(yīng)延遲變大以及主干網(wǎng)絡(luò)擁塞等問題。針對這些問題的傳統(tǒng)解決方法是不斷升級流媒體服務(wù)器和提高客戶端網(wǎng)絡(luò)接入帶寬,但是它們并不能從根本上解決問題服務(wù)器的升級速度要低于用戶數(shù)目的增長速度;提高網(wǎng)絡(luò)接入帶寬并不能緩解主干網(wǎng)絡(luò)的擁塞問題;對主干網(wǎng)絡(luò)進(jìn)行升級則將耗資巨大。
為了解決這個問題,最有效的方法就是采用緩存代理技術(shù),在客戶端和網(wǎng)絡(luò)服務(wù)器之間配置一臺專用設(shè)備——緩存代理服務(wù)器,將用戶頻繁訪問的對象緩存在物理上距離客戶端較近的緩存代理服務(wù)器的存儲設(shè)備中,一方面直接降低客戶端播放延遲,另一方面減少訪問原始服務(wù)器的次數(shù),從而減輕了原始服務(wù)器的工作負(fù)載。事實(shí)上,緩存代理技術(shù)早已作為Internet上的一種標(biāo)準(zhǔn)技術(shù),在WWW(World Wide Web)服務(wù)領(lǐng)域得到廣泛的應(yīng)用,然而,現(xiàn)有的緩存代理技術(shù)(如著名的開源軟件Squid)通常針對的是傳統(tǒng)Web對象(如HTML頁面和GIF圖像)。由于Web對象和流媒體對象在大小上存在著較大差別,而且流媒體應(yīng)用具有WWW應(yīng)用所不具有的特征(如強(qiáng)時間相關(guān)性、可交互性以及高資源占用率),因此Web緩存代理技術(shù)不能直接應(yīng)用到流媒體緩存代理服務(wù)器中。
當(dāng)前的流媒體緩存代理研究側(cè)重于兩個方面(1)流媒體緩存管理策略?,F(xiàn)有的流媒體緩存管理策略主要包括前綴緩存策略、基于邏輯段的緩存策略和滑動間隔緩存策略幾種。前綴緩存策略的核心思想是既然客戶端點(diǎn)播影片通常都是從頭(即影片前綴)開始,那么影片的前綴部分就應(yīng)該具備較高的緩存級別,優(yōu)先緩存流媒體對象(如影片)的起始部分,必然能有效地降低客戶端播放延遲,提高流媒體服務(wù)質(zhì)量;基于邏輯段的緩存策略,即將流媒體對象劃分為多個物理段,流媒體對象的存取和置換均以段為基本單位;滑動間隔緩存策略能充分利用用戶對流媒體對象訪問具有順序性的特點(diǎn),將對同一個流對象的相鄰請求看作“一對”,然后將這些“對”進(jìn)行全局排序,并按照較小間隔優(yōu)先的原則分配內(nèi)存?;谏鲜龅牧髅襟w緩存管理策略,國外已經(jīng)研制了許多商用的流媒體緩存代理服務(wù)器系統(tǒng),比較著名的有CacheFlow、Network Applicance、Enron和RealProxy。但是這些產(chǎn)品均采用了單節(jié)點(diǎn)結(jié)構(gòu)(如圖1),系統(tǒng)可擴(kuò)展性很差,無法滿足大規(guī)??蛻粼L問的需求。(2)流媒體緩存體系結(jié)構(gòu)。主要包括MiddleMan、SOCCER和Silo。MiddleMan系統(tǒng)由緩存代理服務(wù)器和協(xié)調(diào)器組成,協(xié)調(diào)器負(fù)責(zé)將許多緩存代理服務(wù)器虛擬化為可擴(kuò)展的緩存池,有效提高了系統(tǒng)緩存流媒體數(shù)據(jù)的能力;SOCCER提出了結(jié)合動態(tài)和靜態(tài)緩存的基于邏輯段的緩存策略以及一個自組織的合作式緩存;Silo引入一個分布合作式的流媒體緩存結(jié)構(gòu),提出了容錯的數(shù)據(jù)放置和替換策略。但是,一方面這些體系結(jié)構(gòu)過多地關(guān)注理論,且尚未形成實(shí)際可用的原型系統(tǒng);另一方面,它們均采用了松散耦合的分布式結(jié)構(gòu),管理效率低,且這種結(jié)構(gòu)使得緩存代理服務(wù)器之間進(jìn)行合作很困難。

發(fā)明內(nèi)容
本發(fā)明的目的是克服現(xiàn)有流媒體緩存代理服務(wù)器系統(tǒng)的不足,提供一種具有良好可擴(kuò)展性的基于集群的流媒體緩存代理服務(wù)器系統(tǒng),為MOV、MPEG1、MP3和MPEG4等流行媒體格式的音頻/視頻流媒體點(diǎn)播服務(wù)系統(tǒng)提供緩存代理支持。
本發(fā)明提供的一種基于集群的流媒體緩存代理服務(wù)器系統(tǒng),包括控制結(jié)點(diǎn)和緩存節(jié)點(diǎn);控制節(jié)點(diǎn)用于對客戶端的RTSP請求進(jìn)行調(diào)度,在客戶端和緩存節(jié)點(diǎn)之間轉(zhuǎn)發(fā)RTSP消息,并根據(jù)緩存節(jié)點(diǎn)的緩存負(fù)載狀況實(shí)施全局緩存置換操作;緩存節(jié)點(diǎn)用于接收控制節(jié)點(diǎn)轉(zhuǎn)發(fā)的客戶端RTSP請求消息,它根據(jù)客戶端請求的影片內(nèi)容查看本機(jī)是否已緩存了該影片,在已緩存該影片的情況下,緩存節(jié)點(diǎn)替代流媒體服務(wù)器直接為客戶端提供流服務(wù),其發(fā)送的RTP數(shù)據(jù)流繞過控制節(jié)點(diǎn)直接發(fā)送到客戶端;在緩存節(jié)點(diǎn)未緩存影片的情況下,緩存節(jié)點(diǎn)模擬客戶端的功能與流媒體服務(wù)器交互,從服務(wù)器獲得該影片RTP流數(shù)據(jù),并在將RTP流數(shù)據(jù)轉(zhuǎn)發(fā)給客戶端的同時,緩存這些數(shù)據(jù)到本機(jī)磁盤中。
上述控制節(jié)點(diǎn)包括連接管理模塊、RTSP協(xié)議分析模塊、調(diào)度模塊、負(fù)載收集模塊、全局置換模塊、媒體對象定位表和緩存節(jié)點(diǎn)負(fù)載表;連接管理模塊在Linux操作系統(tǒng)內(nèi)核實(shí)現(xiàn),它負(fù)責(zé)客戶端和緩存節(jié)點(diǎn)之間RTSP消息的轉(zhuǎn)發(fā),并為控制節(jié)點(diǎn)端負(fù)載收集模塊和全局置換模塊提供與緩存節(jié)點(diǎn)通信的UDP連接通道;RTSP協(xié)議分析模塊負(fù)責(zé)從連接管理模塊提供的應(yīng)用層數(shù)據(jù)中解析客戶端RTSP協(xié)議請求DESCRIBE命令并獲取其中的會話描述協(xié)議信息,并激活調(diào)度模塊,同時將流媒體對象名作為參數(shù)傳給該模塊分析;調(diào)度模塊從RTSP協(xié)議分析模塊獲得流媒體對象名,查找媒體對象定位表,如果從表中找到流媒體對象名和對應(yīng)的緩存節(jié)點(diǎn)記錄,說明客戶端請求的流媒體對象命中這個緩存節(jié)點(diǎn),否則說明新請求到來;在命中的情況下,調(diào)度模塊激活連接管理模塊,并將緩存節(jié)點(diǎn)IP地址作為參數(shù)傳遞給該模塊,連接管理模塊首先創(chuàng)建到該緩存節(jié)點(diǎn)的TCP連接,然后將客戶端IP地址添加到已提取出的應(yīng)用層數(shù)據(jù)末端,最后通過新建立的TCP連接將應(yīng)用層數(shù)據(jù)發(fā)送到該緩存節(jié)點(diǎn);在未命中的情況下,調(diào)度模塊調(diào)用負(fù)載收集模塊以獲得緩存節(jié)點(diǎn)當(dāng)前負(fù)載狀況,并激活連接管理模塊,連接管理模塊與負(fù)載因子L最小的緩存節(jié)點(diǎn)建立主動TCP連接,之后,該模塊在提取出的應(yīng)用層數(shù)據(jù)末端添加客戶端IP地址,并通過新建立的TCP連接發(fā)送給該緩存節(jié)點(diǎn);負(fù)載收集模塊負(fù)責(zé)定時與緩存節(jié)點(diǎn)通信,以獲得緩存節(jié)點(diǎn)最新負(fù)載信息、計算負(fù)載因子L,并及時更新緩存節(jié)點(diǎn)負(fù)載表;負(fù)責(zé)在一定數(shù)目的緩存節(jié)點(diǎn)的空間利用率達(dá)到預(yù)定閾值時,激活全局置換模塊;全局置換模塊在系統(tǒng)緩存空間不足時,激活連接管理模塊,并通過連接管理模塊向緩存節(jié)點(diǎn)發(fā)出全局置換命令,從已緩存對象中淘汰出流行度低的流媒體對象,以騰出部分空間來緩存新的對象。
上述緩存節(jié)點(diǎn)包括RTSP連接管理模塊、RTP會話接收管理模塊、RTP會話發(fā)送管理模塊、緩存管理模塊、負(fù)載監(jiān)視模塊和全局置換接收模塊;RTSP連接管理模塊通過控制節(jié)點(diǎn)構(gòu)建和管理緩存節(jié)點(diǎn)與客戶端間的RTSP消息會話,以及緩存節(jié)點(diǎn)與流媒體服務(wù)器間的RTSP消息會話;通過將兩端RTSP會話連接起來,保證了客戶端和流媒體服務(wù)器之間的RTSP交互能順利進(jìn)行;該模塊將消息通知與緩存管理模塊;RTP會話接收管理模塊用于從流媒體服務(wù)器接收RTP流數(shù)據(jù),并傳送緩存管理模塊;緩存管理模塊為RTSP連接管理模塊提供緩存命中性檢查,為RTP會話發(fā)送管理模塊提供RTP流數(shù)據(jù),從RTP會話接收管理模塊獲得RTP流數(shù)據(jù)并進(jìn)行緩存,為負(fù)載監(jiān)視模塊提供緩存對象利用率和緩存空間利用率數(shù)據(jù),接收全局置換接收模塊發(fā)來的置換命令進(jìn)行緩存置換操作;RTP會話發(fā)送管理模塊用于將RTP流數(shù)據(jù)傳輸?shù)娇蛻舳?;?fù)載監(jiān)視模塊負(fù)責(zé)接收控制節(jié)點(diǎn)端負(fù)載收集模塊發(fā)來的負(fù)載收集命令,并與緩存管理模塊通信以獲取緩存對象利用率和緩存空間占用率,并將負(fù)載收集結(jié)果發(fā)送到控制結(jié)點(diǎn)端負(fù)載收集模塊;全局置換接收模塊負(fù)責(zé)接收控制節(jié)點(diǎn)端全局置換模塊發(fā)來的全局置換命令,并調(diào)用緩存管理模塊進(jìn)行本機(jī)緩存置換操作。
本發(fā)明的流媒體緩存代理服務(wù)器系統(tǒng)具有以下優(yōu)點(diǎn)和用途(1)高可擴(kuò)展性和容錯能力由于整個系統(tǒng)采用了集群體系結(jié)構(gòu),可以通過增加緩存節(jié)點(diǎn)的個數(shù),迅速提高系統(tǒng)整體服務(wù)吞吐率;同時,這種體系結(jié)構(gòu)還可以避免傳統(tǒng)的單節(jié)點(diǎn)流媒體緩存代理服務(wù)器系統(tǒng)存在的單一失效點(diǎn)問題(一臺服務(wù)器失效,整個系統(tǒng)失效),具備了很強(qiáng)的容錯能力。
(2)流服務(wù)能力強(qiáng)、流服務(wù)質(zhì)量高系統(tǒng)將RTSP消息交互和RTP數(shù)據(jù)傳送任務(wù)分別均衡到控制節(jié)點(diǎn)和緩存節(jié)點(diǎn),有效地減輕了控制節(jié)點(diǎn)的負(fù)載,避免控制節(jié)點(diǎn)成為系統(tǒng)瓶頸,同時提高了系統(tǒng)整體服務(wù)能力;控制節(jié)點(diǎn)采用了基于內(nèi)容的流調(diào)度策略,相比較傳統(tǒng)的基于連接數(shù)目的調(diào)度策略,能明顯提高緩存節(jié)點(diǎn)的緩存命中率,從而減少客戶端直接訪問流媒體服務(wù)器的次數(shù)、降低客戶端播放響應(yīng)延遲、提高流服務(wù)質(zhì)量。
(3)緩存管理效率高系統(tǒng)在控制節(jié)點(diǎn)上維護(hù)了媒體對象定位表和緩存節(jié)點(diǎn)負(fù)載表。利用這兩個表,實(shí)現(xiàn)了對集群緩存節(jié)點(diǎn)緩存空間的統(tǒng)一分配和回收,集群中所有緩存節(jié)點(diǎn)機(jī)緩存空間在邏輯上構(gòu)成了全局緩存空間,從而顯著提高了緩存空間的管理和使用效率。針對現(xiàn)有緩存管理系統(tǒng)的不足,本發(fā)明提供了一種基于邏輯段的前后綴結(jié)合的緩存管理策略,它具備基于邏輯段的緩存管理策略和前綴緩存管理策略的所有優(yōu)點(diǎn);另外,針對該策略并結(jié)合集群體系結(jié)構(gòu)特征提供了一種全局緩存置換算法,該算法有效地提高了緩存置換操作的性能,使緩存管理效率明顯得到提高。
(4)能支持緩存多種常用流媒體文件格式由于采用緩存RTP包而不是緩存原始流數(shù)據(jù)的工作方式,整個系統(tǒng)不會受到媒體壓縮格式不同的限制,具有較強(qiáng)的通用性。


圖1為傳統(tǒng)的單節(jié)點(diǎn)流媒體緩存代理服務(wù)器系統(tǒng)結(jié)構(gòu);圖2為基于集群的流媒體緩存代理服務(wù)器系統(tǒng)結(jié)構(gòu);圖3為控制節(jié)點(diǎn)模塊結(jié)構(gòu);圖4為緩存節(jié)點(diǎn)模塊結(jié)構(gòu);圖5為基于邏輯段的前后綴結(jié)合的緩存;圖6為緩存管理模塊結(jié)構(gòu);
圖7為緩存目錄層次結(jié)構(gòu);圖8為元數(shù)據(jù)管理的層次結(jié)構(gòu);圖9元數(shù)據(jù)字段格式。
具體實(shí)施例方式
下面結(jié)合附圖對本發(fā)明作進(jìn)一步詳細(xì)的說明。
從工作原理劃分,集群流媒體緩存代理服務(wù)器系統(tǒng)分為兩大部分控制結(jié)點(diǎn)和緩存節(jié)點(diǎn)。如圖2所示,控制節(jié)點(diǎn)4是客戶端6和緩存節(jié)點(diǎn)5.1-5.N之間的RTSP消息交換機(jī)它接收客戶端6的RTSP請求,根據(jù)請求影片內(nèi)容的不同,將該RTSP請求調(diào)度到合適的緩存節(jié)點(diǎn)(假定調(diào)度到緩存節(jié)點(diǎn)5.1)。緩存節(jié)點(diǎn)5.1收到RTSP請求后,根據(jù)其緩存中是否存在客戶端所請求影片的拷貝決定是否將該RTSP請求轉(zhuǎn)發(fā)到流媒體服務(wù)器7。如果緩存節(jié)點(diǎn)5.1已經(jīng)緩存了客戶端6請求的影片,則直接發(fā)送對該客戶端RTSP請求的RTSP響應(yīng)給控制結(jié)點(diǎn)4,否則轉(zhuǎn)發(fā)流媒體服務(wù)器7的RTSP響應(yīng)給控制結(jié)點(diǎn)4??刂乒?jié)點(diǎn)4收到緩存節(jié)點(diǎn)5.1發(fā)過來的RTSP響應(yīng)后,將該響應(yīng)轉(zhuǎn)發(fā)給客戶端6,至此,便完成了一次RTSP消息交換。由上所述,控制節(jié)點(diǎn)4主要負(fù)責(zé)對客戶端的RTSP請求進(jìn)行調(diào)度,以及在客戶端6和緩存節(jié)點(diǎn)5.1-5.N之間轉(zhuǎn)發(fā)RTSP消息。此外,控制節(jié)點(diǎn)4還負(fù)責(zé)根據(jù)緩存節(jié)點(diǎn)5.1-5.N的緩存負(fù)載狀況實(shí)施全局緩存置換操作。
緩存節(jié)點(diǎn)5.1-5.N的功能是接收控制節(jié)點(diǎn)4轉(zhuǎn)發(fā)的客戶端RTSP請求消息,它們首先根據(jù)客戶端6請求的影片內(nèi)容查看本機(jī)是否已緩存了該影片。在已緩存該影片(即緩存命中)的情況下,緩存節(jié)點(diǎn)5.1-5.N替代流媒體服務(wù)器7直接為客戶端6提供流服務(wù),其發(fā)送的RTP數(shù)據(jù)流繞過控制節(jié)點(diǎn)4直接發(fā)送到客戶端6(如圖2中緩存節(jié)點(diǎn)5.1-5.N指向客戶端6的實(shí)線箭頭所示),這樣避免了RTSP控制信息和大量的RTP數(shù)據(jù)流均經(jīng)由控制節(jié)點(diǎn)4轉(zhuǎn)發(fā)給客戶端6而造成控制結(jié)點(diǎn)4成為系統(tǒng)通信瓶頸的問題,從而有效提高了整個系統(tǒng)的服務(wù)吞吐率和系統(tǒng)可擴(kuò)展性。在緩存節(jié)點(diǎn)5.1-5.N未緩存影片(即緩存失效)的情況下,緩存節(jié)點(diǎn)5.1-5.N將模擬客戶端6的功能與流媒體服務(wù)器7交互,從服務(wù)器獲得該影片RTP流數(shù)據(jù),并在將RTP流數(shù)據(jù)轉(zhuǎn)發(fā)給客戶端6的同時,緩存這些數(shù)據(jù)到本機(jī)磁盤中,以便下次收到相同RTSP請求時能直接為客戶端6提供流服務(wù)。
下面分別介紹本系統(tǒng)各部分的功能控制節(jié)點(diǎn)為避免內(nèi)核層與應(yīng)用層之間頻繁的數(shù)據(jù)拷貝以及上下文切換開銷,本系統(tǒng)在Linux-2.4.20操作系統(tǒng)內(nèi)核網(wǎng)絡(luò)BSD(Berkly Software Distribution)插口層實(shí)現(xiàn)了控制結(jié)點(diǎn)模塊。如圖3所示,控制節(jié)點(diǎn)主要由下列部分構(gòu)成(1)連接管理模塊12;(2)RTSP協(xié)議分析模塊8;(3)調(diào)度模塊9;(4)負(fù)載收集模塊10;(5)全局置換模塊11;(6)媒體對象定位表;(7)緩存節(jié)點(diǎn)負(fù)載表。其功能與相互關(guān)系描述如下連接管理模塊12負(fù)責(zé)在Linux內(nèi)核網(wǎng)絡(luò)BSD插口層著名端口554(用于流媒體服務(wù))上監(jiān)聽客戶端連接請求,接收客戶端發(fā)出的TCP連接請求(RTSP協(xié)議是一種應(yīng)用層協(xié)議,必須通過TCP協(xié)議傳輸),并從該連接后續(xù)網(wǎng)絡(luò)包中提取出應(yīng)用層數(shù)據(jù)(即TCP協(xié)議頭后所有數(shù)據(jù))。隨后,它激活RTSP協(xié)議分析模塊8,并將提取出的應(yīng)用層數(shù)據(jù)交由RTSP協(xié)議分析模塊8處理。此外,該模塊還負(fù)責(zé)與調(diào)度模塊9選中的緩存節(jié)點(diǎn)主動建立TCP連接,并將已提取的相關(guān)應(yīng)用層數(shù)據(jù)通過新建TCP連接發(fā)送到該緩存節(jié)點(diǎn)。連接管理模塊12還為負(fù)載收集模塊10和全局置換模塊11提供能與緩存節(jié)點(diǎn)通信的UDP連接。
RTSP協(xié)議分析模塊8負(fù)責(zé)從連接管理模塊12提供的應(yīng)用層數(shù)據(jù)中解析客戶端RTSP協(xié)議請求DESCRIBE命令并獲取其中的SDP(會話描述協(xié)議)信息,從而得到客戶端點(diǎn)播的流媒體對象(如影片)名稱,然后激活調(diào)度模塊9,同時將流媒體對象名作為參數(shù)傳給該模塊分析。特別說明的是,該模塊只分析RTSP協(xié)議請求中的DESCRIBE命令,不分析RTSP協(xié)議請求的其它命令(如SETUP,PLAY,PAUSE,TEARDOWN等)。
調(diào)度模塊9該模塊從RTSP協(xié)議分析模塊8獲得流媒體對象名后,首先查找媒體對象定位表13,如果從表中找到流媒體對象名和對應(yīng)的緩存節(jié)點(diǎn)記錄,說明客戶端請求的流媒體對象命中這個緩存節(jié)點(diǎn),否則說明新請求到來。在命中的情況下,調(diào)度模塊9激活連接管理模塊12,并將緩存節(jié)點(diǎn)IP地址作為參數(shù)傳遞給該模塊,連接管理模塊12首先創(chuàng)建到該緩存節(jié)點(diǎn)的TCP連接,然后將客戶端IP地址添加到已提取出的應(yīng)用層數(shù)據(jù)末端,最后通過新建立的TCP連接將應(yīng)用層數(shù)據(jù)發(fā)送到該緩存節(jié)點(diǎn);在未命中的情況下,調(diào)度模塊9調(diào)用負(fù)載收集模塊10以獲得緩存節(jié)點(diǎn)當(dāng)前負(fù)載狀況(系統(tǒng)綜合考慮緩存節(jié)點(diǎn)已有連接數(shù)目C和緩存空間利用率U,負(fù)載因子L的計算方法L=C×U),并激活連接管理模塊12,連接管理模塊12與負(fù)載因子L最小的緩存節(jié)點(diǎn)建立主動TCP連接,之后,該模塊在提取出的應(yīng)用層數(shù)據(jù)末端添加客戶端IP地址,并通過新建立的TCP連接發(fā)送給該緩存節(jié)點(diǎn)。
負(fù)載收集模塊10負(fù)責(zé)定時與緩存節(jié)點(diǎn)負(fù)載監(jiān)視模塊18通信以獲得緩存節(jié)點(diǎn)最新負(fù)載信息并計算負(fù)載因子L以及時更新緩存節(jié)點(diǎn)負(fù)載表14。該模塊主要負(fù)責(zé)為調(diào)度模塊9提供緩存節(jié)點(diǎn)負(fù)載狀況,以便在全局緩存失效(即客戶端請求的流媒體對象未命中媒體對象定位表13)的情況下為其提供調(diào)度依據(jù)。此外,負(fù)載收集模塊還負(fù)責(zé)在一定數(shù)目的緩存節(jié)點(diǎn)的空間利用率達(dá)到預(yù)定閾值時,激活全局置換模塊11。
全局置換模塊11由于緩存節(jié)點(diǎn)并非具備無限大小的緩存空間,所以當(dāng)緩存空間耗盡時,必須進(jìn)行緩存置換,即有選擇地從已緩存對象中淘汰一批流行度較低的流媒體對象,以騰出部分空間來緩存新的對象。在描述全局置換模塊11之前,首先對全局置換策略進(jìn)行說明由于采用了集群體系結(jié)構(gòu),且控制節(jié)點(diǎn)上保存了緩存節(jié)點(diǎn)負(fù)載表14,利用這些信息,本系統(tǒng)采用了一種全局緩存置換策略,該策略的核心思想和基本原理是將集群中所有緩存節(jié)點(diǎn)的緩存空間視為一個統(tǒng)一的全局緩存空間,由控制節(jié)點(diǎn)進(jìn)行統(tǒng)一分配和回收。體現(xiàn)在置換策略上就是盡量推遲比較“忙碌”的節(jié)點(diǎn)機(jī)上的置換操作,而加快那些比較“清閑”的節(jié)點(diǎn)機(jī)上的置換操作。其依據(jù)是如果節(jié)點(diǎn)機(jī)“忙碌”,說明其緩存的對象普遍比較流行,不應(yīng)該立即將這些對象置換出緩存;反之則說明其緩存對象已經(jīng)過時,應(yīng)該騰出緩存空間給新對象使用才合理。
顯然,全局緩存置換策略的關(guān)鍵問題就是如何區(qū)分“清閑”和“忙碌”狀況??刂乒?jié)點(diǎn)綜合考慮了兩個因素(1)緩存對象利用率;(2)緩存空間利用率。
設(shè)緩存對象利用率為U,緩存空間利用率為V,節(jié)點(diǎn)機(jī)當(dāng)前正在使用的緩存對象數(shù)目為O,已緩存對象總數(shù)為T,已經(jīng)緩存文件大小為S,可用緩存空間大小為P,則有以下定義U=O/TV=S/P全局置換策略的第一步是控制節(jié)點(diǎn)負(fù)載收集模塊10定時向緩存節(jié)點(diǎn)負(fù)載監(jiān)視模塊18發(fā)出負(fù)載信息收集的請求,緩存節(jié)點(diǎn)收到請求后,統(tǒng)計U和V值,并將這些值返回給負(fù)載收集模塊10,負(fù)載收集模塊10首先用U和V更新緩存節(jié)點(diǎn)負(fù)載表14中各個緩存節(jié)點(diǎn)負(fù)載信息,再查看各緩存節(jié)點(diǎn)的V值大小,如果同時有90%以上的緩存節(jié)點(diǎn)V值大于一個預(yù)定的閾值Y,則說明集群全局緩存空間利用率已經(jīng)非常高,置換操作時機(jī)成熟,接著負(fù)載收集模塊10在所有V值大于Y的緩存節(jié)點(diǎn)中尋找U值小于閾值Z的緩存節(jié)點(diǎn),并激活全局置換模塊11,同時將U值小于Z的緩存節(jié)點(diǎn)IP以參數(shù)的形式傳遞給全局置換模塊11。
全局置換策略的第二步將在描述緩存節(jié)點(diǎn)端全局置換接收模塊19后再說明。
全局置換模塊11的功能是激活連接管理模塊12,并通過連接管理模塊12向緩存節(jié)點(diǎn)發(fā)出全局置換命令(為提高通信效率,置換命令通過UDP協(xié)議發(fā)送)。
緩存節(jié)點(diǎn)緩存節(jié)點(diǎn)主要由五個部分組成①RTSP連接管理模塊16;②RTP會話發(fā)送管理模塊17;③RTP會話接收管理模塊20;④緩存管理模塊15;⑤負(fù)載監(jiān)視模塊18;(6)全局置換接收模塊19,如圖4所示。下面詳細(xì)說明各模塊功能及其相互關(guān)系。
RTSP連接管理模塊16該模塊包含RTSP服務(wù)器子模塊16.1和RTSP客戶端子模塊16.2。RTSP服務(wù)器子模塊16.1負(fù)責(zé)和控制節(jié)點(diǎn)建立TCP通道,經(jīng)由控制結(jié)點(diǎn)與客戶端交互建立RTSP會話,并管理維護(hù)RTSP會話。RTSP客戶端子模塊16.2則負(fù)責(zé)與流媒體服務(wù)器建立RTSP會話,以及管理和維護(hù)RTSP會話。根據(jù)RTSP協(xié)議規(guī)范,每個RTSP會話都由一個全局唯一的RTSP會話ID來標(biāo)識,RTSP連接管理模塊16通過將兩端會話ID保存在同一結(jié)構(gòu)中,從而將其與客戶端和流媒體服務(wù)器兩端分別建立的RTSP會話連接起來,形象的說,它負(fù)責(zé)建立一條RTSP消息通道,以保證客戶端和流媒體服務(wù)器之間的RTSP交互能順利進(jìn)行。RTSP連接管理模塊16與緩存管理模塊15之間通信的目的有兩個1)當(dāng)RTSP客戶端子模塊16.2收到流媒體服務(wù)器發(fā)來的DESCRIBE響應(yīng)消息后,通知緩存管理系統(tǒng)15將響應(yīng)消息中提取出來的SDP信息緩存起來;2)當(dāng)RTSP服務(wù)器子模塊16.1收到從控制節(jié)點(diǎn)轉(zhuǎn)發(fā)過來的客戶端RTSP消息——PLAY請求命令時,通知緩存管理系統(tǒng)15進(jìn)行緩存命中性檢查,并根據(jù)檢查結(jié)果確定下一步操作。
RTP會話發(fā)送管理模塊17該模塊負(fù)責(zé)將RTP流數(shù)據(jù)傳輸?shù)娇蛻舳?,又可分為RTP音頻發(fā)送子模塊17.1和RTP視頻發(fā)送子模塊17.2。RTP音頻發(fā)送子模塊17.1負(fù)責(zé)發(fā)送RTP音頻流數(shù)據(jù)給客戶端;RTP視頻發(fā)送子模塊17.2則負(fù)責(zé)發(fā)送RTP視頻流數(shù)據(jù)給客戶端,如圖4所示。當(dāng)RTSP服務(wù)器子模塊16.1收到客戶端發(fā)來的RTSP消息——SETUP請求命令時,在緩存命中的情況下,RTP會話發(fā)送管理模塊17中RTP音頻發(fā)送子模塊17.1與客戶端6建立RTP音頻會話,同時,RTP視頻發(fā)送子模塊17.2與客戶端6建立RTP視頻會話,之后,流媒體緩存代理服務(wù)器便通過這兩個RTP會話將流媒體數(shù)據(jù)傳送到客戶端6。
RTP會話接收管理模塊20該模塊負(fù)責(zé)從流媒體服務(wù)器7接收RTP流數(shù)據(jù),又可分為RTP音頻接收子模塊20.1和RTP視頻接收子模塊20.2。RTP音頻接收子模塊20.1負(fù)責(zé)從流媒體服務(wù)器7接收RTP音頻流數(shù)據(jù);RTP視頻接收子模塊20.2則從流媒體服務(wù)器7接收RTP視頻流數(shù)據(jù),如圖4所示。當(dāng)RTSP服務(wù)器子模塊16.1收到客戶端發(fā)來的RTSP消息——SETUP請求命令時,在緩存未命中的情況下,RTP會話發(fā)送管理模塊17中RTP音頻發(fā)送子模塊17.1與客戶端6建立RTP音頻會話,同時,RTP視頻發(fā)送子模塊17.2與客戶端6建立RTP視頻會話,然后,RTSP客戶端子模塊16.2適當(dāng)修改SETUP請求命令的內(nèi)容(如將SETUP請求命令中會話ID修改為RTSP客戶端子模塊16.2與流媒體服務(wù)器之間RTSP會話ID,以及重新選擇一個RTP通信端口,并將SETUP命令中指明的RTP端口改為新選擇的這個端口),再向流媒體服務(wù)器7發(fā)出新的SETUP命令。在RTSP客戶端模塊16.2收到服務(wù)器SETUP響應(yīng)后,RTP會話接收管理模塊20中RTP音頻接收子模塊20.1與流媒體服務(wù)器7建立RTP音頻會話,同時,RTP視頻接收子模塊20.2與流媒體服務(wù)器7建立RTP視頻會話(如圖4所示)。這樣,連接客戶端和流媒體服務(wù)器的RTP數(shù)據(jù)通道就成功地建立了。
基于邏輯段的前后綴結(jié)合緩存策略在描述緩存管理模塊之前,首先介紹本系統(tǒng)所采取的緩存策略。本系統(tǒng)采用了基于RTP協(xié)議包的緩存方法,即緩存節(jié)點(diǎn)在收到服務(wù)器端發(fā)送的RTP協(xié)議數(shù)據(jù)包之后,不是緩存有效負(fù)荷(即流媒體對象數(shù)據(jù)),而是直接將收到的RTP數(shù)據(jù)包按序存放在流媒體緩存文件中。使用這種緩存方式,所有的媒體格式在緩存代理服務(wù)器看來都相同,巧妙地避開了緩存原始數(shù)據(jù)方式中必須區(qū)別對待不同媒體格式的弊端。
圖5描繪了本系統(tǒng)基于邏輯段的前后綴結(jié)合緩存策略。它不是在物理上將流媒體對象強(qiáng)行分為不同的段文件分別存儲,而是引入邏輯段的概念,將屬于相同流媒體對象的邏輯段存放在同一緩存文件中;從影片起始部分開始緩存,新到數(shù)據(jù)的起始播放時間必須等于已緩存影片數(shù)據(jù)段的終止播放時間,否則不緩存這段數(shù)據(jù)。這種策略有效的保證了緩存中的數(shù)據(jù)沒有“空洞”,從而在一定程度上保證了緩存流服務(wù)的連續(xù)性和同步性。邏輯上屬于同一個流媒體對象的段均存放在同一個緩存文件中,前綴部分段長設(shè)為K秒,后綴部分段長設(shè)為N×K(N為整數(shù)),后綴段長之所以比前綴段長長主要基于以下考慮1)前綴的緩存優(yōu)先級要高于后綴,置換粒度也應(yīng)該比后綴置換粒度??;2)后綴段較長有利于在緩存空間緊張時減少置換操作次數(shù),從而加速緩存空間回收速度;3)后綴段較長,段總數(shù)目相應(yīng)減少,有利于減少元數(shù)據(jù)管理上的開銷。此外,后綴段長度值設(shè)定為前綴段長度值的整數(shù)倍數(shù)是因為這樣能加快在段元數(shù)據(jù)表中進(jìn)行定位的速度。
緩存管理模塊15緩存管理模塊是緩存節(jié)點(diǎn)的核心,該模塊又可分為緩存文件管理子模塊21、元數(shù)據(jù)管理子模塊25、置換管理子模塊22、故障恢復(fù)子模塊23以及元數(shù)據(jù)表24,模塊內(nèi)部結(jié)構(gòu)和通信聯(lián)系如圖6所示。
其中,緩存文件管理子模塊21負(fù)責(zé)構(gòu)建、維護(hù)和管理磁盤中的緩存目錄和文件結(jié)構(gòu),為加快緩存對象的搜索速度,本系統(tǒng)采用了分層緩存目錄結(jié)構(gòu),如圖7所示,所有的緩存對象都統(tǒng)一存放在緩存文件根目錄下。每個流媒體對象(如影片)由一個單獨(dú)的緩存目錄進(jìn)行管理。
元數(shù)據(jù)表24用來保存系統(tǒng)元數(shù)據(jù)信息。系統(tǒng)元數(shù)據(jù)信息包括影片元數(shù)據(jù)、段元數(shù)據(jù)和包元數(shù)據(jù)三個層次。各個層次元數(shù)據(jù)間的組織結(jié)構(gòu)和聯(lián)系如圖8所示,各層次元數(shù)據(jù)所包含的具體信息字段如圖9所示。
元數(shù)據(jù)管理子模塊25負(fù)責(zé)元數(shù)據(jù)的構(gòu)造(包括影片元數(shù)據(jù)、段元數(shù)據(jù)和包元數(shù)據(jù))和維護(hù),元數(shù)據(jù)管理在緩存管理模塊1 5中具有重要作用,通過按層次查找元數(shù)據(jù)信息可以判斷客戶端請求是否命中緩存,如果命中緩存,則可判斷是部分命中緩存還是完全命中緩存。
為實(shí)現(xiàn)系統(tǒng)容錯,元數(shù)據(jù)管理子模塊25周期性地將內(nèi)存中的元數(shù)據(jù)信息備份到磁盤文件中。當(dāng)系統(tǒng)崩潰后重啟時,緩存管理系統(tǒng)15的故障恢復(fù)子模塊23便可通過磁盤中備份的元文件重構(gòu)內(nèi)存元數(shù)據(jù)信息。
元數(shù)據(jù)管理子模塊25將元數(shù)據(jù)在邏輯上分為三個層次1)影片級元數(shù)據(jù);2)段級元數(shù)據(jù);3)RTP包級元數(shù)據(jù)。元數(shù)據(jù)管理子模塊25將這些元數(shù)據(jù)存放在元數(shù)據(jù)表24中,圖8描述了三個層次的元數(shù)據(jù)管理結(jié)構(gòu)以及各層次間的關(guān)系。內(nèi)存中每一元數(shù)據(jù)層次均與磁盤中的元文件相對應(yīng),這些元文件保存的內(nèi)容和其對應(yīng)的內(nèi)存元數(shù)據(jù)完全相同。當(dāng)系統(tǒng)崩潰重啟時,元文件可用來為故障恢復(fù)子模塊23提供恢復(fù)內(nèi)存元數(shù)據(jù)所需的信息。下面分別介紹這三個層次。緩存中所有影片元數(shù)據(jù)信息通過一個雙向鏈表來管理,該鏈表的每個節(jié)點(diǎn)對應(yīng)一個影片對象;每個影片元數(shù)據(jù)節(jié)點(diǎn)均指向一個段元數(shù)據(jù)數(shù)組,該數(shù)組每個節(jié)點(diǎn)對應(yīng)了緩存流媒體文件中的一個邏輯段;每個段元數(shù)據(jù)節(jié)點(diǎn)又指向一個RTP包元數(shù)據(jù)鏈表,此鏈表主要用于在其所屬邏輯段中定位RTP包的位置。
置換管理子模塊22負(fù)責(zé)接收全局置換接收模塊19發(fā)來的置換命令,并為緩存中每個流媒體對象計算置換因子(具體計算方法將在后文描述全局置換策略的第二步時給出),按照置換因子由小至大的順序淘汰緩存中的流媒體對象,直到獲得緩存新對象的足夠緩存空間。
故障恢復(fù)子模塊23負(fù)責(zé)在系統(tǒng)崩潰重啟時讀取磁盤中的元文件,校驗元文件和流媒體對象數(shù)據(jù)的一致性,并恢復(fù)內(nèi)存中相應(yīng)的元數(shù)據(jù)管理信息。
負(fù)載監(jiān)視模塊18該模塊負(fù)責(zé)接收控制節(jié)點(diǎn)端負(fù)載收集模塊10發(fā)來的負(fù)載收集命令,并與緩存管理模塊15中元數(shù)據(jù)管理子模塊25和緩存文件管理子模塊21通信以獲取緩存對象利用率和緩存空間占用率,并將負(fù)載收集結(jié)果發(fā)送到控制結(jié)點(diǎn)端負(fù)載收集模塊10。
全局置換接收模塊19該模塊負(fù)責(zé)接收控制節(jié)點(diǎn)端全局置換模塊11發(fā)來的全局置換命令,并調(diào)用緩存管理模塊15中的置換管理子模塊22進(jìn)行本機(jī)緩存置換操作。前文討論控制節(jié)點(diǎn)端全局置換模塊11時已經(jīng)詳細(xì)說明了本系統(tǒng)全局置換策略的第一步,下面繼續(xù)說明全局置換策略的第二步。
全局置換策略的第二步是緩存節(jié)點(diǎn)端全局置換接收模塊19收到控制節(jié)點(diǎn)端全局置換模塊發(fā)來的置換命令之后,激活緩存管理模塊15中的置換管理子模塊22,該模塊針對緩存節(jié)點(diǎn)本地緩存中的每個流媒體對象計算置換因子,計算公式如下R(v)=P(v)×B(v)S(v)]]>
其中,P(v)表示影片v的流行度,B(v)表示緩存節(jié)點(diǎn)從流媒體服務(wù)器預(yù)取影片v時的平均網(wǎng)絡(luò)延遲,S(v)表示影片v所占用緩存空間大小。流行度的計算通常采用LFU算法,即通過歷史訪問頻度來預(yù)測未來訪問頻度。但是影片流行度在某些時候也會發(fā)生較大的變化,這將導(dǎo)致有些曾被多次訪問的流媒體對象憑借其較高的歷史訪問次數(shù)記錄而不合理地占據(jù)緩存空間(即“緩存污染”),導(dǎo)致新影片沒有空間可以緩存,這種情況顯然是不合理的。本系統(tǒng)在計算流媒體對象流行度時,創(chuàng)新性地綜合考慮長期流行度和近期流行度。所謂長期流行度,即自流媒體對象被緩存以來,該對象被訪問的頻度;近期流行度表示該對象最近一段時間被訪問的頻度。P(v)的計算公式如下P(v)=Pl(v,n)×(1-α)+Ps(v,n,l)×αPl(v,n)=Σk=0nRkTn-T0]]>Ps(v,n,l)=Σk=lnRkTn-Tl]]>其中,Pl(v,n)表示影片v的長期流行度,參數(shù)n表示影片v被點(diǎn)播的次數(shù),T0表示影片v第一次被點(diǎn)播的時刻,Tn表示影片最近一次被點(diǎn)播的時刻,Rk表示影片v在第k次被客戶點(diǎn)播時,此次會話正常結(jié)束或異常終止前邏輯段被訪問的數(shù)目,通過對Rk值從k=0至n求和,便可得到從T0時刻至Tn時刻邏輯段被訪問的總次數(shù),該值除以Tn與T0的時間差值就得到從影片v被緩存以來被訪問的頻率。系統(tǒng)不使用對整個影片訪問的次數(shù)而是采用對邏輯段被訪問的次數(shù)作為訪問頻率計算依據(jù),主要原因在于以段為記數(shù)對象更能準(zhǔn)確的估算出該影片的真正受歡迎程度。
Ps(v,n,l)表示影片v的近期流行度,參數(shù)n和Rk的意義和Pl(v,n)計算式中的相同,Tl表示第l次被點(diǎn)播的時間,第l次則指上一次置換操作執(zhí)行后的首次訪問。對Rk從k=l至n求和,便可得到從上一次置換操作以來影片v的邏輯段被訪問的累計次數(shù)總和。于是,Ps(v,n,l)則表示在最近一段時間內(nèi)影片v的訪問頻率。
α是平衡因子,其值小于1。通過調(diào)整α值,可以調(diào)整長期流行度和近期流行度之間的相對重要程度。B(v)的值可通過以下公式計算得到B(v)=Σk=0itk+Σx=i+1ytxi+(y-i)×β]]>其中,i表示前綴末段編號,y表示后綴末段的編號,tk表示從流媒體服務(wù)器預(yù)取段k時所花的時間,上式的分子部分表示獲取影片v的所有段所需的時間總和,β表示后綴段大小與前綴段大小的比值,因此分母表示影片v包含多少個前綴段大小的單元。分析可知,B(v)表示從原始服務(wù)器獲得影片的一個段平均所需的時間。通過該值可以比較準(zhǔn)確的估算平均網(wǎng)絡(luò)延遲,也即估計出獲取影片的代價。S(v)就是緩存文件的大小。
置換管理子模塊22為緩存的每個流媒體對象計算置換因子之后,按置換因子大小對流媒體對象進(jìn)行升序排序,依次從頭開始淘汰流媒體對象的后綴段,直到有足夠的空間用來緩存新對象為止。
下面舉例說明本系統(tǒng)實(shí)施過程中的配置情況。
采用16個節(jié)點(diǎn)機(jī)構(gòu)建一個視頻點(diǎn)播系統(tǒng),包括一個客戶端、一個流媒體服務(wù)器,集群流媒體緩存代理服務(wù)器系統(tǒng)和客戶端。其基本配置如表1所示。
表1系統(tǒng)的配置例示

其中,一臺配置成為客戶端,一臺配置成為流媒體服務(wù)器,一臺主機(jī)作為控制節(jié)點(diǎn),其余13臺主機(jī)作為緩存節(jié)點(diǎn)。具體實(shí)施如下節(jié)點(diǎn)機(jī)1充當(dāng)客戶端,節(jié)點(diǎn)2為流媒體服務(wù)器,節(jié)點(diǎn)3為控制節(jié)點(diǎn),節(jié)點(diǎn)4至節(jié)點(diǎn)16充當(dāng)緩存節(jié)點(diǎn)。
流媒體服務(wù)器軟件采用蘋果公司的Darwin Streaming Server系統(tǒng),客戶端采用蘋果公司的QuickTime 6.0流媒體播放軟件。客戶端播放器中必須設(shè)定RTSP代理服務(wù)器地址為控制節(jié)點(diǎn)IP地址,以保證客戶端的RTSP請求能正確發(fā)送到控制節(jié)點(diǎn)。流媒體服務(wù)器Darwin Streaming Server系統(tǒng)中必須預(yù)先存放客戶端點(diǎn)播的影片。
權(quán)利要求
1.一種基于集群的流媒體緩存代理服務(wù)器系統(tǒng),包括控制結(jié)點(diǎn)(4)和緩存節(jié)點(diǎn)(5.1,5.2,…5.N);控制節(jié)點(diǎn)(4)用于對客戶端的RTSP請求進(jìn)行調(diào)度,在客戶端和緩存節(jié)點(diǎn)(5.1-5.N)之間轉(zhuǎn)發(fā)RTSP消息,并根據(jù)緩存節(jié)點(diǎn)(5.1-5.N)的緩存負(fù)載狀況實(shí)施全局緩存置換操作;緩存節(jié)點(diǎn)(5.1-5.N)用于接收控制節(jié)點(diǎn)(4)轉(zhuǎn)發(fā)的客戶端RTSP請求消息,它根據(jù)客戶端請求的影片內(nèi)容查看本機(jī)是否已緩存了該影片,在已緩存該影片的情況下,緩存節(jié)點(diǎn)(5.1-5.N)替代流媒體服務(wù)器(7)直接為客戶端提供流服務(wù),其發(fā)送的RTP數(shù)據(jù)流繞過控制節(jié)點(diǎn)(4)直接發(fā)送到客戶端;在緩存節(jié)點(diǎn)(5.1-5.N)未緩存影片的情況下,緩存節(jié)點(diǎn)(5.1-5.N)模擬客戶端的功能與流媒體服務(wù)器(7)交互,從服務(wù)器獲得該影片RTP流數(shù)據(jù),并在將RTP流數(shù)據(jù)轉(zhuǎn)發(fā)給客戶端(6)的同時,緩存這些數(shù)據(jù)到本機(jī)磁盤中。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于控制節(jié)點(diǎn)(4)包括連接管理模塊(12)、RTSP協(xié)議分析模塊(8)、調(diào)度模塊(9)、負(fù)載收集模塊(10)、全局置換模塊(11)、媒體對象定位表和緩存節(jié)點(diǎn)負(fù)載表;連接管理模塊(12)在Linux操作系統(tǒng)內(nèi)核實(shí)現(xiàn),它負(fù)責(zé)客戶端和緩存節(jié)點(diǎn)之間RTSP消息的轉(zhuǎn)發(fā),并為控制節(jié)點(diǎn)端負(fù)載收集模塊(10)和全局置換模塊(11)提供與緩存節(jié)點(diǎn)通信的UDP連接通道;RTSP協(xié)議分析模塊(8)負(fù)責(zé)從連接管理模塊(12)提供的應(yīng)用層數(shù)據(jù)中解析客戶端RTSP協(xié)議請求DESCRIBE命令并獲取其中的會話描述協(xié)議信息,并激活調(diào)度模塊(9),同時將流媒體對象名作為參數(shù)傳給該模塊分析;調(diào)度模塊(9)從RTSP協(xié)議分析模塊(8)獲得流媒體對象名,查找媒體對象定位表(13),如果從表中找到流媒體對象名和對應(yīng)的緩存節(jié)點(diǎn)記錄,說明客戶端請求的流媒體對象命中這個緩存節(jié)點(diǎn),否則說明新請求到來;在命中的情況下,調(diào)度模塊(9)激活連接管理模塊(12),并將緩存節(jié)點(diǎn)IP地址作為參數(shù)傳遞給該模塊,連接管理模塊(12)首先創(chuàng)建到該緩存節(jié)點(diǎn)的TCP連接,然后將客戶端IP地址添加到已提取出的應(yīng)用層數(shù)據(jù)末端,最后通過新建立的TCP連接將應(yīng)用層數(shù)據(jù)發(fā)送到該緩存節(jié)點(diǎn);在未命中的情況下,調(diào)度模塊(9)調(diào)用負(fù)載收集模塊(10)以獲得緩存節(jié)點(diǎn)當(dāng)前負(fù)載狀況,并激活連接管理模塊(12),連接管理模塊(12)與負(fù)載因子L最小的緩存節(jié)點(diǎn)建立主動TCP連接,之后,該模塊在提取出的應(yīng)用層數(shù)據(jù)末端添加客戶端IP地址,并通過新建立的TCP連接發(fā)送給該緩存節(jié)點(diǎn);負(fù)載收集模塊(10)負(fù)責(zé)定時與緩存節(jié)點(diǎn)通信,以獲得緩存節(jié)點(diǎn)最新負(fù)載信息、計算負(fù)載因子L,并及時更新緩存節(jié)點(diǎn)負(fù)載表(14);負(fù)責(zé)在一定數(shù)目的緩存節(jié)點(diǎn)的空間利用率達(dá)到預(yù)定閾值時,激活全局置換模塊(11);全局置換模塊(11)在系統(tǒng)緩存空間不足時,激活連接管理模塊(12),并通過連接管理模塊(12)向緩存節(jié)點(diǎn)發(fā)出全局置換命令,從已緩存對象中淘汰出流行度低的流媒體對象,以騰出部分空間來緩存新的對象。
3.根據(jù)權(quán)利要求1或2所述的系統(tǒng),其特征在于緩存節(jié)點(diǎn)(5)包括RTSP連接管理模塊(16)、RTP會話接收管理模塊(20)、RTP會話發(fā)送管理模塊(17)、緩存管理模塊(15)、負(fù)載監(jiān)視模塊(18)和全局置換接收模塊(19);RTSP連接管理模塊(16)通過控制節(jié)點(diǎn)(4)構(gòu)建和管理緩存節(jié)點(diǎn)(5)與客戶端間的RTSP消息會話,以及緩存節(jié)點(diǎn)(5)與流媒體服務(wù)器(7)間的RTSP消息會話;通過將兩端RTSP會話連接起來,保證了客戶端和流媒體服務(wù)器之間的RTSP交互能順利進(jìn)行;該模塊將消息通知與緩存管理模塊(15);RTP會話接收管理模塊(20)用于從流媒體服務(wù)器(7)接收RTP流數(shù)據(jù),并傳送緩存管理模塊(15);緩存管理模塊(15)為RTSP連接管理模塊(16)提供緩存命中性檢查,為RTP會話發(fā)送管理模塊(17)提供RTP流數(shù)據(jù),從RTP會話接收管理模塊(20)獲得RTP流數(shù)據(jù)并進(jìn)行緩存,為負(fù)載監(jiān)視模塊(18)提供緩存對象利用率和緩存空間利用率數(shù)據(jù),接收全局置換接收模塊(19)發(fā)來的置換命令進(jìn)行緩存置換操作;RTP會話發(fā)送管理模塊(17)用于將RTP流數(shù)據(jù)傳輸?shù)娇蛻舳?6);負(fù)載監(jiān)視模塊(18)負(fù)責(zé)接收控制節(jié)點(diǎn)端負(fù)載收集模塊(10)發(fā)來的負(fù)載收集命令,并與緩存管理模塊(15)通信以獲取緩存對象利用率和緩存空間占用率,并將負(fù)載收集結(jié)果發(fā)送到控制結(jié)點(diǎn)端負(fù)載收集模塊(10);全局置換接收模塊(19)負(fù)責(zé)接收控制節(jié)點(diǎn)端全局置換模塊(11)發(fā)來的全局置換命令,并調(diào)用緩存管理模塊(15)進(jìn)行本機(jī)緩存置換操作。
4.根據(jù)權(quán)利要求3所述的系統(tǒng),其特征在于緩存管理模塊(15)包括緩存文件管理子模塊(21)、元數(shù)據(jù)管理子模塊(25)、置換管理子模塊(22)、故障恢復(fù)子模塊(23)以及元數(shù)據(jù)表(24);其中緩存文件管理子模塊(21)用于構(gòu)建、維護(hù)和管理磁盤中的緩存目錄和文件結(jié)構(gòu);元數(shù)據(jù)表(24)用于保存系統(tǒng)元數(shù)據(jù)信息,包括影片元數(shù)據(jù)、段元數(shù)據(jù)和包元數(shù)據(jù);元數(shù)據(jù)管理子模塊(25)用于元數(shù)據(jù)的構(gòu)造和維護(hù);置換管理子模塊經(jīng)(22)用于接收全局置換接收模塊(19)發(fā)來的置換命令,并為緩存中每個流媒體對象計算置換因子,按照置換因子由小至大的順序淘汰緩存中的流媒體對象,直到獲得足夠的緩存空間緩存新對象為止;故障恢復(fù)子模塊(23)用于在系統(tǒng)崩潰重啟時讀取磁盤中的元文件,校驗元文件和流媒體對象數(shù)據(jù)的一致性,并恢復(fù)內(nèi)存中相應(yīng)的元數(shù)據(jù)管理信息。
5.根據(jù)權(quán)利要求3所述的系統(tǒng),其特征在于全局置換模塊(11)和全局置換接收模塊(19)采用下述全局置換策略進(jìn)行全局置換策略的第一步是控制節(jié)點(diǎn)負(fù)載收集模塊(10)定時向緩存節(jié)點(diǎn)負(fù)載監(jiān)視模塊(18)發(fā)出負(fù)載信息收集的請求,緩存節(jié)點(diǎn)收到請求后,按下述公式(1)和(2)統(tǒng)計緩存對象利用率U和緩存空間利用率V,并將這些值返回給負(fù)載收集模塊(10),負(fù)載收集模塊(10)首先用U和V更新緩存節(jié)點(diǎn)負(fù)載表(14)中各個緩存節(jié)點(diǎn)負(fù)載信息,再查看各緩存節(jié)點(diǎn)的V值大小,如果同時有90%以上的緩存節(jié)點(diǎn)V值大于一個預(yù)定的閾值Y,負(fù)載收集模塊(10)在所有V值大于Y的緩存節(jié)點(diǎn)中尋找U值小于閾值Z的緩存節(jié)點(diǎn),并激活全局置換模塊(11),同時將U值小于Z的緩存節(jié)點(diǎn)IP以參數(shù)的形式傳遞給全局置換模塊(11);U=O/T (1)V=S/P (2)其中,O為節(jié)點(diǎn)機(jī)當(dāng)前正在使用的緩存對象數(shù)目,T為已緩存對象總數(shù),S為已經(jīng)緩存文件大小,P為可用緩存空間大??;全局置換策略的第二步是緩存節(jié)點(diǎn)端全局置換接收模塊(19)收到控制節(jié)點(diǎn)端全局置換模塊發(fā)來的置換命令之后,激活緩存管理模塊(15)中的置換管理子模塊(22),該模塊針對緩存節(jié)點(diǎn)本地緩存中的每個流媒體對象計算置換因子R(v),計算公式如下R(v)=P(v)×B(v)S(v)]]>其中,P(v)表示影片v的流行度,B(v)表示緩存節(jié)點(diǎn)從流媒體服務(wù)器預(yù)取影片v時的平均網(wǎng)絡(luò)延遲,S(v)表示影片v所占用緩存空間大小。
6.根據(jù)權(quán)利要求3所述的系統(tǒng),其特征在于RTSP連接管理模塊(16)包括RTSP服務(wù)器子模塊(16.1)和RTSP客戶端子模塊(16.2);RTSP服務(wù)器子模塊(16.1)負(fù)責(zé)和控制節(jié)點(diǎn)建立TCP通道,經(jīng)由控制結(jié)點(diǎn)與客戶端交互建立RTSP會話,并管理維護(hù)RTSP會話;RTSP客戶端子模塊(16.2)則負(fù)責(zé)與流媒體服務(wù)器建立RTSP會話,以及管理和維護(hù)RTSP會話。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于RTP會話接收管理模塊(20)分為RTP音頻接收子模塊(20.1)和RTP視頻接收子模塊(20.2);RTP會話發(fā)送管理模塊(17)分為RTP音頻發(fā)送子模塊(17.1)和RTP視頻發(fā)送子模塊(17.2)。
全文摘要
本發(fā)明公開了一種集群流媒體緩存代理服務(wù)器系統(tǒng),包括控制節(jié)點(diǎn)和緩存節(jié)點(diǎn)??刂乒?jié)點(diǎn)在Linux內(nèi)核層實(shí)現(xiàn),包括連接管理模塊、調(diào)度模塊、負(fù)載收集模塊和全局置換模塊。緩存節(jié)點(diǎn)則包括RTSP連接管理模塊、RTP會話管理模塊、緩存管理模塊、負(fù)載監(jiān)視模塊以及全局置換接收模塊。本系統(tǒng)充分利用集群體系結(jié)構(gòu)所具備的優(yōu)勢,實(shí)現(xiàn)了由集群內(nèi)各個緩存節(jié)點(diǎn)緩存空間所構(gòu)成的邏輯上的全局緩存空間,提高了緩存空間管理和使用的效率;系統(tǒng)實(shí)現(xiàn)了一種基于邏輯段的前后綴結(jié)合的緩存管理策略,該策略綜合了基于邏輯段的緩存技術(shù)和前綴緩存技術(shù)的優(yōu)點(diǎn),能有效地提高緩存管理效率。本系統(tǒng)與現(xiàn)有的流媒體緩存代理服務(wù)器系統(tǒng)相比,具有能同時支持更多的并發(fā)流、系統(tǒng)可擴(kuò)展性好、能緩存的流媒體文件格式多及緩存管理效率高等優(yōu)點(diǎn)。
文檔編號H04N7/173GK1595905SQ200410013419
公開日2005年3月16日 申請日期2004年7月4日 優(yōu)先權(quán)日2004年7月4日
發(fā)明者金海 , 楊志玲, 范開欽, 儲杰, 韓宗芬 申請人:華中科技大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1