專利名稱:鄰居節(jié)點(diǎn)的選擇方法、裝置和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信網(wǎng)絡(luò)技術(shù),尤其涉及一種鄰居節(jié)點(diǎn)的選擇方法、裝置和系統(tǒng)。
背景技術(shù):
在物理網(wǎng)絡(luò)中,安裝了對等(Peer-to-Peer,以下簡稱P2P)軟件的節(jié)點(diǎn)構(gòu)成一個 邏輯覆蓋網(wǎng)絡(luò)(Logical Overlay Network),該邏輯覆蓋網(wǎng)絡(luò)稱為P2P網(wǎng)絡(luò),也稱為對等網(wǎng) 絡(luò)。與傳統(tǒng)的客戶/服務(wù)器模式的多點(diǎn)通信網(wǎng)絡(luò)不同,在P2P網(wǎng)絡(luò)中,每個節(jié)點(diǎn)的地位是對 等的,每個節(jié)點(diǎn)既充當(dāng)服務(wù)器,為其他節(jié)點(diǎn)提供服務(wù),同時也享用其他節(jié)點(diǎn)提供的服務(wù)。P2P 網(wǎng)絡(luò)架構(gòu)與物理網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)也不同,在P2P網(wǎng)絡(luò)架構(gòu)中,相鄰的節(jié)點(diǎn)在物理網(wǎng)絡(luò)中可 能位于不同的子網(wǎng)內(nèi),不相鄰的節(jié)點(diǎn)在物理網(wǎng)絡(luò)中可能是直接相連的。
在P2P網(wǎng)絡(luò)中,P2P網(wǎng)絡(luò)對節(jié)點(diǎn)的加入和退出沒有直接的控制,也沒有協(xié)調(diào)或限 制,P2P網(wǎng)絡(luò)組成成員的變化由節(jié)點(diǎn)驅(qū)動,節(jié)點(diǎn)可以在任意時間加入網(wǎng)絡(luò),也可以在任意 時間退出網(wǎng)絡(luò)。這種由節(jié)點(diǎn)驅(qū)動的P2P網(wǎng)絡(luò)中組成成員的連續(xù)動態(tài)變化的行為稱為擾動 (Churn)。 對P2P網(wǎng)絡(luò)的研究和數(shù)據(jù)統(tǒng)計表明,節(jié)點(diǎn)在網(wǎng)絡(luò)中的當(dāng)前會話保持時間(Uptime) 越長,節(jié)點(diǎn)的會話保持時間(Session time)越長的可能性就越大,節(jié)點(diǎn)在P2P網(wǎng)絡(luò)中的剩 余保持時間就越長的可能性也就越大。其中,會話保持時間指的是節(jié)點(diǎn)從加入P2P網(wǎng)絡(luò)到 退出P2P網(wǎng)絡(luò)的時間間隔,當(dāng)前會話保持時間指的是節(jié)點(diǎn)從加入P2P網(wǎng)絡(luò)到當(dāng)前時刻的時 間間隔,剩余保持時間指的是從當(dāng)前時刻到節(jié)點(diǎn)退出P2P網(wǎng)絡(luò)的時間間隔。因此,可以認(rèn) 為,當(dāng)前會話保持時間可以作為節(jié)點(diǎn)在P2P網(wǎng)絡(luò)中的剩余保持時間的預(yù)領(lǐng)"于是,為了降低 擾動對P2P網(wǎng)絡(luò)造成的影響,一般情況下,當(dāng)節(jié)點(diǎn)加入P2P網(wǎng)絡(luò)中,選擇當(dāng)前會話保持時間 長的節(jié)點(diǎn)作為該加入節(jié)點(diǎn)的鄰居節(jié)點(diǎn),從而減少鄰居節(jié)點(diǎn)加入或退出網(wǎng)絡(luò)的概率,降低擾 動對網(wǎng)絡(luò)的影響,增強(qiáng)網(wǎng)絡(luò)的穩(wěn)定性。 但是,發(fā)明人在本發(fā)明研究過程中發(fā)現(xiàn),選擇當(dāng)前會話保持時間長的節(jié)點(diǎn)作為鄰 居節(jié)點(diǎn)存在以下缺陷雖然選擇了當(dāng)前會話保持時間長的節(jié)點(diǎn)作為鄰居節(jié)點(diǎn),而且該鄰居 節(jié)點(diǎn)在短時間內(nèi)退出網(wǎng)絡(luò)的概率較小,但是仍然存在該鄰居節(jié)點(diǎn)在短時間內(nèi)退出網(wǎng)絡(luò)的可 能性,也就是選錯鄰居節(jié)點(diǎn)的可能性仍然較大,從而導(dǎo)致小概率錯誤發(fā)生的可能性較大。
發(fā)明內(nèi)容
本發(fā)明實施例提供了一種鄰居節(jié)點(diǎn)的選擇方法、裝置和系統(tǒng),用以實現(xiàn)選擇穩(wěn)定 性較高的節(jié)點(diǎn)作為鄰居節(jié)點(diǎn),降低小概率錯誤發(fā)生的可能性。
本發(fā)明實施例提供了一種鄰居節(jié)點(diǎn)的選擇方法,包括 獲取候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、當(dāng)前時刻與歷史會話時間,該歷史會話 時間用于表示候選鄰居節(jié)點(diǎn)在當(dāng)前會話開始時刻前預(yù)設(shè)時間段內(nèi)會話的會話保持時間;
根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、當(dāng)前時刻與歷史會話時間,計算候選鄰 居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率;
根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率,選擇預(yù)設(shè)數(shù)量的候選鄰居節(jié)點(diǎn)作 為鄰居節(jié)點(diǎn)。 本發(fā)明實施例還提供了一種鄰居節(jié)點(diǎn)的選擇方法,包括
接收加入節(jié)點(diǎn)發(fā)送的獲取請求消息; 根據(jù)所述獲取請求消息,向所述加入節(jié)點(diǎn)返回當(dāng)前會話開始時刻、當(dāng)前時刻以及 歷史會話時間,該歷史會話時間用于表示候選鄰居節(jié)點(diǎn)在當(dāng)前會話開始時刻前預(yù)設(shè)時間段 內(nèi)的會話的會話保持時間。 本發(fā)明實施例還提供了一種鄰居節(jié)點(diǎn)的選擇裝置,包括 第一獲取模塊,用于獲取候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、當(dāng)前時刻與歷史會 話時間,該歷史會話時間用于表示候選鄰居節(jié)點(diǎn)在當(dāng)前會話開始時刻前預(yù)設(shè)時間段內(nèi)會話 的會話保持時間; 第二獲取模塊,用于根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、當(dāng)前時刻與歷史會 話時間,計算候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率; 第一選擇模塊,用于根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率,選擇預(yù)設(shè)數(shù) 量的候選鄰居節(jié)點(diǎn)作為鄰居節(jié)點(diǎn)。 本發(fā)明實施例還提供了一種鄰居節(jié)點(diǎn)的選擇裝置,包括
第一接收模塊,用于接收加入節(jié)點(diǎn)發(fā)送的獲取請求消息; 第一返回模塊,用于根據(jù)所述獲取請求消息,向所述加入節(jié)點(diǎn)返回當(dāng)前會話開始 時刻、當(dāng)前時刻以及歷史會話時間,該歷史會話時間用于表示候選鄰居節(jié)點(diǎn)在當(dāng)前會話開 始時刻前預(yù)設(shè)時間段內(nèi)會話的會話保持時間。
本發(fā)明實施例還提供了一種鄰居節(jié)點(diǎn)的選擇裝置,包括 第一獲取模塊,用于獲取候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、當(dāng)前時刻與歷史會 話時間,該歷史會話時間用于表示候選鄰居節(jié)點(diǎn)在當(dāng)前會話開始時刻前預(yù)設(shè)時間段內(nèi)會話 的會話保持時間; 第二獲取模塊,用于根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、當(dāng)前時刻與歷史會 話時間,計算候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率; 第一選擇模塊,用于根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率,選擇預(yù)設(shè)數(shù) 量的候選鄰居節(jié)點(diǎn)作為鄰居節(jié)點(diǎn); 第一接收模塊,用于接收加入節(jié)點(diǎn)發(fā)送的獲取請求消息; 第一返回模塊,用于根據(jù)所述獲取請求消息,向所述加入節(jié)點(diǎn)返回當(dāng)前會話開始 時刻、當(dāng)前時刻以及歷史會話時間。 本發(fā)明實施例還提供了一種鄰居節(jié)點(diǎn)的選擇系統(tǒng),包括加入節(jié)點(diǎn)和候選鄰居節(jié) 點(diǎn); 所述加入節(jié)點(diǎn)用于獲取候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、當(dāng)前時刻與歷史會話 時間,該歷史會話時間用于表示候選鄰居節(jié)點(diǎn)在當(dāng)前會話開始時刻前預(yù)設(shè)時間段內(nèi)會話的 會話保持時間,根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、當(dāng)前時刻與歷史會話時間,計算候 選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率,根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率, 選擇預(yù)設(shè)數(shù)量的候選鄰居節(jié)點(diǎn)作為鄰居節(jié)點(diǎn); 所述候選鄰居節(jié)點(diǎn)用于接收所述加入節(jié)點(diǎn)發(fā)送的獲取請求消息,根據(jù)所述獲取請求消息,向所述加入節(jié)點(diǎn)返回當(dāng)前會話開始時刻、當(dāng)前時刻以及歷史會話時間。 本發(fā)明實施例提供的鄰居節(jié)點(diǎn)的選擇方法、裝置和系統(tǒng),根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)
前會話開始時刻、當(dāng)前時刻與歷史會話時間,選擇預(yù)設(shè)數(shù)量的候選鄰居節(jié)點(diǎn)作為鄰居節(jié)點(diǎn),
為加入節(jié)點(diǎn)選擇更加穩(wěn)定的鄰居節(jié)點(diǎn),規(guī)避了短時間內(nèi)連續(xù)加入和退出P2P網(wǎng)絡(luò)的節(jié)點(diǎn),
從而降低小概率錯誤發(fā)生的可能性。
圖1為本發(fā)明鄰居節(jié)點(diǎn)的選擇方法第一實施例的流程圖; 圖2為本發(fā)明鄰居節(jié)點(diǎn)的選擇方法第二實施例的流程圖; 圖3為本發(fā)明鄰居節(jié)點(diǎn)的選擇方法第三實施例的流程圖; 圖4為本發(fā)明鄰居節(jié)點(diǎn)的選擇方法第四實施例的流程圖; 圖5為本發(fā)明鄰居節(jié)點(diǎn)的選擇方法第五實施例的流程圖; 圖6為本發(fā)明鄰居節(jié)點(diǎn)的選擇裝置第一實施例的結(jié)構(gòu)示意圖; 圖7為本發(fā)明鄰居節(jié)點(diǎn)的選擇裝置第二實施例的結(jié)構(gòu)示意圖; 圖8為本發(fā)明鄰居節(jié)點(diǎn)的選擇裝置第三實施例的結(jié)構(gòu)示意圖; 圖9為本發(fā)明鄰居節(jié)點(diǎn)的選擇裝置第四實施例的結(jié)構(gòu)示意圖; 圖10為本發(fā)明鄰居節(jié)點(diǎn)的選擇裝置第五實施例的結(jié)構(gòu)示意圖; 圖11為本發(fā)明鄰居節(jié)點(diǎn)的選擇裝置第六實施例的結(jié)構(gòu)示意圖; 圖12為本發(fā)明鄰居節(jié)點(diǎn)的選擇系統(tǒng)實施例的結(jié)構(gòu)示意圖。
具體實施例方式
下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。 如圖1所示,為本發(fā)明鄰居節(jié)點(diǎn)的選擇方法第一實施例的流程圖,具體可以包括
如下步驟 步驟11、加入節(jié)點(diǎn)獲取候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、當(dāng)前時刻與歷史會話 時間,該歷史會話時間用于表示候選鄰居節(jié)點(diǎn)在當(dāng)前會話開始時刻前預(yù)設(shè)時間段內(nèi)會話的 會話保持時間; 具體地,加入節(jié)點(diǎn)在加入P2P網(wǎng)絡(luò)時,通過預(yù)配置或從已知的索引服務(wù)器中查詢 等方法從現(xiàn)有物理網(wǎng)絡(luò)中獲取一節(jié)點(diǎn),候選鄰居節(jié)點(diǎn)包括該節(jié)點(diǎn)的所有鄰居節(jié)點(diǎn)和后備節(jié) 點(diǎn),該后備節(jié)點(diǎn)包括該節(jié)點(diǎn)的各鄰居節(jié)點(diǎn)的所有鄰居節(jié)點(diǎn); 步驟12、加入節(jié)點(diǎn)根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、當(dāng)前時刻與歷史會話 時間,計算候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率; 步驟13、加入節(jié)點(diǎn)根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率,選擇預(yù)設(shè)數(shù)量 的候選鄰居節(jié)點(diǎn)作為鄰居節(jié)點(diǎn); 具體地,候選鄰居節(jié)點(diǎn)的個數(shù)可以根據(jù)實際的P2P網(wǎng)絡(luò)確定;此外,對P2P網(wǎng)絡(luò)的 研究和數(shù)據(jù)統(tǒng)計表明,在P2P網(wǎng)絡(luò)中,節(jié)點(diǎn)加入的時間間隔服從泊松分布,節(jié)點(diǎn)的會話時間 服從冪律分布,節(jié)點(diǎn)加入和退出P2P網(wǎng)絡(luò)具有一定規(guī)律,隨著歷史會話時間的積累,歷史會 話時間越來越精確地刻畫某次會話的會話保持時間長短,因此歷史會話時間可以作為某次 會話的會話保持時間的預(yù)測。
7
本實施例通過加入節(jié)點(diǎn)根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、當(dāng)前時刻與歷史 會話時間,計算候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率,根據(jù)該概率,選擇預(yù)設(shè)數(shù)量的候 選鄰居節(jié)點(diǎn)作為鄰居節(jié)點(diǎn),在考慮候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、當(dāng)前時刻的基礎(chǔ)上, 又考慮了候選鄰居節(jié)點(diǎn)的歷史會話時間來選擇鄰居節(jié)點(diǎn),可以降低現(xiàn)有技術(shù)中只考慮當(dāng)前 會話保持時間來選擇鄰居節(jié)點(diǎn)而該鄰居節(jié)點(diǎn)在短時間內(nèi)退出網(wǎng)絡(luò)的可能性,為加入節(jié)點(diǎn)選 擇更加穩(wěn)定的鄰居節(jié)點(diǎn),規(guī)避了短時間內(nèi)連續(xù)加入和退出P2P網(wǎng)絡(luò)的節(jié)點(diǎn),從而降低小概 率錯誤發(fā)生的可能性。 如圖2所示,為本發(fā)明鄰居節(jié)點(diǎn)的選擇方法第二實施例的流程圖,與上一實施例 的不同之處在于,步驟12具體可以包括如下步驟 步驟21、加入節(jié)點(diǎn)根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻和當(dāng)前時刻,獲取候選 鄰居節(jié)點(diǎn)的當(dāng)前會話保持時間; 具體地,當(dāng)前會話保持時間為當(dāng)前時刻與當(dāng)前會話開始時刻之間的時間間隔;
步驟22、加入節(jié)點(diǎn)根據(jù)候選鄰居節(jié)點(diǎn)的歷史會話時間與候選鄰居節(jié)點(diǎn)的當(dāng)前會話 保持時間,獲取候選鄰居節(jié)點(diǎn)的歷史會話時間與候選鄰居節(jié)點(diǎn)的當(dāng)前會話保持時間的差值 的中值; 步驟23、加入節(jié)點(diǎn)獲取候選鄰居節(jié)點(diǎn)的歷史會話時間與候選鄰居節(jié)點(diǎn)的當(dāng)前會話 保持時間的差值大于該中值的第一概率作為候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率。
在上一實施例的基礎(chǔ)上,步驟13具體可以為 步驟24、加入節(jié)點(diǎn)對候選鄰居節(jié)點(diǎn)的第一概率進(jìn)行排序,選擇預(yù)設(shè)數(shù)量的第一概 率最大的候選鄰居節(jié)點(diǎn)作為鄰居節(jié)點(diǎn)。 下面通過一具體實例說明本實施例步驟11-步驟24的技術(shù)方案。加入節(jié)點(diǎn)A作 為新節(jié)點(diǎn)加入P2P網(wǎng)絡(luò)時,通過預(yù)配置或從已知的索引服務(wù)器中查詢等方法獲取P2P網(wǎng)路 中的節(jié)點(diǎn)B的。加入節(jié)點(diǎn)A與節(jié)點(diǎn)B建立通信,獲取節(jié)點(diǎn)B的鄰居節(jié)點(diǎn)和后備節(jié)點(diǎn)作為加 入節(jié)點(diǎn)A的候選鄰居節(jié)點(diǎn),其中,節(jié)點(diǎn)B的鄰居節(jié)點(diǎn)有K個,節(jié)點(diǎn)B的后備節(jié)點(diǎn)有K*K個, 這樣,加入節(jié)點(diǎn)A就有n = K+K*K個候選鄰居節(jié)點(diǎn)。加入節(jié)點(diǎn)A獲取n個候選鄰居節(jié)點(diǎn)的 三元組,包括當(dāng)前會話開始時刻、當(dāng)前時刻與歷史會話時間,將n個候選鄰居節(jié)點(diǎn)的歷史會 話時間存放在歷史會話時間矩陣SessionTime中,其中候選鄰居節(jié)點(diǎn)的歷史會話時間存放 在歷史會話時間數(shù)組SessionTime[i]中,歷史會話時間數(shù)組SessionTime[i]的長度為 t[i],則歷史會話時間矩陣SessionTime中的元素為SessionTime [i]
, SessionTime [i],......, SessionTime[i] [t[i]-l],O《i《n_l。獲取候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始
時刻與當(dāng)前時刻的差值,得到候選鄰居節(jié)點(diǎn)的當(dāng)前會話保持時間。獲取歷史會話時間矩陣 SessionTime中元素SessionTime[i] [t[i]-l]與候選鄰居節(jié)點(diǎn)的當(dāng)前會話保持時間的差 值的中值作為測定基準(zhǔn),獲取候選鄰居節(jié)點(diǎn)的歷史會話時間數(shù)組SessionTime[i]與候選 鄰居節(jié)點(diǎn)的當(dāng)前會話保持時間的差值大于該中值的概率Pi,對Pi進(jìn)行排序,選擇Pi最大的 K個候選鄰居節(jié)點(diǎn)作為加入節(jié)點(diǎn)A的鄰居節(jié)點(diǎn)。 現(xiàn)有技術(shù)中沒有考慮在選擇的鄰居節(jié)點(diǎn)退出網(wǎng)絡(luò)后,怎樣重新選擇鄰居節(jié)點(diǎn)。在 本實施例中,為了在選擇的鄰居節(jié)點(diǎn)退出網(wǎng)路后,選擇新的鄰居節(jié)點(diǎn)來替換原來選擇的鄰 居節(jié)點(diǎn),步驟24之后還可以包括如下步驟 步驟25、加入節(jié)點(diǎn)根據(jù)預(yù)設(shè)周期向鄰居節(jié)點(diǎn)發(fā)送連接請求消息;
步驟26、加入節(jié)點(diǎn)判斷是否在預(yù)設(shè)時間內(nèi)收到鄰居節(jié)點(diǎn)針對連接請求消息的連接 響應(yīng)消息,若在預(yù)設(shè)時間內(nèi)未接收到一個或多個鄰居節(jié)點(diǎn)針對連接請求消息返回的連接響 應(yīng)消息,執(zhí)行步驟ll,若在預(yù)設(shè)時間內(nèi)收到所有鄰居節(jié)點(diǎn)針對連接請求消息的連接響應(yīng)消 息,執(zhí)行步驟25。 本實施例通過加入節(jié)點(diǎn)根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、當(dāng)前時刻與歷史 會話時間,選擇預(yù)設(shè)數(shù)量的候選鄰居節(jié)點(diǎn)作為鄰居節(jié)點(diǎn),從而選擇更加穩(wěn)定的鄰居節(jié)點(diǎn),規(guī) 避了短時間內(nèi)連續(xù)加入和退出P2P網(wǎng)絡(luò)的節(jié)點(diǎn),從而降低小概率錯誤發(fā)生的可能性。此外, 加入節(jié)點(diǎn)根據(jù)預(yù)設(shè)周期向鄰居節(jié)點(diǎn)發(fā)送連接請求消息,若在預(yù)設(shè)時間內(nèi)未接收到一個或多 個鄰居節(jié)點(diǎn)針對連接請求消息返回的連接響應(yīng)消息,加入節(jié)點(diǎn)重新根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng) 前會話開始時刻、當(dāng)前時刻與歷史會話時間選擇新的鄰居節(jié)點(diǎn),減少數(shù)據(jù)重傳的可能性,降 低擾動對網(wǎng)絡(luò)的影響,提高網(wǎng)絡(luò)的穩(wěn)定性。 如圖3所示,為本發(fā)明鄰居節(jié)點(diǎn)的選擇方法第三實施例的流程圖,在圖1所示技術(shù) 方案的基礎(chǔ)上,步驟12具體可以包括如下步驟 步驟31、加入節(jié)點(diǎn)根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻和當(dāng)前時刻,獲取候選 鄰居節(jié)點(diǎn)的當(dāng)前會話保持時間; 步驟32、加入節(jié)點(diǎn)根據(jù)候選鄰居節(jié)點(diǎn)的歷史會話時間和當(dāng)前會話保持時間,獲取 候選鄰居節(jié)點(diǎn)的歷史會話時間大于當(dāng)前會話保持時間的第二概率作為候選鄰居節(jié)點(diǎn)的當(dāng) 前會話繼續(xù)保持的概率。 在圖1所示技術(shù)方案基礎(chǔ)上,步驟13具體可以為 步驟33、加入節(jié)點(diǎn)對候選鄰居節(jié)點(diǎn)的第二概率進(jìn)行排序,選擇預(yù)設(shè)數(shù)量的第二概 率最大的候選鄰居節(jié)點(diǎn)作為鄰居節(jié)點(diǎn)。 簡而言之,步驟31-33的技術(shù)方案是選擇候選鄰居節(jié)點(diǎn)的歷史單次會話時間超過 該候選鄰居節(jié)點(diǎn)的當(dāng)前會話保持時間的概率最大的候選鄰居節(jié)點(diǎn)作為鄰居節(jié)點(diǎn)。假設(shè)候選 鄰居節(jié)點(diǎn)C的當(dāng)前會話保持時間為1小時,其10次歷史會話時間中有8次歷史會話時間超 過1小時,則可以得知候選鄰居節(jié)點(diǎn)C的單次會話時間超過1小時的概率為80%。候選鄰 居節(jié)點(diǎn)D的當(dāng)前會話保持時間為1小時,其10次歷史會話時間中有3次歷史會話時間超過 1小時,則可以得知候選鄰居節(jié)點(diǎn)D單次會話時間超過1小時的概率為30%,則選擇候選鄰 居節(jié)點(diǎn)C作為鄰居節(jié)點(diǎn),而不選擇候選鄰居節(jié)點(diǎn)D作為鄰居節(jié)點(diǎn)。 此外,無論采用本實施例所述的技術(shù)方案或者其他技術(shù)方案選擇的鄰居節(jié)點(diǎn)退出 P2P網(wǎng)絡(luò)后,加入節(jié)點(diǎn)重新選擇新的鄰居節(jié)點(diǎn),減少數(shù)據(jù)重傳的發(fā)生,提高網(wǎng)絡(luò)的穩(wěn)定性,步 驟11之前還可以包括如下步驟 步驟34、加入節(jié)點(diǎn)根據(jù)預(yù)設(shè)周期向鄰居節(jié)點(diǎn)發(fā)送連接請求消息; 步驟35、加入節(jié)點(diǎn)判斷是否在預(yù)設(shè)時間內(nèi)收到鄰居節(jié)點(diǎn)針對連接請求消息的連接
響應(yīng)消息,若在預(yù)設(shè)時間內(nèi)未接收到一個或多個鄰居節(jié)點(diǎn)針對連接請求消息返回的連接響
應(yīng)消息,執(zhí)行步驟ll,若在預(yù)設(shè)時間內(nèi)收到所有鄰居節(jié)點(diǎn)針對連接請求消息的連接響應(yīng)消
息,執(zhí)行步驟34。 本實施例通過加入節(jié)點(diǎn)根據(jù)預(yù)設(shè)周期向鄰居節(jié)點(diǎn)發(fā)送連接請求消息,若在預(yù)設(shè)時 間內(nèi)未接收到一個或多個鄰居節(jié)點(diǎn)針對連接請求消息返回的連接響應(yīng)消息,加入節(jié)點(diǎn)根據(jù) 候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、當(dāng)前時刻與歷史會話時間為該加入節(jié)點(diǎn)選擇新的鄰居節(jié)點(diǎn),減少數(shù)據(jù)重傳的可能性,降低擾動對網(wǎng)絡(luò)的影響,提高網(wǎng)絡(luò)的穩(wěn)定性。此外,加入節(jié)點(diǎn) 通過根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、當(dāng)前時刻與歷史會話時間,選擇預(yù)設(shè)數(shù)量的 候選鄰居節(jié)點(diǎn)作為鄰居節(jié)點(diǎn),從而選擇更加穩(wěn)定的鄰居節(jié)點(diǎn),規(guī)避了短時間內(nèi)連續(xù)加入和 退出P2P網(wǎng)絡(luò)的節(jié)點(diǎn),降低小概率錯誤發(fā)生的可能性。 如圖4所示,為本發(fā)明鄰居節(jié)點(diǎn)的選擇方法第四實施例的流程圖,具體可以包括 如下步驟 步驟41、候選鄰居節(jié)點(diǎn)接收加入節(jié)點(diǎn)發(fā)送的獲取請求消息; 步驟42、候選鄰居節(jié)點(diǎn)根據(jù)該獲取請求消息,向加入節(jié)點(diǎn)返回當(dāng)前會話開始時刻、 當(dāng)前時刻以及歷史會話時間,該歷史會話時間表示該候選鄰居節(jié)點(diǎn)在該當(dāng)前會話開始時刻 前預(yù)設(shè)時間段內(nèi)的會話的會話保持時間。 本實施例通過候選鄰居節(jié)點(diǎn)向加入節(jié)點(diǎn)返回當(dāng)前會話開始時刻、當(dāng)前時刻以及表 示在該當(dāng)前會話開始時刻前預(yù)設(shè)時間段內(nèi)的會話的會話保持時間,可以便于加入節(jié)點(diǎn)根據(jù) 候選鄰居節(jié)點(diǎn)發(fā)送的當(dāng)前會話開始時刻、當(dāng)前時刻以及歷史會話時間,選擇預(yù)設(shè)數(shù)量的候 選鄰居節(jié)點(diǎn)作為其鄰居節(jié)點(diǎn),從而選擇更加穩(wěn)定的鄰居節(jié)點(diǎn),規(guī)避了短時間內(nèi)連續(xù)加入和 退出P2P網(wǎng)絡(luò)的節(jié)點(diǎn),從而降低小概率錯誤發(fā)生的可能性。 如圖5所示,為本發(fā)明鄰居節(jié)點(diǎn)的選擇方法第五實施例的流程圖,在上一實施例 的基礎(chǔ)上,為了向加入節(jié)點(diǎn)返回歷史會話時間,步驟41和步驟42之間具體可以包括如下步 驟 步驟51、候選鄰居節(jié)點(diǎn)統(tǒng)計其歷史會話時間。 此外,步驟51還可以發(fā)生在當(dāng)前會話開始時或會話結(jié)束后。 本實施例通過候選鄰居節(jié)點(diǎn)統(tǒng)計其歷史會話時間后,向加入節(jié)點(diǎn)返回當(dāng)前會話開 始時刻、當(dāng)前時刻以及歷史會話時間,可以便于加入節(jié)點(diǎn)根據(jù)候選鄰居節(jié)點(diǎn)發(fā)送的當(dāng)前會 話開始時刻、當(dāng)前時刻以及歷史會話時間,選擇預(yù)設(shè)數(shù)量的候選鄰居節(jié)點(diǎn)作為其鄰居節(jié)點(diǎn), 從而選擇更加穩(wěn)定的鄰居節(jié)點(diǎn),規(guī)避了短時間內(nèi)連續(xù)加入和退出P2P網(wǎng)絡(luò)的節(jié)點(diǎn),從而降 低小概率錯誤發(fā)生的可能性。 如圖6所示,為本發(fā)明鄰居節(jié)點(diǎn)的選擇裝置第一實施例的結(jié)構(gòu)示意圖,具體可以 包括第一獲取模塊61、第二獲取模塊62和第一選擇模塊63,其中第一獲取模塊61用于獲 取候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、當(dāng)前時刻與歷史會話時間,該歷史會話時間用于表 示候選鄰居節(jié)點(diǎn)在當(dāng)前會話開始時刻前預(yù)設(shè)時間段內(nèi)會話的會話保持時間;具體地,加入 節(jié)點(diǎn)在加入網(wǎng)絡(luò)時,通過預(yù)配置或從已知的索引服務(wù)器中查詢等方法從現(xiàn)有物理網(wǎng)絡(luò)中獲 取一節(jié)點(diǎn);候選鄰居節(jié)點(diǎn)包括該節(jié)點(diǎn)的所有鄰居節(jié)點(diǎn)和后備節(jié)點(diǎn),該后備節(jié)點(diǎn)包括該節(jié)點(diǎn) 的鄰居節(jié)點(diǎn)的所有鄰居節(jié)點(diǎn);第二獲取模塊62用于根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時 刻、當(dāng)前時刻與歷史會話時間,計算候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率;對P2P網(wǎng)絡(luò) 的研究和數(shù)據(jù)統(tǒng)計表明,在P2P網(wǎng)絡(luò)中,節(jié)點(diǎn)加入的時間間隔服從泊松分布,節(jié)點(diǎn)的會話時 間服從冪律分布,節(jié)點(diǎn)加入和退出P2P網(wǎng)絡(luò)具有一定規(guī)律,隨著歷史會話時間的積累,歷史 會話時間越來越精確地刻畫某次會話的會話保持時間長短,因此歷史會話時間可以作為某 次會話的會話保持時間的預(yù)測;第一選擇模塊63用于根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù) 保持的概率,選擇預(yù)設(shè)數(shù)量的候選鄰居節(jié)點(diǎn)作為鄰居節(jié)點(diǎn)。 本實施例通過第一選擇模塊63根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率,選擇預(yù)設(shè)數(shù)量的候選鄰居節(jié)點(diǎn)作為鄰居節(jié)點(diǎn),在考慮候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、 當(dāng)前時刻的基礎(chǔ)上,又考慮了候選鄰居節(jié)點(diǎn)的歷史會話時間來選擇鄰居節(jié)點(diǎn),可以降低現(xiàn) 有技術(shù)中只考慮當(dāng)前會話保持時間來選擇鄰居節(jié)點(diǎn)而該鄰居節(jié)點(diǎn)在短時間內(nèi)退出網(wǎng)絡(luò)的 可能性,從而選擇更加穩(wěn)定的鄰居節(jié)點(diǎn),規(guī)避了短時間內(nèi)連續(xù)加入和退出P2P網(wǎng)絡(luò)的節(jié)點(diǎn), 降低小概率錯誤發(fā)生的可能性。 如圖7所示,為本發(fā)明鄰居節(jié)點(diǎn)的選擇裝置第二實施例的結(jié)構(gòu)示意圖,在上一實 施例的基礎(chǔ)上,第二獲取模塊62具體可以包括第一獲取單元72、第二獲取單元73和第三 獲取單元74,其中第一獲取單元72用于根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻和當(dāng)前時 刻,獲取候選鄰居節(jié)點(diǎn)的當(dāng)前會話保持時間;具體地,當(dāng)前會話保持時間為當(dāng)前時刻與當(dāng)前 會話開始時刻之間的時間間隔;第二獲取單元73用于根據(jù)候選鄰居節(jié)點(diǎn)的歷史會話時間 與候選鄰居節(jié)點(diǎn)的當(dāng)前會話保持時間,獲取候選鄰居節(jié)點(diǎn)的歷史會話時間與候選鄰居節(jié)點(diǎn) 的當(dāng)前會話保持時間的差值的中值;第三獲取單元74用于獲取候選鄰居節(jié)點(diǎn)的歷史會話 時間與候選鄰居節(jié)點(diǎn)的當(dāng)前會話保持時間的差值大于中值的第一概率作為候選鄰居節(jié)點(diǎn) 的當(dāng)前會話繼續(xù)保持的概率。 在上一實施例的基礎(chǔ)上,第一選擇模塊63具體可以包括第一選擇單元75,用于對 候選鄰居節(jié)點(diǎn)的第一概率進(jìn)行排序,選擇預(yù)設(shè)數(shù)量的第一概率最大的候選鄰居節(jié)點(diǎn)作為鄰 居節(jié)點(diǎn)。 現(xiàn)有技術(shù)中沒有考慮在選擇的鄰居節(jié)點(diǎn)退出網(wǎng)絡(luò)后,怎樣重新選擇鄰居節(jié)點(diǎn)。在 本實施例中,為了在選擇的鄰居節(jié)點(diǎn)退出網(wǎng)路后,選擇新的鄰居節(jié)點(diǎn)來替換原來選擇的鄰 居節(jié)點(diǎn),本實施例還可以包括第一發(fā)送模塊76、判斷模塊77、第三獲取模塊78和第二發(fā)送 模塊79,其中第一發(fā)送模塊76用于根據(jù)預(yù)設(shè)周期向鄰居節(jié)點(diǎn)發(fā)送連接請求消息;判斷模塊 77用于判斷在預(yù)定時間內(nèi)是否接收到鄰居節(jié)點(diǎn)針對連接請求消息返回的連接響應(yīng)消息; 第三獲取模塊78用于根據(jù)判斷模塊77的判斷結(jié)果,若在預(yù)設(shè)時間內(nèi)未接收到一個或多個 鄰居節(jié)點(diǎn)針對連接請求消息返回的連接響應(yīng)消息,則獲取候選鄰居節(jié)點(diǎn)信息,第二發(fā)送模 塊79用于將候選鄰居節(jié)點(diǎn)信息發(fā)送給第一獲取模塊61 。若判斷模塊77判斷出在預(yù)定時間 內(nèi)收到所有鄰居節(jié)點(diǎn)針對連接請求消息返回的連接響應(yīng)消息,則第一發(fā)送模塊76繼續(xù)根 據(jù)預(yù)設(shè)周期向鄰居節(jié)點(diǎn)發(fā)送連接請求消息。 需要說明的是,第三獲取模塊78和第二發(fā)送模塊79也可以在一個模塊中。
本實施例通過第一選擇單元75根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率, 選擇預(yù)設(shè)數(shù)量的候選鄰居節(jié)點(diǎn)作為鄰居節(jié)點(diǎn),從而選擇更加穩(wěn)定的鄰居節(jié)點(diǎn),規(guī)避了短時 間內(nèi)連續(xù)加入和退出P2P網(wǎng)絡(luò)的節(jié)點(diǎn),降低小概率錯誤發(fā)生的可能性。此外,第一發(fā)送模塊 76根據(jù)預(yù)設(shè)周期向加入節(jié)點(diǎn)的鄰居節(jié)點(diǎn)發(fā)送連接請求消息,若在預(yù)設(shè)時間內(nèi)未接收到一個 或多個鄰居節(jié)點(diǎn)針對連接請求消息返回的連接響應(yīng)消息,第三獲取模塊78獲取候選鄰居 節(jié)點(diǎn)信息,第二發(fā)送模塊79將候選鄰居節(jié)點(diǎn)信息發(fā)送給第一獲取單元72,第一選擇單元75 重新根據(jù)由候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、當(dāng)前時刻與歷史會話時間計算得到的第一 概率選擇新的鄰居節(jié)點(diǎn),減少數(shù)據(jù)重傳的可能性,降低擾動對網(wǎng)絡(luò)的影響,提高網(wǎng)絡(luò)的穩(wěn)定 性。 如圖8所示,為本發(fā)明鄰居節(jié)點(diǎn)的選擇裝置第三實施例的結(jié)構(gòu)示意圖,在圖6所 示結(jié)構(gòu)示意圖的基礎(chǔ)上,第二獲取模塊62具體可以包括第四獲取單元81和第五獲取單元82,其中第四獲取單元81用于根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻和當(dāng)前時刻,獲取候
選鄰居節(jié)點(diǎn)的當(dāng)前會話保持時間;第五獲取單元82用于根據(jù)候選鄰居節(jié)點(diǎn)的歷史會話時
間和當(dāng)前會話保持時間,獲取候選鄰居節(jié)點(diǎn)的歷史會話時間大于當(dāng)前會話保持時間的第二 概率作為候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率。 在圖6所示結(jié)構(gòu)示意圖的基礎(chǔ)上,第一選擇模塊63具體可以包括第二選擇單元 83,用于對候選鄰居節(jié)點(diǎn)的第二概率進(jìn)行排序,選擇預(yù)設(shè)數(shù)量的第二概率最大的候選鄰居 節(jié)點(diǎn)作為鄰居節(jié)點(diǎn)。 簡而言之,本實施例的技術(shù)方案是加入節(jié)點(diǎn)選擇候選鄰居節(jié)點(diǎn)的單次會話時間超 過該候選鄰居節(jié)點(diǎn)的當(dāng)前會話保持時間的概率最大的候選鄰居節(jié)點(diǎn)作為鄰居節(jié)點(diǎn)。
此外,無論采用本實施例所述的技術(shù)方案或者其他技術(shù)方案選擇的鄰居節(jié)點(diǎn)退出 P2P網(wǎng)絡(luò)后,重新為加入節(jié)點(diǎn)選擇新的鄰居節(jié)點(diǎn),減少數(shù)據(jù)重傳的發(fā)生,提高網(wǎng)絡(luò)的穩(wěn)定性, 本實施例還可以包括第一發(fā)送模塊76、判斷模塊77和第三獲取模塊78和第二發(fā)送模塊 79,其中第一發(fā)送模塊76用于根據(jù)預(yù)設(shè)周期向鄰居節(jié)點(diǎn)發(fā)送連接請求消息;判斷模塊77用 于判斷在預(yù)定時間內(nèi)是否接收到鄰居節(jié)點(diǎn)針對連接請求消息返回的連接響應(yīng)消息;第三獲 取模塊78用于根據(jù)判斷模塊77的判斷結(jié)果,若在預(yù)設(shè)時間內(nèi)未接收到一個或多個鄰居節(jié) 點(diǎn)針對連接請求消息返回的連接響應(yīng)消息,則獲取候選鄰居節(jié)點(diǎn)信息;第二發(fā)送模塊79用 于將候選鄰居節(jié)點(diǎn)信息發(fā)送給第一獲取模塊61。若判斷模塊77判斷出在預(yù)定時間內(nèi)收到 所有鄰居節(jié)點(diǎn)針對連接請求消息返回的連接響應(yīng)消息,則第一發(fā)送模塊76繼續(xù)根據(jù)預(yù)設(shè) 周期向鄰居節(jié)點(diǎn)發(fā)送連接請求消息。 需要說明的是,第三獲取模塊78和第二發(fā)送模塊79也可以在一個模塊中。
本實施例通過第一發(fā)送模塊76根據(jù)預(yù)設(shè)周期向鄰居節(jié)點(diǎn)發(fā)送連接請求消息,若 在預(yù)設(shè)時間內(nèi)未接收到一個或多個鄰居節(jié)點(diǎn)針對連接請求消息返回的連接響應(yīng)消息,第三 獲取模塊78獲取候選鄰居節(jié)點(diǎn)信息并發(fā)送給第一獲取模塊61,然后第二選擇單元83根據(jù) 候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率選擇新的鄰居節(jié)點(diǎn),減少數(shù)據(jù)重傳的可能性,降 低擾動對網(wǎng)絡(luò)的影響,提高網(wǎng)絡(luò)的穩(wěn)定性。此外,通過第二選擇單元83根據(jù)候選鄰居節(jié)點(diǎn) 的當(dāng)前會話繼續(xù)保持的概率,選擇預(yù)設(shè)數(shù)量的候選鄰居節(jié)點(diǎn)作為鄰居節(jié)點(diǎn),從而選擇更加 穩(wěn)定的鄰居節(jié)點(diǎn),規(guī)避了短時間內(nèi)連續(xù)加入和退出P2P網(wǎng)絡(luò)的節(jié)點(diǎn),從而降低小概率錯誤 發(fā)生的可能性。 如圖9所示,為本發(fā)明鄰居節(jié)點(diǎn)的選擇裝置第四實施例的結(jié)構(gòu)示意圖,具體可以 包括第一接收模塊91和第一返回模塊92,其中第一接收模塊91用于接收加入節(jié)點(diǎn)發(fā)送的 獲取請求消息;第一返回模塊92用于根據(jù)獲取請求消息,向加入節(jié)點(diǎn)返回當(dāng)前會話開始時 刻、當(dāng)前時刻以及歷史會話時間,該歷史會話時間表示候選鄰居節(jié)點(diǎn)在當(dāng)前會話開始時刻 前預(yù)設(shè)時間段內(nèi)的會話的會話保持時間。 本實施例通過第一返回模塊92向加入節(jié)點(diǎn)返回當(dāng)前會話開始時刻、當(dāng)前時刻以
及表示在該當(dāng)前會話開始時刻前預(yù)設(shè)時間段內(nèi)的會話的會話保持時間的歷史會話時間,可
以便于加入節(jié)點(diǎn)根據(jù)第一返回模塊92發(fā)送的當(dāng)前會話開始時刻、當(dāng)前時刻以及歷史會話
時間,選擇預(yù)設(shè)數(shù)量的候選鄰居節(jié)點(diǎn)作為其鄰居節(jié)點(diǎn),從而選擇更加穩(wěn)定的鄰居節(jié)點(diǎn),規(guī)避
了短時間內(nèi)連續(xù)加入和退出P2P網(wǎng)絡(luò)的節(jié)點(diǎn),降低小概率錯誤發(fā)生的可能性。 如圖IO所示,為本發(fā)明鄰居節(jié)點(diǎn)的選擇裝置第五實施例的結(jié)構(gòu)示意圖,在上一實
12施例的基礎(chǔ)上,為了向加入節(jié)點(diǎn)返回歷史會話時間,本實施例還可以包括統(tǒng)計模塊101,用 于統(tǒng)計歷史會話時間。 其中,統(tǒng)計模塊101可以在第一接收模塊91接收加入節(jié)點(diǎn)發(fā)送的獲取請求消息 時、或當(dāng)前會話開始時、或會話結(jié)束后統(tǒng)計歷史會話時間。 本實施例通過統(tǒng)計模塊101統(tǒng)計歷史會話時間后,第一返回模塊92向加入節(jié)點(diǎn)返 回當(dāng)前會話開始時刻、當(dāng)前時刻以及歷史會話時間,可以便于加入節(jié)點(diǎn)根據(jù)候選鄰居節(jié)點(diǎn) 發(fā)送的當(dāng)前會話開始時刻、當(dāng)前時刻以及歷史會話時間,選擇預(yù)設(shè)數(shù)量的候選鄰居節(jié)點(diǎn)作 為其鄰居節(jié)點(diǎn),從而選擇更加穩(wěn)定的鄰居節(jié)點(diǎn),規(guī)避了短時間內(nèi)連續(xù)加入和退出P2P網(wǎng)絡(luò) 的節(jié)點(diǎn),從而降低小概率錯誤發(fā)生的可能性。 如圖11所示,為本發(fā)明鄰居節(jié)點(diǎn)的選擇裝置第六實施例的結(jié)構(gòu)示意圖,具體可以 包括第一獲取模塊61、第二獲取模塊62和第一選擇模塊63,其中第一獲取模塊61用于獲 取候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、當(dāng)前時刻與歷史會話時間,該歷史會話時間用于表 示候選鄰居節(jié)點(diǎn)在當(dāng)前會話開始時刻前預(yù)設(shè)時間段內(nèi)會話的會話保持時間;具體地,加入 節(jié)點(diǎn)在加入網(wǎng)絡(luò)時,通過預(yù)配置或從已知的索引服務(wù)器中查詢等方法從現(xiàn)有物理網(wǎng)絡(luò)中獲 取一節(jié)點(diǎn);候選鄰居節(jié)點(diǎn)包括該節(jié)點(diǎn)的所有鄰居節(jié)點(diǎn)和后備節(jié)點(diǎn),該后備節(jié)點(diǎn)包括該節(jié)點(diǎn) 的鄰居節(jié)點(diǎn)的所有鄰居節(jié)點(diǎn);第二獲取模塊62用于根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時 刻、當(dāng)前時刻與歷史會話時間,計算候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率;第一選擇模 塊63用于根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率,選擇預(yù)設(shè)數(shù)量的候選鄰居節(jié)點(diǎn) 作為鄰居節(jié)點(diǎn);對P2P網(wǎng)絡(luò)的研究和數(shù)據(jù)統(tǒng)計表明,在P2P網(wǎng)絡(luò)中,節(jié)點(diǎn)加入的時間間隔服 從泊松分布,節(jié)點(diǎn)的會話時間服從冪律分布,節(jié)點(diǎn)加入和退出P2P網(wǎng)絡(luò)具有一定規(guī)律,隨著 歷史會話時間的積累,歷史會話時間越來越精確地刻畫某次會話的會話保持時間長短,因 此歷史會話時間可以作為某次會話的會話保持時間的預(yù)測。 在該節(jié)點(diǎn)選擇鄰居節(jié)點(diǎn)前或后,該節(jié)點(diǎn)還可以充當(dāng)其他加入節(jié)點(diǎn)的候選鄰居節(jié) 點(diǎn),因此本實施例還可以包括第一接收模塊91和第一返回模塊92,其中第一接收模塊91用 于接收加入節(jié)點(diǎn)發(fā)送的獲取請求消息;第一返回模塊92用于根據(jù)獲取請求消息,向加入節(jié) 點(diǎn)返回當(dāng)前會話開始時刻、當(dāng)前時刻以及歷史會話時間。 本實施例通過第一選擇模塊63根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率, 選擇預(yù)設(shè)數(shù)量的候選鄰居節(jié)點(diǎn)作為鄰居節(jié)點(diǎn),在考慮候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、 當(dāng)前時刻的基礎(chǔ)上,又考慮了候選鄰居節(jié)點(diǎn)的歷史會話時間來選擇鄰居節(jié)點(diǎn),可以降低現(xiàn) 有技術(shù)中只考慮當(dāng)前會話保持時間來選擇鄰居節(jié)點(diǎn)而該鄰居節(jié)點(diǎn)在短時間內(nèi)退出網(wǎng)絡(luò)的 可能性,從而選擇更加穩(wěn)定的鄰居節(jié)點(diǎn),規(guī)避了短時間內(nèi)連續(xù)加入和退出P2P網(wǎng)絡(luò)的節(jié)點(diǎn), 降低小概率錯誤發(fā)生的可能性。此外,本實施例通過第一返回模塊92向加入節(jié)點(diǎn)返回當(dāng)前 會話開始時刻、當(dāng)前時刻以及表示在該當(dāng)前會話開始時刻前預(yù)設(shè)時間段內(nèi)的會話的會話保 持時間的歷史會話時間,可以便于加入節(jié)點(diǎn)根據(jù)第一返回模塊92發(fā)送的當(dāng)前會話開始時 刻、當(dāng)前時刻以及歷史會話時間,選擇預(yù)設(shè)數(shù)量的候選鄰居節(jié)點(diǎn)作為其鄰居節(jié)點(diǎn),從而選擇 更加穩(wěn)定的鄰居節(jié)點(diǎn),規(guī)避了短時間內(nèi)連續(xù)加入和退出P2P網(wǎng)絡(luò)的節(jié)點(diǎn),降低小概率錯誤 發(fā)生的可能性。 如圖12所示,為本發(fā)明鄰居節(jié)點(diǎn)的選擇系統(tǒng)實施例的結(jié)構(gòu)示意圖,具體可以包括 加入節(jié)點(diǎn)121和候選鄰居節(jié)點(diǎn)122 ;加入節(jié)點(diǎn)121用于獲取候選鄰居節(jié)點(diǎn)122的當(dāng)前會話開始時刻、當(dāng)前時刻與歷史會話時間,該歷史會話時間用于表示候選鄰居節(jié)點(diǎn)122在當(dāng)前 會話開始時刻前預(yù)設(shè)時間段內(nèi)會話的會話保持時間,根據(jù)候選鄰居節(jié)點(diǎn)122的當(dāng)前會話開 始時刻、當(dāng)前時刻與歷史會話時間,計算候選鄰居節(jié)點(diǎn)122的當(dāng)前會話繼續(xù)保持的概率;根 據(jù)候選鄰居節(jié)點(diǎn)122的當(dāng)前會話繼續(xù)保持的概率,選擇預(yù)設(shè)數(shù)量的候選鄰居節(jié)點(diǎn)122作為 鄰居節(jié)點(diǎn);候選鄰居節(jié)點(diǎn)122用于接收加入節(jié)點(diǎn)121發(fā)送的獲取請求消息,根據(jù)獲取請求消 息,向加入節(jié)點(diǎn)121返回當(dāng)前會話開始時刻、當(dāng)前時刻以及表示在當(dāng)前會話開始時刻前預(yù) 設(shè)時間段內(nèi)的會話的會話保持時間的歷史會話時間。 加入節(jié)點(diǎn)121具體可以為本發(fā)明鄰居節(jié)點(diǎn)的選擇裝置第一實施例、第二實施例和 第三實施例中任一鄰居節(jié)點(diǎn)的選擇裝置,候選鄰居節(jié)點(diǎn)122具體可以為本發(fā)明鄰居節(jié)點(diǎn)的 選擇裝置第四實施例和第五實施例中任一鄰居節(jié)點(diǎn)的選擇裝置;或者,加入節(jié)點(diǎn)121與候 選鄰居節(jié)點(diǎn)122具體可以為本發(fā)明鄰居節(jié)點(diǎn)的選擇裝置第六實施例中的鄰居節(jié)點(diǎn)的選擇 裝置。 最后應(yīng)說明的是以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制,盡管參照 較佳實施例對本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對本發(fā)明的 技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明技術(shù)方案的精神和范圍。
權(quán)利要求
一種鄰居節(jié)點(diǎn)的選擇方法,其特征在于,包括獲取候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、當(dāng)前時刻與歷史會話時間,該歷史會話時間用于表示候選鄰居節(jié)點(diǎn)在當(dāng)前會話開始時刻前預(yù)設(shè)時間段內(nèi)會話的會話保持時間;根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、當(dāng)前時刻與歷史會話時間,計算候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率;根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率,選擇預(yù)設(shè)數(shù)量的候選鄰居節(jié)點(diǎn)作為鄰居節(jié)點(diǎn)。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始 時刻、當(dāng)前時刻與歷史會話時間,計算候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率包括根據(jù)所述候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻和當(dāng)前時刻,獲取所述候選鄰居節(jié)點(diǎn)的當(dāng) 前會話保持時間;根據(jù)所述候選鄰居節(jié)點(diǎn)的歷史會話時間與所述候選鄰居節(jié)點(diǎn)的當(dāng)前會話保持時間,獲 取所述候選鄰居節(jié)點(diǎn)的歷史會話時間與所述候選鄰居節(jié)點(diǎn)的當(dāng)前會話保持時間的差值的 中值;獲取所述候選鄰居節(jié)點(diǎn)的歷史會話時間與所述候選鄰居節(jié)點(diǎn)的當(dāng)前會話保持時間的 差值大于所述中值的第一概率作為候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率;所述根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率,選擇預(yù)設(shè)數(shù)量的候選鄰居節(jié)點(diǎn)作 為鄰居節(jié)點(diǎn)具體為對所述候選鄰居節(jié)點(diǎn)的第一概率進(jìn)行排序,選擇預(yù)設(shè)數(shù)量的第一概率最大的候選鄰居 節(jié)點(diǎn)作為鄰居節(jié)點(diǎn)。
3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始 時刻、當(dāng)前時刻與歷史會話時間,計算候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率包括根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻和當(dāng)前時刻,獲取所述候選鄰居節(jié)點(diǎn)的當(dāng)前會 話保持時間;根據(jù)所述候選鄰居節(jié)點(diǎn)的歷史會話時間和當(dāng)前會話保持時間,獲取所述候選鄰居節(jié)點(diǎn) 的歷史會話時間大于所述當(dāng)前會話保持時間的第二概率作為候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼 續(xù)保持的概率;所述根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率,選擇預(yù)設(shè)數(shù)量的候選鄰居節(jié)點(diǎn)作 為鄰居節(jié)點(diǎn)具體為對所述候選鄰居節(jié)點(diǎn)的第二概率進(jìn)行排序,選擇預(yù)設(shè)數(shù)量的第二概率最大的候選鄰居 節(jié)點(diǎn)作為鄰居節(jié)點(diǎn)。
4. 根據(jù)權(quán)利要求1、2或3所述的方法,其特征在于,還包括 根據(jù)預(yù)設(shè)周期向鄰居節(jié)點(diǎn)發(fā)送連接請求消息;若在預(yù)設(shè)時間內(nèi)未接收到一個或多個鄰居節(jié)點(diǎn)針對所述連接請求消息返回的連接響 應(yīng)消息,則執(zhí)行獲取候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、當(dāng)前時刻與歷史會話時間的步驟。
5. —種鄰居節(jié)點(diǎn)的選擇方法,其特征在于,包括 接收加入節(jié)點(diǎn)發(fā)送的獲取請求消息;根據(jù)所述獲取請求消息,向所述加入節(jié)點(diǎn)返回當(dāng)前會話開始時刻、當(dāng)前時刻以及歷史 會話時間,該歷史會話時間用于表示候選鄰居節(jié)點(diǎn)在當(dāng)前會話開始時刻前預(yù)設(shè)時間段內(nèi)的會話的會話保持時間。
6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,還包括 統(tǒng)計所述歷史會話時間。
7. —種鄰居節(jié)點(diǎn)的選擇裝置,其特征在于,包括第一獲取模塊,用于獲取候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、當(dāng)前時刻與歷史會話時 間,該歷史會話時間用于表示候選鄰居節(jié)點(diǎn)在當(dāng)前會話開始時刻前預(yù)設(shè)時間段內(nèi)會話的會 話保持時間;第二獲取模塊,用于根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、當(dāng)前時刻與歷史會話時 間,計算候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率;第一選擇模塊,用于根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率,選擇預(yù)設(shè)數(shù)量的 候選鄰居節(jié)點(diǎn)作為鄰居節(jié)點(diǎn)。
8. 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述第二獲取模塊包括 第一獲取單元,用于根據(jù)所述候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻和當(dāng)前時刻,獲取所述候選鄰居節(jié)點(diǎn)的當(dāng)前會話保持時間;第二獲取單元,用于根據(jù)所述候選鄰居節(jié)點(diǎn)的歷史會話時間與所述候選鄰居節(jié)點(diǎn)的當(dāng) 前會話保持時間,獲取所述候選鄰居節(jié)點(diǎn)的歷史會話時間與所述候選鄰居節(jié)點(diǎn)的當(dāng)前會話 保持時間的差值的中值;第三獲取單元,用于獲取所述候選鄰居節(jié)點(diǎn)的歷史會話時間與所述候選鄰居節(jié)點(diǎn)的當(dāng) 前會話保持時間的差值大于所述中值的第一概率作為候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持 的概率;所述第一選擇模塊包括第一選擇單元,用于對所述候選鄰居節(jié)點(diǎn)的第一概率進(jìn)行排序,選擇預(yù)設(shè)數(shù)量的第一 概率最大的候選鄰居節(jié)點(diǎn)作為鄰居節(jié)點(diǎn)。
9. 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述第二獲取模塊包括 第四獲取單元,用于根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻和當(dāng)前時刻,獲取所述候選鄰居節(jié)點(diǎn)的當(dāng)前會話保持時間;第五獲取單元,用于根據(jù)所述候選鄰居節(jié)點(diǎn)的歷史會話時間和當(dāng)前會話保持時間,獲 取所述候選鄰居節(jié)點(diǎn)的歷史會話時間大于所述當(dāng)前會話保持時間的第二概率作為候選鄰 居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率;所述第一選擇模塊包括第二選擇單元,用于對所述候選鄰居節(jié)點(diǎn)的第二概率進(jìn)行排序,選擇預(yù)設(shè)數(shù)量的第二 概率最大的候選鄰居節(jié)點(diǎn)作為鄰居節(jié)點(diǎn)。
10. 根據(jù)權(quán)利要7、8或9所述的裝置,其特征在于,還包括 第一發(fā)送模塊,用于根據(jù)預(yù)設(shè)周期向鄰居節(jié)點(diǎn)發(fā)送連接請求消息;判斷模塊,用于判斷在預(yù)定時間內(nèi)是否接收到鄰居節(jié)點(diǎn)針對所述連接請求消息返回的 連接響應(yīng)消息;第三獲取模塊,用于根據(jù)所述判斷模塊的判斷結(jié)果,若在預(yù)設(shè)時間內(nèi)未接收到一個或 多個鄰居節(jié)點(diǎn)針對所述連接請求消息返回的連接響應(yīng)消息,則獲取候選鄰居節(jié)點(diǎn)信息; 第二發(fā)送模塊,用于將所述候選鄰居節(jié)點(diǎn)信息發(fā)送給所述第一獲取模塊。
11. 一種鄰居節(jié)點(diǎn)的選擇裝置,其特征在于,包括 第一接收模塊,用于接收加入節(jié)點(diǎn)發(fā)送的獲取請求消息;第一返回模塊,用于根據(jù)所述獲取請求消息,向所述加入節(jié)點(diǎn)返回當(dāng)前會話開始時刻、 當(dāng)前時刻以及歷史會話時間,該歷史會話時間用于表示候選鄰居節(jié)點(diǎn)在當(dāng)前會話開始時刻 前預(yù)設(shè)時間段內(nèi)會話的會話保持時間。
12. 根據(jù)權(quán)利要求11所述的裝置,其特征在于,還包括 統(tǒng)計模塊,用于統(tǒng)計所述歷史會話時間。
13. —種鄰居節(jié)點(diǎn)的選擇裝置,其特征在于,包括第一獲取模塊,用于獲取候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、當(dāng)前時刻與歷史會話時 間,該歷史會話時間用于表示候選鄰居節(jié)點(diǎn)在當(dāng)前會話開始時刻前預(yù)設(shè)時間段內(nèi)會話的會 話保持時間;第二獲取模塊,用于根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、當(dāng)前時刻與歷史會話時 間,計算候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率;第一選擇模塊,用于根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率,選擇預(yù)設(shè)數(shù)量的 候選鄰居節(jié)點(diǎn)作為鄰居節(jié)點(diǎn);第一接收模塊,用于接收加入節(jié)點(diǎn)發(fā)送的獲取請求消息;第一返回模塊,用于根據(jù)所述獲取請求消息,向所述加入節(jié)點(diǎn)返回當(dāng)前會話開始時刻、 當(dāng)前時刻以及歷史會話時間。
14. 一種鄰居節(jié)點(diǎn)的選擇系統(tǒng),其特征在于,包括加入節(jié)點(diǎn)和候選鄰居節(jié)點(diǎn); 所述加入節(jié)點(diǎn)用于獲取候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、當(dāng)前時刻與歷史會話時間,該歷史會話時間用于表示候選鄰居節(jié)點(diǎn)在當(dāng)前會話開始時刻前預(yù)設(shè)時間段內(nèi)會話的會 話保持時間,根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、當(dāng)前時刻與歷史會話時間,計算候選 鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率,根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率,選 擇預(yù)設(shè)數(shù)量的候選鄰居節(jié)點(diǎn)作為鄰居節(jié)點(diǎn);所述候選鄰居節(jié)點(diǎn)用于接收所述加入節(jié)點(diǎn)發(fā)送的獲取請求消息,根據(jù)所述獲取請求消 息,向所述加入節(jié)點(diǎn)返回當(dāng)前會話開始時刻、當(dāng)前時刻以及歷史會話時間。
全文摘要
本發(fā)明實施例涉及一種鄰居節(jié)點(diǎn)的選擇方法、裝置和系統(tǒng)。其中所述方法包括獲取候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、當(dāng)前時刻與歷史會話時間,該歷史會話時間用于表示候選鄰居節(jié)點(diǎn)在當(dāng)前會話開始時刻前預(yù)設(shè)時間段內(nèi)會話的會話保持時間;根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話開始時刻、當(dāng)前時刻與歷史會話時間,計算候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率;根據(jù)候選鄰居節(jié)點(diǎn)的當(dāng)前會話繼續(xù)保持的概率,選擇預(yù)設(shè)數(shù)量的候選鄰居節(jié)點(diǎn)作為鄰居節(jié)點(diǎn)。本發(fā)明實施例提供的鄰居節(jié)點(diǎn)的選擇方法、裝置和系統(tǒng),為加入節(jié)點(diǎn)選擇更加穩(wěn)定的鄰居節(jié)點(diǎn),規(guī)避了短時間內(nèi)連續(xù)加入和退出P2P網(wǎng)絡(luò)的節(jié)點(diǎn),從而降低小概率錯誤發(fā)生的可能性。
文檔編號H04L12/56GK101764740SQ200810246599
公開日2010年6月30日 申請日期2008年12月25日 優(yōu)先權(quán)日2008年12月25日
發(fā)明者余宏亮, 翁雄飛, 陳堅 申請人:華為技術(shù)有限公司