專利名稱:基于自治域的P2P-VoIP 網(wǎng)絡中繼節(jié)點選擇方法
技術領域:
本發(fā)明涉及互聯(lián)網(wǎng)點對點(P2P)語音業(yè)務(VoIP)網(wǎng)絡中繼節(jié)點選擇方法,特別適用于當P2P-VoIP網(wǎng)絡需要選擇中繼節(jié)點來提高話音質量的情況。
背景技術:
對等網(wǎng)絡(Peer to Peer,P2P)作為現(xiàn)有互聯(lián)網(wǎng)(Internet)的覆蓋網(wǎng)絡(Overlay Network),通過網(wǎng)絡中的節(jié)點之間共享資源來實現(xiàn)分布式、可靠、可擴展、健壯的網(wǎng)絡應用模式。它與傳統(tǒng)大的客戶機/服務器(Client/Server,簡稱C/S)的網(wǎng)絡模式有著顯著區(qū)別,C/S網(wǎng)絡模式需要一種中央服務器來處理絕大部分的運算工作,為客戶端提供相應的服務。而在對等網(wǎng)絡中,每個計算機都會貢獻一部分資源,以對等的方式形成網(wǎng)絡連接,節(jié)點既充當服務器又充當客戶端的角色。目前P2P網(wǎng)絡已經(jīng)被廣泛的應用于實時多媒體通信, 如 skype。VoIP (Voice over Internet Protocol)是指將模擬的聲音訊號經(jīng)過壓縮與封包之后,以數(shù)據(jù)封包的形式在IP網(wǎng)絡的環(huán)境進行語音訊號的傳輸,通俗來說也就是互聯(lián)網(wǎng)電話、網(wǎng)絡電話或者簡稱IP電話的意思。VoIP的基本原理是通過語音的壓縮算法對語音數(shù)據(jù)編碼進行壓縮處理,然后把這些語音數(shù)據(jù)按TCP/IP標準進行打包,經(jīng)過IP網(wǎng)絡把數(shù)據(jù)包送至接收地,再把這些語音數(shù)據(jù)包串起來,經(jīng)過解壓處理后,恢復成原來的語音信號,從而達到由互聯(lián)網(wǎng)傳送語音的目的。盡管P2P網(wǎng)絡可以提供一定質量的VoIP業(yè)務,但是P2P_VoIP在性能上也存在一個問題。這個問題主要是由目前互聯(lián)網(wǎng)的現(xiàn)狀引起的。由于最初互聯(lián)網(wǎng)的設計并不是要替代傳統(tǒng)的電話網(wǎng),互聯(lián)網(wǎng)中的任意兩個節(jié)點之間并不一定能夠建立符合ITU G. 114標準的話音通信。在互聯(lián)網(wǎng)中進行話音通信的主要障礙是通信的時延較大、丟包率較大。要解決P2P_VoIP網(wǎng)絡中這個問題,通常有三個方法第一個方法是用戶節(jié)點需要連接到多個互聯(lián)網(wǎng)服務提供商(Internet Service Provider, ISP),這樣語音會話的源和目的節(jié)點之間就存在多跳不同的路徑,而這些路徑同時不滿足語音通信的質量要求的概率是較低的。但是這個方法的代價較大,同時目前大多數(shù)用戶通常只連接到一個ISP,如中國電信等,所以這個方法對大多數(shù)互聯(lián)網(wǎng)用戶來說并不可行。第二個方法是P2P-VoIP業(yè)務提供商部署專用的服務器來轉接某些不滿足語音通信的鏈路語音通信,但是這個方法對P2P-VoIP業(yè)務提供商來說,開銷較大。第三個方法是通過在P2P網(wǎng)絡中選擇一些中繼節(jié)點,來轉接某些不滿足語音通信鏈路的語音通信,但是目前并沒有提出非常有效的方法,主要困難在于對一個具有N個節(jié)點的P2P-VoIP網(wǎng)絡來說,一個語音通信可以選擇的潛在中繼節(jié)點為N-2個,當網(wǎng)絡中的節(jié)點數(shù)量非常大時,選擇中繼節(jié)點的開銷就會非常大
發(fā)明內(nèi)容
鑒于以上,本發(fā)明提出了基于自治域的P2P-VoIP網(wǎng)絡中繼節(jié)點選擇方法。本發(fā)明提出基于自治域的P2P-VoIP網(wǎng)絡中繼節(jié)點選擇方法,包括以下步驟為會話源端或目的端提供服務的基于自治域的P2P-VoIP網(wǎng)絡的第一超級節(jié)點接收到源端或目的端發(fā)送的查找中繼節(jié)點的請求消息;第一超級節(jié)點從存儲的時延矩陣中,找到最小的和/或次小時延值的中繼AS,向中繼AS中的第二超級節(jié)點發(fā)送中繼節(jié)點的請求消息,所述時延矩陣的行與列均為AS的時延值;中繼AS中的第二超級節(jié)點從其服務的普通節(jié)點中選擇至少一個性能高且負載低的普通節(jié)點作為中繼節(jié)點,返回給第一超級節(jié)點;第一超級節(jié)點將所述至少一個中繼節(jié)點返回給源端或目的端。針對現(xiàn)有技術存在的缺陷和不足,本發(fā)明提出一種有效、可行的基于自治域的 P2P-VoIP網(wǎng)絡中繼節(jié)點選擇方法,能夠通過構建自治域之間的時延矩陣、周期性的測量生成最新的時延矩陣,為目前P2P-VoIP網(wǎng)絡中會話延時較大的鏈路,選擇低時延的中繼節(jié)點,來提高P2P-VoIP網(wǎng)絡的通話質量。本發(fā)明實時測量生成時延矩陣,相比現(xiàn)有技術估算節(jié)點間時延的方法,具有更高的準確性。
圖1是示出本發(fā)明基于自治域的P2P_VoIP網(wǎng)絡結構;圖2是示出本發(fā)明節(jié)點的ID生成方法;圖3是示出本發(fā)明節(jié)點通過方式1加入網(wǎng)絡的過程;圖4是示出本發(fā)明節(jié)點通過方式2加入網(wǎng)絡的過程;圖5是示出本發(fā)明節(jié)點通過方式3加入網(wǎng)絡的過程;圖6是示出本發(fā)明時延矩陣的測量算法;圖7是示出本發(fā)明時延矩陣的廣播方法;圖8是示出本發(fā)明中繼節(jié)點選擇方法。
具體實施例方式在P2P_VoIP網(wǎng)絡中,構建基于自治域的P2P_VoIP網(wǎng)絡結構,對P2P_VoIP網(wǎng)絡中的節(jié)點ID按照自治域進行命名,節(jié)點加入到基于自治域的P2P-VoIP網(wǎng)絡過程,在P2P-VoIP 網(wǎng)絡中測量自治域之間的時延矩陣,網(wǎng)絡中的超級節(jié)點存儲該時延矩陣,用戶可以通過中繼節(jié)點選擇算法找到合適的中繼節(jié)點。下面結合附圖,對本發(fā)明的具體實施方式
作進一步的詳細說明。對于所屬技術領域的技術人員而言,從對本發(fā)明的詳細說明中,本發(fā)明的上述的特征和優(yōu)點將顯而易見。如圖1所示,本發(fā)明提出的根據(jù)AS號(Autonomous System,自治域)構建基于自治域的分級P2P-VoIP網(wǎng)絡結構,節(jié)點分為bootstrap服務器節(jié)點、超級節(jié)點和普通節(jié)點?;谧灾斡虻腜2P-VoIP網(wǎng)絡結構為2級等級結構。節(jié)點通過AS號來聚類,所有的超級節(jié)點組成超級節(jié)點DHT網(wǎng)絡(SN-DHT),超級節(jié)點DHT采用one-hop-DHT,作為分級網(wǎng)絡的第一級網(wǎng)絡,負責互通每個獨立的AS自治域中的DHT網(wǎng)絡。同一個AS中的普通節(jié)點組成普通節(jié)點DHT(ON-DHT),作為第二級網(wǎng)絡,通過第一級網(wǎng)絡互通。每個自治域中的普通節(jié)點和超級節(jié)點間的比例基本維持在一個恒定的常數(shù),普通節(jié)點的數(shù)量要遠多于超級節(jié)點的數(shù)量。P2P-VoIP網(wǎng)絡中的3種節(jié)點定義如下DBootstrap 服務器節(jié)點Bootstrap節(jié)點是P2P_VoIP網(wǎng)絡中專有的服務器,通常是由P2P_VoIP服務提供商部署的高性能、M小時在線的服務器集群。這些服務器通常用于處理用戶的登錄和節(jié)點的加入請求。還負責構建IP地址前綴到AS號映射表,構建部分超級節(jié)點表,管理時延矩陣寸。在一個新的節(jié)點(計算機)要加P2P-VoIP網(wǎng)絡時,新節(jié)點會向bootstrap節(jié)點發(fā)送加入請求消息,bootstrap節(jié)點通過分析該節(jié)點的IP地址的AS號,將AS號信息發(fā)送給這個新節(jié)點。新節(jié)點在得到AS號時,就會加入到相應的0N-DHT。如果網(wǎng)絡中的節(jié)點是NAT 節(jié)點或是位于防火墻后不能加DHT網(wǎng)絡時,這些節(jié)點直接連接到普通節(jié)點或是超級節(jié)點。在P2P網(wǎng)絡中每個節(jié)點都會存儲IP地址前綴到AS號映射表。AS號和IP地址數(shù)據(jù)可以從APNIC、CNNIC等權威機構獲得,IP地址前綴到AS號的映射表可以由專門部署的 bootstrap服務器來完成。當節(jié)點已經(jīng)存儲了該映射表時,在以后加入P2P網(wǎng)絡時就可以不必向bootstrap節(jié)點詢問。Bootstrap節(jié)點會在每個AS中選擇十幾個超級節(jié)點構建部分超級節(jié)點表。部分超級節(jié)點表的作用是用于時延矩陣的測量。Bootstrap節(jié)點會周期性的運行時延矩陣構建算法,來生成最新的時延矩陣。2)超級節(jié)點超級節(jié)點是從P2P網(wǎng)絡中的普通節(jié)點選取出來的高性能節(jié)點,如計算性能高、存儲空間大、在線時間長、帶寬大等。在P2P-VoIP網(wǎng)絡中,每個自治域單獨的選擇該自治域中的超級節(jié)點。超級節(jié)點為普通節(jié)點服務每個超級節(jié)點存儲其他超級節(jié)點的地址信息,周期性的聯(lián)系bootstrap節(jié)點來獲取最新的時延矩陣和IP地址前綴到AS號映射表;將IP地址前綴到AS號映射表廣播到AS中普通節(jié)點;處理來自bootstrap節(jié)點關于時延的測量請求;接收他們所服務的普通節(jié)點的信息,并存儲性能較好的節(jié)點作為候選的中繼節(jié)點;當普通節(jié)點查詢中繼節(jié)點時,運行中繼節(jié)點選擇算法。3)普通節(jié)點每個AS中普通節(jié)點組成各自的DHT,如果AS中只有一個節(jié)點,那么該節(jié)點自動成為超級節(jié)點,周期性的將節(jié)點的信息發(fā)送給與它相關聯(lián)的超級節(jié)點。當有多個節(jié)點時,按照節(jié)點的能力權值選擇一定比例的節(jié)點為超級節(jié)點。每個普通節(jié)點連接至少 2個本自治域內(nèi)的超級節(jié)點,以提高系統(tǒng)的可靠性。P2P-VoIP網(wǎng)絡中的3種節(jié)點數(shù)據(jù)結構如下1)Bootstrap服務器節(jié)點存儲IP地址前綴到AS號的映射表、部分超級節(jié)點表和時延矩陣的管理模塊、AS號到節(jié)點ID前綴映射表(可選)。時延矩陣的管理模塊負責時延矩陣的測量和廣播工作。2)超級節(jié)點存儲IP地址前綴到AS號的映射表、性能較高的普通節(jié)點表、時延矩陣、AS號到節(jié)點ID前綴映射表(可選)。性能較高的普通節(jié)點表由超級節(jié)點從他所服務的所有普通節(jié)點中選出一些性能較高負載較低的節(jié)點。時延矩陣包括最新的時延矩陣,以及歷史的時延矩陣。3)普通節(jié)點存儲IP地址前綴到AS號的映射表、AS號到節(jié)點ID前綴映射表(可選)。
其中AS號到節(jié)點ID前綴映射表為可選項,是否有該映射表要看網(wǎng)絡的節(jié)點ID的產(chǎn)生方式。P2P網(wǎng)絡中的節(jié)點采用AS號進行聚類,即屬于同一個AS的節(jié)點聚類到同一個 ON-DHT中。每個AS內(nèi)的超級節(jié)點為該AS內(nèi)的普通節(jié)點服務。節(jié)點通過AS號聚類可以保證,每個ON-DHT只包含一個AS的節(jié)點,通常每個AS內(nèi)的節(jié)點時延是比較小的,并且這些節(jié)點與其他AS中任一節(jié)點之間的時延比較類似,例如ASl中的a,b節(jié)點,AS2中的c,d節(jié)點, a-c的時延與a-d時延,以及b-c,b-d的時延大小沒有大的差距。通過構建AS之間的時延矩陣,即每個AS中選擇1個或多個代表節(jié)點,他們之間相互測量得到時延矩陣,可以獲得整個P2P-VoIP網(wǎng)絡中各ON-DHT間的時延關系,為中繼節(jié)點的選擇提供依據(jù)。節(jié)點的ID生成方法如圖2所示。在傳統(tǒng)的DHT覆蓋網(wǎng)中,每個節(jié)點都有一個節(jié)點 ID,該節(jié)點的ID通過哈希算法生成。在基于自治域的P2P-VoIP網(wǎng)絡中節(jié)點的ID采用前綴和后綴的方式生成。每個節(jié)點ID包括域名部分和IP地址部分,這兩部分分別生成節(jié)點的ID前綴和后綴,其中域名部分生成節(jié)點ID的前綴,IP地址部分生成節(jié)點ID的后綴。每個節(jié)點域名與該節(jié)點所在的AS號相關聯(lián),bootstrap服務器負責建立網(wǎng)絡中的AS號到域名的映射表。因此,節(jié)點ID的前綴可以由AS號映射得到,映射的方式可以采用固定映射或是哈希的方式。采用固定映射方式,每個節(jié)點需要存儲AS號到節(jié)點ID前綴映射表,該表由 bootstrap服務器制定,并將該表廣播到網(wǎng)絡中的所有節(jié)點。如果采用哈希的方式,那么每個節(jié)點不用存儲AS號到節(jié)點ID前綴映射表,每個節(jié)點根據(jù)AS號直接哈希即可得到節(jié)點ID 前綴。節(jié)點ID的后綴采用直接哈希節(jié)點的IP地址的方式生成。本發(fā)明提出的節(jié)點加P2P-VoIP網(wǎng)絡的方法,包括如果節(jié)點已經(jīng)存儲了 IP地址前綴到AS的映射表,節(jié)點通過查詢該表,判斷自己屬于哪個自治域的DHT,然后通過標準的DHT算法加入到網(wǎng)絡中。如果節(jié)點沒有存儲IP地址前綴到AS的映射表,節(jié)點通過 bootstrap服務器查詢所屬的自治域,然后通過bootstrap服務器算法加入到網(wǎng)絡中。下面將結合圖3 圖5進行詳細說明。圖3是示出本發(fā)明節(jié)點通過方式1加入網(wǎng)絡的過程。節(jié)點為新節(jié)點,P2P-VoIP網(wǎng)絡節(jié)點ID前綴采用固定映射方式。節(jié)點的加入步驟如下新節(jié)點向bootstrap服務器發(fā)送加入請求,通知bootstrap服務器該節(jié)點為新節(jié)點,bootstrap服務器返回該節(jié)點的ID前綴和所屬的ON-DHT的超級節(jié)點。新節(jié)點得到上述信息后采用標準DHT算法加入到ON-DHT中。ON-DHT中的超級節(jié)點會將IP地址前綴到AS 號的映射表、AS號到節(jié)點ID前綴映射表發(fā)送給該節(jié)點。圖4是示出本發(fā)明節(jié)點通過方式2加入網(wǎng)絡的過程。節(jié)點為新節(jié)點,P2P-VoIP網(wǎng)絡節(jié)點ID前綴采用哈希方式。節(jié)點的加入步驟如下新節(jié)點向bootstrap服務器發(fā)送加入請求,通知bootstrap服務器該節(jié)點為新節(jié)點,bootstrap服務器返回該節(jié)點的AS號和所屬的ON-DHT的超級節(jié)點。新節(jié)點得到上述信息后采用標準DHT算法加入到ON-DHT中。ON-DHT中的超級節(jié)點會將IP地址前綴到AS 號的映射表發(fā)送給該節(jié)點,節(jié)點自己哈希得到ID。圖5是示出本發(fā)明節(jié)點通過方式3加入網(wǎng)絡的過程。節(jié)點以前加入過P2P-VoIP 網(wǎng)絡,節(jié)點的加入步驟如下節(jié)點判斷節(jié)點的IP與上一次加入網(wǎng)絡中的IP是否屬于同一個AS內(nèi),如果屬于同一個AS,則節(jié)點通過上一次加入P2P-VoIP網(wǎng)絡時認知的同一個AS內(nèi)的IP地址聯(lián)系,如果有其他節(jié)點響應,則按照標準的DHT算法加入網(wǎng)絡。如果節(jié)點的IP與上一次加入網(wǎng)絡中的 IP不屬于同一個AS,節(jié)點通過上一次加入P2P-VoIP網(wǎng)絡時認知的同一個AS內(nèi)的IP地址聯(lián)系,如果有其他節(jié)點響應,則通過響應的節(jié)點查找該節(jié)點IP所屬的AS內(nèi)的節(jié)點,通過查找得到的節(jié)點加入到P2P-VoIP網(wǎng)絡。如圖6所示,在節(jié)點加入到網(wǎng)絡之后,時延矩陣的構建方法包括測量、廣播,時延矩陣的測量算法是在bootstrap服務器節(jié)點上運行的,測量算法步驟如下a. Bootstrap服務器節(jié)點發(fā)送測量請求消息給選中的超級節(jié)點;b、超級節(jié)點接收到來自bootstrap服務器節(jié)點的測量請求消息,測量它與其他AS 號內(nèi)的超級節(jié)點之間的時延值。時延矩陣中的值為AS之間的相互時延值,采用測量的方法得到,可以使用Ping工具等;C、將測量結果返回給bootstrap服務器節(jié)點;d、當bootstrap服務器節(jié)點接收到所有選中的超級節(jié)點的測量結果消息,生成時延矩陣,時延矩陣構建算法結束。其中負責測量的超級節(jié)點也可以將它負責的測量任務分配給它所服務的普通節(jié)點,以減輕該節(jié)點測量的開銷。Bootstrap服務器根據(jù)網(wǎng)絡中AS數(shù)量,構建AS之間的時延矩陣,每個AS中取至少一個節(jié)點。每個AS中選擇1個或多個代表節(jié)點,相互測量得到時延矩陣。時延矩陣的大小與P2P-VoIP網(wǎng)絡中的AS數(shù)量相關,時延矩陣可以存儲在超級節(jié)點中或是普通節(jié)點中。時延矩陣的行與列均為AS的時延值,每個AS中可以選取幾個節(jié)點。如果該AS暫時沒有節(jié)點, 則時延矩陣中該AS的時延值是使用以前同一時間段測量的值。Bootstrap服務器周期性的運行時延矩陣構建算法。算法運行時bootstrap服務器從存儲的部分超級節(jié)點表中選取一些超級節(jié)點承擔時延矩陣的測量任務。Bootstrap服務器從每個AS中選取幾個超級節(jié)點構建部分超級節(jié)點表,其中每個 AS中必須包括在ID空間中的頭或尾超級節(jié)點,該節(jié)點承擔時延矩陣的廣播任務。圖7為本發(fā)明時延矩陣的廣播方法。時延矩陣的廣播由bootstrap服務器節(jié)點完成,時延矩陣的廣播算法是在bootstrap服務器上按一定的周期運行的,是在得到最新的時延矩陣后運行該算法。時延矩陣的廣播采用分等級的廣播方式,第一級為AS層面,在每個AS中選擇一個節(jié)點作為AS的頭節(jié)點,在每個AS中劃分成多個塊,每個塊中選擇一個超級節(jié)點作為該塊的頭節(jié)點。AS的頭節(jié)點和塊頭節(jié)點選擇可以按照一定的規(guī)律,比如選擇ID空間上的頭節(jié)點或是尾節(jié)點,以及其它的選擇方法等。每個AS中超級節(jié)點所占的ID空間平均劃分成N塊,N的大小取決于該AS中超級節(jié)點的數(shù)量,保證每塊中包含數(shù)量較少的超級節(jié)點。并且在每塊中選擇一個節(jié)點做為該塊的塊頭節(jié)點。時延矩陣由bootstrap服務器負責轉發(fā)給P2P-VoIP網(wǎng)絡中的所有超級節(jié)點,廣播的步驟如下
步驟1、Bootstrap服務器將時延矩陣發(fā)送給每個AS的頭節(jié)點;步驟2、每個AS的頭節(jié)點繼續(xù)將時延矩陣廣播到該AS中所有塊頭節(jié)點;步驟3、塊頭節(jié)點將時延矩陣廣播到該塊中所有其他超級節(jié)點。這種廣播方法能保證快速的將時延矩陣廣播到P2P-VoIP網(wǎng)絡中的所有節(jié)點,并且保證bootstrap服務器、AS頭節(jié)點、塊頭節(jié)點在廣播中承擔的負載較低。圖8為本發(fā)明中繼節(jié)點選擇方法,在P2P_VoIP網(wǎng)絡中,如果某一個會話由于時延太高,不能滿足通話質量要求時,可以通過選擇一條低時延的中繼鏈路,由中繼節(jié)點來轉接話音,以提升話音的質量。本發(fā)明的中繼節(jié)點選擇方法步驟如下1)中繼節(jié)點的選擇由會話的源和目的端發(fā)起。為會話的源或目的端提供服務的超級節(jié)點接收到源端或目的端發(fā)送的查找中繼節(jié)點的請求消息。2)超級節(jié)點收到中繼節(jié)點請求消息后,從他們存儲的最新的時延矩陣中,找到最小的和/或次小時延的中繼AS。3)超級節(jié)點向中繼AS中的超級節(jié)點發(fā)送中繼節(jié)點的請求消息。4)中繼AS中的超級節(jié)點收到中繼節(jié)點請求消息后,從其服務的普通節(jié)點中選擇至少一個性能高且負載低的普通節(jié)點,將至少一個普通節(jié)點返回給向它請求中繼節(jié)點的超級節(jié)點。優(yōu)選性能最高且可以提供中繼服務的節(jié)點,性能可以考慮計算、存儲、帶寬等因素
綜合考慮ο5)接收到中繼節(jié)點消息的超級節(jié)點將所述至少一個中繼節(jié)點返回給向它查詢的源或目的節(jié)點。6)會話的源或目的節(jié)點與中繼節(jié)點進行語音通信。作為對詳細描述的結論,應該注意本領域的技術人員將會很清楚可對優(yōu)選實施例做出許多變化和修改,而實質上不脫離本發(fā)明的原理。這種變化和修改包含在所附權利要求書所述的本發(fā)明的范圍之內(nèi)。
權利要求
1.基于自治域的P2P-VoIP網(wǎng)絡中繼節(jié)點選擇方法,包括以下步驟為會話源端或目的端提供服務的基于自治域的P2P-VoIP網(wǎng)絡的第一超級節(jié)點接收到源端或目的端發(fā)送的查找中繼節(jié)點的請求消息;第一超級節(jié)點從存儲的時延矩陣中,找到最小的和/或次小時延值的中繼AS,向中繼 AS中的第二超級節(jié)點發(fā)送中繼節(jié)點的請求消息,所述時延矩陣的行與列均為AS的時延值; 中繼AS中的第二超級節(jié)點從其服務的普通節(jié)點中選擇至少一個性能高且負載低的普通節(jié)點作為中繼節(jié)點,返回給第一超級節(jié)點;第一超級節(jié)點將所述至少一個中繼節(jié)點返回給源端或目的端。
2.根據(jù)權利要求1所述中繼節(jié)點選擇方法,還包括生成時延矩陣的步驟 Bootstrap服務器節(jié)點發(fā)送測量請求消息給選中的超級節(jié)點;超級節(jié)點接收到來自bootstrap服務器節(jié)點的測量請求消息,測量它與其他AS號內(nèi)的超級節(jié)點之間的時延值,并將測量結果返回給bootstrap服務器節(jié)點;當bootstrap服務器節(jié)點接收到所有選中的超級節(jié)點的測量結果消息,生成時延矩陣;其中,Bootstrap服務器從每個AS中選取至少一個超級節(jié)點構建部分超級節(jié)點表,從部分超級節(jié)點表中選取至少一個超級節(jié)點承擔時延測量任務。
3.根據(jù)權利要求2所述中繼節(jié)點選擇方法,在生成時延矩陣之后,還包括廣播時延矩陣的步驟Bootstrap服務器將時延矩陣發(fā)送給每個AS的頭節(jié)點,每個AS的頭節(jié)點繼續(xù)將時延矩陣廣播到該AS中所有塊頭節(jié)點,塊頭節(jié)點繼續(xù)將時延矩陣廣播到該塊中所有其他超級節(jié)占.其中,每個AS中包括在ID空間中的頭或尾超級節(jié)點,該節(jié)點承擔時延矩陣的廣播任務,時延矩陣的廣播采用分等級的廣播方式,第一級為AS層面,在每個AS中選擇一個節(jié)點作為AS的頭節(jié)點,在每個AS中劃分成多個塊,每個塊中選擇一個超級節(jié)點作為該塊的頭節(jié)點,每個AS中超級節(jié)點所占的ID空間平均劃分成N塊,在每塊中選擇一個節(jié)點做為該塊的塊頭節(jié)點。
4.根據(jù)權利要求2或3所述中繼節(jié)點選擇方法,超級節(jié)點接收到來自bootstrap的測量請求消息,還將其負責的測量任務分配給它所服務的普通節(jié)點。
5.根據(jù)權利2或3所述中繼節(jié)點選擇方法,當所述中繼AS沒有節(jié)點時,將所述AS之前同一時間段測量的時延值作為該AS的時延矩陣的時延值。
6.根據(jù)權利要求1至5中任一所述中繼節(jié)點選擇方法,其中,節(jié)點為新節(jié)點,基于自治域的P2P-VoIP網(wǎng)絡節(jié)點ID前綴采用固定映射方式,節(jié)點加入到基于自治域的P2P-VoIP網(wǎng)絡的步驟如下新節(jié)點向bootstrap服務器發(fā)送加入請求,通知bootstrap服務器該節(jié)點為新節(jié)點; bootstrap服務器返回該節(jié)點的ID前綴和所屬的ON-DHT的超級節(jié)點,新節(jié)點得到上述信息后采用標準DHT算法加入到ON-DHT中。
7.根據(jù)權利要求1至5中任一所述中繼節(jié)點選擇方法,其中,節(jié)點為新節(jié)點,基于自治域的P2P-VoIP網(wǎng)絡節(jié)點ID前綴采用哈希方式,節(jié)點加入到基于自治域的P2P-VoIP網(wǎng)絡的步驟如下新節(jié)點向bootstrap服務器發(fā)送加入請求,通知bootstrap服務器該節(jié)點為新節(jié)點;bootstrap服務器返回該節(jié)點的AS號和所屬的ON-DHT的超級節(jié)點,新節(jié)點得到上述信息后采用標準DHT算法加入到ON-DHT中。
8.根據(jù)權利要求1至5中任一所述中繼節(jié)點選擇方法,其中,節(jié)點以前加入過基于自治域的P2P-VoIP網(wǎng)絡,節(jié)點加入到基于自治域的P2P-VoIP網(wǎng)絡步驟如下節(jié)點判斷節(jié)點的IP與上一次加入網(wǎng)絡中的IP是否屬于同一個AS內(nèi),如果屬于同一個 AS,則節(jié)點通過上一次加入P2P-VoIP網(wǎng)絡時認知的同一個AS內(nèi)的IP地址聯(lián)系,如果有其他節(jié)點響應,則按照標準的DHT算法加入網(wǎng)絡;如果節(jié)點的IP與上一次加入網(wǎng)絡中的IP不屬于同一個AS,節(jié)點通過上一次加入 P2P-VoIP網(wǎng)絡時認知的同一個AS內(nèi)的IP地址聯(lián)系,如果有其他節(jié)點響應,則通過響應的節(jié)點查找該節(jié)點IP所屬的AS內(nèi)的節(jié)點,通過查找得到的節(jié)點加入到P2P-VoIP網(wǎng)絡。
9.根據(jù)權利要求1至8中任一所述中繼節(jié)點選擇方法,其中在基于自治域的P2P-VoIP網(wǎng)絡中節(jié)點的ID采用前綴和后綴的方式生成,每個節(jié)點ID 包括域名部分和IP地址部分,這兩部分分別生成節(jié)點的ID前綴和后綴,其中域名部分生成節(jié)點ID的前綴,IP地址部分生成節(jié)點ID的后綴,每個節(jié)點域名與該節(jié)點所在的AS號相關聯(lián),bootstrap服務器負責建立網(wǎng)絡中的AS號到域名的映射表。
10.根據(jù)權利要求9所述中繼節(jié)點選擇方法,其中節(jié)點ID的前綴由AS號映射得到,映射的方式采用固定映射或哈希映射,采用固定映射方式,每個節(jié)點需要存儲AS號到節(jié)點ID前綴映射表,該表由bootstrap服務器制定,并將該表廣播到網(wǎng)絡中的所有節(jié)點;采用哈希映射的方式,每個節(jié)點根據(jù)AS號直接哈希即可得到節(jié)點ID前綴,節(jié)點ID的后綴采用直接哈希節(jié)點的IP地址的方式生成。
11.根據(jù)權利要求1至10中任一所述中繼節(jié)點選擇方法,其中P2P網(wǎng)絡中的節(jié)點采用AS號進行聚類,即屬于同一個AS的節(jié)點聚類到同一個ON-DHT中。
全文摘要
本發(fā)明公開了一種基于自治域的P2P-VoIP網(wǎng)絡中繼節(jié)點選擇方法。為會話源端或目的端提供服務的基于自治域的P2P-VoIP網(wǎng)絡的第一超級節(jié)點接收到源端或目的端發(fā)送的查找中繼節(jié)點的請求消息;第一超級節(jié)點從存儲的時延矩陣中,找到最小的和/或次小時延值的中繼AS,向中繼AS中的第二超級節(jié)點發(fā)送中繼節(jié)點的請求消息,所述時延矩陣的行與列均為AS的時延值;中繼AS中的第二超級節(jié)點從其服務的普通節(jié)點中選擇至少一個性能高且負載低的普通節(jié)點作為中繼節(jié)點,返回給第一超級節(jié)點;第一超級節(jié)點將所述至少一個中繼節(jié)點返回給源端或目的端。本發(fā)明選擇低時延的中繼節(jié)點,提高了P2P-VoIP網(wǎng)絡的通話質量。
文檔編號H04L29/12GK102438018SQ20111042181
公開日2012年5月2日 申請日期2011年12月16日 優(yōu)先權日2011年12月16日
發(fā)明者張春紅, 朱新寧, 王剛, 紀陽, 胡清源, 裘曉峰, 馬濤, 魏芳 申請人:北京郵電大學