本發(fā)明涉及互聯(lián)網(wǎng)直播技術領域,特別涉及一種在對等網(wǎng)絡中、應用于流媒體直播的系統(tǒng)及節(jié)點管理方法。
背景技術:
對等網(wǎng)絡傳輸技術,即p2p(peer-to-peer)技術,是近年來興起的新型通訊網(wǎng)絡傳輸技術。它在傳輸方式上打破了傳統(tǒng)網(wǎng)絡的服務器/客戶端(c/s)模式,建立了一種客戶端對客戶端的直接通信機制。在對等網(wǎng)絡中,每一節(jié)點既作為客戶端,又充當他人的服務端,從某種意義上,每一節(jié)點都處在同等地位。對等網(wǎng)絡是對分布式概念的成功拓展,它將傳統(tǒng)方式下的服務器負擔分配到網(wǎng)絡中的每一節(jié)點上,不僅可以大大減輕服務器處理壓力,也能節(jié)省大量的cdn流量成本。
對等網(wǎng)絡中,一個節(jié)點(peer)會從節(jié)點管理服務器(tracker)獲取很多其它節(jié)點的信息,從而跟它們建立連接來獲取數(shù)據(jù)。在現(xiàn)有基于p2p的流媒體直播應用中,特別是低延遲的流媒體直播應用,對節(jié)點質(zhì)量的好壞要求更高,而目前技術主要還是依靠節(jié)點管理服務器(tracker)進行推薦,但是節(jié)點管理服務器(tracker)推薦的節(jié)點不能時刻保持很好的質(zhì)量,如果播放過程中,某個節(jié)點的質(zhì)量不高,直播系統(tǒng)不能自動識別而仍繼續(xù)使用,則會導致流媒體直播應用時的p2p分享率整體不高,資源調(diào)配效率低下,進而影響用戶體驗感。
技術實現(xiàn)要素:
為了解決現(xiàn)有技術的問題,本發(fā)明實施例提供了一種對等網(wǎng)絡中的直播系統(tǒng)及節(jié)點管理方法。
一方面,對等網(wǎng)絡中的直播系統(tǒng),包括至少一個節(jié)點和第一服務器,其中:
所述第一服務器用于使所述節(jié)點之間建立連接,以使所述節(jié)點之間共享節(jié)點信息;以及
所述節(jié)點配置有評估模塊和淘汰模塊,所述評估模塊根據(jù)所述節(jié)點信息計算分析所述節(jié)點的健康值,并反饋至所述淘汰模塊以選擇繼續(xù)使用或淘汰被評估的節(jié)點。
另一方面,本發(fā)明實施例還提供了一種節(jié)點管理方法,包括以下步驟:節(jié)點之間建立連接,以使所述節(jié)點共享節(jié)點信息,其中,所述節(jié)點信息包括所述節(jié)點之間建立連接的節(jié)點初始值與所述節(jié)點接收到切片的時間;根據(jù)所述節(jié)點信息,計算分析所述節(jié)點的健康值;以及根據(jù)計算分析結果選擇繼續(xù)使用或淘汰所述節(jié)點。
另一方面,本發(fā)明還提供了一種對等網(wǎng)絡中的直播系統(tǒng),所述系統(tǒng)包括存儲器,所述存儲器所存儲的指令用于執(zhí)行上述節(jié)點管理方法。
另一方面,本發(fā)明還提供了一種對等網(wǎng)絡中的直播系統(tǒng),所述系統(tǒng)包括處理器,所述處理器用于執(zhí)行上述節(jié)點管理方法。
另一方面,本發(fā)明還提供了一種對等網(wǎng)絡中的直播系統(tǒng),包括:至少一個節(jié)點,所述節(jié)點之間相連并共享節(jié)點信息;評估模塊,所述評估模塊配置在節(jié)點中,根據(jù)共享的所述節(jié)點信息計算分析與所在節(jié)點相連接的節(jié)點的健康值;以及淘汰模塊,所述淘汰模塊接收所述評估模塊的反饋結果并確定是否繼續(xù)使用或淘汰被評估的節(jié)點。
本發(fā)明的直播系統(tǒng),包括用于使節(jié)點之間建立連接并進而共享節(jié)點信息的第一服務器,以及用于評估節(jié)點健康值的評估模塊和用于淘汰質(zhì)量差的節(jié)點的淘汰模塊。評估模塊主要根據(jù)節(jié)點信息,計算和分析節(jié)點健康值,并將評估結果反饋至淘汰模塊,以便淘汰模塊確定是否繼續(xù)使用或者淘汰被評估的節(jié)點。本發(fā)明的直播系統(tǒng)及節(jié)點管理方法,可以在較多的節(jié)點中快速篩選并淘汰質(zhì)量差的節(jié)點,使質(zhì)量好的節(jié)點相連并獲取數(shù)據(jù),提高對等網(wǎng)絡的分享率,從而改善用戶體驗。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明的第一實施例提供的直播系統(tǒng)的結構示意圖。
圖2為本發(fā)明的第一實施例提供的節(jié)點管理方法的步驟的流程圖。
圖3為本發(fā)明的第一實施例提供的直播系統(tǒng)中的服務器與模塊的示意圖。
圖4為本發(fā)明的第二實施例提供的模塊示意圖。
附圖標記說明:
第一服務器-10;第二服務器-20;發(fā)送模塊-21;第三服務器-30;第四服務器-40;節(jié)點-50、50a、50b;接收模塊-51;評估模塊-52;淘汰模塊-53;發(fā)送模塊-100;接收模塊-200;評估模塊-300;淘汰模塊-400。
具體實施方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明實施方式作進一步地詳細描述。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
以下將對本發(fā)明所提供的對等網(wǎng)絡中的直播系統(tǒng)及其方法進行詳細說明。
請參考圖1至圖3,繪示了本發(fā)明的第一實施例所提供的直播系統(tǒng)及節(jié)點管理方法。結合圖1和圖3所示,為在對等網(wǎng)絡中直播應用的直播系統(tǒng),所述直播系統(tǒng)主要包括第一服務器10、第二服務器20、第三服務器30、第四服務器40以及兩個節(jié)點50a和50b。
第一服務器10本質(zhì)上是一種穿透服務器,例如openrtmfp服務器,openrtmfp服務器是一個完全開源和跨平臺的可擴展的rtmfp服務器腳本,用于協(xié)助兩個節(jié)點50a和50b建立連接;當然,第一服務器10也可以是實現(xiàn)相應功能的其它服務器,例如stun穿透服務器。第一服務器10能夠使兩個節(jié)點50a和50b之間建立連接,以使這兩個節(jié)點50a和50b之間共享節(jié)點信息。
第二服務器20對所有的節(jié)點50a和50b進行管理,包括發(fā)送模塊21。發(fā)送模塊21可以根據(jù)客戶端請求,首先向節(jié)點50a和50b發(fā)送節(jié)點列表。所述節(jié)點列表是實時的。
第三服務器30是一種切片服務器,用于根據(jù)直播流中的時間戳切片直播流。第三服務器30的主要工作原理為:開始切片直播流時,先獲取當前的系統(tǒng)時間,即初始的系統(tǒng)時間t0。直播流里的時間戳都是從0開始,然后直播流里的時間戳每增加δt就切一個文件片,把系統(tǒng)時間加上當前時間戳的值t0+δt作為該切片的文件名,作為當前切片文件編號,即最新切片文件編號所代表的時間為t0+δt。切直播流里時間戳為0~nms的數(shù)據(jù)生成的第一個切片命名為1.flv,切直播流里時間戳為n~(n+1)ms的數(shù)據(jù)生成的第二個切片命名為2.flv,以此類推。h為大于0的正整數(shù),ms為時間單位。
第四服務器40為cdn服務器,可以接收來自第三服務器30的切片文件,然后向節(jié)點50a和50b分發(fā)所述切片文件。節(jié)點50a和50b需要補片時,向第四服務器40請求數(shù)據(jù)。
每個節(jié)點50a和50b都可以配置有接收模塊51、評估模塊52和淘汰模塊53。以節(jié)點50a為例,接收模塊51用于接收第二服務器20中的發(fā)送模塊21所發(fā)送的節(jié)點列表以及接收與其連接的節(jié)點共享的節(jié)點信息。評估模塊52主要根據(jù)節(jié)點信息計算分析節(jié)點50b的健康值,并反饋至淘汰模塊53。需要說明的是,本實施例中的評估模塊52用于評估與該評估模塊所在節(jié)點相連接的對應節(jié)點,即,節(jié)點50a所在的評估模塊52不是評估自身所在的節(jié)點50a,而是評估與節(jié)點50a相連接的另一節(jié)點50b的健康值。評估模塊52根據(jù)直播流切片時的最新切片文件編號所代表的時間和節(jié)點信息計算分析節(jié)點50b的健康值,節(jié)點信息包括所述節(jié)點之間建立連接的節(jié)點初始值與所述節(jié)點接收到切片的時間。節(jié)點初始值,即每兩個節(jié)點(50a與50b)之間連接建立后,對被評估的節(jié)點50b預先設定的初始健康值。所述初始健康值不是固定不變的,可以根據(jù)實際情況進行調(diào)整。
請參考圖2和圖3,理解本發(fā)明第一實施例的直播系統(tǒng)的節(jié)點管理方法的具體流程。
步驟s101,第二服務器20發(fā)送具有實時的節(jié)點列表。
步驟s102,第一服務器10使每兩個節(jié)點50a和50b之間建立連接,并使節(jié)點50a和50b之間共享節(jié)點信息。
步驟s103,第三服務器30根據(jù)直播流中的時間戳切片直播流,并獲取當前的系統(tǒng)時間。第三服務器30的具體工作過程可以參考上述,在此不再贅述。
步驟s104,假設要評估的節(jié)點是50b,則節(jié)點50b每接收到一個切片,就記錄一次接收時間。
步驟s105,節(jié)點50a的評估模塊52根據(jù)上述最新切片文件編號所代表的時間和節(jié)點信息計算分析節(jié)點50b的健康值,節(jié)點信息具體包括節(jié)點初始值和節(jié)點接收到切片的時間的節(jié)點信息。
步驟s106,評估模塊52將計算和分析的結果反饋至淘汰模塊53。如果被評估節(jié)點50b的健康值較高,則滿足質(zhì)量要求,淘汰模塊53不淘汰節(jié)點50b,繼續(xù)進行使用;如果被評估節(jié)點50b的健康值較低,則不滿足質(zhì)量要求,淘汰模塊53淘汰節(jié)點50b。
評估模塊52的估算方法為,假設節(jié)點健康值為q,節(jié)點初始值為n,m為節(jié)點接收到切片的時間與最新切片文件編號所代表的時間的差值。計算時間是,每當節(jié)點50a和/或50b接收一個切片后就重新加權計算健康值。節(jié)點健康值q大致等于節(jié)點初始值n與差值m的加權平均值。必要時,可以引入某個平滑因子進行計算以提高健康值的精確度。節(jié)點淘汰是根據(jù)權重值的高低進行淘汰,或者預先設置一個閾值,將計算得來的q值與所述閾值進行比較,分析是否達到閾值,以確定是否被淘汰或繼續(xù)使用。上述的評估方法僅僅是示例,可以根據(jù)實際使用情況進行調(diào)整,包括計算方式和計算對象等。
步驟s107,節(jié)點50通過http請求從第二服務器20獲取一批新的節(jié)點,這批新的節(jié)點繼續(xù)進行s101~s106的流程,如此循環(huán)往復。
本發(fā)明的第一實施例舉兩個節(jié)點50a和50b為例,僅僅是為了說明,當然,實際情況中并不限于兩個節(jié)點??梢岳斫獾氖?,節(jié)點的淘汰或推薦結果不是固定不變的,可以根據(jù)節(jié)點的實時狀況進行動態(tài)改變。
本發(fā)明的第一實施例提供的直播系統(tǒng),包括用于使節(jié)點之間建立連接進而共享節(jié)點信息的第一服務器,用于發(fā)送節(jié)點列表的第二服務器,對直播流切片的第三服務器,向節(jié)點分發(fā)切片文件的第四服務器,以及用于主要根據(jù)共享的節(jié)點信息評估節(jié)點健康值的評估模塊和用于根據(jù)評估結果以繼續(xù)使用或淘汰被評估節(jié)點的淘汰模塊。第一實施例的節(jié)點管理方法,首先使節(jié)點之間建立連接以使節(jié)點之間共享節(jié)點信息,評估模塊主要根據(jù)所述節(jié)點信息,計算和分析相應節(jié)點的健康值,再將分析結果反饋至淘汰模塊,以此確定是否繼續(xù)使用或淘汰被評估的節(jié)點。節(jié)點信息依賴于第三服務器的切片服務,第二服務器的連接服務以及第四服務器的分發(fā)服務。本發(fā)明第一實施例所提供的直播系統(tǒng)和節(jié)點管理方法,可以在較多的節(jié)點中快速篩選并淘汰質(zhì)量差的節(jié)點,使質(zhì)量好的節(jié)點相連并獲取數(shù)據(jù),提高對等網(wǎng)絡的分享率,從而改善用戶體驗。節(jié)點的淘汰推薦結果并非固定不變的,可以根據(jù)實際情況進行調(diào)整,提高了直播系統(tǒng)的資源利用效率。評估模塊可以分別配置在每個節(jié)點中,也提高了評估效率。
本發(fā)明的第二實施例,請參考圖4所示。第二實施例所提供的直播系統(tǒng),主要包括多個節(jié)點50、發(fā)送模塊100、接收模塊200、評估模塊300和淘汰模塊400。
其中,發(fā)送模塊100用于根據(jù)客戶端響應,發(fā)送所有節(jié)點50實時的節(jié)點列表。接收模塊200用于接收所述發(fā)送模塊所發(fā)送的所述節(jié)點列表和相連接的節(jié)點共享的節(jié)點信息。評估模塊300主要根據(jù)節(jié)點信息計算分析所述節(jié)點的健康值,并反饋至淘汰模塊400。淘汰模塊400根據(jù)反饋結果來確定是否繼續(xù)使用被評估的節(jié)點或者淘汰所述節(jié)點。節(jié)點信息與本發(fā)明上述實施例中的相同,評估模塊400的評估原理也與上述實施例中的相同,在此不再贅述。
本發(fā)明的第二實施例提供的直播系統(tǒng),包括1至n個相連并共享節(jié)點信息的節(jié)點50(n為大于0的正整數(shù))、用于確定繼續(xù)使用或淘汰節(jié)點的淘汰模塊,以及用于根據(jù)共享的節(jié)點信息評估節(jié)點健康值的評估模塊。評估模塊主要根據(jù)所述節(jié)點信息,計算和分析相應節(jié)點的健康值,再將分析結果反饋至淘汰模塊,以此確定是否推薦或淘汰被評估的節(jié)點。本發(fā)明的第二實施例中的發(fā)送模塊100、接收模塊200、評估模塊300和淘汰模塊400的功能與本發(fā)明第一實施例中的發(fā)送模塊21、接收模塊51、評估模塊52和淘汰模塊53的功能相似,在此不再贅述。本發(fā)明第二實施例所提供的直播系統(tǒng),不拘泥于具體的服務器配置和架構,接收模塊200、評估模塊300和淘汰模塊400沒有限定一定要配置在節(jié)點50中。本發(fā)明第二實施例所提供的直播系統(tǒng),可以在較多的節(jié)點中快速篩選并淘汰質(zhì)量差的節(jié)點,使質(zhì)量好的節(jié)點相連并獲取數(shù)據(jù),提高對等網(wǎng)絡的分享率,從而改善用戶體驗。評估模塊可以分別配置在每個節(jié)點中,也提高了評估效率。
本發(fā)明的第三實施例,還提供了一種直播系統(tǒng),所述直播系統(tǒng)包括存儲器,所述存儲器所存儲的指令用于執(zhí)行上述直播方法中的步驟s101~s107。
本發(fā)明的第四實施例,還提供了一種直播系統(tǒng),所述直播系統(tǒng)包括處理器,所述處理器用于執(zhí)行上述直播方法中的步驟s101~s107。
以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領域普通技術人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實施。
通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件?;谶@樣的理解,上述技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在計算機可讀存儲介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行各個實施例或者實施例的某些部分所述的方法。
以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。