專利名稱:在p2p流媒體系統(tǒng)中查找活動(dòng)節(jié)點(diǎn)的方法、系統(tǒng)及設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及點(diǎn)對(duì)點(diǎn)(Peer-to-Peer,P2P)技術(shù),尤其涉及一種在P2P流媒體系統(tǒng)中 查找活動(dòng)節(jié)點(diǎn)的方法、系統(tǒng)及設(shè)備。
背景技術(shù):
P2P系統(tǒng)以其良好的可自治性、可靠性、可伸縮性和低成本等優(yōu)點(diǎn),成為開展流媒 體業(yè)務(wù)的理想平臺(tái)。在基于追蹤設(shè)備的P2P(Tracker-based P2P)系統(tǒng)中存在大量的追蹤 設(shè)備(Tracker),針對(duì)不同的播放頻道,每個(gè)Tracker緩存與對(duì)應(yīng)的數(shù)據(jù)相關(guān)的種子文件和 實(shí)時(shí)媒體數(shù)據(jù)流的持有節(jié)點(diǎn)和下載節(jié)點(diǎn)的IP地址及路由信息等節(jié)點(diǎn)信息,新加入P2P流媒 體系統(tǒng)的節(jié)點(diǎn)也需要不斷與Tracker進(jìn)行通信,以上報(bào)自身的節(jié)點(diǎn)信息以及從Tracker處 獲取其他節(jié)點(diǎn)的信息。P2P流媒體系統(tǒng)中的節(jié)點(diǎn)可以向Tracker發(fā)送節(jié)點(diǎn)列表請(qǐng)求(Peerlistrequest), 表示希望從其他節(jié)點(diǎn)中下載數(shù)據(jù)。發(fā)送Peerlist請(qǐng)求的節(jié)點(diǎn)稱之為請(qǐng)求節(jié)點(diǎn),為該請(qǐng)求節(jié) 點(diǎn)提供下載數(shù)據(jù)的節(jié)點(diǎn)稱之為活動(dòng)節(jié)點(diǎn)。在現(xiàn)有的Tracker-based P2P系統(tǒng)中,請(qǐng)求節(jié)點(diǎn) 查找活動(dòng)節(jié)點(diǎn)的過程如圖1所示,主要包括如下步驟第一步請(qǐng)求節(jié)點(diǎn)(Peer_l)向Tracker發(fā)送Peerlist請(qǐng)求,Tracker根據(jù)已緩存 的節(jié)點(diǎn)信息選擇多個(gè)節(jié)點(diǎn),并將選擇的多個(gè)節(jié)點(diǎn)的節(jié)點(diǎn)信息寫入Peerlist列表后,返回給 請(qǐng)求節(jié)點(diǎn)。在本步驟中,Tracker可以根據(jù)已緩存的節(jié)點(diǎn)信息確定對(duì)應(yīng)的節(jié)點(diǎn),并從中隨機(jī)選 擇一定數(shù)量的節(jié)點(diǎn),也可以根據(jù)地理位置接近的原則,選擇與請(qǐng)求節(jié)點(diǎn)位置比較接近的節(jié) 點(diǎn)。例如,如果根據(jù)請(qǐng)求節(jié)點(diǎn)的IP地址確定請(qǐng)求節(jié)點(diǎn)歸屬區(qū)域?yàn)楸本┑貐^(qū),則Tracker可 以根據(jù)已緩存的IP地址選擇歸屬區(qū)域是北京地區(qū)的節(jié)點(diǎn),如圖1中選擇Peer_2、Peer_3, Peer_4 禾口 Peer_5。第二步請(qǐng)求節(jié)點(diǎn)接收到Peerlist列表后,分別向Peerlist列表中的節(jié)點(diǎn)發(fā)送探 測消息和查詢消息,最終確定一個(gè)節(jié)點(diǎn)作為活動(dòng)節(jié)點(diǎn),并從確定的活動(dòng)節(jié)點(diǎn)處下載需要的 數(shù)據(jù)。在現(xiàn)有的Tracker-based P2P系統(tǒng)中查找活動(dòng)節(jié)點(diǎn)的方式下,由于Tracker預(yù)先 不知道系統(tǒng)中各節(jié)點(diǎn)所處網(wǎng)絡(luò)的性質(zhì),僅按照節(jié)點(diǎn)的物理地址對(duì)節(jié)點(diǎn)進(jìn)行粗略選擇,因此, 請(qǐng)求節(jié)點(diǎn)接收到的Peerlist列表中的節(jié)點(diǎn)信息對(duì)應(yīng)的節(jié)點(diǎn)很可能是傳輸數(shù)據(jù)的速度較慢 的節(jié)點(diǎn),當(dāng)這些傳輸數(shù)據(jù)的速度較慢的節(jié)點(diǎn)成為請(qǐng)求節(jié)點(diǎn)的活動(dòng)節(jié)點(diǎn)時(shí),會(huì)使得數(shù)據(jù)傳輸 效率較低,進(jìn)而導(dǎo)致請(qǐng)求節(jié)點(diǎn)播放流媒體數(shù)據(jù)的平均時(shí)延增大。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種在P2P流媒體系統(tǒng)中查找活動(dòng)節(jié)點(diǎn)的方法、系統(tǒng)、追蹤設(shè) 備以及節(jié)點(diǎn)設(shè)備,以解決在確定活動(dòng)節(jié)點(diǎn)的過程中,Peerlist列表中的節(jié)點(diǎn)信息對(duì)應(yīng)的節(jié) 點(diǎn)傳輸速度較低時(shí),導(dǎo)致數(shù)據(jù)傳輸效率較低的問題。
一種在P2P流媒體系統(tǒng)中查找活動(dòng)節(jié)點(diǎn)的方法,可選節(jié)點(diǎn)向追蹤設(shè)備Tracker上 報(bào)所處網(wǎng)絡(luò)的信息;所述查找活動(dòng)節(jié)點(diǎn)的方法包括Tracker接收請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表請(qǐng)求后,根據(jù)可選節(jié)點(diǎn)所處網(wǎng)絡(luò)的信息確 定處于有線網(wǎng)絡(luò)的可選節(jié)點(diǎn)個(gè)數(shù),若處于有線網(wǎng)絡(luò)的可選節(jié)點(diǎn)個(gè)數(shù)不小于需要的候選節(jié)點(diǎn) 個(gè)數(shù),則從處于有線網(wǎng)絡(luò)的可選節(jié)點(diǎn)中選擇候選節(jié)點(diǎn);若處于有線網(wǎng)絡(luò)的可選節(jié)點(diǎn)個(gè)數(shù)小于需要的候選節(jié)點(diǎn)個(gè)數(shù),則將處于有線網(wǎng)絡(luò)的 所有可選節(jié)點(diǎn)和至少一個(gè)處于無線網(wǎng)絡(luò)的可選節(jié)點(diǎn)作為候選節(jié)點(diǎn);Tracker將選擇的候選節(jié)點(diǎn)的節(jié)點(diǎn)信息通過節(jié)點(diǎn)列表返回給請(qǐng)求節(jié)點(diǎn),指示所述 請(qǐng)求節(jié)點(diǎn)根據(jù)節(jié)點(diǎn)列表中的節(jié)點(diǎn)信息確定至少一個(gè)候選節(jié)點(diǎn)作為活動(dòng)節(jié)點(diǎn)。一種在P2P流媒體系統(tǒng)中查找活動(dòng)節(jié)點(diǎn)的系統(tǒng),所述系統(tǒng)包括可選節(jié)點(diǎn),用于向Tracker上報(bào)所處網(wǎng)絡(luò)的信息;請(qǐng)求節(jié)點(diǎn),用于向Tracker發(fā)送節(jié)點(diǎn)列表請(qǐng)求,并根據(jù)Tracker返回的節(jié)點(diǎn)列表中 的節(jié)點(diǎn)信息,確定至少一個(gè)候選節(jié)點(diǎn)作為活動(dòng)節(jié)點(diǎn);Tracker,用于在接收到節(jié)點(diǎn)列表請(qǐng)求后,根據(jù)可選節(jié)點(diǎn)所處網(wǎng)絡(luò)的信息確定處于 有線網(wǎng)絡(luò)的可選節(jié)點(diǎn)個(gè)數(shù),若處于有線網(wǎng)絡(luò)的可選節(jié)點(diǎn)個(gè)數(shù)不小于需要的候選節(jié)點(diǎn)個(gè)數(shù), 則從處于有線網(wǎng)絡(luò)的可選節(jié)點(diǎn)中選擇候選節(jié)點(diǎn);若處于有線網(wǎng)絡(luò)的可選節(jié)點(diǎn)個(gè)數(shù)小于需要的候選節(jié)點(diǎn)個(gè)數(shù),則將處于有線網(wǎng)絡(luò)的 所有可選節(jié)點(diǎn)和至少一個(gè)處于無線網(wǎng)絡(luò)的可選節(jié)點(diǎn)作為候選節(jié)點(diǎn),以及將選擇的候選節(jié)點(diǎn) 的節(jié)點(diǎn)信息通過節(jié)點(diǎn)列表返回給請(qǐng)求節(jié)點(diǎn)。一種追蹤設(shè)備,應(yīng)用于P2P流媒體系統(tǒng)中,所述追蹤設(shè)備包括信息接收模塊,用于接收可選節(jié)點(diǎn)上報(bào)的所處網(wǎng)絡(luò)的信息;請(qǐng)求接收模塊,用于接收節(jié)點(diǎn)列表請(qǐng)求;選擇模塊,用于根據(jù)可選節(jié)點(diǎn)所處網(wǎng)絡(luò)的信息確定處于有線網(wǎng)絡(luò)的可選節(jié)點(diǎn)個(gè) 數(shù),若處于有線網(wǎng)絡(luò)的可選節(jié)點(diǎn)個(gè)數(shù)不小于需要的候選節(jié)點(diǎn)個(gè)數(shù),則從處于有線網(wǎng)絡(luò)的可 選節(jié)點(diǎn)中選擇候選節(jié)點(diǎn);若處于有線網(wǎng)絡(luò)的可選節(jié)點(diǎn)個(gè)數(shù)小于需要的候選節(jié)點(diǎn)個(gè)數(shù),則將處于有線網(wǎng)絡(luò)的 所有可選節(jié)點(diǎn)和至少一個(gè)處于無線網(wǎng)絡(luò)的可選節(jié)點(diǎn)作為候選節(jié)點(diǎn);列表發(fā)送模塊,用于將選擇的候選節(jié)點(diǎn)的節(jié)點(diǎn)信息通過節(jié)點(diǎn)列表返回給請(qǐng)求節(jié)
點(diǎn)ο一種節(jié)點(diǎn)設(shè)備,所述節(jié)點(diǎn)設(shè)備包括信息上報(bào)模塊,用于向Tracker上報(bào)所處網(wǎng)絡(luò)的信息;數(shù)據(jù)輸出模塊,用于根據(jù)其他節(jié)點(diǎn)設(shè)備的請(qǐng)求向其他節(jié)點(diǎn)設(shè)備上載數(shù)據(jù)。由于本發(fā)明方案中,Tracker為請(qǐng)求節(jié)點(diǎn)確定候選節(jié)點(diǎn)時(shí),根據(jù)所處網(wǎng)絡(luò)的性質(zhì)對(duì) 可選節(jié)點(diǎn)進(jìn)行了篩選,優(yōu)先選擇所處網(wǎng)絡(luò)為有線網(wǎng)絡(luò)的節(jié)點(diǎn),考慮到在一般情況下,處于有 線網(wǎng)絡(luò)的節(jié)點(diǎn)傳輸速度較快,因此,請(qǐng)求節(jié)點(diǎn)根據(jù)Peerlist列表中的節(jié)點(diǎn)信息確定的活動(dòng) 節(jié)點(diǎn)的數(shù)據(jù)傳輸速度相對(duì)較高,提高了數(shù)據(jù)傳輸?shù)男?,減少了請(qǐng)求節(jié)點(diǎn)播放流媒體數(shù)據(jù) 的時(shí)延。
圖1為現(xiàn)有的查找活動(dòng)節(jié)點(diǎn)示意圖;圖2為本發(fā)明實(shí)施例一中在P2P流媒體系統(tǒng)中查找活動(dòng)節(jié)點(diǎn)的方法示意圖;圖3(a)和圖3(b)為本發(fā)明實(shí)施例二中可選節(jié)點(diǎn)的在線時(shí)長示意圖;圖4為本發(fā)明實(shí)施例五中請(qǐng)求節(jié)點(diǎn)和候選節(jié)點(diǎn)的bitmap示意圖;圖5為本發(fā)明實(shí)施例十二中在P2P流媒體系統(tǒng)中查找活動(dòng)節(jié)點(diǎn)的系統(tǒng)示意圖;圖6為本發(fā)明實(shí)施例十三中追蹤設(shè)備示意圖;圖7為本發(fā)明實(shí)施例十四中節(jié)點(diǎn)設(shè)備示意圖。
具體實(shí)施例方式為了實(shí)現(xiàn)本發(fā)明目的,本發(fā)明對(duì)Tracker進(jìn)行了改造,使Tracker在接收到請(qǐng)求節(jié) 點(diǎn)發(fā)送的節(jié)點(diǎn)列表請(qǐng)求后,并不是盲目地將P2P系統(tǒng)中的其他節(jié)點(diǎn)以IP地址為依據(jù)進(jìn)行劃 分后選擇候選節(jié)點(diǎn),而是進(jìn)一步對(duì)P2P系統(tǒng)中的其他節(jié)點(diǎn)按照所處網(wǎng)絡(luò)的性質(zhì)進(jìn)行篩選, 優(yōu)先選擇所處網(wǎng)絡(luò)是有線網(wǎng)絡(luò)的節(jié)點(diǎn)。這樣做的目的是由于處于有線網(wǎng)絡(luò)中的節(jié)點(diǎn)的數(shù) 據(jù)傳輸速度一般高于處于無線網(wǎng)絡(luò)的節(jié)點(diǎn),因此,請(qǐng)求節(jié)點(diǎn)從Peerlist中選擇的活動(dòng)節(jié)點(diǎn) 處下載數(shù)據(jù)的效率較高。本發(fā)明實(shí)施例中涉及的Tracker可以是在現(xiàn)有Tracker的基礎(chǔ)上改造后的設(shè)備, 也可以是具有本發(fā)明實(shí)施例需要的相關(guān)功能的設(shè)備。下面結(jié)合說明書附圖對(duì)本發(fā)明實(shí)施例進(jìn)行詳細(xì)描述。實(shí)施例一如圖2所示,為本發(fā)明實(shí)施例一中在P2P流媒體系統(tǒng)中查找活動(dòng)節(jié)點(diǎn)的方法示意 圖,所述方法包括以下步驟步驟101 可選節(jié)點(diǎn)向Tracker上報(bào)自身所處網(wǎng)絡(luò)的信息。在本實(shí)施例中,可選節(jié)點(diǎn)可以在登錄Tracker時(shí),向Tracker上報(bào)自身的相關(guān)信 息,如IP地址、端口號(hào)和自身所處網(wǎng)絡(luò)的信息等。為了讓Tracker獲知可選節(jié)點(diǎn)所述的網(wǎng) 絡(luò),可選節(jié)點(diǎn)可以直接上報(bào)所處網(wǎng)絡(luò)的標(biāo)識(shí),也可以上報(bào)與所處網(wǎng)絡(luò)的性質(zhì)相關(guān)的參數(shù),由 Tracker根據(jù)相關(guān)的參數(shù)確定可選節(jié)點(diǎn)所處的網(wǎng)絡(luò)。在本發(fā)明各實(shí)施例中涉及的有線網(wǎng)絡(luò)包括但不限于通過光纜、網(wǎng)線等方式接入 的網(wǎng)絡(luò);無線網(wǎng)絡(luò)包括但不限于無線局域網(wǎng)(WLAN)網(wǎng)絡(luò)、移動(dòng)互聯(lián)網(wǎng)絡(luò)(包括通用分組 無線業(yè)務(wù)(GPRS)網(wǎng)絡(luò)、邊界(EDGE)網(wǎng)絡(luò)、3G網(wǎng)絡(luò)、無線寬帶(WIFI)網(wǎng)絡(luò)、長期演進(jìn)標(biāo)準(zhǔn) (LTE)網(wǎng)絡(luò)等其他同等性質(zhì)網(wǎng)絡(luò))。步驟102 =Tracker接收請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表請(qǐng)求。在所述節(jié)點(diǎn)列表請(qǐng)求中可以攜帶請(qǐng)求節(jié)點(diǎn)的相關(guān)信息,如IP地址、端口號(hào)以及請(qǐng) 求節(jié)點(diǎn)所處網(wǎng)絡(luò)的信息等。步驟103 =Tracker根據(jù)可選節(jié)點(diǎn)所處網(wǎng)絡(luò)的信息確定處于有線網(wǎng)絡(luò)的可選節(jié)點(diǎn) 個(gè)數(shù),在處于有線網(wǎng)絡(luò)的可選節(jié)點(diǎn)個(gè)數(shù)不同時(shí)采用不同的選擇候選節(jié)點(diǎn)的方式。若處于有線網(wǎng)絡(luò)的可選節(jié)點(diǎn)個(gè)數(shù)不小于需要的候選節(jié)點(diǎn)個(gè)數(shù),則從處于有線網(wǎng)絡(luò) 的可選節(jié)點(diǎn)中選擇候選節(jié)點(diǎn);若處于有線網(wǎng)絡(luò)的可選節(jié)點(diǎn)個(gè)數(shù)小于需要的節(jié)點(diǎn)個(gè)數(shù),則將 處于有線網(wǎng)絡(luò)的所有可選節(jié)點(diǎn)和至少一個(gè)處于無線網(wǎng)絡(luò)的可選節(jié)點(diǎn)作為候選節(jié)點(diǎn)。選擇的候選節(jié)點(diǎn)個(gè)數(shù)可以剛好等于需要的候選節(jié)點(diǎn)個(gè)數(shù),如果可選節(jié)點(diǎn)的條件較好,實(shí)際選擇的 候選節(jié)點(diǎn)個(gè)數(shù)也可以多于需要的候選節(jié)點(diǎn)個(gè)數(shù),如果可選節(jié)點(diǎn)的條件較差,實(shí)際選擇的候 選節(jié)點(diǎn)個(gè)數(shù)也可以少于需要的候選節(jié)點(diǎn)個(gè)數(shù)。特殊地,如果P2P系統(tǒng)中不存在處于有線網(wǎng)絡(luò)中的可選節(jié)點(diǎn),則直接從無線網(wǎng)絡(luò) 中的可選節(jié)點(diǎn)中選擇候選網(wǎng)絡(luò)。步驟104 =Tracker將選擇的候選節(jié)點(diǎn)的節(jié)點(diǎn)信息通過節(jié)點(diǎn)列表返回給請(qǐng)求節(jié)點(diǎn)。在步驟103中,Tracker按照節(jié)點(diǎn)所處網(wǎng)絡(luò)的性質(zhì)對(duì)節(jié)點(diǎn)進(jìn)行了篩選,因此,節(jié)點(diǎn) 列表中的節(jié)點(diǎn)信息對(duì)應(yīng)的節(jié)點(diǎn)都是數(shù)據(jù)傳輸速度較高的節(jié)點(diǎn)。為了保證Tracker選擇的候選節(jié)點(diǎn)個(gè)數(shù)合理,既能夠使請(qǐng)求節(jié)點(diǎn)根據(jù)Peerlist正 確地查找到活動(dòng)節(jié)點(diǎn),又不至于因?yàn)楹蜻x節(jié)點(diǎn)個(gè)數(shù)過多造成帶寬消耗過大,因此,可以根據(jù) 當(dāng)前網(wǎng)絡(luò)的實(shí)際條件或者經(jīng)驗(yàn)值確定需要的候選節(jié)點(diǎn)個(gè)數(shù)為一個(gè)設(shè)定值。如果滿足步驟 103的選擇條件的候選節(jié)點(diǎn)個(gè)數(shù)大于該設(shè)定值,則可以對(duì)選擇的候選節(jié)點(diǎn)進(jìn)一步挑選,保證 進(jìn)一步挑選出的候選節(jié)點(diǎn)個(gè)數(shù)不大于設(shè)定值。步驟105 請(qǐng)求節(jié)點(diǎn)根據(jù)節(jié)點(diǎn)列表中的節(jié)點(diǎn)信息確定至少一個(gè)候選節(jié)點(diǎn)作為活動(dòng) 節(jié)點(diǎn)。通過本發(fā)明實(shí)施例一的方案,增加了 Tracker判斷節(jié)點(diǎn)所處網(wǎng)絡(luò)的性質(zhì)的功能, Tracker優(yōu)先選擇處于有線網(wǎng)絡(luò)的節(jié)點(diǎn)作為候選節(jié)點(diǎn),由于在一般情況下,有線網(wǎng)絡(luò)節(jié)點(diǎn)的 數(shù)據(jù)傳輸速度高于在無線網(wǎng)絡(luò)中的節(jié)點(diǎn),因此,最終確定的活動(dòng)節(jié)點(diǎn)能夠盡可能地以較高 的傳輸速度向請(qǐng)求節(jié)點(diǎn)上載數(shù)據(jù),提高了整個(gè)P2P系統(tǒng)的傳輸速度,降低了請(qǐng)求節(jié)點(diǎn)的等 待時(shí)延。本發(fā)明實(shí)施例還考慮到可選節(jié)點(diǎn)自身的能力,將可選節(jié)點(diǎn)的電池續(xù)航能力、運(yùn)算 能力、存儲(chǔ)空間大小和內(nèi)存大小作為選擇候選節(jié)點(diǎn)的條件。實(shí)施例二 本實(shí)施例二在實(shí)施例一的基礎(chǔ)上,若確定的候選節(jié)點(diǎn)是處于無線網(wǎng)絡(luò)的節(jié)點(diǎn),候 選節(jié)點(diǎn)需要依靠電池供電,則可以將電池的續(xù)航時(shí)間作為選擇候選節(jié)點(diǎn)的條件,盡量選擇 電池續(xù)航時(shí)間較長的可選節(jié)點(diǎn)。如果可選節(jié)點(diǎn)是處于無線網(wǎng)絡(luò)的節(jié)點(diǎn),則將可選節(jié)點(diǎn)的電池續(xù)航能力作為選擇候 選節(jié)點(diǎn)的條件,從中選擇電池續(xù)航能力較強(qiáng)的候選節(jié)點(diǎn)。實(shí)施例二的方案如下首先,在可選節(jié)點(diǎn)處于無線網(wǎng)絡(luò)時(shí),可選節(jié)點(diǎn)向Tracker上報(bào)電池續(xù)航時(shí)間。正常使用中的電池續(xù)航時(shí)間取決于所運(yùn)行的相關(guān)應(yīng)用程序。例如,可選節(jié)點(diǎn)在某 一段時(shí)間使用了流媒體,那么根據(jù)在這段時(shí)間內(nèi)節(jié)點(diǎn)耗費(fèi)的電量可以計(jì)算出使用流媒體時(shí) 電池電量的消耗速度。每當(dāng)節(jié)點(diǎn)使用流媒體時(shí),其自身就記錄下其當(dāng)前電池電量的消耗速 度。并對(duì)這些值進(jìn)行期望求平均值。將電池本身的電量和得到的電池電量的消耗速度相除, 得到的權(quán)值就可以作為電池續(xù)航能力的表現(xiàn)。也就是說,電池續(xù)航時(shí)間可以根據(jù)可選節(jié)點(diǎn) 使用的應(yīng)用程序的耗電量和電池自身的電量確定。然后,Tracker在根據(jù)實(shí)施例一的方案確定的候選節(jié)點(diǎn)基礎(chǔ)上,進(jìn)一步篩選出電池 續(xù)航時(shí)間大于第一時(shí)長的候選節(jié)點(diǎn),并將進(jìn)一步篩選出的候選節(jié)點(diǎn)的節(jié)點(diǎn)信息通過節(jié)點(diǎn)列 表返回給請(qǐng)求節(jié)點(diǎn)。
本實(shí)施例中的第一時(shí)長可以根據(jù)經(jīng)驗(yàn)值確定,或者根據(jù)對(duì)候選節(jié)點(diǎn)需要的電池續(xù) 航能力確定。通過本發(fā)明實(shí)施例二的方案,保證選擇的候選節(jié)點(diǎn)的電池續(xù)航能力較強(qiáng),避免由 于斷電造成數(shù)據(jù)傳輸中斷的問題。實(shí)施例三可選節(jié)點(diǎn)在登錄Tracker時(shí)或周期性地向Tracker上報(bào)自身的數(shù)據(jù)處理速度,則 Tracker按照實(shí)施例一或?qū)嵤├我夥桨复_定候選節(jié)點(diǎn)后,可以從中進(jìn)一步篩選出數(shù)據(jù) 處理速度大于設(shè)定速度的候選節(jié)點(diǎn),并將進(jìn)一步篩選出的候選節(jié)點(diǎn)的節(jié)點(diǎn)信息通過節(jié)點(diǎn)列 表返回給請(qǐng)求節(jié)點(diǎn)。本實(shí)施例中的設(shè)定速度可以根據(jù)當(dāng)前網(wǎng)絡(luò)條件和在數(shù)據(jù)傳輸過程中需要的傳輸 速度設(shè)定,如網(wǎng)絡(luò)條件較好且對(duì)傳輸速度要求較高時(shí)設(shè)定較高的速度,網(wǎng)絡(luò)條件較差且對(duì) 傳輸速度要求較低時(shí),設(shè)定較低的速度。與實(shí)施例一的方案類似的,如果滿足實(shí)施例二選擇條件的候選節(jié)點(diǎn)個(gè)數(shù)多于最大 值,則可以按照數(shù)據(jù)處理速度由大到小的順序?qū)⒑蜻x節(jié)點(diǎn)進(jìn)行排列,從中挑選出A個(gè)候選 節(jié)點(diǎn),其中,A為不大于最大值的正整數(shù)。實(shí)施例四可選節(jié)點(diǎn)可以向Tracker上報(bào)自身存儲(chǔ)空間的大小和內(nèi)存大小,則Tracker在為 請(qǐng)求節(jié)點(diǎn)選擇候選節(jié)點(diǎn)時(shí),可以從實(shí)施例一至實(shí)施例三中任意實(shí)施例得到的候選節(jié)點(diǎn)中進(jìn) 一步篩選出存儲(chǔ)空間大于第一數(shù)值,且內(nèi)存大于第二數(shù)值的候選節(jié)點(diǎn),確保進(jìn)一步篩選出 的候選節(jié)點(diǎn)是自身能力較強(qiáng)的節(jié)點(diǎn)。本實(shí)施例中的第一數(shù)值和第二數(shù)值可以根據(jù)經(jīng)驗(yàn)值確定,使得篩選出的候選節(jié)點(diǎn) 能夠在存儲(chǔ)空間和內(nèi)存中緩存足夠多的用于向請(qǐng)求節(jié)點(diǎn)上載的數(shù)據(jù)。由于可選節(jié)點(diǎn)的可用存儲(chǔ)空間的大小和內(nèi)存大小可能會(huì)隨時(shí)改變,因此,可選節(jié) 點(diǎn)還可以周期性地向Tracker上報(bào)自身的存儲(chǔ)空間的大小和內(nèi)存大小。實(shí)施例二至實(shí)施例四的方案是在實(shí)施例一的基礎(chǔ)上,將可選節(jié)點(diǎn)自身的能力也作 為選擇候選節(jié)點(diǎn)的條件,從而選擇出數(shù)據(jù)處理較快、存儲(chǔ)空間和內(nèi)存較大的候選節(jié)點(diǎn),特別 的,當(dāng)選擇的候選節(jié)點(diǎn)是處于無線網(wǎng)絡(luò)中的節(jié)點(diǎn)時(shí),由于根據(jù)候選節(jié)點(diǎn)的電池續(xù)航能力對(duì) 其進(jìn)行了篩選,確保候選節(jié)點(diǎn)的電池續(xù)航能力較強(qiáng),能夠滿足數(shù)據(jù)傳輸?shù)男枰?shí)施例五本發(fā)明實(shí)施例五在實(shí)施例一至實(shí)施例四的任意實(shí)施例基礎(chǔ)上進(jìn)一步的研究發(fā)現(xiàn), 如果進(jìn)一步選擇出活躍度較高的節(jié)點(diǎn)作為候選節(jié)點(diǎn),可以很好地保證最終確定的活動(dòng)節(jié)點(diǎn) 穩(wěn)定性較高,因此,實(shí)施例五進(jìn)一步限定選擇候選節(jié)點(diǎn)的選擇條件包括在線時(shí)長大于第二 時(shí)長的節(jié)點(diǎn),所述在線時(shí)長為該節(jié)點(diǎn)最近登錄Tracker時(shí)刻至當(dāng)前時(shí)刻的時(shí)長。這里的第二時(shí)長可以根據(jù)經(jīng)驗(yàn)值或當(dāng)前對(duì)候選節(jié)點(diǎn)的穩(wěn)定性需求設(shè)定,對(duì)候選節(jié) 點(diǎn)的穩(wěn)定性需求越高,則設(shè)置的第二時(shí)長越長。在實(shí)施例五的方案中,可選節(jié)點(diǎn)需要向Tracker上報(bào)自身的在線時(shí)長,上報(bào)的時(shí) 機(jī)可以是與步驟101同時(shí)執(zhí)行,也可以在Tracker根據(jù)可選節(jié)點(diǎn)的在線時(shí)長對(duì)可選節(jié)點(diǎn)進(jìn) 行選擇之前上報(bào)。如圖3(a)和圖3(b)所示,為本發(fā)明實(shí)施例五中,某一個(gè)可選節(jié)點(diǎn)的在線時(shí)長示意圖。在圖3(a)中,節(jié)點(diǎn)在t0時(shí)刻登錄Tracker,如果當(dāng)前時(shí)刻為T,并且節(jié)點(diǎn)在t0至T時(shí) 刻一直處于登錄Tracker的狀態(tài),則認(rèn)為節(jié)點(diǎn)的在線時(shí)長為t0 T的時(shí)長。在圖3(b)中, 節(jié)點(diǎn)在t0時(shí)刻登錄Tracker,但在tl時(shí)刻退出Tracker,而后在t2時(shí)刻再次登錄Tracker, 當(dāng)前時(shí)刻為T,由于節(jié)點(diǎn)在t2至T時(shí)刻一直處于登錄Tracker的狀態(tài),因此認(rèn)為節(jié)點(diǎn)的在線 時(shí)長為t2 T的時(shí)長??蛇x節(jié)點(diǎn)向Tracker上報(bào)在線時(shí)長有多種方式,包括但不限于以下兩種1、節(jié)點(diǎn)在登錄Tracker時(shí)記錄登錄時(shí)間,并周期性地向Tracker上報(bào)當(dāng)前的在線 時(shí)長。如果節(jié)點(diǎn)退出Tracker,則通知Tracker刪除之前已上報(bào)的在線時(shí)長,保證Tracker 中記錄的在線時(shí)長是處于在線狀態(tài)節(jié)點(diǎn)的在線時(shí)長。當(dāng)Tracker在需要確定節(jié)點(diǎn)的在線時(shí) 長時(shí),可以直接根據(jù)記錄的在線時(shí)長確定。2、在節(jié)點(diǎn)登錄Tracker時(shí),由Tracker記錄登錄時(shí)間。當(dāng)節(jié)點(diǎn)退出Tracker時(shí), Tracker可以刪除登錄時(shí)間或是使記錄的登錄時(shí)間處于未激活的狀態(tài),當(dāng)節(jié)點(diǎn)再次登錄 Tracker時(shí),如果Tracker已刪除登錄時(shí)間,則重新記錄本次登錄時(shí)間;如果Tracker使上 次記錄的登錄時(shí)間處于未激活的狀態(tài),則Tracker重新激活登錄時(shí)間,并將記錄的登錄時(shí) 間更新為本次的登錄時(shí)間。當(dāng)Tracker在需要確定節(jié)點(diǎn)的在線時(shí)長時(shí),根據(jù)節(jié)點(diǎn)的登錄時(shí) 間和當(dāng)前時(shí)間就能給容易地確定節(jié)點(diǎn)的在線時(shí)長。Tracker根據(jù)可選節(jié)點(diǎn)所處網(wǎng)絡(luò)的信息選擇候選節(jié)點(diǎn)后,可以從候選節(jié)點(diǎn)中進(jìn)一 步篩選出最近登錄Tracker時(shí)刻至當(dāng)前時(shí)刻的時(shí)長大于第二時(shí)長的候選節(jié)點(diǎn),并將進(jìn)一步 篩選出的候選節(jié)點(diǎn)作為通過節(jié)點(diǎn)列表返回給請(qǐng)求節(jié)點(diǎn)的候選節(jié)點(diǎn)。如果滿足實(shí)施例五的選擇條件的節(jié)點(diǎn)個(gè)數(shù)較多,例如節(jié)點(diǎn)個(gè)數(shù)大于設(shè)定值,則可 以對(duì)滿足選擇條件的節(jié)點(diǎn)進(jìn)一步篩選,篩選方法為首先,將滿足選擇條件的節(jié)點(diǎn)按照在線時(shí)長由大到小的順序排列。然后,從中選擇出前B個(gè)節(jié)點(diǎn),其中B為不大于設(shè)定值的正整數(shù),選擇出的B個(gè)節(jié) 點(diǎn)為候選節(jié)點(diǎn)。在本實(shí)施例五中,同時(shí)以所處網(wǎng)絡(luò)性質(zhì)和在線時(shí)長為選擇條件對(duì)節(jié)點(diǎn)進(jìn)行選擇, 得到的候選節(jié)點(diǎn)不僅具有較高的數(shù)據(jù)傳輸速度,同時(shí),由于候選節(jié)點(diǎn)的在線時(shí)長較長,說明 該候選節(jié)點(diǎn)是P2P系統(tǒng)中較穩(wěn)定的節(jié)點(diǎn),因此,當(dāng)這樣的節(jié)點(diǎn)成為活動(dòng)節(jié)點(diǎn)后,能夠穩(wěn)定地 向請(qǐng)求節(jié)點(diǎn)提供數(shù)據(jù),避免由于選擇的活動(dòng)節(jié)點(diǎn)不穩(wěn)定(如頻繁地登錄或退出Tracker等) 導(dǎo)致請(qǐng)求節(jié)點(diǎn)需要經(jīng)常重新確定活動(dòng)節(jié)點(diǎn)的問題。實(shí)施例六本發(fā)明實(shí)施例六的方案可以在實(shí)施例一至實(shí)施例五任意實(shí)施例的基礎(chǔ)上選擇上 載數(shù)據(jù)的效率較高的可選節(jié)點(diǎn)作為候選節(jié)點(diǎn)。本發(fā)明實(shí)施例六的方案中,Tracker為請(qǐng)求 節(jié)點(diǎn)選擇候選節(jié)點(diǎn)之前,還包括可選節(jié)點(diǎn)向Tracker上報(bào)上載數(shù)據(jù)的效率的步驟??蛇x節(jié)點(diǎn)的上載數(shù)據(jù)的效率可以通過以下方式確定首先,確定可選節(jié)點(diǎn)的在線時(shí)長,以及在所述在線時(shí)長內(nèi)可選節(jié)點(diǎn)上載數(shù)據(jù)的數(shù) 據(jù)量。所述上載數(shù)據(jù)的數(shù)據(jù)量是指可選節(jié)點(diǎn)作為活動(dòng)節(jié)點(diǎn)向其他節(jié)點(diǎn)提供數(shù)據(jù)的數(shù)據(jù)量。 然后,將上載數(shù)據(jù)的數(shù)據(jù)量與在線時(shí)長相除,得到的商為候選節(jié)點(diǎn)上載數(shù)據(jù)的效率??蛇x節(jié)點(diǎn)周期性地將計(jì)算得到的上載數(shù)據(jù)的效率發(fā)送給Tracker,也可以周期性 地上報(bào)在線時(shí)長以及在所述在線時(shí)長內(nèi)可選節(jié)點(diǎn)上載數(shù)據(jù)的數(shù)據(jù)量,由Tracker根據(jù)接收到的在線時(shí)長以及在所述在線時(shí)長內(nèi)可選節(jié)點(diǎn)上載數(shù)據(jù)的數(shù)據(jù)量計(jì)算可選節(jié)點(diǎn)的上載數(shù) 據(jù)的效率??蛇x節(jié)點(diǎn)向Tracker上報(bào)上載數(shù)據(jù)的效率可以與實(shí)施例一中的步驟101同時(shí)執(zhí) 行。如果本發(fā)明實(shí)施例六是在實(shí)施例一的基礎(chǔ)上的方案,則限定選擇候選節(jié)點(diǎn)的選擇 條件包括優(yōu)先選擇所處網(wǎng)絡(luò)為有線網(wǎng)絡(luò)的節(jié)點(diǎn)以及上載數(shù)據(jù)的效率大于設(shè)定效率值的節(jié) 點(diǎn)。在此情況下,Tracker根據(jù)可選節(jié)點(diǎn)所處網(wǎng)絡(luò)的信息選擇候選節(jié)點(diǎn)后,可以從候選節(jié)點(diǎn) 中進(jìn)一步篩選出上載數(shù)據(jù)的效率大于設(shè)定效率值的候選節(jié)點(diǎn),并將進(jìn)一步篩選出的候選節(jié) 點(diǎn)作為通過節(jié)點(diǎn)列表返回給請(qǐng)求節(jié)點(diǎn)的候選節(jié)點(diǎn)。設(shè)定效率值可以根據(jù)經(jīng)驗(yàn)值或是對(duì)候選節(jié)點(diǎn)上載數(shù)據(jù)能力的要求確定,對(duì)候選節(jié) 點(diǎn)上載數(shù)據(jù)能力要求越高,則設(shè)定的效率值越大。如果本發(fā)明實(shí)施例六是在實(shí)施例五的基礎(chǔ)上的方案,則限定選擇候選節(jié)點(diǎn)的選擇 條件包括優(yōu)先選擇所處網(wǎng)絡(luò)為有線網(wǎng)絡(luò)的節(jié)點(diǎn)、在線時(shí)長大于第二時(shí)長的節(jié)點(diǎn)以及上載 數(shù)據(jù)的效率大于設(shè)定效率值的節(jié)點(diǎn)。在此情況下,Tracker可以從實(shí)施例五中確定的候選 節(jié)點(diǎn)中進(jìn)一步篩選出上載數(shù)據(jù)的效率大于設(shè)定效率值的候選節(jié)點(diǎn),并將進(jìn)一步篩選出的候 選節(jié)點(diǎn)作為通過節(jié)點(diǎn)列表返回給請(qǐng)求節(jié)點(diǎn)的候選節(jié)點(diǎn)。如果滿足實(shí)施例六的選擇條件的節(jié)點(diǎn)個(gè)數(shù)較多,例如節(jié)點(diǎn)個(gè)數(shù)大于設(shè)定值,則 Tracker可以對(duì)滿足選擇條件的節(jié)點(diǎn)進(jìn)一步篩選,篩選方法為首先,將滿足選擇條件的節(jié)點(diǎn)按照上載數(shù)據(jù)的效率由大到小的順序排列。然后,從中選擇出前C個(gè)節(jié)點(diǎn),其中C為不大于設(shè)定值的正整數(shù),選擇出的C個(gè)節(jié) 點(diǎn)為候選節(jié)點(diǎn)。從滿足實(shí)施例六的選擇條件的節(jié)點(diǎn)中篩選出部分節(jié)點(diǎn)時(shí),也可以同時(shí)考慮上載數(shù) 據(jù)的效率和在線時(shí)長,例如,采用公式(1)加權(quán)的方式選擇出個(gè)數(shù)合適的候選節(jié)點(diǎn)。X = a*Y+bZ (1)其中a和b為加權(quán)因子,a+b = 1 ;Y為上載數(shù)據(jù)的效率;Z為在線時(shí)長。通過公式 (1)的計(jì)算后,選擇X最大的B個(gè)節(jié)點(diǎn)作為候選節(jié)點(diǎn)。在實(shí)施例六的方案中,不僅要根據(jù)節(jié)點(diǎn)所處網(wǎng)絡(luò)的性質(zhì)選擇數(shù)據(jù)傳輸速度較高的 節(jié)點(diǎn)、根據(jù)在線時(shí)長選擇較穩(wěn)定的節(jié)點(diǎn),還進(jìn)一步考慮到選擇的節(jié)點(diǎn)在單位時(shí)間內(nèi)上載的 數(shù)據(jù)量,在單位時(shí)間內(nèi)上載的數(shù)據(jù)量越多,表明該節(jié)點(diǎn)向其他節(jié)點(diǎn)上載數(shù)據(jù)的能力越強(qiáng),也 就是健康度越好。因此,最終選擇出的活動(dòng)節(jié)點(diǎn)能夠穩(wěn)定、快速、大量地向請(qǐng)求節(jié)點(diǎn)提供數(shù) 據(jù),提高了 P2P系統(tǒng)的數(shù)據(jù)傳輸效率。實(shí)施例七本發(fā)明實(shí)施例七的方案是在實(shí)施例六的基礎(chǔ)上,限定選擇候選節(jié)點(diǎn)的選擇條件包 括優(yōu)先選擇所處網(wǎng)絡(luò)為有線網(wǎng)絡(luò)的節(jié)點(diǎn)、在線時(shí)長大于第二時(shí)長的節(jié)點(diǎn)、上載數(shù)據(jù)的效率 大于設(shè)定效率值的節(jié)點(diǎn)以及所在網(wǎng)絡(luò)的網(wǎng)絡(luò)帶寬大于設(shè)定帶寬值的節(jié)點(diǎn)。所述設(shè)定帶寬值可以根據(jù)能夠用于傳輸上載數(shù)據(jù)的最低帶寬值確定。本發(fā)明實(shí)施例七的方案中,Tracker為請(qǐng)求節(jié)點(diǎn)選擇候選節(jié)點(diǎn)之前,還包括可選節(jié) 點(diǎn)向Tracker上報(bào)所在網(wǎng)絡(luò)的網(wǎng)絡(luò)帶寬的步驟。可選節(jié)點(diǎn)所在網(wǎng)絡(luò)的網(wǎng)絡(luò)帶寬可以通過以下方式確定
可選節(jié)點(diǎn)向連接節(jié)點(diǎn)上載數(shù)據(jù)時(shí),可以同時(shí)測量此時(shí)可選節(jié)點(diǎn)的出向帶寬,并將 此時(shí)的出向帶寬作為可選節(jié)點(diǎn)的網(wǎng)絡(luò)帶寬;或者,確定可選節(jié)點(diǎn)在一定時(shí)間內(nèi)內(nèi)向連接節(jié) 點(diǎn)上載數(shù)據(jù)的數(shù)據(jù)量,可以根據(jù)單位時(shí)間內(nèi)傳輸?shù)臄?shù)據(jù)量計(jì)算出可選節(jié)點(diǎn)的出向帶寬,并 將確定的出向帶寬作為可選節(jié)點(diǎn)的網(wǎng)絡(luò)帶寬??蛇x節(jié)點(diǎn)可以周期性地向Tracker上報(bào)所在網(wǎng)絡(luò)的網(wǎng)絡(luò)帶寬,也可以向Tracker 上報(bào)單位時(shí)間內(nèi)傳輸?shù)臄?shù)據(jù)量,由Tracker確定可選節(jié)點(diǎn)所在網(wǎng)絡(luò)的網(wǎng)絡(luò)帶寬。上報(bào)所在 網(wǎng)絡(luò)的網(wǎng)絡(luò)帶寬的時(shí)機(jī)可以是與步驟101同時(shí)上報(bào)。當(dāng)滿足實(shí)施例七選擇條件的節(jié)點(diǎn)個(gè)數(shù)較多時(shí),可以從中選擇D個(gè)網(wǎng)絡(luò)傳輸質(zhì)量最 好的節(jié)點(diǎn)作為候選節(jié)點(diǎn)。例如將滿足實(shí)施例七的節(jié)點(diǎn)按照所處網(wǎng)絡(luò)的網(wǎng)絡(luò)帶寬由大到小 的順序排列,選擇前D個(gè)節(jié)點(diǎn)作為候選節(jié)點(diǎn),其中,D是不大于設(shè)定值的正整數(shù)。與實(shí)施例 六類似地,本發(fā)明實(shí)施例七也可以將在線時(shí)長、上載數(shù)據(jù)的效率和網(wǎng)絡(luò)傳輸質(zhì)量加權(quán)求和, 選擇綜合質(zhì)量最好的節(jié)點(diǎn)作為候選節(jié)點(diǎn)。本發(fā)明實(shí)施例七中的方案也可以是在實(shí)施例一至實(shí)施例六任意實(shí)施例基礎(chǔ)上的 優(yōu)選方案。在實(shí)施例七的方案中,綜合考慮了節(jié)點(diǎn)所處網(wǎng)絡(luò)性質(zhì)、網(wǎng)絡(luò)傳輸質(zhì)量、節(jié)點(diǎn)自身傳 輸數(shù)據(jù)的能力和鏈路狀態(tài),使得最終確定的活動(dòng)節(jié)點(diǎn)能夠盡可能好地為請(qǐng)求節(jié)點(diǎn)服務(wù),在 實(shí)施例一至實(shí)施例七的基礎(chǔ)上,使活動(dòng)節(jié)點(diǎn)所處的網(wǎng)絡(luò)傳輸能力能夠滿足P2P業(yè)務(wù)傳輸?shù)?需要,避免由于P2P業(yè)務(wù)占用過多帶寬影響活動(dòng)節(jié)點(diǎn)其他業(yè)務(wù)的問題。在實(shí)施例一至實(shí)施例七的方案中,涉及的選擇條件包括a 若可選節(jié)點(diǎn)處于無線網(wǎng)絡(luò),則電池續(xù)航時(shí)間大于第一時(shí)長;b 可選節(jié)點(diǎn)數(shù)據(jù)處理速度大于設(shè)定速度;c 可選節(jié)點(diǎn)的存儲(chǔ)空間的大小大于第一數(shù)值,內(nèi)存的大小大于第二數(shù)值;d 優(yōu)先選擇所處網(wǎng)絡(luò)為有線網(wǎng)絡(luò)的節(jié)點(diǎn);e 最近登錄Tracker時(shí)刻至當(dāng)前時(shí)刻的時(shí)長大于第二時(shí)長的節(jié)點(diǎn);f 上載數(shù)據(jù)的效率大于設(shè)定效率值的節(jié)點(diǎn);g 所處網(wǎng)絡(luò)的網(wǎng)絡(luò)帶寬大于設(shè)定帶寬值的節(jié)點(diǎn)。本發(fā)明實(shí)施例也不限于其他將上述a g的條件組合,構(gòu)成新的選擇候選節(jié)點(diǎn)的 選擇條件。實(shí)施例八實(shí)施例一至實(shí)施例七側(cè)重考慮了節(jié)點(diǎn)自身的能力和所處網(wǎng)絡(luò)的網(wǎng)絡(luò)信息以及節(jié) 點(diǎn)在網(wǎng)絡(luò)中上載數(shù)據(jù)的能力,本發(fā)明實(shí)施例八在實(shí)施例一至實(shí)施例七任意實(shí)施例的基礎(chǔ) 上,還考慮了節(jié)點(diǎn)緩存子塊的信息對(duì)作為活動(dòng)節(jié)點(diǎn)時(shí)上載數(shù)據(jù)的成功率和效率的影響,將 候選節(jié)點(diǎn)的緩存子塊的信息也作為選擇候選節(jié)點(diǎn)的選擇條件的一部分。實(shí)施例八的方案如下首先,可選節(jié)點(diǎn)向Tracker上報(bào)自身緩存的連續(xù)子塊的個(gè)數(shù)以及所述連續(xù)子塊中 第一個(gè)子塊的序號(hào)。P2P系統(tǒng)中的可選節(jié)點(diǎn)需要周期性地或?qū)崟r(shí)地向Tracker上報(bào)自身緩存子塊的 相關(guān)信息,如上報(bào)自身緩存的各子塊的位置,也就是上報(bào)在哪些時(shí)刻子塊對(duì)應(yīng)的bit位置 為“ 1 ”,在哪些時(shí)刻子塊對(duì)應(yīng)的bit位置為“0”。但是,考慮到將bit位的全部信息上報(bào)給Tracker時(shí)需要占用大量的字節(jié),消耗過多的資源,因此,本發(fā)明實(shí)施例一中,可選節(jié)點(diǎn)將自 身緩存的連續(xù)子塊的個(gè)數(shù)以及所述連續(xù)子塊中第一個(gè)子塊的序號(hào)上報(bào)給Tracker。如圖4所示,分別為本發(fā)明實(shí)施例八中請(qǐng)求節(jié)點(diǎn)和某一個(gè)可選節(jié)點(diǎn)的比特圖 (bitmap)。在P2P流媒體系統(tǒng)中,一個(gè)播放文件被劃分為若干個(gè)子塊,播放文件以子塊為單 元在節(jié)點(diǎn)之間傳輸,節(jié)點(diǎn)通過來bitmap表示自身緩存子塊的情況。bitmap中的每一個(gè)bit 都與一個(gè)子塊對(duì)應(yīng),如果節(jié)點(diǎn)緩存了某個(gè)子塊,那么bitmap中與該子塊對(duì)應(yīng)的bit位被置 為“ 1” ;反之,該bit位置為“0”。在圖4中,假設(shè)兩幅bitmap示意圖是針對(duì)同一播放文件 的同一時(shí)間段而言的。從圖4中可以看出,可選節(jié)點(diǎn)存在一段連續(xù)子塊,其個(gè)數(shù)記為Counter One,數(shù)量 為10,第一個(gè)子塊的序號(hào)用0ffset_0ne表示,在圖4中的序號(hào)是tl時(shí)刻。如果可選子塊 Bitmap的offset占用4個(gè)字節(jié),Counter_0ne占用2個(gè)字節(jié),則只需要6字節(jié)就可以向 Tracker上報(bào)自身的連續(xù)子塊信息。然后,請(qǐng)求節(jié)點(diǎn)向Tracker發(fā)送節(jié)點(diǎn)列表請(qǐng)求。請(qǐng)求節(jié)點(diǎn)可以是當(dāng)前接入Tracker的節(jié)點(diǎn),也可以需要重新確定活動(dòng)節(jié)點(diǎn)的節(jié)
點(diǎn)ο節(jié)點(diǎn)列表請(qǐng)求中包含請(qǐng)求節(jié)點(diǎn)最急需的子塊序號(hào),所述最急需的子塊可以是請(qǐng)求 節(jié)點(diǎn)中緩存的未播放數(shù)據(jù)中,第一個(gè)bit位置為0的子塊。由于bit位置為0表示該子塊 未緩存,因此,最急需的子塊可以看作是待下載數(shù)據(jù)的起始子塊。待下載數(shù)據(jù)的起始子塊的 序號(hào)可以用Offset_Zero表示。同時(shí),請(qǐng)求節(jié)點(diǎn)還可以向Tracker上報(bào)自身緩存子塊的信息,如自身緩存的連續(xù) 子塊的個(gè)數(shù)以及所述連續(xù)子塊中第一個(gè)子塊的序號(hào)。由于Tracker中保存了各可選節(jié)點(diǎn)緩存子塊的信息,因此,后續(xù)可以選擇緩存的 子塊信息滿足需求的可選子塊作為請(qǐng)求節(jié)點(diǎn)選擇活動(dòng)節(jié)點(diǎn)時(shí)的候選節(jié)點(diǎn)。接著,Tracker從可選節(jié)點(diǎn)中選擇滿足選擇條件的多個(gè)候選節(jié)點(diǎn)。本實(shí)施例八可以是在實(shí)施例一至實(shí)施例七任意實(shí)施例基礎(chǔ)上的優(yōu)選方案,因此, 可以在實(shí)施例一至實(shí)施例七任一實(shí)施例確定的候選節(jié)點(diǎn)中,進(jìn)一步篩選出緩存了所述待下 載數(shù)據(jù)的起始子塊的候選節(jié)點(diǎn)。本步驟的具體選擇方式可以為1、Tracker根據(jù)已知的連續(xù)子塊的個(gè)數(shù)以及所述連續(xù)子塊中第一個(gè)子塊的序號(hào), 確定候選節(jié)點(diǎn)中的哪些bit位置為“1”。2、Tracker將候選節(jié)點(diǎn)中緩存的子塊與待下載數(shù)據(jù)的起始子塊進(jìn)行比較,判斷哪 些候選節(jié)點(diǎn)中緩存了待下載數(shù)據(jù)的起始子塊。3、Tracker根據(jù)比較結(jié)果查找出緩存了所述待下載數(shù)據(jù)的起始子塊的候選節(jié)點(diǎn)。仍以圖4為例,在請(qǐng)求節(jié)點(diǎn)緩存的數(shù)據(jù)中,第一個(gè)bit位置為0的子塊是子塊t3, 表示請(qǐng)求節(jié)點(diǎn)缺少的第一個(gè)子塊是序號(hào)為t3的子塊,因此,Tracker確定圖4中可選節(jié)點(diǎn) 緩存了 t3時(shí)刻的子塊,因此該節(jié)點(diǎn)可以作為候選節(jié)點(diǎn),此時(shí),選擇出的候選能夠向請(qǐng)求節(jié) 點(diǎn)提供需要的子塊。如果Tracker按照選擇條件選擇的候選節(jié)點(diǎn)個(gè)數(shù)大于最大值,則對(duì)選擇的候選節(jié) 點(diǎn)進(jìn)一步挑選,挑選出E個(gè)候選節(jié)點(diǎn),其中,E表示不大于最大值的正整數(shù)。
最后,Tracker將選擇的候選節(jié)點(diǎn)的節(jié)點(diǎn)信息通過節(jié)點(diǎn)列表返回給請(qǐng)求節(jié)點(diǎn),請(qǐng)求 節(jié)點(diǎn)接收到所述節(jié)點(diǎn)列表后,根據(jù)節(jié)點(diǎn)列表中的節(jié)點(diǎn)信息確定至少一個(gè)候選節(jié)點(diǎn)作為活動(dòng) 節(jié)點(diǎn)。通過本發(fā)明實(shí)施例八的方案,由于Tracker按照緩存請(qǐng)求節(jié)點(diǎn)最急需的子塊為條 件進(jìn)行了選擇,使選擇出的候選節(jié)點(diǎn)能夠向請(qǐng)求節(jié)點(diǎn)提供需要的子塊,也就是說選擇出的 候選節(jié)點(diǎn)可以作為請(qǐng)求節(jié)點(diǎn)的活動(dòng)節(jié)點(diǎn),請(qǐng)求節(jié)點(diǎn)接收到Peerlist后,可以從中確定至少 一個(gè)節(jié)點(diǎn)作為活動(dòng)節(jié)點(diǎn)。減少了請(qǐng)求節(jié)點(diǎn)與Peerlist中節(jié)點(diǎn)信息對(duì)應(yīng)的節(jié)點(diǎn)進(jìn)行的信息 交互,簡化了節(jié)點(diǎn)側(cè)的繁瑣操作。實(shí)施例九本發(fā)明實(shí)施例九為了使確定的活動(dòng)節(jié)點(diǎn)能夠在一定時(shí)間內(nèi)持續(xù)為請(qǐng)求節(jié)點(diǎn)提供 用于下載的數(shù)據(jù),在實(shí)施例八的基礎(chǔ)上,增加選擇條件保存的待下載數(shù)據(jù)的連續(xù)子塊的個(gè) 數(shù)大于第一閾值。這里的候選節(jié)點(diǎn)中保存待下載數(shù)據(jù)的連續(xù)子塊為待下載數(shù)據(jù)的起始子 塊之后且與起始子塊相鄰的連續(xù)子塊。這里的第一閾值可以是根據(jù)需要候選節(jié)點(diǎn)連續(xù)地向請(qǐng)求節(jié)點(diǎn)上載子塊的個(gè)數(shù)確 定的。例如要求候選節(jié)點(diǎn)至少能夠連續(xù)地向請(qǐng)求節(jié)點(diǎn)上載3個(gè)子塊,則第一閾值可以設(shè)置 為3。具體的選擇過程如下首先,按照實(shí)施例八的方式選擇出候選節(jié)點(diǎn);接著,Tracker根據(jù)待下載數(shù)據(jù)的起始子塊在候選節(jié)點(diǎn)中的位置,確定待下載數(shù)據(jù) 的起始子塊之后且與起始子塊相鄰的連續(xù)子塊的個(gè)數(shù)。然后,Tracker將確定的待下載數(shù)據(jù)的連續(xù)子塊的個(gè)數(shù)與第一閾值進(jìn)行比較,判斷 待下載數(shù)據(jù)的連續(xù)子塊的個(gè)數(shù)是否大于第一閾值。最后,Tracker選擇出下載數(shù)據(jù)的連續(xù)子塊的個(gè)數(shù)大于第一閾值的候選節(jié)點(diǎn)。仍以圖4為例,Tracker確定待下載數(shù)據(jù)的起始子塊為t3子塊,則查詢可選節(jié)點(diǎn)中 是否存在包含t3子塊的連續(xù)子塊,在圖4中,可選節(jié)點(diǎn)存在一段連續(xù)子塊中包含t3子塊, 并且在同一連續(xù)子塊中,t3之后還存在7個(gè)連續(xù)子塊。假設(shè)本實(shí)施例九中設(shè)定的第一閾值 為3,則圖4所示的可選節(jié)點(diǎn)能夠滿足實(shí)施例二的選擇條件。如果確定滿足本實(shí)施例九選擇條件的候選節(jié)點(diǎn)個(gè)數(shù)較多,如大于最大值,則可以 從中選擇部分節(jié)點(diǎn)作為寫入Peerlist的節(jié)點(diǎn),具體的選擇部分節(jié)點(diǎn)的過程如下首先按照待下載數(shù)據(jù)的連續(xù)子塊的個(gè)數(shù)由大到小的順序,對(duì)選擇的候選節(jié)點(diǎn)進(jìn)行 排序,然后選擇排在前F個(gè)的候選節(jié)點(diǎn),所述F為正整數(shù)且不大于最大值。使得選擇出的候 選節(jié)點(diǎn)的下載數(shù)據(jù)的連續(xù)子塊多于未選擇的,保證能夠?yàn)檎?qǐng)求節(jié)點(diǎn)提供盡可能多的數(shù)據(jù)。在本實(shí)施例九的方案中,由于待下載數(shù)據(jù)的起始子塊是候選節(jié)點(diǎn)中一段連續(xù)子塊 中的一個(gè),并且在連續(xù)子塊中,在待下載數(shù)據(jù)的起始子塊之后的子塊個(gè)數(shù)較多,使得在請(qǐng)求 節(jié)點(diǎn)確定的活動(dòng)節(jié)點(diǎn)還能夠在一段時(shí)間持續(xù)為請(qǐng)求節(jié)點(diǎn)提供下載的數(shù)據(jù),提高了系統(tǒng)的穩(wěn) 定性,避免了請(qǐng)求節(jié)點(diǎn)查找出的活動(dòng)節(jié)點(diǎn)能夠提供的數(shù)據(jù)有限,導(dǎo)致請(qǐng)求節(jié)點(diǎn)頻繁地查找 活動(dòng)節(jié)點(diǎn)的問題,有效地緩解了通信壓力。實(shí)施例十本發(fā)明實(shí)施例十可以在實(shí)施例八或?qū)嵤├诺幕A(chǔ)上,進(jìn)一步地提出要求最終選擇的候選節(jié)點(diǎn)中保存待下載數(shù)據(jù)的子塊總個(gè)數(shù)大于第二閾值。這里的第二閾值可以根據(jù)需要候選節(jié)點(diǎn)向請(qǐng)求節(jié)點(diǎn)上載子塊的個(gè)數(shù)確定的,第二 閾值設(shè)置越大,表示能夠向請(qǐng)求節(jié)點(diǎn)上載子塊的個(gè)數(shù)越多。本發(fā)明實(shí)施例十的方法包括以下步驟第一步可選節(jié)點(diǎn)向Tracker上報(bào)自身緩存的子塊總個(gè)數(shù)信息。在本實(shí)施例中,P2P系統(tǒng)中的可選節(jié)點(diǎn)需要周期性地或?qū)崟r(shí)地向Tracker上報(bào)自 身緩存子塊總個(gè)數(shù),這里的總個(gè)數(shù)信息可以是實(shí)際緩存的子塊數(shù)量,也可以是待下載數(shù)據(jù) 的起始子塊之后的所有子塊數(shù)量??蛇x節(jié)點(diǎn)可以同時(shí)向Tracker上報(bào)自身緩存的連續(xù)子塊信息和子塊總數(shù)信息,也 可以只向Tracker上報(bào)其中的部分信息,或者是在不同的時(shí)刻分別上報(bào)上述信息。第二步請(qǐng)求節(jié)點(diǎn)接入Tracker,并向Tracker發(fā)送節(jié)點(diǎn)請(qǐng)求列表,所述節(jié)點(diǎn)列表 請(qǐng)求中包括請(qǐng)求節(jié)點(diǎn)待下載數(shù)據(jù)的起始子塊標(biāo)識(shí)。本步驟與實(shí)施例八中步驟相同。第三步=Tracker從可選節(jié)點(diǎn)中選擇滿足選擇條件的多個(gè)候選節(jié)點(diǎn)。選擇條件至少包括候選節(jié)點(diǎn)中緩存了待下載數(shù)據(jù)的起始子塊;待下載數(shù)據(jù)的起 始子塊之后且相鄰的連續(xù)子塊個(gè)數(shù)大于第一閾值;候選節(jié)點(diǎn)中保存待下載數(shù)據(jù)的子塊總個(gè) 數(shù)大于第二閾值。具體的選擇方式是首先,按照實(shí)施例五和/或?qū)嵤├姆桨赋醪酱_定候選節(jié)點(diǎn)。然后,Tracker根據(jù)待下載數(shù)據(jù)的起始子塊在初步確定的候選節(jié)點(diǎn)中的位置,確定 待下載數(shù)據(jù)的起始子塊之后的所有子塊的個(gè)數(shù)。最后,Tracker將確定的所有子塊的個(gè)數(shù)與第二閾值進(jìn)行比較,選擇出子塊的個(gè)數(shù) 大于第二閾值的候選節(jié)點(diǎn)。仍以圖4為例,在可選節(jié)點(diǎn)中,t3子塊之后還緩存有11個(gè)子塊,如果第二閾值為 10,則該可選節(jié)點(diǎn)能夠滿足本實(shí)施例七的選擇條件,可以成為候選節(jié)點(diǎn)。本實(shí)施例中以N表 示可選節(jié)點(diǎn)中緩存的子塊總個(gè)數(shù),如果N占用2個(gè)字節(jié),則可選節(jié)點(diǎn)只需要向Tracker上報(bào) N信息即可以告知自身緩存子塊的信息。第三步中可以通過以下兩個(gè)公式完成利用實(shí)施例三的選擇條件的選擇候選節(jié)點(diǎn) 過程0ffset_0ne ^ Offset_Zero ^ 0ffset_0ne+Counter_0ne (1)V = Counter_0ne-(0ffset_Zero-0ffset_0ne) (2)其中公式(1)表示請(qǐng)求節(jié)點(diǎn)最急需的子塊位于可選節(jié)點(diǎn)的一段連續(xù)的子塊中, 公式(2)表示可選節(jié)點(diǎn)能夠?yàn)檎?qǐng)求節(jié)點(diǎn)連續(xù)提供的子塊數(shù)量為V,其中,V等于或大于設(shè)定 的第一閾值。如果以上公式(1)成立,Tracker可以從上述兩個(gè)公式確定的候選節(jié)點(diǎn)中進(jìn)一步 選擇N大于第二閾值的可選節(jié)點(diǎn);如果公式(1)不成立,Tracker可以直接選擇N大于第二 閾值的可選節(jié)點(diǎn)。第四步=Tracker將通過第三步中的選擇條件選擇出的候選節(jié)點(diǎn)的節(jié)點(diǎn)信息通過 Peerlist發(fā)送給請(qǐng)求節(jié)點(diǎn),請(qǐng)求節(jié)點(diǎn)可以根據(jù)接收到的Peerlist確定至少一個(gè)活動(dòng)節(jié)點(diǎn)。
如果確定滿足本實(shí)施例十選擇條件的候選節(jié)點(diǎn)個(gè)數(shù)較多,大于最大值,則可以從 中選擇部分節(jié)點(diǎn)作為寫入Peerlist的節(jié)點(diǎn),具體的選擇部分節(jié)點(diǎn)的過程如下首先按照待下載數(shù)據(jù)的子塊總個(gè)數(shù)由大到小的順序,對(duì)選擇的候選節(jié)點(diǎn)進(jìn)行排 序,然后選擇排在前G個(gè)候選節(jié)點(diǎn),所述G為正整數(shù)且不大于最大值。選擇出的候選節(jié)點(diǎn)的 下載數(shù)據(jù)的子塊總個(gè)數(shù)多于未選擇的,保證能夠?yàn)檎?qǐng)求節(jié)點(diǎn)提供盡可能多的數(shù)據(jù)。在本實(shí)施例十的方案中,由于最終選擇出的候選節(jié)點(diǎn)緩存的待下載數(shù)據(jù)的子塊總 個(gè)數(shù)較多,可以在實(shí)施例七的基礎(chǔ)上,進(jìn)一步確定選擇出的候選節(jié)點(diǎn)能夠?yàn)檎?qǐng)求節(jié)點(diǎn)提供 盡可能多的數(shù)據(jù),盡量減少請(qǐng)求節(jié)點(diǎn)查詢活動(dòng)節(jié)點(diǎn)的次數(shù)。實(shí)施例i^一 可選節(jié)點(diǎn)向Tracker上報(bào)的信息中,還可以包括連接節(jié)點(diǎn)個(gè)數(shù)是否飽和的相關(guān)信 息,則Tracker可以在實(shí)施例八至實(shí)施例十任意實(shí)施例的基礎(chǔ)上,選擇連接節(jié)點(diǎn)個(gè)數(shù)未飽 和的候選節(jié)點(diǎn)。實(shí)施例i^一的方案如下第一步可選節(jié)點(diǎn)向Tracker上報(bào)自身連接節(jié)點(diǎn)個(gè)數(shù)是否飽和的信息。本步驟可以與實(shí)施例五中上報(bào)子塊信息的步驟同時(shí)執(zhí)行,也可以分別執(zhí)行。所述連接節(jié)點(diǎn)個(gè)數(shù)是指從可選節(jié)點(diǎn)處獲取數(shù)據(jù)的其他節(jié)點(diǎn)個(gè)數(shù)。也就是說,計(jì)算 可選節(jié)點(diǎn)的連接節(jié)點(diǎn)個(gè)數(shù)時(shí),只考慮候可節(jié)點(diǎn)作為活動(dòng)節(jié)點(diǎn)時(shí)連接的其他節(jié)點(diǎn)個(gè)數(shù)是否飽 和,不考慮可選節(jié)點(diǎn)從其他節(jié)點(diǎn)處下載數(shù)據(jù)時(shí)連接的其他節(jié)點(diǎn)個(gè)數(shù)。在本發(fā)明實(shí)施例十一的方案中,可選節(jié)點(diǎn)在登錄Tracker后可以周期性的通知自 身的連接節(jié)點(diǎn)個(gè)數(shù)是否飽和,具體的通知方式包括但不限于以下兩種方式第一種方式可選節(jié)點(diǎn)可以周期性地向Tracker上報(bào)自身的連接標(biāo)志,記為 CormectioruFlag,所述連接標(biāo)志表示該可選節(jié)點(diǎn)是否還可以向其它節(jié)點(diǎn)提供數(shù)據(jù),也就是 連接節(jié)點(diǎn)個(gè)數(shù)是否飽和。如果某一可選節(jié)點(diǎn)的連接節(jié)點(diǎn)個(gè)數(shù)已經(jīng)達(dá)到能夠連接的最大節(jié)點(diǎn)個(gè)數(shù),就將 Connection_Flag置為“down”,表示該可選節(jié)點(diǎn)的連接節(jié)點(diǎn)個(gè)數(shù)已經(jīng)飽和,不能再向其它 節(jié)點(diǎn)提供數(shù)據(jù)下載;否則,將CormectioruFlag置為“up”,表示該可選節(jié)點(diǎn)的連接節(jié)點(diǎn)個(gè)數(shù) 未飽和,還可以向其它節(jié)點(diǎn)提供數(shù)據(jù)。通過本方式使Tracker確定可選節(jié)點(diǎn)連接節(jié)點(diǎn)個(gè)數(shù) 是否飽和時(shí),節(jié)點(diǎn)與Tracker之間只需要傳輸一個(gè)字節(jié)的CormectioruFlag,因此,占用的 網(wǎng)絡(luò)資源較少。第二種方式可選節(jié)點(diǎn)在接入Tracker時(shí),通知Tracker自身能夠連接的最大 節(jié)點(diǎn)個(gè)數(shù)。在后續(xù)過程中,可選節(jié)點(diǎn)周期性地向Tracker上報(bào)自身已經(jīng)連接的節(jié)點(diǎn)個(gè)數(shù)。 Tracker判斷可選節(jié)點(diǎn)當(dāng)前已經(jīng)連接的節(jié)點(diǎn)個(gè)數(shù)是否小于可選節(jié)點(diǎn)能夠連接的最大節(jié)點(diǎn)個(gè) 數(shù),若是,則表示可選節(jié)點(diǎn)的連接節(jié)點(diǎn)個(gè)數(shù)未飽和;否則,表示可選節(jié)點(diǎn)的連接節(jié)點(diǎn)個(gè)數(shù)已 飽和。第二步請(qǐng)求節(jié)點(diǎn)接入Tracker,并向Tracker發(fā)送節(jié)點(diǎn)列表請(qǐng)求,所述節(jié)點(diǎn)列表 請(qǐng)求中包括請(qǐng)求節(jié)點(diǎn)待下載數(shù)據(jù)的起始子塊標(biāo)識(shí)。第三步=Tracker從確定的節(jié)點(diǎn)中選擇滿足選擇條件的多個(gè)候選節(jié)點(diǎn)。選擇條件可以在實(shí)施例八至實(shí)施例十中任意實(shí)施例的基礎(chǔ)上再增加候選節(jié)點(diǎn)的 連接節(jié)點(diǎn)個(gè)數(shù)未飽和。
第四步=Tracker將選擇的候選節(jié)點(diǎn)的節(jié)點(diǎn)信息通過節(jié)點(diǎn)列表返回給請(qǐng)求節(jié)點(diǎn), 由請(qǐng)求節(jié)點(diǎn)接收到所述節(jié)點(diǎn)列表后,根據(jù)節(jié)點(diǎn)列表中的節(jié)點(diǎn)信息確定至少一個(gè)候選節(jié)點(diǎn)作 為活動(dòng)節(jié)點(diǎn)。由于第三步中,Tracker對(duì)接入的節(jié)點(diǎn)按照連接節(jié)點(diǎn)個(gè)數(shù)是否飽和的條件進(jìn)行了 篩選,因此,在本步驟中,節(jié)點(diǎn)列表中的節(jié)點(diǎn)信息對(duì)應(yīng)的候選節(jié)點(diǎn)都具有與請(qǐng)求節(jié)點(diǎn)連接的 能力。如果Tracker按照第三步的選擇條件選擇的候選節(jié)點(diǎn)個(gè)數(shù)大于最大值,則對(duì)選擇 的候選節(jié)點(diǎn)進(jìn)一步篩選,保證進(jìn)一步篩選出的候選節(jié)點(diǎn)個(gè)數(shù)不大于最大值,例如可以使進(jìn) 一步篩選出的候選節(jié)點(diǎn)個(gè)數(shù)等于最大值。在本步驟中,請(qǐng)求節(jié)點(diǎn)不必向節(jié)點(diǎn)列表中的各候選節(jié)點(diǎn)發(fā)送用于確定是否具有連 接能力的探測信息就能夠確定至少一個(gè)能夠提供請(qǐng)求節(jié)點(diǎn)需要的數(shù)據(jù)的活動(dòng)節(jié)點(diǎn)。通過本發(fā)明實(shí)施例i^一的方案,由于Tracker對(duì)系統(tǒng)中的可選節(jié)點(diǎn)按照連接節(jié)點(diǎn) 個(gè)數(shù)是否飽和的條件進(jìn)行了篩選,使選擇出的候選節(jié)點(diǎn)具有連接其他節(jié)點(diǎn)能力,因此提高 了 Tracker的利用率,為請(qǐng)求節(jié)點(diǎn)提供了準(zhǔn)確性更高的Peerlist列表;同時(shí),由于請(qǐng)求節(jié)點(diǎn) 無需再向候選節(jié)點(diǎn)查詢是否具有連接其他節(jié)點(diǎn)能力,因此,減少了請(qǐng)求節(jié)點(diǎn)與候選節(jié)點(diǎn)之 間的信息交互數(shù)量,降低了網(wǎng)絡(luò)帶寬消耗。本發(fā)明實(shí)施例八至實(shí)施例i^一涉及的選擇條件包括a 若可選節(jié)點(diǎn)處于無線網(wǎng)絡(luò),則電池續(xù)航時(shí)間大于第一時(shí)長;b 可選節(jié)點(diǎn)數(shù)據(jù)處理速度大于設(shè)定速度;c 可選節(jié)點(diǎn)的存儲(chǔ)空間的大小大于第一數(shù)值,內(nèi)存的大小大于第二數(shù)值;d 優(yōu)先選擇所處網(wǎng)絡(luò)為有線網(wǎng)絡(luò)的節(jié)點(diǎn);e 最近登錄Tracker時(shí)刻至當(dāng)前時(shí)刻的時(shí)長大于第二時(shí)長的節(jié)點(diǎn);f 上載數(shù)據(jù)的效率大于設(shè)定效率值的節(jié)點(diǎn);g 所處網(wǎng)絡(luò)的網(wǎng)絡(luò)帶寬大于設(shè)定帶寬值的節(jié)點(diǎn)。h:連接節(jié)點(diǎn)個(gè)數(shù)未飽和的節(jié)點(diǎn),所述連接節(jié)點(diǎn)個(gè)數(shù)是從候選節(jié)點(diǎn)處獲取數(shù)據(jù)的其 他節(jié)點(diǎn)個(gè)數(shù);i 中緩存了所述節(jié)點(diǎn)列表請(qǐng)求中包含的待下載數(shù)據(jù)的起始子塊的節(jié)點(diǎn);j 中保存待下載數(shù)據(jù)的連續(xù)子塊的個(gè)數(shù)大于第一閾值的節(jié)點(diǎn);k 中保存待下載數(shù)據(jù)的子塊總個(gè)數(shù)大于第二閾值的節(jié)點(diǎn)。本發(fā)明實(shí)施例一至實(shí)施例十一中涉及的每個(gè)選擇條件可以任意組合,本發(fā)明實(shí)施 例也不限于上將任意組合成的選擇條件作為選擇候選節(jié)點(diǎn)的條件的方案。在請(qǐng)求節(jié)點(diǎn)確定活動(dòng)節(jié)點(diǎn)之后,可以從活動(dòng)節(jié)點(diǎn)處下載需要的數(shù)據(jù)。當(dāng)確定的活 動(dòng)節(jié)點(diǎn)失效后,請(qǐng)求節(jié)點(diǎn)將重新向Tracker發(fā)送節(jié)點(diǎn)列表請(qǐng)求,以獲取新的活動(dòng)節(jié)點(diǎn)列表。在本發(fā)明各實(shí)施例中,Tracker在收到請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表請(qǐng)求后,可以預(yù)先 根據(jù)緩存的節(jié)點(diǎn)信息確定系統(tǒng)中的節(jié)點(diǎn),并按照節(jié)點(diǎn)的IP地址,選擇出物理地址與請(qǐng)求節(jié) 點(diǎn)接近的節(jié)點(diǎn)(如同省或同一國家,或者是地理位置差別小于固定值的節(jié)點(diǎn))。后續(xù),在利 用本發(fā)明各實(shí)施例的選擇條件選擇候選節(jié)點(diǎn)時(shí),可選的節(jié)點(diǎn)可以是按照IP地址初步篩選 后的節(jié)點(diǎn)。本發(fā)明實(shí)施例十二還提供一種在P2P流媒體系統(tǒng)中查找活動(dòng)節(jié)點(diǎn)的系統(tǒng),如圖5所示,所述系統(tǒng)包括可選節(jié)點(diǎn)11、請(qǐng)求節(jié)點(diǎn)12和Trackerl3,其中可選節(jié)點(diǎn)11用于 向TraCker13上報(bào)所處網(wǎng)絡(luò)的信息;請(qǐng)求節(jié)點(diǎn)12用于向TraCker13發(fā)送節(jié)點(diǎn)列表請(qǐng)求, 并根據(jù)Trackers返回的節(jié)點(diǎn)列表中的節(jié)點(diǎn)信息,確定至少一個(gè)候選節(jié)點(diǎn)作為活動(dòng)節(jié)點(diǎn); Trackerl3用于在接收到節(jié)點(diǎn)列表請(qǐng)求后,根據(jù)可選節(jié)點(diǎn)11所處網(wǎng)絡(luò)的信息確定處于有線 網(wǎng)絡(luò)的可選節(jié)點(diǎn)11個(gè)數(shù),選擇滿足選擇條件的候選節(jié)點(diǎn)13,并將選擇的候選節(jié)點(diǎn)13的節(jié)點(diǎn) 信息通過節(jié)點(diǎn)列表返回給請(qǐng)求節(jié)點(diǎn),其中選擇條件包括若處于有線網(wǎng)絡(luò)的可選節(jié)點(diǎn)個(gè) 數(shù)不小于需要的候選節(jié)點(diǎn)個(gè)數(shù),則從處于有線網(wǎng)絡(luò)的可選節(jié)點(diǎn)11中選擇候選節(jié)點(diǎn);若處于 有線網(wǎng)絡(luò)的可選節(jié)點(diǎn)個(gè)數(shù)小于需要的候選節(jié)點(diǎn)個(gè)數(shù),則將處于有線網(wǎng)絡(luò)的所有可選節(jié)點(diǎn)和 至少一個(gè)處于無線網(wǎng)絡(luò)的可選節(jié)點(diǎn)作為候選節(jié)點(diǎn)。所述可選節(jié)點(diǎn)11還用于向Trackerl3上報(bào)以下信息中的一種或多種的組合若可選節(jié)點(diǎn)處于無線網(wǎng)絡(luò),則上報(bào)電池續(xù)航時(shí)間;可選節(jié)點(diǎn)數(shù)據(jù)處理速度;可選節(jié)點(diǎn)的存儲(chǔ)空間和內(nèi)存的大小;可選節(jié)點(diǎn)最近登錄Tracker時(shí)刻至當(dāng)前時(shí)刻的時(shí)長;可選節(jié)點(diǎn)上載數(shù)據(jù)的效率;可選節(jié)點(diǎn)所處網(wǎng)絡(luò)的網(wǎng)絡(luò)帶寬;可選節(jié)點(diǎn)連接節(jié)點(diǎn)個(gè)數(shù)是否飽和;可選節(jié)點(diǎn)緩存的子塊總個(gè)數(shù)信息;可選節(jié)點(diǎn)緩存的連續(xù)子塊的個(gè)數(shù)以及所述連續(xù)子塊中第一個(gè)子塊的序號(hào)。對(duì)應(yīng)的,Tracker 13還用于按照下列條件中的一種或多種選擇候選節(jié)點(diǎn)若候選節(jié)點(diǎn)處于無線網(wǎng)絡(luò),則候選節(jié)點(diǎn)的電池續(xù)航時(shí)間大于第一時(shí)長;候選節(jié)點(diǎn)的數(shù)據(jù)處理速度大于設(shè)定速度;候選節(jié)點(diǎn)的存儲(chǔ)空間大于第一數(shù)值,且內(nèi)存大于第二數(shù)值;選節(jié)點(diǎn)最近登錄Tracker時(shí)刻至當(dāng)前時(shí)刻的時(shí)長大于第二時(shí)長;候選節(jié)點(diǎn)上載數(shù)據(jù)的效率大于設(shè)定效率值;候選節(jié)點(diǎn)所處網(wǎng)絡(luò)的網(wǎng)絡(luò)帶寬大于設(shè)定帶寬值;候選節(jié)點(diǎn)連接節(jié)點(diǎn)個(gè)數(shù)未飽,所述連接節(jié)點(diǎn)個(gè)數(shù)是從候選節(jié)點(diǎn)處獲取數(shù)據(jù)的其他 節(jié)點(diǎn)個(gè)數(shù);候選節(jié)點(diǎn)中緩存了所述節(jié)點(diǎn)列表請(qǐng)求中包含的待下載數(shù)據(jù)的起始子塊;候選節(jié)點(diǎn)中緩存的連續(xù)子塊的個(gè)數(shù)大于第一閾值;候選節(jié)點(diǎn)中緩存的子塊總個(gè)數(shù)大于第二閾值。本發(fā)明實(shí)施例十三還提供一種追蹤設(shè)備,應(yīng)用于P2P流媒體系統(tǒng)中,如圖6所示, 所述追蹤設(shè)備包括信息接收模塊21、請(qǐng)求接收模塊22、選擇模塊23和列表發(fā)送模塊24,其 中信息接收模塊21用于接收可選節(jié)點(diǎn)上報(bào)的所處網(wǎng)絡(luò)的信息;請(qǐng)求接收模塊22用于接 收節(jié)點(diǎn)列表請(qǐng)求;選擇模塊23用于根據(jù)可選節(jié)點(diǎn)所處網(wǎng)絡(luò)的信息確定處于有線網(wǎng)絡(luò)的可 選節(jié)點(diǎn)個(gè)數(shù),選擇滿足選擇條件的候選節(jié)點(diǎn),其中選擇條件包括若處于有線網(wǎng)絡(luò)的節(jié)點(diǎn) 個(gè)數(shù)不小于需要的候選節(jié)點(diǎn)個(gè)數(shù),則從處于有線網(wǎng)絡(luò)的節(jié)點(diǎn)中選擇候選節(jié)點(diǎn);若處于有線 網(wǎng)絡(luò)的節(jié)點(diǎn)個(gè)數(shù)小于需要的候選節(jié)點(diǎn)個(gè)數(shù),則將處于有線網(wǎng)絡(luò)的所有節(jié)點(diǎn)和至少一個(gè)處于 無線網(wǎng)絡(luò)的節(jié)點(diǎn)作為候選節(jié)點(diǎn);列表發(fā)送模塊24用于將選擇的候選節(jié)點(diǎn)的節(jié)點(diǎn)信息通過節(jié)點(diǎn)列表返回給請(qǐng)求節(jié)點(diǎn)。信息接收模塊21還用于接收以下信息中的一種或多種的組合若可選節(jié)點(diǎn)處于無線網(wǎng)絡(luò),則上報(bào)電池續(xù)航時(shí)間;可選節(jié)點(diǎn)數(shù)據(jù)處理速度;可選節(jié)點(diǎn)的存儲(chǔ)空間和內(nèi)存的大??;可選節(jié)點(diǎn)最近登錄Tracker時(shí)刻至當(dāng)前時(shí)刻的時(shí)長;可選節(jié)點(diǎn)上載數(shù)據(jù)的效率;可選節(jié)點(diǎn)所處網(wǎng)絡(luò)的網(wǎng)絡(luò)帶寬;可選節(jié)點(diǎn)連接節(jié)點(diǎn)個(gè)數(shù)是否飽和;可選節(jié)點(diǎn)緩存的子塊總個(gè)數(shù)信息;可選節(jié)點(diǎn)緩存的連續(xù)子塊的個(gè)數(shù)以及所述連續(xù)子塊中第一個(gè)子塊的序號(hào)。所述選擇模塊23還用于按照下列條件中的一種或多種選擇候選節(jié)點(diǎn)若候選節(jié)點(diǎn)處于無線網(wǎng)絡(luò),則候選節(jié)點(diǎn)的電池續(xù)航時(shí)間大于第一時(shí)長;候選節(jié)點(diǎn)的數(shù)據(jù)處理速度大于設(shè)定速度;候選節(jié)點(diǎn)的存儲(chǔ)空間大于第一數(shù)值,且內(nèi)存大于第二數(shù)值;候選節(jié)點(diǎn)最近登錄Tracker時(shí)刻至當(dāng)前時(shí)刻的時(shí)長大于第二時(shí)長;候選節(jié)點(diǎn)上載數(shù)據(jù)的效率大于設(shè)定效率值;候選節(jié)點(diǎn)所處網(wǎng)絡(luò)的網(wǎng)絡(luò)帶寬大于設(shè)定帶寬值;候選節(jié)點(diǎn)連接節(jié)點(diǎn)個(gè)數(shù)未飽,所述連接節(jié)點(diǎn)個(gè)數(shù)是從候選節(jié)點(diǎn)處獲取數(shù)據(jù)的其他 節(jié)點(diǎn)個(gè)數(shù);候選節(jié)點(diǎn)中緩存了所述節(jié)點(diǎn)列表請(qǐng)求中包含的待下載數(shù)據(jù)的起始子塊;候選節(jié)點(diǎn)中緩存的連續(xù)子塊的個(gè)數(shù)大于第一閾值;候選節(jié)點(diǎn)中緩存的子塊總個(gè)數(shù)大于第二閾值。本發(fā)明實(shí)施例十四還提供一種節(jié)點(diǎn)設(shè)備,該節(jié)點(diǎn)設(shè)備在能夠向其他節(jié)點(diǎn)設(shè)備上載 數(shù)據(jù)時(shí),可以作為是上述各實(shí)施例中涉及的可選節(jié)點(diǎn);同時(shí),該節(jié)點(diǎn)設(shè)備也可以是上述各實(shí) 施例中涉及的請(qǐng)求節(jié)點(diǎn)。如圖7所示,本實(shí)施例十四中的節(jié)點(diǎn)設(shè)備包括信息上報(bào)模塊31和數(shù)據(jù)輸出模塊 32,其中信息上報(bào)模塊31用于向Tracker上報(bào)所處網(wǎng)絡(luò)的信息;數(shù)據(jù)輸出模塊32用于根 據(jù)其他節(jié)點(diǎn)設(shè)備的請(qǐng)求向其他節(jié)點(diǎn)設(shè)備上載數(shù)據(jù)。進(jìn)一步地,所述信息上報(bào)模塊31還用于向Tracker上報(bào)以下信息中的一種或多種 的組合若節(jié)點(diǎn)設(shè)備處于無線網(wǎng)絡(luò),則上報(bào)電池續(xù)航時(shí)間;節(jié)點(diǎn)設(shè)備的數(shù)據(jù)處理速度;節(jié)點(diǎn)設(shè)備的存儲(chǔ)空間和內(nèi)存的大??;節(jié)點(diǎn)設(shè)備最近登錄Tracker時(shí)刻至當(dāng)前時(shí)刻的時(shí)長;節(jié)點(diǎn)設(shè)備上載數(shù)據(jù)的效率;節(jié)點(diǎn)設(shè)備所處網(wǎng)絡(luò)的網(wǎng)絡(luò)帶寬;節(jié)點(diǎn)設(shè)備連接節(jié)點(diǎn)個(gè)數(shù)是否飽和;節(jié)點(diǎn)設(shè)備緩存的子塊總個(gè)數(shù)信息;
節(jié)點(diǎn)設(shè)備緩存的連續(xù)子塊的個(gè)數(shù)以及所述連續(xù)子塊中第一個(gè)子塊的序號(hào)。當(dāng)本實(shí)施例中的節(jié)點(diǎn)設(shè)備作為請(qǐng)求節(jié)點(diǎn)時(shí),還可以包括一個(gè)請(qǐng)求模塊,用于向 Tracker上報(bào)節(jié)點(diǎn)列表請(qǐng)求,并在接收到Tracker返回的節(jié)點(diǎn)列表時(shí),向列表中的其他節(jié)點(diǎn) 設(shè)備請(qǐng)求下載數(shù)據(jù)。通過本發(fā)明實(shí)施例提供的方法、系統(tǒng)及設(shè)備,Tracker預(yù)先獲知各節(jié)點(diǎn)所處網(wǎng)絡(luò)的 性質(zhì),優(yōu)先選擇出傳輸速度較高的節(jié)點(diǎn),優(yōu)化了移動(dòng)互聯(lián)網(wǎng)中屬于同一自治域或不同自治 域節(jié)點(diǎn)間的數(shù)據(jù)傳輸性能,提高節(jié)點(diǎn)間數(shù)據(jù)傳輸速度;同時(shí)將在線時(shí)長、上載數(shù)據(jù)的效率和 網(wǎng)絡(luò)傳輸質(zhì)量作為選擇候選節(jié)點(diǎn)的選擇條件,選擇出的候選節(jié)點(diǎn)是健康度較高、穩(wěn)定度較 好的節(jié)點(diǎn),使節(jié)點(diǎn)間建立連接的速度更快,降低了數(shù)據(jù)傳輸?shù)难訒r(shí)。另外,根據(jù)可選節(jié)點(diǎn)緩 存子塊的信息選擇候選節(jié)點(diǎn),保證選擇的候選節(jié)點(diǎn)能夠正確地為請(qǐng)求節(jié)點(diǎn)上載數(shù)據(jù),則請(qǐng) 求節(jié)點(diǎn)在確定活動(dòng)節(jié)點(diǎn)時(shí),將原來的兩步查找活動(dòng)節(jié)點(diǎn)的過程變?yōu)橐徊讲檎?,消除了?qǐng)求 節(jié)點(diǎn)通過Peerlist查找活動(dòng)節(jié)點(diǎn)時(shí)產(chǎn)生的報(bào)文,減輕網(wǎng)絡(luò)的壓力,減少帶寬消耗。同時(shí),將 可選節(jié)點(diǎn)自身的能力也作為選擇候選節(jié)點(diǎn)的條件,保證候選節(jié)點(diǎn)的數(shù)據(jù)傳輸速度較快,有 較大的存儲(chǔ)空間以及較好的電池續(xù)航能力,使得從候選節(jié)點(diǎn)中確定的活動(dòng)節(jié)點(diǎn)能夠更好地 為請(qǐng)求節(jié)點(diǎn)上載數(shù)據(jù)。最后,利用本發(fā)明方案,請(qǐng)求節(jié)點(diǎn)只需向tracker發(fā)送一個(gè)節(jié)點(diǎn)列表 請(qǐng)求就可以找到活動(dòng)節(jié)點(diǎn),縮短了播放啟動(dòng)時(shí)間。顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精 神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍 之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
一種在P2P流媒體系統(tǒng)中查找活動(dòng)節(jié)點(diǎn)的方法,其特征在于,可選節(jié)點(diǎn)向追蹤設(shè)備Tracker上報(bào)所處網(wǎng)絡(luò)的信息;所述查找活動(dòng)節(jié)點(diǎn)的方法包括Tracker接收請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表請(qǐng)求后,根據(jù)可選節(jié)點(diǎn)所處網(wǎng)絡(luò)的信息確定處于有線網(wǎng)絡(luò)的可選節(jié)點(diǎn)個(gè)數(shù),若處于有線網(wǎng)絡(luò)的可選節(jié)點(diǎn)個(gè)數(shù)不小于需要的候選節(jié)點(diǎn)個(gè)數(shù),則從處于有線網(wǎng)絡(luò)的可選節(jié)點(diǎn)中選擇候選節(jié)點(diǎn);若處于有線網(wǎng)絡(luò)的可選節(jié)點(diǎn)個(gè)數(shù)小于需要的候選節(jié)點(diǎn)個(gè)數(shù),則將處于有線網(wǎng)絡(luò)的所有可選節(jié)點(diǎn)和至少一個(gè)處于無線網(wǎng)絡(luò)的可選節(jié)點(diǎn)作為候選節(jié)點(diǎn);Tracker將選擇的候選節(jié)點(diǎn)的節(jié)點(diǎn)信息通過節(jié)點(diǎn)列表返回給請(qǐng)求節(jié)點(diǎn),指示所述請(qǐng)求節(jié)點(diǎn)根據(jù)節(jié)點(diǎn)列表中的節(jié)點(diǎn)信息確定至少一個(gè)候選節(jié)點(diǎn)作為活動(dòng)節(jié)點(diǎn)。
2.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括 在可選節(jié)點(diǎn)處于無線網(wǎng)絡(luò)時(shí),可選節(jié)點(diǎn)向Tracker上報(bào)電池續(xù)航時(shí)間; Tracker選擇候選節(jié)點(diǎn)之后,返回節(jié)點(diǎn)列表之前,所述方法還包括若Tracker選擇的候選節(jié)點(diǎn)中包含處于無線網(wǎng)絡(luò)的候選節(jié)點(diǎn),則從處于無線網(wǎng)絡(luò)的候 選節(jié)點(diǎn)中進(jìn)一步篩選出電池續(xù)航時(shí)間大于第一時(shí)長的候選節(jié)點(diǎn); Tracker向請(qǐng)求節(jié)點(diǎn)返回節(jié)點(diǎn)列表包括Tracker將進(jìn)一步篩選出的候選節(jié)點(diǎn)的節(jié)點(diǎn)信息通過節(jié)點(diǎn)列表返回給請(qǐng)求節(jié)點(diǎn)。
3.如權(quán)利要求2所述的方法,其特征在于,電池續(xù)航時(shí)間是根據(jù)可選節(jié)點(diǎn)使用的應(yīng)用 程序的耗電量和電池自身的電量確定的。
4.如權(quán)利要求1或2所述的方法,其特征在于,所述方法還包括 可選節(jié)點(diǎn)向Tracker上報(bào)數(shù)據(jù)處理速度;Tracker選擇候選節(jié)點(diǎn)之后,返回節(jié)點(diǎn)列表之前,所述方法還包括 Tracker從候選節(jié)點(diǎn)中進(jìn)一步篩選出數(shù)據(jù)處理速度大于設(shè)定速度的候選節(jié)點(diǎn); Tracker向請(qǐng)求節(jié)點(diǎn)返回節(jié)點(diǎn)列表包括Tracker將進(jìn)一步篩選出的候選節(jié)點(diǎn)的節(jié)點(diǎn)信息通過節(jié)點(diǎn)列表返回給請(qǐng)求節(jié)點(diǎn)。
5.如權(quán)利要求1、2或4所述的方法,其特征在于,所述方法還包括 可選節(jié)點(diǎn)向Tracker上報(bào)存儲(chǔ)空間和內(nèi)存的大小;Tracker選擇候選節(jié)點(diǎn)之后,返回節(jié)點(diǎn)列表之前,所述方法還包括 Tracker從候選節(jié)點(diǎn)中進(jìn)一步篩選出存儲(chǔ)空間大于第一數(shù)值,且內(nèi)存大于第二數(shù)值的 候選節(jié)點(diǎn);Tracker向請(qǐng)求節(jié)點(diǎn)返回節(jié)點(diǎn)列表包括Tracker將進(jìn)一步篩選出的候選節(jié)點(diǎn)的節(jié)點(diǎn)信息通過節(jié)點(diǎn)列表返回給請(qǐng)求節(jié)點(diǎn)。
6.如權(quán)利要求1、2、4或5所述的方法,其特征在于,所述方法還包括 可選節(jié)點(diǎn)向Tracker上報(bào)最近登錄Tracker時(shí)刻至當(dāng)前時(shí)刻的時(shí)長; Tracker選擇候選節(jié)點(diǎn)之后,返回節(jié)點(diǎn)列表之前,所述方法還包括Tracker從候選節(jié)點(diǎn)中進(jìn)一步篩選出最近登錄Tracker時(shí)刻至當(dāng)前時(shí)刻的時(shí)長大于第 二時(shí)長的候選節(jié)點(diǎn);Tracker向請(qǐng)求節(jié)點(diǎn)返回節(jié)點(diǎn)列表包括Tracker將進(jìn)一步篩選出的候選節(jié)點(diǎn)的節(jié)點(diǎn)信息通過節(jié)點(diǎn)列表返回給請(qǐng)求節(jié)點(diǎn)。
7.如權(quán)利要求1、2、4、5或6所述的方法,其特征在于,所述方法還包括 可選節(jié)點(diǎn)向Tracker上報(bào)上載數(shù)據(jù)的效率;Tracker選擇候選節(jié)點(diǎn)之后,返回節(jié)點(diǎn)列表之前,所述方法還包括Tracker從候選節(jié)點(diǎn)中進(jìn)一步篩選出上載數(shù)據(jù)的效率大于設(shè)定效率值的候選節(jié)點(diǎn);Tracker向請(qǐng)求節(jié)點(diǎn)返回節(jié)點(diǎn)列表包括Tracker將進(jìn)一步篩選出的候選節(jié)點(diǎn)的節(jié)點(diǎn)信息通過節(jié)點(diǎn)列表返回給請(qǐng)求節(jié)點(diǎn)。
8.如權(quán)利要求7所述的方法,其特征在于,所述上載數(shù)據(jù)的效率通過以下步驟確定 將可選節(jié)點(diǎn)最近登錄Tracker時(shí)刻至當(dāng)前時(shí)刻的時(shí)長,與在所述時(shí)長內(nèi)可選節(jié)點(diǎn)上載數(shù)據(jù)的數(shù)據(jù)量之商為可選節(jié)點(diǎn)上載數(shù)據(jù)的效率。
9.如權(quán)利要求1、2、4、5、6或7所述的方法,其特征在于,所述方法還包括 可選節(jié)點(diǎn)向Tracker上報(bào)所在網(wǎng)絡(luò)的網(wǎng)絡(luò)帶寬;Tracker選擇候選節(jié)點(diǎn)之后,返回節(jié)點(diǎn)列表之前,所述方法還包括 Tracker從候選節(jié)點(diǎn)中進(jìn)一步篩選出網(wǎng)絡(luò)帶寬大于設(shè)定帶寬值的候選節(jié)點(diǎn); Tracker向請(qǐng)求節(jié)點(diǎn)返回節(jié)點(diǎn)列表包括Tracker將進(jìn)一步篩選出的候選節(jié)點(diǎn)的節(jié)點(diǎn)信息通過節(jié)點(diǎn)列表返回給請(qǐng)求節(jié)點(diǎn)。
10.如權(quán)利要求9所述的方法,其特征在于,所述帶寬信息通過以下步驟確定可選節(jié)點(diǎn)向連接節(jié)點(diǎn)上載數(shù)據(jù)時(shí)測量的出向帶寬作為可選節(jié)點(diǎn)的網(wǎng)絡(luò)帶寬,或者根據(jù) 可選節(jié)點(diǎn)在一定時(shí)間內(nèi)向連接節(jié)點(diǎn)上載數(shù)據(jù)的數(shù)據(jù)量確定出可選節(jié)點(diǎn)的網(wǎng)絡(luò)帶寬。
11.如權(quán)利要求1、2、4、5、6、7或9所述的方法,其特征在于,所述方法還包括可選節(jié)點(diǎn)向Tracker上報(bào)緩存的連續(xù)子塊的個(gè)數(shù)以及所述連續(xù)子塊中第一個(gè)子塊的 序號(hào);所述節(jié)點(diǎn)列表請(qǐng)求中包含請(qǐng)求節(jié)點(diǎn)待下載數(shù)據(jù)的起始子塊序號(hào);Tracker選擇候選節(jié)點(diǎn)之后,返回節(jié)點(diǎn)列表之前,所述方法還包括Tracker從候選節(jié)點(diǎn)中進(jìn)一步篩選出緩存了所述待下載數(shù)據(jù)的起始子塊的候選節(jié)點(diǎn);Tracker向請(qǐng)求節(jié)點(diǎn)返回節(jié)點(diǎn)列表包括Tracker將進(jìn)一步篩選出的候選節(jié)點(diǎn)的節(jié)點(diǎn)信息通過節(jié)點(diǎn)列表返回給請(qǐng)求節(jié)點(diǎn)。
12.如權(quán)利要求11所述的方法,其特征在于,所述方法還包括 可選節(jié)點(diǎn)向Tracker上報(bào)緩存的子塊總個(gè)數(shù)信息;則所述進(jìn)一步篩選出的候選節(jié)點(diǎn)中緩存的子塊總個(gè)數(shù)大于第二閾值。
13.如權(quán)利要求11所述的方法,其特征在于,所述方法還包括可選節(jié)點(diǎn)向Tracker上報(bào)連接節(jié)點(diǎn)個(gè)數(shù)是否飽和的信息,或已連接的節(jié)點(diǎn)個(gè)數(shù)及能夠 連接的最大節(jié)點(diǎn)個(gè)數(shù),所述連接節(jié)點(diǎn)個(gè)數(shù)是指從可選節(jié)點(diǎn)處獲取數(shù)據(jù)的其他節(jié)點(diǎn)個(gè)數(shù); 則所述進(jìn)一步篩選出的候選節(jié)點(diǎn)的連接節(jié)點(diǎn)個(gè)數(shù)未飽。
14.一種在P2P流媒體系統(tǒng)中查找活動(dòng)節(jié)點(diǎn)的系統(tǒng),其特征在于,所述系統(tǒng)包括 可選節(jié)點(diǎn),用于向Tracker上報(bào)所處網(wǎng)絡(luò)的信息;請(qǐng)求節(jié)點(diǎn),用于向Tracker發(fā)送節(jié)點(diǎn)列表請(qǐng)求,并根據(jù)Tracker返回的節(jié)點(diǎn)列表中的節(jié) 點(diǎn)信息,確定至少一個(gè)候選節(jié)點(diǎn)作為活動(dòng)節(jié)點(diǎn);Tracker,用于在接收到節(jié)點(diǎn)列表請(qǐng)求后,根據(jù)可選節(jié)點(diǎn)所處網(wǎng)絡(luò)的信息確定處于有線 網(wǎng)絡(luò)的可選節(jié)點(diǎn)個(gè)數(shù),若處于有線網(wǎng)絡(luò)的可選節(jié)點(diǎn)個(gè)數(shù)不小于需要的候選節(jié)點(diǎn)個(gè)數(shù),則從處于有線網(wǎng)絡(luò)的可選節(jié)點(diǎn)中選擇候選節(jié)點(diǎn);若處于有線網(wǎng)絡(luò)的可選節(jié)點(diǎn)個(gè)數(shù)小于需要的候選節(jié)點(diǎn)個(gè)數(shù),則將處于有線網(wǎng)絡(luò)的所有 可選節(jié)點(diǎn)和至少一個(gè)處于無線網(wǎng)絡(luò)的可選節(jié)點(diǎn)作為候選節(jié)點(diǎn),以及將選擇的候選節(jié)點(diǎn)的節(jié) 點(diǎn)信息通過節(jié)點(diǎn)列表返回給請(qǐng)求節(jié)點(diǎn)。
15.如權(quán)利要求14所述的系統(tǒng),其特征在于,所述可選節(jié)點(diǎn),還用于向Tracker上報(bào)以下信息中的一種或多種的組合若可選節(jié)點(diǎn)處于無線網(wǎng)絡(luò),則上報(bào)電池續(xù)航時(shí)間;可選節(jié)點(diǎn)數(shù)據(jù)處理速度;可選節(jié)點(diǎn)的存儲(chǔ)空間和內(nèi)存的大?。豢蛇x節(jié)點(diǎn)最近登錄Tracker時(shí)刻至當(dāng)前時(shí)刻的時(shí)長;可選節(jié)點(diǎn)上載數(shù)據(jù)的效率;可選節(jié)點(diǎn)所處網(wǎng)絡(luò)的網(wǎng)絡(luò)帶寬;可選節(jié)點(diǎn)連接節(jié)點(diǎn)個(gè)數(shù)是否飽和;可選節(jié)點(diǎn)緩存的子塊總個(gè)數(shù)信息;可選節(jié)點(diǎn)緩存的連續(xù)子塊的個(gè)數(shù)以及所述連續(xù)子塊中第一個(gè)子塊的序號(hào)。
16.如權(quán)利要求14所述的系統(tǒng),其特征在于,Tracker,還用于按照下列條件中的一種或多種選擇候選節(jié)點(diǎn)若候選節(jié)點(diǎn)處于無線網(wǎng)絡(luò),則候選節(jié)點(diǎn)的電池續(xù)航時(shí)間大于第一時(shí)長;候選節(jié)點(diǎn)的數(shù)據(jù)處理速度大于設(shè)定速度;候選節(jié)點(diǎn)的存儲(chǔ)空間大于第一數(shù)值,且內(nèi)存大于第二數(shù)值;候選節(jié)點(diǎn)最近登錄Tracker時(shí)刻至當(dāng)前時(shí)刻的時(shí)長大于第二時(shí)長;候選節(jié)點(diǎn)上載數(shù)據(jù)的效率大于設(shè)定效率值;候選節(jié)點(diǎn)所處網(wǎng)絡(luò)的網(wǎng)絡(luò)帶寬大于設(shè)定帶寬值;候選節(jié)點(diǎn)連接節(jié)點(diǎn)個(gè)數(shù)未飽,所述連接節(jié)點(diǎn)個(gè)數(shù)是從候選節(jié)點(diǎn)處獲取數(shù)據(jù)的其他節(jié)點(diǎn) 個(gè)數(shù);候選節(jié)點(diǎn)中緩存了所述節(jié)點(diǎn)列表請(qǐng)求中包含的待下載數(shù)據(jù)的起始子塊; 候選節(jié)點(diǎn)中緩存的連續(xù)子塊的個(gè)數(shù)大于第一閾值; 候選節(jié)點(diǎn)中緩存的子塊總個(gè)數(shù)大于第二閾值。
17.—種追蹤設(shè)備,應(yīng)用于P2P流媒體系統(tǒng)中,其特征在于,所述追蹤設(shè)備包括 信息接收模塊,用于接收可選節(jié)點(diǎn)上報(bào)的所處網(wǎng)絡(luò)的信息;請(qǐng)求接收模塊,用于接收節(jié)點(diǎn)列表請(qǐng)求;選擇模塊,用于根據(jù)可選節(jié)點(diǎn)所處網(wǎng)絡(luò)的信息確定處于有線網(wǎng)絡(luò)的可選節(jié)點(diǎn)個(gè)數(shù),若 處于有線網(wǎng)絡(luò)的可選節(jié)點(diǎn)個(gè)數(shù)不小于需要的候選節(jié)點(diǎn)個(gè)數(shù),則從處于有線網(wǎng)絡(luò)的可選節(jié)點(diǎn) 中選擇候選節(jié)點(diǎn);若處于有線網(wǎng)絡(luò)的可選節(jié)點(diǎn)個(gè)數(shù)小于需要的候選節(jié)點(diǎn)個(gè)數(shù),則將處于有線網(wǎng)絡(luò)的所有 可選節(jié)點(diǎn)和至少一個(gè)處于無線網(wǎng)絡(luò)的可選節(jié)點(diǎn)作為候選節(jié)點(diǎn);列表發(fā)送模塊,用于將選擇的候選節(jié)點(diǎn)的節(jié)點(diǎn)信息通過節(jié)點(diǎn)列表返回給請(qǐng)求節(jié)點(diǎn)。
18.如權(quán)利要求17所述的追蹤設(shè)備,其特征在于,信息接收模塊,還用于接收以下信息中的一種或多種的組合若可選節(jié)點(diǎn)處于無線網(wǎng)絡(luò),則上報(bào)電池續(xù)航時(shí)間;可選節(jié)點(diǎn)數(shù)據(jù)處理速度;可選節(jié)點(diǎn)的存儲(chǔ)空間和內(nèi)存的大?。豢蛇x節(jié)點(diǎn)最近登錄Tracker時(shí)刻至當(dāng)前時(shí)刻的時(shí)長;可選節(jié)點(diǎn)上載數(shù)據(jù)的效率;可選節(jié)點(diǎn)所處網(wǎng)絡(luò)的網(wǎng)絡(luò)帶寬;可選節(jié)點(diǎn)連接節(jié)點(diǎn)個(gè)數(shù)是否飽和;可選節(jié)點(diǎn)緩存的子塊總個(gè)數(shù)信息;可選節(jié)點(diǎn)緩存的連續(xù)子塊的個(gè)數(shù)以及所述連續(xù)子塊中第一個(gè)子塊的序號(hào)。
19.如權(quán)利要求17所述的追蹤設(shè)備,其特征在于,所述選擇模塊,還用于按照下列條件中的一種或多種選擇候選節(jié)點(diǎn)若候選節(jié)點(diǎn)處于無線網(wǎng)絡(luò),則候選節(jié)點(diǎn)的電池續(xù)航時(shí)間大于第一時(shí)長;候選節(jié)點(diǎn)的數(shù)據(jù)處理速度大于設(shè)定速度;候選節(jié)點(diǎn)的存儲(chǔ)空間大于第一數(shù)值,且內(nèi)存大于第二數(shù)值;候選節(jié)點(diǎn)最近登錄Tracker時(shí)刻至當(dāng)前時(shí)刻的時(shí)長大于第二時(shí)長;候選節(jié)點(diǎn)上載數(shù)據(jù)的效率大于設(shè)定效率值;候選節(jié)點(diǎn)所處網(wǎng)絡(luò)的網(wǎng)絡(luò)帶寬大于設(shè)定帶寬值;候選節(jié)點(diǎn)連接節(jié)點(diǎn)個(gè)數(shù)未飽,所述連接節(jié)點(diǎn)個(gè)數(shù)是從候選節(jié)點(diǎn)處獲取數(shù)據(jù)的其他節(jié)點(diǎn) 個(gè)數(shù);候選節(jié)點(diǎn)中緩存了所述節(jié)點(diǎn)列表請(qǐng)求中包含的待下載數(shù)據(jù)的起始子塊; 候選節(jié)點(diǎn)中緩存的連續(xù)子塊的個(gè)數(shù)大于第一閾值; 候選節(jié)點(diǎn)中緩存的子塊總個(gè)數(shù)大于第二閾值。
20.一種節(jié)點(diǎn)設(shè)備,其特征在于,所述節(jié)點(diǎn)設(shè)備包括 信息上報(bào)模塊,用于向Tracker上報(bào)所處網(wǎng)絡(luò)的信息;數(shù)據(jù)輸出模塊,用于根據(jù)其他節(jié)點(diǎn)設(shè)備的請(qǐng)求向其他節(jié)點(diǎn)設(shè)備上載數(shù)據(jù)。
21.如權(quán)利要求20所述的節(jié)點(diǎn)設(shè)備,其特征在于,所述信息上報(bào)模塊,還用于向Tracker上報(bào)以下信息中的一種或多種的組合若節(jié)點(diǎn)設(shè)備處于無線網(wǎng)絡(luò),則上報(bào)電池續(xù)航時(shí)間;節(jié)點(diǎn)設(shè)備的數(shù)據(jù)處理速度;節(jié)點(diǎn)設(shè)備的存儲(chǔ)空間和內(nèi)存的大??;節(jié)點(diǎn)設(shè)備最近登錄Tracker時(shí)刻至當(dāng)前時(shí)刻的時(shí)長;節(jié)點(diǎn)設(shè)備上載數(shù)據(jù)的效率;節(jié)點(diǎn)設(shè)備所處網(wǎng)絡(luò)的網(wǎng)絡(luò)帶寬;節(jié)點(diǎn)設(shè)備連接節(jié)點(diǎn)個(gè)數(shù)是否飽和;節(jié)點(diǎn)設(shè)備緩存的子塊總個(gè)數(shù)信息;節(jié)點(diǎn)設(shè)備緩存的連續(xù)子塊的個(gè)數(shù)以及所述連續(xù)子塊中第一個(gè)子塊的序號(hào)。
全文摘要
本發(fā)明公開了一種在P2P流媒體系統(tǒng)中查找活動(dòng)節(jié)點(diǎn)的方法,包括可選節(jié)點(diǎn)向Tracker上報(bào)自身所處網(wǎng)絡(luò)的網(wǎng)絡(luò)狀態(tài)、緩存子塊的情況以及自身的能力,所述自身的能力中還進(jìn)一步包含處于無線網(wǎng)絡(luò)的可選節(jié)點(diǎn)的電池續(xù)航能力,當(dāng)Tracker為請(qǐng)求節(jié)點(diǎn)選擇候選節(jié)點(diǎn)時(shí),根據(jù)接收到的可選節(jié)點(diǎn)的信息選擇網(wǎng)絡(luò)狀態(tài)、緩存子塊以及自身的能力與請(qǐng)求節(jié)點(diǎn)匹配的候選節(jié)點(diǎn),使得請(qǐng)求節(jié)點(diǎn)從候選節(jié)點(diǎn)中選擇活動(dòng)節(jié)點(diǎn)時(shí),選擇的活動(dòng)節(jié)點(diǎn)能夠較好地為請(qǐng)求節(jié)點(diǎn)上載數(shù)據(jù)。本發(fā)明還公開了在P2P流媒體系統(tǒng)中查找活動(dòng)節(jié)點(diǎn)的系統(tǒng)及設(shè)備。
文檔編號(hào)H04L29/06GK101969448SQ20091008667
公開日2011年2月9日 申請(qǐng)日期2009年6月17日 優(yōu)先權(quán)日2009年6月17日
發(fā)明者張?jiān)骑w, 彭晉, 段曉東, 郝甲東, 魏冰 申請(qǐng)人:中國移動(dòng)通信集團(tuán)公司