專利名稱:基于快速切換的覆蓋網(wǎng)絡(luò)故障檢測(cè)與恢復(fù)方法
技術(shù)領(lǐng)域:
基于快速切換的覆蓋網(wǎng)絡(luò)故障檢測(cè)與恢復(fù)方法屬于網(wǎng)絡(luò)數(shù)據(jù)傳輸技術(shù)領(lǐng)域。
背景技術(shù):
通過在用戶節(jié)點(diǎn)上運(yùn)行相應(yīng)的軟件并進(jìn)行配置,覆蓋網(wǎng)絡(luò)就能夠?yàn)镮nternet用戶提供高可擴(kuò)展性的大規(guī)模分布式應(yīng)用,這成為推動(dòng)覆蓋網(wǎng)絡(luò)廣泛應(yīng)用的主要因素。在當(dāng)前的研究中,一般將重點(diǎn)集中在如何選擇一條低延遲或高帶寬的覆蓋網(wǎng)絡(luò)路徑以提高網(wǎng)絡(luò)性能。其中包括覆蓋網(wǎng)絡(luò)單播的路徑選擇,基于測(cè)量的端系統(tǒng)組播協(xié)議等。但是,當(dāng)前大部分的研究都隱含地假設(shè)覆蓋網(wǎng)絡(luò)應(yīng)用是獨(dú)立的,沒有考慮各個(gè)應(yīng)用之間因獨(dú)立管理資源和擁塞控制而導(dǎo)致的流量抖動(dòng)和網(wǎng)絡(luò)性能的下降。同時(shí),由于在Internet上搭建的覆蓋網(wǎng)絡(luò)網(wǎng)絡(luò)鏈路延遲較大,覆蓋網(wǎng)絡(luò)應(yīng)用的流量?jī)H是網(wǎng)絡(luò)中總流量的一小部分,所以每個(gè)覆蓋網(wǎng)絡(luò)應(yīng)用依據(jù)感知到的網(wǎng)絡(luò)狀態(tài)進(jìn)行路徑選擇,無法保證提高整個(gè)網(wǎng)絡(luò)的性能。
同時(shí)由于覆蓋網(wǎng)絡(luò)是由穩(wěn)定程度相對(duì)較低的用戶主機(jī)構(gòu)成,并且由于沒有集中控制節(jié)點(diǎn),主要的故障最終都?xì)w結(jié)為節(jié)點(diǎn)失效,失效的原因可能是該用戶退出網(wǎng)絡(luò)或是相關(guān)網(wǎng)路中的路由錯(cuò)誤等。在傳統(tǒng)的協(xié)議設(shè)計(jì)中,發(fā)現(xiàn)節(jié)點(diǎn)失效的方法通常比較簡(jiǎn)單,如在發(fā)起通信時(shí)檢測(cè),或采用定時(shí)握手的機(jī)制,但是由于網(wǎng)絡(luò)規(guī)模的不斷變大,這種方式的效率和自調(diào)節(jié)性都受到了極大的挑戰(zhàn),同時(shí)網(wǎng)絡(luò)中查找的成功率也將由于故障的不斷變多而急劇下降。
本文提出了一種基于快速切換的覆蓋網(wǎng)絡(luò)故障檢測(cè)與恢復(fù)方法,該方法通過一系列節(jié)點(diǎn)之間的通訊與計(jì)算規(guī)則,量化了探測(cè)報(bào)文的發(fā)送頻率并提出了結(jié)合出錯(cuò)概率與最大可用帶寬的代理節(jié)點(diǎn)選擇與恢復(fù)方法,在提高了使覆蓋網(wǎng)絡(luò)的可靠性與服務(wù)的穩(wěn)定性的同時(shí)大大提高了覆蓋網(wǎng)絡(luò)中資源查找的成功率。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種基于快速切換的覆蓋網(wǎng)絡(luò)故障檢測(cè)與恢復(fù)方法。
本發(fā)明的特征在于,它依次含有以下步驟步驟(1.)用戶終端開啟后初始化鄰居狀態(tài)表,其中包括鄰居序號(hào),IP地址,故障判定次數(shù),超時(shí)時(shí)間,以及標(biāo)志位,其中,鄰居序號(hào)用來標(biāo)記所有鄰居和個(gè)數(shù),其范圍為1到65535,IP地址用來唯一的標(biāo)記該鄰居,故障判定次數(shù)表示連續(xù)丟失多少個(gè)探測(cè)報(bào)文才能判斷該節(jié)點(diǎn)失效,超時(shí)時(shí)間為判斷該次探測(cè)失敗的時(shí)間長度,標(biāo)志位為1位10進(jìn)制數(shù),其中0表示該記錄對(duì)應(yīng)的鄰居為該子網(wǎng)的代理節(jié)點(diǎn),1表示該記錄對(duì)應(yīng)的鄰居為該子網(wǎng)的備份代理節(jié)點(diǎn),2代表記錄對(duì)應(yīng)的鄰居為一般普通節(jié)點(diǎn);步驟(2.)初始化鄰居維護(hù)表,其包括鄰居IP地址,鄰居?;畎l(fā)送頻率,其中IP地址用來唯一的標(biāo)記該鄰居,鄰居?;畎l(fā)送頻率為用于確認(rèn)該鄰居存活而發(fā)送的探測(cè)報(bào)文的發(fā)送頻率;步驟(3.)當(dāng)某個(gè)用戶終端加入P2P網(wǎng)絡(luò)以后,首先連接所述子網(wǎng)中的代理節(jié)點(diǎn)并獲取鄰居信息,同時(shí)將所述鄰居信息寫入鄰居狀態(tài)表;步驟(4.)掃描鄰居狀態(tài)表,對(duì)于每個(gè)鄰居,令α表示其故障判定次數(shù),T為超時(shí)時(shí)間,ρ為控制負(fù)載占總帶寬的百分比,在默認(rèn)狀態(tài)下ρ取0.01,K為該鄰居的保活發(fā)送頻率,n為鄰居個(gè)數(shù),K為鄰居的保活發(fā)送頻率單位為個(gè)每秒;并使用公式K=2α/n+αρn+T計(jì)算K,計(jì)算完畢以后將該值寫入鄰居維護(hù)表的對(duì)應(yīng)位置,并按照該頻率發(fā)送探測(cè)報(bào)文;步驟(5.)如果在探測(cè)過程中,發(fā)現(xiàn)某鄰居沒有回復(fù)探測(cè)報(bào)文,則進(jìn)一步判斷該節(jié)點(diǎn)的故障判定次數(shù)是否等于1,如果不為1,則并將故障判斷次數(shù)減1,如果為1則將改鄰居標(biāo)記為失效;步驟(6.)如果所述某節(jié)點(diǎn)發(fā)現(xiàn)失效鄰居在節(jié)點(diǎn)鄰居狀態(tài)表中的標(biāo)志位為0,則說明該子網(wǎng)代理發(fā)生故障,所述節(jié)點(diǎn)將向鄰居狀態(tài)表中的標(biāo)志位為1的鄰居發(fā)送通告報(bào)文,讓其代替原代理節(jié)點(diǎn)進(jìn)行工作,同時(shí)將鄰居狀態(tài)表中該備用代理的標(biāo)志位設(shè)為0;并依次按照以下步驟選擇下一個(gè)備份代理節(jié)點(diǎn)步驟(6.1)掃描鄰居狀態(tài)表,得到表中鄰居條目下的故障判定次數(shù)為q,最大可用帶寬為b,其中b為用戶的網(wǎng)絡(luò)接入帶寬與當(dāng)前已使用帶寬之差,并使用G=q*b計(jì)算所有鄰居的優(yōu)先級(jí)G,并將具有最大優(yōu)先級(jí)的節(jié)點(diǎn)IP地址廣播出去,作為自己向所有鄰居節(jié)點(diǎn)推薦的新備份代理節(jié)點(diǎn);步驟(6.2)對(duì)收到的IP地址進(jìn)行記數(shù),并設(shè)擁有最多推薦者數(shù)量的鄰居節(jié)點(diǎn)的鄰居為新的份代理節(jié)點(diǎn),同時(shí)在鄰居狀態(tài)表中的標(biāo)志位中標(biāo)記為1;步驟(7)按照新的鄰居狀態(tài)表重新整理鄰居維護(hù)表,同時(shí)刪除已經(jīng)失效的鄰居節(jié)點(diǎn)。
為了驗(yàn)證該機(jī)制的有效性,我們使用了基于事件驅(qū)動(dòng)的模擬器來進(jìn)行該機(jī)制的評(píng)價(jià)與實(shí)驗(yàn)工作,實(shí)驗(yàn)結(jié)果顯示該發(fā)明在網(wǎng)絡(luò)出現(xiàn)高錯(cuò)誤(錯(cuò)誤率大于20%的情況下)能夠在隊(duì)列處理長度很小,也就是負(fù)載較輕的情況下獲得50%以上的查找成功率,具體實(shí)驗(yàn)數(shù)據(jù)見圖3與圖4。
圖1.本發(fā)明的總體流程;圖2.備份代理節(jié)點(diǎn)選擇流程;圖3.覆蓋網(wǎng)絡(luò)查找成功率實(shí)驗(yàn)數(shù)據(jù)表;圖4.節(jié)點(diǎn)負(fù)載分布情況實(shí)驗(yàn)數(shù)據(jù)圖;圖5.本發(fā)明的應(yīng)用示例圖。
具體實(shí)施例方式
本發(fā)明實(shí)現(xiàn)了一種針對(duì)原有覆蓋網(wǎng)絡(luò)維護(hù)與故障檢測(cè)方法的改進(jìn),使其具備了更強(qiáng)的穩(wěn)定性并為數(shù)據(jù)查找提供了更加可靠的網(wǎng)絡(luò)保障。
本發(fā)明的總體流程圖見圖1.
用戶節(jié)點(diǎn)通過對(duì)鄰居狀態(tài)表的掃描計(jì)算不同鄰居的維護(hù)開銷以及探測(cè)報(bào)文的發(fā)送頻率,并且,該頻率的大小同時(shí)間接反映了所述鄰居節(jié)點(diǎn)的穩(wěn)定情況,在該發(fā)送頻率下,用戶節(jié)點(diǎn)將動(dòng)態(tài)的根據(jù)該節(jié)點(diǎn)的歷史失效信息按照?qǐng)D1的過程動(dòng)態(tài)的改變對(duì)該鄰居的維護(hù)策略。
同時(shí),當(dāng)某用戶節(jié)點(diǎn)發(fā)現(xiàn)網(wǎng)絡(luò)中代理節(jié)點(diǎn)失效以后,將比較快速的將所有數(shù)據(jù)傳輸?shù)娜蝿?wù)轉(zhuǎn)交給新的代理節(jié)點(diǎn),并同時(shí)按照?qǐng)D2的過程選擇新的備份代理節(jié)點(diǎn)。
備份代理節(jié)點(diǎn)選擇流程圖見圖2.
在該機(jī)制設(shè)計(jì)完畢后我們使用VC7實(shí)現(xiàn)了基于事件驅(qū)動(dòng)的模擬器,來進(jìn)行該機(jī)制的實(shí)驗(yàn)和評(píng)價(jià)工作。
使用本方法后覆蓋網(wǎng)絡(luò)查找成功率實(shí)驗(yàn)數(shù)據(jù)表見圖3.
圖3顯示了不同節(jié)點(diǎn)故障概率和恢復(fù)概率對(duì)精確路由查找成功率的影響,同時(shí)我們發(fā)現(xiàn)隨著節(jié)點(diǎn)故障率的增大,對(duì)單一副本的查找成功率將大幅度下降。同時(shí)如果節(jié)點(diǎn)能夠被快速恢復(fù),將明顯提高查找成功率。根據(jù)實(shí)驗(yàn)我們可知,查找不成功是因?yàn)槟繕?biāo)節(jié)點(diǎn)故障、查詢?cè)诠收瞎?jié)點(diǎn)被丟棄、無效路由等原因造成的,同時(shí)發(fā)現(xiàn)在使用本機(jī)制情況下網(wǎng)絡(luò)的查找成功率是令人滿意的使用本方法后節(jié)點(diǎn)負(fù)載分布情況實(shí)驗(yàn)數(shù)據(jù)圖見圖4.
從圖4中發(fā)現(xiàn)網(wǎng)絡(luò)中代理節(jié)點(diǎn)的負(fù)載較一般節(jié)點(diǎn)的負(fù)載重很多,我們?cè)谶x擇代理節(jié)點(diǎn)時(shí)需要充分考慮到節(jié)點(diǎn)的性能。另外,網(wǎng)絡(luò)中節(jié)點(diǎn)的動(dòng)態(tài)性不會(huì)對(duì)增加節(jié)點(diǎn)的負(fù)載。
本發(fā)明的應(yīng)用示例圖見圖5.
通過對(duì)該機(jī)制的實(shí)驗(yàn)評(píng)價(jià)我們發(fā)現(xiàn),該機(jī)制能夠在覆蓋網(wǎng)絡(luò)中增強(qiáng)網(wǎng)絡(luò)的穩(wěn)定性,并在此基礎(chǔ)上提高網(wǎng)絡(luò)中資源查找的成功率。
由此可見,本發(fā)明達(dá)到了預(yù)期目的。
權(quán)利要求
1.基于快速切換的覆蓋網(wǎng)絡(luò)故障檢測(cè)與恢復(fù)方法,其特征在于,所述方法依次含有以下步驟步驟(1.)用戶終端開啟后初始化鄰居狀態(tài)表,其中包括鄰居序號(hào),IP地址,故障判定次數(shù),超時(shí)時(shí)間,以及標(biāo)志位,其中,鄰居序號(hào)用來標(biāo)記所有鄰居和個(gè)數(shù),其范圍為1到65535,IP地址用來唯一的標(biāo)記該鄰居,故障判定次數(shù)表示連續(xù)丟失多少個(gè)探測(cè)報(bào)文才能判斷該節(jié)點(diǎn)失效,超時(shí)時(shí)間為判斷該次探測(cè)失敗的時(shí)間長度,標(biāo)志位為1位10進(jìn)制數(shù),其中0表示該記錄對(duì)應(yīng)的鄰居為該子網(wǎng)的代理節(jié)點(diǎn),1表示該記錄對(duì)應(yīng)的鄰居為該子網(wǎng)的備份代理節(jié)點(diǎn),2代表記錄對(duì)應(yīng)的鄰居為一般普通節(jié)點(diǎn);步驟(2.)初始化鄰居維護(hù)表,其包括鄰居IP地址,鄰居?;畎l(fā)送頻率,其中IP地址用來唯一的標(biāo)記該鄰居,鄰居?;畎l(fā)送頻率為用于確認(rèn)該鄰居存活而發(fā)送的探測(cè)報(bào)文的發(fā)送頻率;步驟(3.)當(dāng)某個(gè)用戶終端加入P2P網(wǎng)絡(luò)以后,首先連接所述子網(wǎng)中的代理節(jié)點(diǎn)并獲取鄰居信息,同時(shí)將所述鄰居信息寫入鄰居狀態(tài)表;步驟(4.)掃描鄰居狀態(tài)表,對(duì)于每個(gè)鄰居,令α表示其故障判定次數(shù),T為超時(shí)時(shí)間,ρ為控制負(fù)載占總帶寬的百分比,在默認(rèn)狀態(tài)下ρ取0.01,K為該鄰居的保活發(fā)送頻率,n為鄰居個(gè)數(shù),K為鄰居的?;畎l(fā)送頻率單位為個(gè)每秒;并使用公式K=2α/n+αρn+T計(jì)算K,計(jì)算完畢以后將該值寫入鄰居維護(hù)表的對(duì)應(yīng)位置,并按照該頻率發(fā)送探測(cè)報(bào)文;步驟(5.)如果在探測(cè)過程中,發(fā)現(xiàn)某鄰居沒有回復(fù)探測(cè)報(bào)文,則進(jìn)一步判斷該節(jié)點(diǎn)的故障判定次數(shù)是否等于1,如果不為1,則并將故障判斷次數(shù)減1,如果為1則將改鄰居標(biāo)記為失效;步驟(6.)如果所述某節(jié)點(diǎn)發(fā)現(xiàn)失效鄰居在節(jié)點(diǎn)鄰居狀態(tài)表中的標(biāo)志位為0,則說明該子網(wǎng)代理發(fā)生故障,所述節(jié)點(diǎn)將向鄰居狀態(tài)表中的標(biāo)志位為1的鄰居發(fā)送通告報(bào)文,讓其代替原代理節(jié)點(diǎn)進(jìn)行工作,同時(shí)將鄰居狀態(tài)表中該備用代理的標(biāo)志位設(shè)為0;并依次按照以下步驟選擇下一個(gè)備份代理節(jié)點(diǎn)步驟(6.1)掃描鄰居狀態(tài)表,得到表中鄰居條目下的故障判定次數(shù)為q,最大可用帶寬為b,其中b為用戶的網(wǎng)絡(luò)接入帶寬與當(dāng)前已使用帶寬之差,并使用G=q*b計(jì)算所有鄰居的優(yōu)先級(jí)G,并將具有最大優(yōu)先級(jí)的節(jié)點(diǎn)IP地址廣播出去,作為自己向所有鄰居節(jié)點(diǎn)推薦的新備份代理節(jié)點(diǎn);步驟(6.2)對(duì)收到的IP地址進(jìn)行記數(shù),并設(shè)擁有最多推薦者數(shù)量的鄰居節(jié)點(diǎn)的鄰居為新的份代理節(jié)點(diǎn),同時(shí)在鄰居狀態(tài)表中的標(biāo)志位中標(biāo)記為1;步驟(7)按照新的鄰居狀態(tài)表重新整理鄰居維護(hù)表,同時(shí)刪除已經(jīng)失效的鄰居節(jié)點(diǎn)。
全文摘要
基于快速切換的覆蓋網(wǎng)絡(luò)故障檢測(cè)與恢復(fù)方法屬于網(wǎng)絡(luò)數(shù)據(jù)傳輸技術(shù)領(lǐng)域,其特征在于,在用戶節(jié)點(diǎn)建立一個(gè)包括用于表示連續(xù)丟失多少個(gè)探測(cè)報(bào)文才能確定蓋節(jié)點(diǎn)失效得故障判定數(shù),以及表示該節(jié)點(diǎn)代理身份得標(biāo)志位在內(nèi)的鄰居狀態(tài)表,用來計(jì)算針對(duì)所有鄰居的探測(cè)報(bào)文發(fā)送頻率,并建立一個(gè)包括該鄰居所發(fā)送?;顖?bào)文個(gè)數(shù)以及發(fā)送頻率的鄰居維護(hù)表,如果在規(guī)定的故障判定次數(shù)內(nèi)沒有回應(yīng)探測(cè)報(bào)文則將該鄰居刪除,如果被刪除的鄰居為該區(qū)域的代理節(jié)點(diǎn),則進(jìn)行快速切換和備份節(jié)點(diǎn)的選舉,以確保在最短時(shí)間內(nèi)保證網(wǎng)絡(luò)服務(wù)的連續(xù)性。本發(fā)明同時(shí)能夠在保證覆蓋網(wǎng)絡(luò)可靠性的基礎(chǔ)上提高覆蓋網(wǎng)絡(luò)搜索的成功率。
文檔編號(hào)H04L12/24GK101094119SQ200710119539
公開日2007年12月26日 申請(qǐng)日期2007年7月26日 優(yōu)先權(quán)日2007年7月26日
發(fā)明者徐恪, 劉惠山, 王海洋 申請(qǐng)人:清華大學(xué)