專利名稱::分布式網(wǎng)絡構造方法、裝置和系統(tǒng)以及任務處理方法
技術領域:
:本發(fā)明涉及通信
技術領域:
,特別涉及一種分布式網(wǎng)絡構造方法、裝置和系統(tǒng)以及任務處理方法。
背景技術:
:內容分發(fā)網(wǎng)絡(ContentDeliveryNetwork,CDN)技術已經(jīng)成為目前媒體內容分發(fā)技術的一個主要平臺技術,YouTube、YouKu、56、土豆網(wǎng)等用戶原創(chuàng)內容(UserGeneratedContent,UGC)業(yè)務網(wǎng)絡的普及,吸引了大量的用戶分享內容。這些業(yè)務目前主要是利用分域管理的分布式網(wǎng)絡結構來實現(xiàn)的,該網(wǎng)絡結構主要采用兩種方式來實現(xiàn)。一種方式是,在每一個域中架構一臺域管理服務器,管理域中節(jié)點的運行情況,然后再架構對這些域管理服務器進行管理的中心服務器,實現(xiàn)分層管理。即,網(wǎng)絡中的分享內容通過中心服務器逐層的往下分發(fā),使得內容放置到用戶接近的域中的節(jié)點,即邊緣服務器(EdgeServer,ES)上。這樣,使得用戶可以快速的從ES上獲取需要的內容。另外一種是,通過對分布式網(wǎng)絡中的各個節(jié)點進行性能統(tǒng)計,選擇一些性能比較優(yōu)異的節(jié)點作為超級節(jié)點,由超級節(jié)點對域中的節(jié)點進行管理,而無需中心服務器再對超級節(jié)點進行管理,這種方式由于簡化了分層管理的結構,稱為完全分布式網(wǎng)絡結構。在現(xiàn)有的完全分布式網(wǎng)絡結構中,由于用戶對于存儲內容的節(jié)點的需求存在著地域上的差別,即,用戶能夠在自己的接入域中的節(jié)點上進行內容的請求或者存儲等操作。在這種網(wǎng)絡結構中,全局的內容管理和各個域的節(jié)點管理,很難形成同一種分布式哈希表(DistributedHashTable,DHT)算法來進行操作。目前主要是將每個域作為一個結構化網(wǎng)絡,其中的節(jié)點采用分布式網(wǎng)絡結構,然后再將各個域連成一個大的全局的分布式網(wǎng)絡結構,將每個域中節(jié)點的分布式結構通過全局的分布式網(wǎng)絡互聯(lián)。這樣每個節(jié)點就需要維護兩張結構化網(wǎng)絡的表項,即域的和全局的。為了不同域中的節(jié)點可以進行通信,需要構建兩種DHT算法,通過共用的中間節(jié)點,對這些域網(wǎng)絡間的節(jié)點進行交叉管理,進而進行內外的消息交互。在現(xiàn)有的分布式網(wǎng)絡結構中,一般采用的DHT算法有Chord、CAN、Pastry、KAD(KAD是kademlia的簡稱)等,其中KAD較其他的算法,是通過一種獨特的異或算法(X0R)作為距離度量基礎,建立的一種全新的DHT算法的拓撲結構,可以大大提高路由查詢速度。在由KAD算法構架的KAD網(wǎng)絡中,所有計算得到的分布式的節(jié)點都被當作一顆二叉樹的葉子,并且每一個節(jié)點的位置都由KAD算法得到的節(jié)點標識(NodeID)的最短前綴唯一的確定。在KAD算法中,NodeID通常是由某個哈希(Hash)函數(shù)計算得到的,目的是為了使在分布式網(wǎng)絡中的節(jié)點根據(jù)其NodeID均勻的分布。在這種節(jié)點分布方式中,如果節(jié)點的數(shù)量足夠大,那么節(jié)點的分布會趨向于均衡。而且在此KAD算法中,一般NodeID的長度為160Bit,與內容ID的長度相同,當節(jié)點進行內容查詢時,節(jié)點ID會和內容ID進行匹配,以查詢所需內容。發(fā)明人在實現(xiàn)本發(fā)明的過程中,發(fā)現(xiàn)現(xiàn)有技術至少存在以下缺點上述的分布式網(wǎng)絡形成過程中,無論是采用KAD算法還是其他的DHT算法,為了使得網(wǎng)絡中的節(jié)點在理論上趨向于均勻分布,采用了128位或者160位的Hash算法計算NodeID,但是,實際上在節(jié)點的數(shù)量不是很多的時候,采用這些算法計算的NodeID進行節(jié)點分布是非常的不均勻的,容易造成節(jié)點上的負載的不均衡。再有,若要實現(xiàn)對現(xiàn)有的分布式網(wǎng)絡的分域管理,域的分布和全局的分布采用的是不同的DHT算法,那么,某一域內的節(jié)點在與其他域中的節(jié)點進行交互的時候,需要一些中間節(jié)點作為跳板,跳到其他域中進行操作,這樣可能就會產(chǎn)生單點效應,而且每個域中的節(jié)點都要維護和中間節(jié)點的交互消息,會使節(jié)點的開銷變大;同時,由于每個節(jié)點都需要維護兩張結構化網(wǎng)絡的表項,使得某些節(jié)點維護的信息冗余,也會造成不必要的開銷。還有,在KAD算法中,通常情況下,160位NodeID代表的節(jié)點都需要保留160個節(jié)點列表,如果每個節(jié)點列表中都有節(jié)點信息,并且每個節(jié)點與鄰居節(jié)點之間都需要周期性的發(fā)布心跳消息來維護消息的交互,那么,每個周期,節(jié)點之間的心跳消息至少需要320
發(fā)明內容本發(fā)明目的在于提供一種分布式網(wǎng)絡構造方法、裝置和系統(tǒng)以及任務處理方法,實現(xiàn)一種節(jié)點分布更加均勻的、無交叉的完全分布式網(wǎng)絡結構,以避免節(jié)點上的負載的不均衡、降低節(jié)點維護的冗余信息以及節(jié)點間交互的消息數(shù)量。根據(jù)本發(fā)明的一方面,提供了一種分布式網(wǎng)絡構造方法,包括根據(jù)請求加入分布式網(wǎng)絡的請求節(jié)點的地址,確定所述請求節(jié)點所在的域,并獲取域標識;根據(jù)所述域具有的域內節(jié)點的數(shù)量,生成所述請求節(jié)點的域內標識;將所述域標識與所述域內標識級聯(lián),獲得所述請求節(jié)點的節(jié)點標識;將所述節(jié)點標識發(fā)送至所述請求節(jié)點,所述請求節(jié)點根據(jù)其獲得的節(jié)點標識獲取鄰近節(jié)點的節(jié)點信息,以加入所述分布式網(wǎng)絡。根據(jù)本發(fā)明的另一方面,提供了一種在上述分布式網(wǎng)絡構造方法構造的分布式網(wǎng)絡中進行域內任務處理方法,其特征在于,包括第一節(jié)點接收任務處理請求,所述任務處理請求包括內容上傳處理請求、增加或刪除內容處理請求;所述第一節(jié)點判斷其自身的資源性能是否滿足任務處理的要求;若滿足,則將所述第一節(jié)點的節(jié)點信息返回發(fā)起所述任務處理請求的第二節(jié)點,所述第二節(jié)點向所述第一節(jié)點發(fā)起操作;若不滿足,則從所述第一節(jié)點的節(jié)點列表中選擇資源性能滿足任務處理的要求的第三節(jié)點,將所述第三節(jié)點的節(jié)點信息返回發(fā)起所述任務處理請求的第二節(jié)點,所述第二節(jié)點向所述第三節(jié)點發(fā)起操作;其中選擇第三節(jié)點時,先從存儲有所述第一節(jié)點所在域的域內節(jié)點信息的節(jié)點列表中選擇。根據(jù)本發(fā)明的另一方面,提供了一種節(jié)點標識生成裝置,包括域標識獲取模塊,用于根據(jù)請求加入分布式網(wǎng)絡的請求節(jié)點的地址,確定所述請求節(jié)點所在的域,并獲取域標識;域內標識生成模塊,用于根據(jù)所述域具有的域內節(jié)點的數(shù)量,生成所述請求節(jié)點的域內標識;節(jié)點標識獲取模塊,用于將所述域標識與所述域內標識級聯(lián),獲得所述請求節(jié)點的節(jié)點標識。根據(jù)本發(fā)明的另一方面,提供了一種分布式網(wǎng)絡系統(tǒng),包括請求路由服務器,用于根據(jù)請求加入分布式網(wǎng)絡的請求節(jié)點的地址,確定所述請求節(jié)點所在的域,并獲取域標識;根據(jù)所述域具有的域內節(jié)點的數(shù)量,生成所述請求節(jié)點的域內標識;并將所述域標識與所述域內標識級聯(lián),獲得所述請求節(jié)點的節(jié)點標識;邊緣服務器,用于根據(jù)從所述請求路由服務器獲得的其所在域的域標識計算所述邊緣服務器的節(jié)點標識,或從所述請求路由服務器獲得由所述請求路由服務器計算所得的所述邊緣服務器的節(jié)點標識;用于存儲內容,所述內容具有對應的內容標識;用于查找與所述內容標識最近的一個或多個邊緣服務器登記所述內容對應的內容索引信息,以及查找所述邊緣服務器所要獲取的內容索引信息所在的邊緣服務器;還用于對其節(jié)點列表進行維護,發(fā)起對其鄰近的邊緣服務器的節(jié)點查詢,以及對其性能進行統(tǒng)計、記錄;內容索引服務器,用于對上傳到所述分布式網(wǎng)絡系統(tǒng)的內容進行添加、刪除及分發(fā)的操作,登記所述內容對應的內容標識,以及接收用戶或所述邊緣服務器發(fā)送的查詢內容請求,進行查詢內容處理,并返回所要查詢的內容對應的內容標識。由以上技術方案可知,本發(fā)明實施例的分布式網(wǎng)絡構造方法、裝置和系統(tǒng)以及任務處理方法,通過先對請求節(jié)點所在的域進行確定,然后再將計算獲得的請求節(jié)點的域標識和域內標識進行級聯(lián),得到請求節(jié)點的節(jié)點標識,避免了采用現(xiàn)有KAD算法直接HASH得到節(jié)點的節(jié)點標識而帶來的網(wǎng)絡中的節(jié)點分布不均衡的問題,使得分布式網(wǎng)絡中的節(jié)點分布更加均衡,節(jié)點上的負載也更加均衡,并且降低了節(jié)點維護的冗余信息以及節(jié)點間交互的消息數(shù)量。圖1為本發(fā)明實施例的分布式網(wǎng)絡的場景示意圖;圖2為本發(fā)明實施例的分布式網(wǎng)絡的結構化示意圖;圖3為本發(fā)明分布式網(wǎng)絡構造方法第一實施例的流程示意圖;圖4為本發(fā)明分布式網(wǎng)絡構造方法第二實施例的流程示意圖;圖5為本發(fā)明分布式網(wǎng)絡構造方法第二實施例的域的加入的簡單示意圖;圖6為本發(fā)明分布式網(wǎng)絡構造方法第三實施例的流程示意圖;圖7A為本發(fā)明實施例節(jié)點標識為Y的接入節(jié)點接收到FINDNODE(X)的請求的處理流程示意圖;圖7B為本發(fā)明實施例K桶更新方法的流程示意圖;圖8為本發(fā)明分布式網(wǎng)絡構造方法第四實施例的流程示意圖;圖9為本發(fā)明實施例的RRS對退出節(jié)點的具體處理流程示意圖;圖10A為本發(fā)明分布式網(wǎng)絡構造方法第五實施例的流程示意圖;圖10B為本發(fā)明實施例的內容查詢方法的具體流程示意圖;圖10C為本發(fā)明實施例的內容索引信息遷移方法的具體流程示意圖11為本發(fā)明在分布式網(wǎng)絡中進行任務處理方法實施例的流程示意圖;圖12為本發(fā)明節(jié)點標識生成裝置實施例的結構示意圖;圖13為本發(fā)明實施例的分布式網(wǎng)絡系統(tǒng)中的RRS的具體結構示意圖;圖14為本發(fā)明實施例的分布式網(wǎng)絡系統(tǒng)中的CIS的具體結構示意圖;圖15為本發(fā)明實施例的分布式網(wǎng)絡系統(tǒng)中的ES的具體結構示意圖。具體實施例方式下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。圖1為本發(fā)明實施例的分布式網(wǎng)絡的場景示意圖,如圖1所示為該場景下的各個網(wǎng)絡設備。請求路由服務器(RequestRoutingServer,以下簡稱RRS),用于進行域的劃分,比如設定要加入該分布式網(wǎng)絡的邊緣服務器(EdgeServer,以下簡稱ES)的地址在哪些地址段的,屬于哪個域;還用于完成ES和用戶節(jié)點登錄的請求處理;同時也可以根據(jù)ES和用戶節(jié)點的地址等標識,為其定位域。RRS還記錄了該分布式網(wǎng)絡中的域、ES和用戶節(jié)點的分布情況;當一個新的域加入時,要設定新增加的域的劃分條件,同時還要計算該域的域標識;同時,每一個ES或用戶節(jié)點加入的時候,通過ES可以計算節(jié)點標識(NodeID)。內容索引服務器(ContentIndexServer,以下簡稱CIS),進行集中式的內容索引管理,負責用戶關鍵詞的模糊搜索;同時,對于該分布式網(wǎng)絡中的內容進行管理,如,判斷內容的合法性,對于不合法的,發(fā)起刪除操作等;另外如果需要批量注入內容,那么可以先將內容導入到該CIS,然后,再分發(fā)給需求域上的ES。ES主要用于存儲和分發(fā)內容。在本發(fā)明實施例中,每個ES以及各個用戶節(jié)點均可以視為一個節(jié)點,下文中提到的節(jié)點一般是指ES。圖2為本發(fā)明實施例的分布式網(wǎng)絡的結構化示意圖,如圖2所示,將上述圖1的分布式網(wǎng)絡的場景采用該圖2所示的借助于KAD算法的分布式網(wǎng)絡的結構化的結構,可以形象地說明如何實現(xiàn)加入該分布式網(wǎng)絡中的各個節(jié)點的均衡分布。本發(fā)明實施例介紹了構造圖2所示的分布式網(wǎng)絡的結構化結構的方法及該分布式網(wǎng)絡中節(jié)點加入、節(jié)點退出以及節(jié)點和內容查詢的應用。在圖2所示的二叉樹結構中,每一個黑色葉子節(jié)點表示圖1所示的分布式網(wǎng)絡中的一個ES,其他的葉子節(jié)點在該分布式網(wǎng)絡中并不存在,只是為了邏輯上表述清楚構建的虛節(jié)點。在該二叉樹結構中,每一個葉子節(jié)點所在的二叉樹的位置都可以用0、1表示出來,該0、1構成的字符串作為葉子節(jié)點(ES)的NodeID的前綴。通常情況下,ES的NodeID和內容ID是長度相同的,如內容ID的長度為160位,若ES的NodeID的前綴不足160位,那么剩下的NodeID的后綴都可以用0來補足。在本發(fā)明實施例中,這棵二叉樹被分成兩層來分別構造。上層是一個F層的二叉樹結構,表示節(jié)點所在的域,節(jié)點的F位前綴表示該節(jié)點所在域的域標識(FieldID)。節(jié)點的NodeID由所在域的FieldID和節(jié)點所在域的域內標識(PeerID)級聯(lián)構成。通常情況下,NodeID和內容ID的長度相同,如取160位,那么在本發(fā)明實施例中,若設定FieldID的位數(shù)為FL位,PeerlD的位數(shù)為PL位,則FL+PL<=160,并且還需要擁有足夠大的FL和PL以滿足該分布式網(wǎng)絡系的域和節(jié)點的可擴展性。下面本發(fā)明實施例將詳細闡述如何確定要加入該分布式網(wǎng)絡中的節(jié)點的NodelD、節(jié)點加入/退出該分布式網(wǎng)絡的方法、以及用戶節(jié)點在該分布式網(wǎng)絡中如何進行內容查找/存儲等應用。圖3為本發(fā)明分布式網(wǎng)絡構造方法第一實施例的流程示意圖,如圖3所示,當一個ES請求加入如圖2所示的結構化的分布式網(wǎng)絡時,包括如下步驟步驟301、根據(jù)請求加入分布式網(wǎng)絡的請求節(jié)點的地址,確定該請求節(jié)點所在的域,并獲取域標識;步驟302、根據(jù)該域具有的域內節(jié)點的數(shù)量,生成請求節(jié)點的域內標識;步驟303、將域標識與域內標識級聯(lián),獲得請求節(jié)點的節(jié)點標識;步驟304、將節(jié)點標識發(fā)送至請求節(jié)點,請求節(jié)點根據(jù)其獲得的節(jié)點標識獲取鄰近節(jié)點的節(jié)點信息,以加入分布式網(wǎng)絡。上述節(jié)點標識(NodeID)的獲取以及根據(jù)NodeID將請求節(jié)點加入到分布式網(wǎng)絡中的過程可以在如圖1所示場景下的RRS中實現(xiàn),或者由其他可以獲取NodeID的網(wǎng)絡設備來實現(xiàn)。以圖1所示場景下的RRS為例,RRS上記錄了域的劃分配置,例如劃定了具有哪些IP地址的節(jié)點屬于哪個域,那么步驟301中RRS就可以根據(jù)請求節(jié)點的IP地址來確定該請求節(jié)點所在的域,例如圖2中的請求節(jié)點A將加入到域2,且在之前域2加入該分布式網(wǎng)絡時,RRS也是按照域的FieldID將域均勻分布的;步驟302中,確定了請求節(jié)點A在域2后,根據(jù)域2內現(xiàn)分布的節(jié)點的數(shù)量(圖2中為2個),通過預定算法即可生成請求節(jié)點A的PeerlD;例如域2的FieldID為OIOO,請求節(jié)點A在域2中的PeerlD為1000;那么在步驟303中,將FieldID和PeerlD級聯(lián),即可得到請求節(jié)點A的NodeID為01001000;步驟304中,根據(jù)該0、1表示的請求節(jié)點A的NodeID,即可以在圖2所示的分布式網(wǎng)絡的結構化的二叉樹結構中找到A應加入的葉子節(jié)點的位置,然后請求節(jié)點A再根據(jù)其獲得的節(jié)點標識獲取鄰近節(jié)點的節(jié)點信息,就可以加入該分布式網(wǎng)絡。本實施例的分布式網(wǎng)絡構造方法,通過先對請求節(jié)點所在的域進行確定,然后再將計算獲得的請求節(jié)點的域標識和域內標識進行級聯(lián),得到請求節(jié)點的節(jié)點標識,避免了采用現(xiàn)有KAD算法直接HASH得到節(jié)點的節(jié)點標識而帶來的網(wǎng)絡中的節(jié)點分布不均衡的問題,使得分布式網(wǎng)絡中的節(jié)點分布更加均衡,節(jié)點上的負載也更加均衡,并且降低了節(jié)點維護的冗余信息以及節(jié)點間交互的消息數(shù)量。圖4為本發(fā)明分布式網(wǎng)絡構造方法第二實施例的流程示意圖,如圖4所示,在請求節(jié)點請求加入分布式網(wǎng)絡之前,該分布式網(wǎng)絡中的RRS是要對域進行劃分的,為了能夠使得該分布式網(wǎng)絡能夠對其劃分的域進行擴展,會對域標識的Bit位數(shù)進行預先設定,并且通過本發(fā)明實施例的域標識生成方法計算域的域標識,從而以對域進行均衡分布。獲取域標識的步驟包括步驟401、RRS收到一個增加域的請求;步驟402、設定域標識的有效長度M;其中M為正整數(shù),該有效長度M的設定要便于域的擴展;步驟403、將該分布式網(wǎng)絡中已有的域的數(shù)量值表示為M位比特值,并根據(jù)該比特值生成域的域標識。此時,請求加入到該分布式網(wǎng)絡中的域根據(jù)其域標識分配到二叉樹結構的一個葉子節(jié)點,并且可以實現(xiàn)該分布式網(wǎng)絡下的域的均勻分布。當一個請求節(jié)點請求加入該分布式網(wǎng)絡時,包括如下步驟步驟404、RRS接收到請求節(jié)點要加入該分布式網(wǎng)絡的請求;步驟405、RRS根據(jù)請求節(jié)點的地址信息為其指定加入的域,請求節(jié)點的地址信息如IP地址信息;如果該請求節(jié)點的IP地址不在該結構化網(wǎng)絡劃定的域的范圍內,則返回節(jié)點加入失敗消息至請求節(jié)點,結束;否則,執(zhí)行步驟406;步驟406、設定域內標識的有效長度N;其中N為正整數(shù),該有效長度N的設定也要便于域內的節(jié)點的擴展;步驟407、判斷是否存在空閑的域內標識;若存在,則執(zhí)行步驟408;否則,執(zhí)行步驟409;步驟408、將空閑的域內標識賦值給請求節(jié)點,執(zhí)行步驟410;步驟409、從域中獲取域內節(jié)點的數(shù)量值,并將該數(shù)量值轉換為對應域內標識的N位比特值,并根據(jù)該比特值生成請求節(jié)點的域內標識;步驟410、將域標識與域內標識級聯(lián),獲得請求節(jié)點的節(jié)點標識;將獲得的節(jié)點標識發(fā)送至請求節(jié)點,請求節(jié)點就可以根據(jù)該節(jié)點標識獲取鄰近節(jié)點的節(jié)點信息,以加入分布式網(wǎng)絡。下面對域的加入和節(jié)點的加入的具體計算步驟進行說明。1)域的加入由于域的數(shù)量很難在圖2所示的分布式網(wǎng)絡的前F層構成一個完整的二叉樹,所以為了均衡節(jié)點負載的均勻分布,在域的分布上也需要實現(xiàn)均衡。因此采用步驟402和步驟403計算域的FieldID,從而實現(xiàn)域的均勻分布。如圖5所示,為本發(fā)明分布式網(wǎng)絡構造方法第二實施例的域的加入的簡單示意圖,如圖5所示,設定此域的分布為三層,則FieldID的有效長度位M=3,該域的擴展最多可以為8個域,設定此時該分布式網(wǎng)絡中已經(jīng)具有4個域,則RRS獲取當前該分布式網(wǎng)絡中的域的個數(shù)Field_Num,并將Field_Num賦值給N,即N=4;用M位的Bit數(shù)表示N,得到一個0、lBit串FID=100;倒置FID,得到FieldID=001,如圖5所示的節(jié)點B;然后Field_Num加1,以備下次域的加入時,再計算FieldID。若上述步驟中得到了N=O,則認為新加入的域的FieldID=000。圖5所示實例為一簡單的三層域的結構,為了方便域的擴展,一般域的有效長度位M可以取IO,此時域可擴展為1024個。那么對于N=4時,得到的FID=0000000100,倒置后的FieldID=0010000000,則該域的位置在該分布式網(wǎng)絡的第10層上。一般計算得到的NodeID中的域標識占160位的前32位,若設定域的有效長度位為10,那么后綴的22位補足O。2)節(jié)點的加入每一個新的節(jié)點加入到分布式網(wǎng)絡中時,首先需要一個NodeID作為自己在網(wǎng)絡中交互的標識。一請求節(jié)點加入網(wǎng)絡時,發(fā)送一個加入分布式網(wǎng)絡的請求,RRS根據(jù)該請求中的信息,計算該請求節(jié)點屬于哪一個域,并根據(jù)該域中的節(jié)點信息,為該請求節(jié)點分配一個NodeID,上述步驟406409具體為請求節(jié)點加入到某一域內后,RRS要判斷該域內的空閑的域內標識(FreePeerID)的個數(shù)FreePeerID_Num是否為O,如果不為0,則表示曾經(jīng)有節(jié)點加入到該域內,但是當前該節(jié)點已經(jīng)退出,而退出節(jié)點的NodeID還沒有賦值給其他節(jié)點,那么可以直接將該退出節(jié)點的NodeID賦值給該請求節(jié)點使用;如果FreePeerID_Num為O,那么從該域中獲取當前具有的節(jié)點數(shù)量n=Peer—Num;計算L等于[log(n)]+l,其中"[]"表示取整;用L個Bit位表示n,得PID,此時如果L=O,那么,n就用0表示;倒置PID,得PIID;用PIID集聯(lián)上(PL-L)個Bit的O,得PeerID,其中PL表示該分布式網(wǎng)絡中規(guī)定的PeerID的有效長度位,通常為128位;但是為了節(jié)省資源,如果網(wǎng)絡在將來的擴展上一個域中的節(jié)點數(shù)量不會不超過1000個的話,那么PL的位數(shù)也可以取10。此時,步驟410中,將FieldlD和PeerlD級聯(lián),即得到NodeID=FieldID||PeerID;然后域內的節(jié)點數(shù)量Peer—Num加1,更新此時域內的節(jié)點數(shù)量值,以備后續(xù)節(jié)點加入時計算NodeID使用。其中,節(jié)點的加入時,PeerID的計算過程和FieldID的計算過程類似,在此不再具體舉例。從本域中獲取當前具有的節(jié)點數(shù)量n=Peer_Num的步驟可以由RRS來獲取,RRS獲取節(jié)點數(shù)量n=Peer_Num后,可以由RRS來計算請求節(jié)點的NodeID,也可以是請求節(jié)點獲取節(jié)點數(shù)量n=Peer_Num,然后請求節(jié)點也可以計算PeerID,再級聯(lián)從RRS獲取的FieldID,從而得到自己的NodeID。通常為了使NodeID和內容ID的位數(shù)相等,如為160位,上述FieldID的位數(shù)取為32,PeerlD的位數(shù)取為128,此時若設定FieldID的有效長度位為10,PeerlD的有效長度位為lO,那么其余的Bit位將補足O。在本發(fā)明實施例中提出的上述FieldID和PeerlD的計算方式中均使用了預先設定有效長度位的方法,這樣在下面將要提到的節(jié)點加入該分布式網(wǎng)絡時和其他節(jié)點關聯(lián)、節(jié)點退出以及內容查詢與登記的應用中,只需使用FieldID和PeerlD的有效長度位進行計算即可。本實施例的分布式網(wǎng)絡構造方法具體介紹了節(jié)點加入分布式網(wǎng)絡時的節(jié)點標識的計算過程,可以通過先確定域的FieldID,再確定請求加入的請求節(jié)點的PeerID,然后將FieldID和PeerlD進行級聯(lián),得到請求節(jié)點的NodeID方法,使得分布式網(wǎng)絡中的節(jié)點分布更加均衡,節(jié)點的負載也更加均衡;并且由于域的分布和全局的分布并非采用不同的DHT算法,因此也不需要中間節(jié)點,避免了單點效應。另外,在FieldID和PeerlD的具體計算過程中,還對FieldID和PeerlD各自的有效長度位進行了限定,從而使得原來對應160位的NodelD,加入到網(wǎng)絡中的節(jié)點最多需要維護160個節(jié)點列表下降到若有效長度位為20個比特位時則最多僅需要維護20個節(jié)點列表,從而可以大大減少節(jié)點查詢時的消息跳轉的次數(shù),減少系統(tǒng)的開銷。圖6為本發(fā)明分布式網(wǎng)絡構造方法第三實施例的流程示意圖。如圖6所示,請求節(jié)點根據(jù)其獲得的節(jié)點標識獲取鄰近節(jié)點的節(jié)點信息,以加入分布式網(wǎng)絡的過程中,請求節(jié)點需要通過向其他節(jié)點發(fā)起針對其自身的節(jié)點查詢以獲取節(jié)點列表,即需要通過節(jié)點查詢方法與該分布式網(wǎng)絡中的各個節(jié)點建立聯(lián)系。該請求節(jié)點更新了其自身的所有節(jié)點列表后,該請求節(jié)點不僅是加入了如圖2所示的分布式網(wǎng)絡中的一個虛擬位置(葉子節(jié)點),而是真正的加入了圖l所示的分布式網(wǎng)絡中。請求節(jié)點獲取節(jié)點列表的步驟為步驟601、請求節(jié)點向請求節(jié)點已知的接入節(jié)點發(fā)送針對請求節(jié)點的查詢請求;請求節(jié)點在加入到該分布式網(wǎng)絡過程中,會從RRS中獲取接入節(jié)點信息,或從自身原來使用過的保留的信息中獲取接入節(jié)點的節(jié)點信息,接入節(jié)點信息包括接入節(jié)點的NodelD,IP地址、端口等信息,把獲得的接入節(jié)點的節(jié)點信息寫入到請求節(jié)點對應的節(jié)點列表中,然后請求節(jié)點會向接入節(jié)點發(fā)起查詢自身的請求;步驟602、請求節(jié)點接收接入節(jié)點返回的節(jié)點標識與所述請求節(jié)點的節(jié)點標識異或距離最小的鄰近節(jié)點的節(jié)點信息,節(jié)點信息中包括鄰近節(jié)點的節(jié)點標識,IP地址、端口等信息;接入節(jié)點首先查詢自身具有的節(jié)點列表中是否具有請求節(jié)點的節(jié)點信息,如果沒有,則先將該請求節(jié)點加入到對應的節(jié)點列表中;然后再根據(jù)請求節(jié)點的NodeID查詢節(jié)點標識與請求節(jié)點的節(jié)點標識異或距離最小的鄰近節(jié)點,并將鄰近節(jié)點的節(jié)點信息發(fā)送給請求節(jié)點;步驟603、將返回的鄰近節(jié)點的節(jié)點標識與請求節(jié)點的節(jié)點標識進行匹配,根據(jù)匹配的比特位數(shù),記錄鄰近節(jié)點的節(jié)點信息到請求節(jié)點的相應的節(jié)點列表中;步驟604、請求節(jié)點將鄰近節(jié)點作為其再次發(fā)送針對請求節(jié)點的查詢請求的接入節(jié)點,不斷重復上述步驟601603,直到請求節(jié)點查詢的接入節(jié)點都認為自身為最接近請求節(jié)點的節(jié)點,并將自身的節(jié)點信息返回給請求節(jié)點時,查詢結束。該請求節(jié)點將所有接收到的鄰近節(jié)點的節(jié)點信息記錄到請求節(jié)點的節(jié)點列表中,該請求節(jié)點加入分布式網(wǎng)絡。節(jié)點列表即為KAD算法中通常所說的K桶,在KAD算法構造的分布式網(wǎng)絡中,每個節(jié)點都保留多個K桶,K桶的數(shù)量和NodelD的有效長度有關,即若NodelD的有效長度為20,則K桶理論上也為20個。根據(jù)節(jié)點的NodeID組成的邏輯二叉樹結構中,對于任意一個節(jié)點,都可以把這顆二叉樹分解為一系列連續(xù)的、不包含自己的子樹;其中最高層的子樹,由整顆樹不包含自己的樹的另一半組成,下一層子樹由剩下部分不包含自己的另一半組成,依此類推,直到分割完整顆樹。那么該節(jié)點的第i個K桶就記錄了第i+l次劃分所得子樹中的節(jié)點信息。由于每一個K桶中最多存放k個節(jié)點的信息,因此每個K桶中記錄的可能是劃分的子樹下的所有節(jié)點的節(jié)點信息,也可能是部分節(jié)點的節(jié)點信息。在本發(fā)明實施例中加入該分布式網(wǎng)絡中的請求節(jié)點在獲得NodeID后,刷新自己的所有的節(jié)點列表即K桶的方法具體為其一,獲得接入節(jié)點(AES)的節(jié)點信息,并把這個節(jié)點記錄到對應的K桶中;其二,向接入節(jié)點發(fā)起一次針對自己的NodeID的節(jié)點查詢請求,從而通過接入節(jié)點獲取一系列與自己距離鄰近的其他節(jié)點的信息;最后,通過前述步驟的重復,刷新自身的所有的K桶,保證自己所獲得的節(jié)點信息全部都是最新的。需要指出的是每一個節(jié)點加入系統(tǒng)的時候,對于請求節(jié)點首次發(fā)起節(jié)點查詢(FIND_N0DE)時的接入節(jié)點的獲取存在兩種方式一是從RRS上登記的每個域中的接入節(jié)點的節(jié)點信息中查詢本域的接入節(jié)點的節(jié)點信息,但是如果所有域中加入的節(jié)點都從RRS上登記的接入節(jié)點上進行節(jié)點查詢的操作的話,會影響該接入節(jié)點的負載,所以節(jié)點一旦加入系統(tǒng)以后,后續(xù)可以使用查詢到同一域中的其他節(jié)點作為接入節(jié)點;另外一種方式是,用戶節(jié)點可以對于以前接入某一域內時使用過的節(jié)點進行保留,以供下一次該用戶節(jié)點接入時利用。具體地,下面將具體介紹節(jié)點查詢的一般方法,即該分布式網(wǎng)絡中的任何一個節(jié)點均可以發(fā)起節(jié)點查詢請求,例如一節(jié)點標識為Z的節(jié)點向節(jié)點標識為Y的節(jié)點發(fā)起查詢節(jié)點標識為X的節(jié)點的查詢請求。特別地,如果是上述提到的請求節(jié)點,其在加入該分布式網(wǎng)絡中時,向其他節(jié)點如節(jié)點標識為Y的節(jié)點發(fā)起查詢其自身的查詢請求,以更新其節(jié)點列表是尤其重要的。圖7A為本發(fā)明實施例節(jié)點標識為Y的接入節(jié)點接收到FIND_N0DE(X)的請求的處理流程示意圖,該FIND_N0DE(X)的請求可以是節(jié)點標識為Z的節(jié)點發(fā)起的針對節(jié)點標識為X的查詢請求,也可以是節(jié)點標識為X的節(jié)點發(fā)起的針對其自身的查詢請求,如圖7A所示,步驟如下步驟701、節(jié)點標識為Y的接入節(jié)點接收到節(jié)點標識為Z的節(jié)點發(fā)起的FIND_NODE(X)的請求;步驟702、接入節(jié)點采用K桶更新方法更新其對應的K桶,以判斷其對應的K桶中是否存在節(jié)點標識為Z的節(jié)點;步驟703、從節(jié)點標識X、Y中分別取出M+N位前綴,得到標識X'、Y';其中M表示FieldID的有效長度位,即上述FL,N表示節(jié)點在域內的PeerID的有效長度位,即PL;步驟704、計算X'與Y'的異或,得到A-X'十Y';步驟705、判斷A二二0是否成立,如果A為0成立,則執(zhí)行步驟706;否則,執(zhí)行步驟707;步驟706、節(jié)點標識Y與節(jié)點標識X相同,返回節(jié)點標識為Y的接入節(jié)點即為節(jié)點標識為Z的節(jié)點查詢的節(jié)點,結束;步驟707、計算i=N+M-[log(2,A)]-l,其中"[]"表示計算所得值取整;步驟708、判斷i〉二M+N是否成立,若不成立,執(zhí)行步驟709;否則,執(zhí)行步驟713;步驟709、判斷第i個K桶是否存在,若不存在,執(zhí)行步驟710;否則,執(zhí)行步驟711;步驟710、i=i+l,執(zhí)行步驟708;步驟711、從第i個K桶中獲取與節(jié)點標識為X的節(jié)點鄰近的a個節(jié)點,與節(jié)點標識為X的節(jié)點鄰近的a個節(jié)點即節(jié)點的節(jié)點標識與節(jié)點標識X異或后數(shù)值最小的幾個節(jié)點;步驟712、存儲獲取到的節(jié)點的節(jié)點信息,并累計計算當前存儲的節(jié)點的數(shù)量;步驟713、判斷累計存儲的節(jié)點的數(shù)量是否足夠所需獲取的數(shù)量k,若還不足k個,則執(zhí)行步驟710;否則,說明已經(jīng)足夠k個,則執(zhí)行步驟714;步驟714、進一步判斷是否獲取到一定數(shù)量的節(jié)點的節(jié)點信息,若是沒有獲取到任何節(jié)點,則執(zhí)行步驟715;否則執(zhí)行步驟716;步驟715、返回節(jié)點標識為Y的節(jié)點即為距離節(jié)點標識為X的節(jié)點距離最近的節(jié)點,執(zhí)行步驟717;步驟716、返回獲取到的節(jié)點的節(jié)點信息;在該步驟716中,可能一直到最后一個K桶,獲取到的節(jié)點的數(shù)量累計還是沒有k個,此時就返回獲取到的不足k個節(jié)點的信息;步驟717、節(jié)點標識為Z的節(jié)點接收到節(jié)點標識為Y的接入節(jié)點返回的鄰近節(jié)點的節(jié)點信息,根據(jù)K桶更新方法將相應的節(jié)點的節(jié)點信息更新到節(jié)點標識為Z的節(jié)點對應的K桶中。圖7B為本發(fā)明實施例K桶更新方法的流程示意圖,步驟702采用該K桶更新算法更新接收節(jié)點對應的K桶中的關于節(jié)點標識為Z的節(jié)點的節(jié)點信息,步驟717采用該K桶更新算法將節(jié)點標識為Z的節(jié)點接收到的接收節(jié)點返回的鄰近節(jié)點的節(jié)點信息更新到節(jié)點標識為Z的節(jié)點對應的K桶中。如圖7B所示,以步驟702為例,該K桶更新方法的具體步驟為步驟702a、從節(jié)點標識Z、Y中分別取出M+N位前綴,得到標識Z'、Y';其中M表示FieldID的有效長度位,即上述FL,N表示節(jié)點在域內的PeerID的有效長度位,即PL;步驟702b、計算Z'與Y'的異或,得到B-z,0Y、步驟702c、計算i=N+M-[log(2,B)]-l,其中"[]"表示計算所得值取整;步驟702d、判斷節(jié)點標識為Y的接入節(jié)點中第i個K桶是否存在節(jié)點標識為Z的節(jié)點的節(jié)點信息,若存在,執(zhí)行步驟702e;否則執(zhí)行步驟702f;步驟702e、將節(jié)點標識為Z的節(jié)點的節(jié)點信息調整到第i個K桶的尾部;K桶中記錄節(jié)點的節(jié)點信息的方式為將最近活動的節(jié)點的節(jié)點信息放到K桶的尾部,結束;步驟702f、判斷第i個K桶中記錄的節(jié)點的數(shù)量是否小于k,一般規(guī)定K桶中可以存放k個節(jié)點的節(jié)點信息,若小于,則該K桶中記錄的節(jié)點的數(shù)量不滿,執(zhí)行步驟702j;否則,則該K桶中記錄的節(jié)點的數(shù)量為k,執(zhí)行步驟702g;步驟702g、Ping操作該K桶頭部的節(jié)點,Ping操作的作用是探測網(wǎng)絡中的一個節(jié)點,用以判斷其是否仍然在線;步驟702h、判斷該K桶頭部的節(jié)點是否響應該操作,若沒有響應,執(zhí)行步驟702i;否則,執(zhí)行步驟702k;步驟702i、刪除該K桶頭部的節(jié)點的記錄;步驟702j、把請求節(jié)點X的節(jié)點信息放置到該K桶的尾部,結束;步驟702k、將該K桶頭部的節(jié)點調整到該K桶的尾部;步驟7021、判斷是否已遍歷該K桶中的所有節(jié)點,若沒有,執(zhí)行步驟702g;否則,執(zhí)行步驟702m;步驟702m、忽略請求節(jié)點X的節(jié)點信息,結束。在步驟717將獲得的若干個節(jié)點的節(jié)點信息分別更新至節(jié)點標識為Z的節(jié)點對應的K桶中后,節(jié)點標識為Z的節(jié)點再次從自己目前所有已知的距離節(jié)點標識為X的節(jié)點較近的節(jié)點中挑選出若干沒有發(fā)送過FIND—NODE(X)的請求的節(jié)點作為接入節(jié)點,并向其發(fā)送該FIND_NODE(X)的請求,收到該FIND_NODE(X)的請求的接入節(jié)點重復上述如圖7A中的步驟701717,再從這些接入節(jié)點上返回一些距離節(jié)點標識為X的節(jié)點近的節(jié)點的節(jié)點信息;不斷重復上述步驟,直至接入節(jié)點都認為自身為最接近節(jié)點標識為X的節(jié)點或者自身就是所要查詢的節(jié)點,并將自身的節(jié)點信息返回給節(jié)點標識為Z的節(jié)點。在上述查詢過程中,沒有及時響應節(jié)點標識為Z的節(jié)點的節(jié)點將立即被排除,以便保證請求節(jié)點X最終獲得的最近的節(jié)點都是活動的。本實施例提供的分布式網(wǎng)絡構造方法中,具體介紹了節(jié)點查詢的方法,該節(jié)點查詢的方法在請求節(jié)點獲取了其節(jié)點標識,要加入到該分布式網(wǎng)絡中時尤其重要。例如節(jié)點標識為Z的節(jié)點為節(jié)點標識為X的請求節(jié)點,該請求節(jié)點采用上述步驟701717的節(jié)點查詢的方法找到與其自身的節(jié)點標識X距離較近的節(jié)點的節(jié)點信息,并將這些節(jié)點的節(jié)點信息添加到請求節(jié)點對應的節(jié)點列表(即K桶),那么至此,將加入到該分布式網(wǎng)絡中的請求節(jié)點與該分布式網(wǎng)絡中的其他節(jié)點關聯(lián)在了一起。圖8為本發(fā)明分布式網(wǎng)絡構造方法第四實施例的流程示意圖,如圖8所示,在上述實施例中,請求節(jié)點添加了節(jié)點列表后,即和與其鄰近的節(jié)點建立了相互的關聯(lián)關系。在該分布式網(wǎng)絡中,若出現(xiàn)其他的一些節(jié)點接收不到已相互關聯(lián)的某一節(jié)點的響應消息的情況時,即該某一節(jié)點可能已經(jīng)退出該分布式網(wǎng)絡的情況下,該分布式網(wǎng)絡管理該可能退出的節(jié)點及其節(jié)點信息的具體流程為步驟801、RRS接收該分布式網(wǎng)絡中的一個或多個節(jié)點發(fā)送的針對退出節(jié)點的處理請求;在該分布式網(wǎng)絡中,各個節(jié)點之間的交互是完全分布式的,且每一個節(jié)點的NodeID是按照本發(fā)明實施例的算法分配的;因此,當有一個節(jié)點退出該網(wǎng)絡以后,其他節(jié)點可以通過周期性的心跳消息,了解到其鄰近節(jié)點的狀況。假設現(xiàn)該分布式網(wǎng)絡中存在一個退出節(jié)點,由于原來有很多其他節(jié)點對該退出節(jié)點擁有節(jié)點信息,因此會周期性的發(fā)送心跳消息,以與該退出節(jié)點保持聯(lián)系。當有一些節(jié)點發(fā)現(xiàn)其發(fā)送的心跳消息沒有響應的時候,則認為該退出節(jié)點是失效的,就會向RRS匯報,請求處理該退出節(jié)點;步驟802、RRS查看其本地保存的失效節(jié)點列表,并對該退出節(jié)點做出是否失效的判定處理;該判定處理包括如下兩種情況若失效節(jié)點列表中不存在該退出節(jié)點的節(jié)點信息,則在失效節(jié)點列表中創(chuàng)建該退出節(jié)點;并判斷退出節(jié)點是否失效,若是,則將退出節(jié)點的節(jié)點標識寫入退出節(jié)點所在域的空閑域內標識列表中,已備該域內加入新的節(jié)點時將該節(jié)點標識賦予新的節(jié)點。若失效節(jié)點列表中存在該退出節(jié)點的節(jié)點信息,并且退出節(jié)點沒有被判斷過是否失效,則判斷退出節(jié)點是否失效;若是,則將退出節(jié)點的節(jié)點標識寫入退出節(jié)點所在域的空閑域內標識列表中,已備該域內加入新的節(jié)點時將該節(jié)點標識賦予新的節(jié)點。失效節(jié)點列表的數(shù)據(jù)結構如下<table>tableseeoriginaldocumentpage16</column></row><table>其中,NodelD、IP—Addr、IP—Port分別表示失效節(jié)點的NodelD、IP地址和IP端口;R印ort—Num表示匯報該退出節(jié)點失效的節(jié)點的總數(shù)量,設定RN為該R印ort—Num的一個臨界數(shù)值點,如果R印ort—Num大于或等于RN,則RRS探測該退出節(jié)點是否真的失效;Flag表示該退出節(jié)點是否已經(jīng)經(jīng)過了失效處理;Time表示創(chuàng)建該退出節(jié)點記錄的時間。RRS在失效節(jié)點列表中查詢是否存在其他節(jié)點請求處理的退出節(jié)點時候,需要NodeID、IP地址、IP端口均匹配,才認為是查詢成功,該失效節(jié)點列表中存在退出節(jié)點的節(jié)點信息。圖9為本發(fā)明實施例的RRS對退出節(jié)點的具體處理流程示意圖,如圖9所示,為步驟901、RRS接收其他節(jié)點發(fā)送的對某個節(jié)點,此處稱作退出節(jié)點失效的處理請求;步驟902、RRS查看本地的失效節(jié)點列表;該失效節(jié)點列表的數(shù)據(jù)結構如上所示;步驟903、判斷該退出節(jié)點是否已被記錄在該失效節(jié)點列表中,如果沒有記錄,則執(zhí)行步驟904;否則執(zhí)行步驟905;步驟904、在本地的失效節(jié)點列表中創(chuàng)建該退出節(jié)點的記錄,并初始化其中的匯報總數(shù)量、記錄時間等信息,然后執(zhí)行步驟906;步驟905、判斷Flag是否為真,即已被記錄的該退出節(jié)點是否已經(jīng)進行過失效處理,如果為真,即該退出節(jié)點已經(jīng)進行過失效處理,結束;否則執(zhí)行步驟906;步驟906、R印ort—Num加1。即表示又有一個節(jié)點匯報請求處理該退出節(jié)點;步驟907、判斷R印ort—Num是否大于或者等于RN,如果R印ort—Num小于RN,那么結束;否則執(zhí)行步驟908;步驟908、RRS向該退出節(jié)點發(fā)起信息的探測,判斷該退出節(jié)點是否掉線;如沒有掉線,執(zhí)行步驟909;否則執(zhí)行步驟910;步驟909、刪除失效節(jié)點列表中的該退出節(jié)點的記錄,并結束;步驟910、把該退出節(jié)點的NodeID寫入到對應的該域中的空閑域內標識列表FreePeerlD—List中;步驟911、設定Flag=Ture,結束。在該RRS對退出節(jié)點進行管理的流程中,RRS還要通過周期性的掃描失效節(jié)點列表來管理該列表上記錄的節(jié)點信息,判斷該失效節(jié)點列表上記錄的節(jié)點信息是否過期,并將過期的節(jié)點記錄刪除。例如可設定大于兩個掃描周期沒有對節(jié)點信息進行更新的對應節(jié)點即為過期節(jié)點,將該節(jié)點的節(jié)點信息刪除。本實施例主要描述了對于分布式網(wǎng)絡上的節(jié)點要退出的管理流程,進一步完善了該分布式網(wǎng)絡的構造方法。圖10A為本發(fā)明分布式網(wǎng)絡構造方法第五實施例的流程示意圖。在該分布式網(wǎng)絡中,每個ES上管理的內容都有其對應的內容標識(內容ID),ES將其管理的內容的相關信息及內容ID在圖l所示的網(wǎng)絡中的CIS上進行登記,并將內容索引信息保存在NodeID與內容ID距離最小的NodeID對應的一個或幾個節(jié)點上,這樣保存有內容ID的節(jié)點管理的內容索引信息指示了該內容索引信息對應的內容存儲在的ES,以便查找到內容ID就可以獲知內容索引信息以及內容索引信息對應的內容存儲在哪個ES上。這樣當某一節(jié)點或者用戶節(jié)點發(fā)起對某一內容的查詢時,該節(jié)點首先會在圖1所示的網(wǎng)絡中的CIS上進行內容的搜索,獲取對應內容的一個內容ID,此時某一節(jié)點或者用戶節(jié)點會根據(jù)其獲知的內容ID發(fā)起查詢,找到管理該內容ID的節(jié)點,從中得到內容索引信息,即獲得了保存了對應內容的ES。將某一節(jié)點或者用戶節(jié)點定義為內容查詢請求節(jié)點,其查詢與內容ID距離最近的NodeID所對應的節(jié)點的過程,類似于節(jié)點查詢的過程,如圖IOA所示,包括如下步驟步驟1001、內容查詢請求節(jié)點從其節(jié)點列表中找出節(jié)點標識與要查詢的內容對應的內容ID距離最小的節(jié)點作為第一查詢節(jié)點,并向第一查詢節(jié)點發(fā)送針對內容ID的查詢請求;步驟1002、若在第一查詢節(jié)點的節(jié)點列表中沒有找到距離比第一查詢節(jié)點的節(jié)點標識與內容ID距離更小的節(jié)點,則將該第一查詢節(jié)點的節(jié)點信息返回給內容查詢請求節(jié)點;步驟1003、若在第一查詢節(jié)點的節(jié)點列表中找到距離比第一查詢節(jié)點的節(jié)點標識與內容ID距離更小的第二查詢節(jié)點,則將第二查詢節(jié)點的節(jié)點信息返回給內容查詢請求節(jié)點;步驟1004、內容查詢請求節(jié)點向返回的節(jié)點發(fā)送查詢內容ID的請求,若該節(jié)點上管理有對應的內容索引信息,則返回內容索引信息到內容查詢請求節(jié)點;否則,在該節(jié)點上繼續(xù)查找節(jié)點標識與內容標識距離最小的節(jié)點以查詢內容索引信息,查詢的步驟同步驟1001步驟1003。具體地,在現(xiàn)有的分布式網(wǎng)絡中,假設存在n個域,各個域也都具有隨機得到的位數(shù)為M位的FieldID,記為F(l)<F(2)<F(3)<...<F(n)。但是這些域的分布并不均勻,且FieldID的比特值不連續(xù),即F(i+l)!二F(i)+l,甚至有可能兩個域,例如域i和域i+l的FieldID的比特值相差很大,即兩個域距離很遠。那么,該分布式網(wǎng)絡中所有M位前綴的比特值在域i和域i+l的FieldID的比特值之間的內容ID所對應的內容的索引信息都會上傳到域i中的NodeID最大的節(jié)點上進行管理,這樣會造成此節(jié)點的負載過大。本發(fā)明實施例的內容ID查詢的方法會進一步對確定加入域i中的內容ID進行再次匹配,即根據(jù)內容ID的FieldID的有效長度位M后的域內標識有效長度位N的前綴查找在該域i內的鄰近節(jié)點,從而可以實現(xiàn)將加入到該域i內的內容ID均勻地分布到該域i內的各個節(jié)點上,從而減輕域i中的NodeID最大的節(jié)點上的負載。圖IOB為本發(fā)明實施例的內容查詢方法的具體流程示意圖,如圖IOB所示,包括如下步驟步驟1005、NodelD為Y的查詢節(jié)點接收到內容查詢請求節(jié)點的針對內容ID為XI的查詢請求;步驟1006、判斷該查詢節(jié)點上是否記錄有內容查詢請求節(jié)點所要查詢的內容ID,若存在該記錄,執(zhí)行步驟1007;否則,執(zhí)行步驟1008;步驟1007、返回該查詢節(jié)點的節(jié)點信息,該NodelD為Y的查詢節(jié)點作為與內容ID最接近的節(jié)點,結束查詢;步驟1008、從標識XI、Y中分別取出M位前綴,得到標識XI'、Y';其中M表示FieldID的有效長度位,即上述FL;步驟1009、計算X1'與Y'的異或,得到A-X1'0Y';步驟1010、判斷A==0是否成立,如果A為0成立,則執(zhí)行步驟1015;否則,執(zhí)行步驟1011;步驟1011、計算i=M-[log(2,A)]-1,其中"[]"表示計算所得值取整;步驟1012、判斷查詢節(jié)點中第i個K桶是否存在,如果不存在,則執(zhí)行步驟1013;否則,執(zhí)行步驟1022;步驟1013、i=i+l;步驟1014、判斷i〉二M是否成立,若不成立,執(zhí)行步驟1012;否則,執(zhí)行步驟1015;步驟1015、從標識XI、Y中分別取出M位后的N位前綴,得到標識Xl"、Y";其中N表示節(jié)點在域內的PeerID的有效長度位,即PL;步驟1Q16、計算XI"與Y"的異或,得到B-X1,,①Y',;步驟1017、計算i=N-[log(2,B)]-l,其中"[]"表示計算所得值取整;步驟1018、判斷查詢節(jié)點中第i+M個K桶是否存在,如果不存在,則執(zhí)行步驟1019;否則,執(zhí)行步驟1022;步驟1019、i=i+l;步驟1020、判斷i>=N是否成立,若不成立,執(zhí)行步驟1018;否則,執(zhí)行步驟1021;步驟1021、返回該查詢節(jié)點的節(jié)點信息,該NodeID為Y的查詢節(jié)點作為與內容ID最接近的節(jié)點,結束查詢;步驟1022、返回從第i個K桶中選擇的NodeID與內容ID距離最小的節(jié)點,結束查詢。為了將ES上保存的內容對應的內容ID在最接近內容ID的節(jié)點上進行登記而進行的針對內容ID的節(jié)點查詢的過程同上述圖IOA和圖IOB所描述的節(jié)點查詢過程。不同的是,上述內容ID查詢過程為查詢到最接近的節(jié)點后,從節(jié)點上獲取內容ID,而內容ID登記過程為查詢到最接近的節(jié)點后,將內容ID登記到該節(jié)點上。另外,如果在域i和域i+l之間又添加一新的域t,即第一域t,并且該域t中加入了一個節(jié)點m,即第一節(jié)點m。若第一域t中僅有第一節(jié)點m,則第一節(jié)點m查找到FieldID與第一域t的FieldID距離最小的第二域中的所有節(jié)點,在本實施例中即找到域i中的所有節(jié)點,獲取記錄在第二域i中的所有節(jié)點上的內容ID的M位的前綴大于等于第一域t的FieldID的內容索引信息;若第一域t中還有其他節(jié)點,則第一節(jié)點m查找到NodeID與第一節(jié)點m的NodeID距離最小的第二節(jié)點n,獲取記錄在第二節(jié)點n上的內容ID的M位后的N位前綴大于等于第一節(jié)點m的PeerID的內容索引信息。具體地,圖IOC為本發(fā)明實施例的內容索引信息遷移方法的具體流程示意圖,如圖IOC所示,包括如下步驟1023、第一節(jié)點m判斷其是否為第一域t中的唯一節(jié)點,若是,執(zhí)行步驟1024;否則,執(zhí)行步驟1026;步驟1024、第一節(jié)點m發(fā)送內容索引信息遷移請求,查找FieldID與第一域t的FieldID距離最小的第二域;步驟1025、從第二域中的所有節(jié)點中獲取內容ID的M位前綴大于等于第一域t的FieldID的內容索引信息,執(zhí)行步驟1030;步驟1026、第一節(jié)點m發(fā)送內容索引信息遷移請求,從第一域t中查找NodeID與第一節(jié)點m的NodeID距離最小的第二節(jié)點;步驟1027、判斷第二節(jié)點的NodeID是否大于第一節(jié)點m的NodeID,若大于,執(zhí)行步驟1028;否則,執(zhí)行步驟1029;步驟1028、從第二節(jié)點中獲取內容ID的緊跟M位后的N位比特大于等于第一節(jié)點的PeerID且小于第一節(jié)點的PeerID的內容索引信息,執(zhí)行步驟1030;步驟1029、從第二節(jié)點中獲取內容ID的緊跟M位后的N位比特大于等于第一節(jié)點的PeerID的內容索引信息;步驟1030、將獲取到的內容索引信息遷移到第一節(jié)點m上。本實施例提供的分布式網(wǎng)絡構造方法,主要描述了在該分布式網(wǎng)絡構造中進行特定內容ID的搜索、登記方法,其實質上也是針對節(jié)點的查找。圖11為本發(fā)明在分布式網(wǎng)絡中進行任務處理方法實施例的流程示意圖。用戶節(jié)點或者ES會在某個時刻存在任務處理的請求,比如說,用戶上傳存儲內容;節(jié)點由于本地負載太重,需要遷移內容;或者本域中需要增加或者刪除一些副本等等,這些請求都需要指定一些節(jié)點來處理,而且這些節(jié)點的資源是能夠滿足這些請求的處理需求的資源。所以,在為節(jié)點分配任務的時候,需要統(tǒng)計節(jié)點的性能,使得在任務處理被操作前可以找到滿足資源性能需求的節(jié)點,從而可以實現(xiàn)節(jié)點的負載平衡。如圖ll所示,在本發(fā)明實施例上述介紹的構造分布式網(wǎng)絡的方法下,可以更快速高效的在本域中進行任務處理的操作,具體的流程如下步驟1101、第一節(jié)點接收任務處理請求,任務處理請求包括內容上傳處理請求、增加或刪除內容處理請求;步驟1102、第一節(jié)點判斷其自身的資源性能是否滿足任務處理的要求;步驟1103、若滿足,則將第一節(jié)點的節(jié)點信息返回發(fā)起任務處理請求的第二節(jié)點,第二節(jié)點向第一節(jié)點發(fā)起操作;步驟1104、若不滿足,則從第一節(jié)點的節(jié)點列表中選擇資源性能滿足任務處理的要求的第三節(jié)點,將第三節(jié)點的節(jié)點信息返回發(fā)起任務處理請求的第二節(jié)點,第二節(jié)點向第三節(jié)點發(fā)起操作;其中第一節(jié)點優(yōu)先選擇K桶標識表示大于等于M的節(jié)點列表中的節(jié)點(即為同一域內的節(jié)點)。例如一用戶節(jié)點要上傳內容,在發(fā)送上傳內容請求前需要知道把內容上傳到哪個節(jié)點,其處理步驟具體如下步驟a、用戶節(jié)點向其接入節(jié)點(即AES)發(fā)送關于上傳內容的處理請求;步驟b、AES檢測本身是否擁有足夠的資源滿足內容上傳的要求,若滿足,執(zhí)行步驟C;否則執(zhí)行步驟d;步驟c、將AES的信息返回給用戶節(jié)點,然后用戶節(jié)點進行上傳內容的操作;步驟d、從AES的K桶中選擇標識大于或者等于M的K桶,從第i個K桶開始,依次從各個K桶中選擇n(n〉二1)個節(jié)點,請求各個節(jié)點反饋資源利用的情況;如果第i個K桶中的n個節(jié)點反饋的信息都不能滿足用戶節(jié)點上傳內容的要求,那么就從第(i+l)%(M+N)個K桶中再找出n個節(jié)點,依次進行統(tǒng)計,直到找到滿足用戶節(jié)點上傳內容請求處理的節(jié)點為止;如果不存在,那么就返回請求失敗信息。步驟e、AES把滿足用戶節(jié)點上傳內容請求的節(jié)點返回給用戶節(jié)點;步驟f、用戶節(jié)點向可以滿足用戶節(jié)點上傳內容請求的節(jié)點發(fā)起操作請求。在這里,用戶節(jié)點也可以為一任意的ES,那么此時,由于ES本身就可以當做AES來進行節(jié)點查詢等操作,因此此時的AES也為ES本身。本實施例提供的采用上述分布式網(wǎng)絡構造方法構造的分布式網(wǎng)絡進行任務處理的方法,由于是基于上述分域構造的分布式網(wǎng)絡,因此在進行本域內的任務處理時可以很快的從本域內的節(jié)點中選擇合適的節(jié)點以處理任務請求。圖12為本發(fā)明節(jié)點標識生成裝置實施例的結構示意圖,如圖12所示,該節(jié)點標識生成裝置包括域標識獲取模塊121、域內標識生成模塊122和節(jié)點標識獲取模塊123。其中域標識獲取模塊121可以用于根據(jù)請求加入分布式網(wǎng)絡的請求節(jié)點的地址,確定所述請求節(jié)點所在的域,并獲取域標識;域內標識生成模塊122要根據(jù)該域具有的域內節(jié)點的數(shù)量,生成該請求節(jié)點的域內標識;節(jié)點標識獲取模塊123將域標識與域內標識級聯(lián),獲得請求節(jié)點的節(jié)點標識。其中域標識獲取模塊121還可以具體包括設定域標識的有效長度M的第一設置模塊1211,其中M為正整數(shù),以及將該分布式網(wǎng)絡中已有域的數(shù)量值表示為M位比特值,并根據(jù)該比特值生成該域的域標識的第一計算模塊1212。域內標識生成模塊122還可以具體包括設定域內標識的有效長度N的第二設置模塊1221,其中N為正整數(shù),判斷是否存在空閑的域內標識的判斷模塊1222,將空閑的域內標識賦值給請求節(jié)點的賦值模塊1223,以及從域中獲取域內節(jié)點的數(shù)量值,并將該數(shù)量值轉換為對應的N位比特值,并根據(jù)該比特值生成請求節(jié)點的域內標識的第二計算模塊1224。本實施例的節(jié)點標識生成裝置生成節(jié)點標識的具體過程可以參考上述分布式網(wǎng)絡構造方法實施例中的具體描述,在此不再贅述。本實施例提供了一種構造分布式網(wǎng)絡時的節(jié)點的節(jié)點標識生成裝置,其節(jié)點標識是按照網(wǎng)絡中的域的分布和域內節(jié)點的分布生成的,可以使得分布式網(wǎng)絡中的節(jié)點分布更加均衡,節(jié)點的負載也更加均衡。本發(fā)明的分布式網(wǎng)絡系統(tǒng)所在場景如圖1所示,包括請求路由服務器(RRS),可根據(jù)請求加入分布式網(wǎng)絡的請求節(jié)點的地址,確定所述請求節(jié)點所在的域,并獲取域標識,根據(jù)域具有的域內節(jié)點的數(shù)量,生成請求節(jié)點的域內標識,并可將域標識與域內標識級聯(lián),獲得請求節(jié)點的節(jié)點標識;內容索引服務器(CIS),用于對上傳到分布式網(wǎng)絡系統(tǒng)的內容進行添加、刪除及分發(fā)的操作,登記內容對應的內容標識,以及接收用戶或邊緣服務器發(fā)送的查詢內容請求,進行查詢內容處理,并返回所要查詢的內容對應的內容標識;邊緣服務器(ES),用于根據(jù)從RRS獲得的其所在域的域標識計算ES的節(jié)點標識,或從RRS獲得由RRS計算所得的ES的節(jié)點標識;用于存儲內容,內容具有對應的內容標識;用于查找與內容標識最近的一個或多個邊緣服務器登記內容對應的內容索引信息,以及查找ES所要獲取的內容索引信息所在的邊緣服務器;還用于對其節(jié)點列表進行維護,對其鄰近的邊緣服務器發(fā)起節(jié)點查詢,以及對其性能進行統(tǒng)計、記錄。圖1示出的本發(fā)明的分布式網(wǎng)絡的場景示意圖中的RRS的具體結構如圖13所示,CIS的具體結構如圖14所示,一個ES的具體結構如圖15所示,圖13圖15的組合即構成了圖1所示的分布式網(wǎng)絡架構。下面分別對圖13圖15進行具體說明。圖13為本發(fā)明實施例的分布式網(wǎng)絡系統(tǒng)中的RRS的具體結構示意圖,如圖13所示,RRS13包括FieldlD獲取模塊131,主要是用于ES或者用戶節(jié)點登錄(即加入該分布式網(wǎng)絡系統(tǒng))的時候,根據(jù)域標識的劃分,判定屬于那一個域,還可以計算一個新加入的域的FieldID的分配;PeerlD生成模塊132,這個模塊主要計算每個新加入到一個域中的節(jié)點的PeerID,具體算法可參照上述實施例中的域內標識的計算方法,主要根據(jù)一個域內的相關節(jié)點的信息來計算;NodeID獲取模塊133,用于將FieldID與PeerID級聯(lián),獲得登陸到該網(wǎng)絡系統(tǒng)的節(jié)點的NodeID。值得注意的是,PeerID生成模塊132和NodeID獲取模塊133也可以移植到用戶節(jié)點上來實現(xiàn),只要用戶節(jié)點從RRS獲取到FieldID和用戶節(jié)點加入的域內的節(jié)點數(shù)量即可自行計算該用戶節(jié)點的NodeID。該RRS13還可以包括域劃分管理列表134,可以由管理員進行配置,例如每當一個新域加入的時候,管理員就需要在該域劃分管理列表134中進行域的配置,傳統(tǒng)的方式是根據(jù)地址段或者用戶節(jié)點提供的位置信息進行判斷用戶節(jié)點所在的域。域管理模塊135,對系統(tǒng)中的域的分布情況和域中節(jié)點的分布情況進行管理,其管理的信息具體包括有域的數(shù)量、域標識的有效長度和域的列表信息等。其數(shù)據(jù)結構如下<table>tableseeoriginaldocumentpage22</column></row><table>其中,F(xiàn)ielcLNum表示系統(tǒng)中目前由多少個域;FieldBucket_Len記錄當前每個FieldID的有效Bit位,可設置為常數(shù),但一般情況下FieldBucket_Len=logFieldNum;FieldList記錄了系統(tǒng)中每個域的相關情況,其中,F(xiàn)ieldID為計算出來的Bit位字符串,通常情況下取32位;Peer_Num為本域中擁有的ES節(jié)點的數(shù)量;AccessES_List為從本域中加入的ES節(jié)點中,隨機選取幾個ES作為AES;FreePeerlD—Num表示當有節(jié)點掉線時需要記錄的這些節(jié)點的數(shù)量;FreePeerID_List為掉線節(jié)點的PeerID的記錄列表,當一個新的節(jié)點加入或者一個掉線的節(jié)點恢復時,可以直接從該PeerID的記錄列表中選擇一個NodeID作為自己的NodeID中的域內標識部分。在節(jié)點加入到該分布式網(wǎng)絡系統(tǒng),需要計算節(jié)點的NodeID時,會用到該域管理模塊135中管理的參數(shù)。圖14為本發(fā)明實施例的分布式網(wǎng)絡系統(tǒng)中的CIS的具體結構示意圖,如圖14所示,該CIS14可以包括內容索引管理模塊141,每一個上傳到系統(tǒng)中的內容都需要在該模塊上進行登記,該模塊記錄了一些內容的元數(shù)據(jù)信息;還用來判定上傳的內容是否已經(jīng)在系統(tǒng)中登記過;內容操作模塊142,當用戶節(jié)點檢測到某個內容為非法的時候,由該模塊發(fā)起刪除內容的請求,同時,當內容運營商需要注入批量的內容的時候,可以通過該模塊,和一個指定的內容分發(fā)服務器結合,把內容發(fā)送到需求的域中;關鍵字查詢模塊143,以在CIS上實現(xiàn)模糊查詢,使得用戶可以從查詢結果中選擇內容,并獲取該內容的ContentID。圖15為本發(fā)明實施例的分布式網(wǎng)絡系統(tǒng)中的ES的具體結構示意圖,如圖15所示,該ES15包括內容索引登記模塊151,用于記錄、管理與該ES15的節(jié)點標識距離最小的內容標識所標識的內容索引信息;節(jié)點管理模塊152,用于對其節(jié)點列表進行維護;查詢模塊153,用于對其鄰近的邊緣服務器發(fā)起節(jié)點查詢,以及發(fā)起對所要查詢的內容對應的內容標識的查詢;性能統(tǒng)計模塊154,用于對其性能進行統(tǒng)計、記錄。其中內容索引登記模塊151上記錄其擁有的內容ID和本節(jié)點ID距離最小的內容標識對應的節(jié)點的節(jié)點信息,數(shù)據(jù)結構如下,其中ContentID為另一節(jié)點上存儲的內容對應的ContentID,PeerList中存儲的NodeID為存儲內容的另一節(jié)點的節(jié)點信息<table>tableseeoriginaldocumentpage23</column></row><table>節(jié)點管理模塊152,計算出來本地存儲的內容的內容ID,然后查找到與該內容ID最接近的NodeID所對應的節(jié)點進行該內容ID的登記;在該模塊中還可以實現(xiàn)節(jié)點列表即對鄰居節(jié)點的維護等功能。其中對鄰居節(jié)點的維護主要是維護本節(jié)點上的各個K桶,由于本發(fā)明實施例中對于FieldID的有效長度和NodeID的有效長度進行了控制,所以,考慮到該分布式網(wǎng)絡系統(tǒng)的可擴展性,在開始的時候設定一個域數(shù)量的上限值,如是2n。在通常情況下,n需要根據(jù)該分布式網(wǎng)絡系統(tǒng)對域的劃分情況來設定,為了便于以后的擴展,n可以被設定的很大,但是為了避免加入域的節(jié)點中過多地存在空的K桶(即其維護的某些K桶所記錄的范圍內沒有節(jié)點信息),盡量要把n設的比較合適,這個n就被稱為域的有效長度,即本節(jié)點維護的記錄其他域中的節(jié)點信息的節(jié)點列表的最大標識。這樣,本節(jié)點的節(jié)點列表標識從0到n-1的K桶中記錄著其他域中的節(jié)點信息,而標識大于n的其他K桶記錄著與本節(jié)點同一域中的節(jié)點的節(jié)點信息。本節(jié)點第i個K桶的數(shù)據(jù)結構可以表示如下<table>tableseeoriginaldocumentpage23</column></row><table>性能統(tǒng)計模塊154,主要對本節(jié)點,即ES15的當前的一些性能指標進行統(tǒng)計。比如上行的空閑帶寬,下行的空閑帶寬、CPU利用率、內存的利用率、剩余有效的存儲空間。根據(jù)不同的性能請求,把相關的統(tǒng)計數(shù)據(jù)發(fā)給請求性能指標的節(jié)點,例如在某一節(jié)點對本節(jié)點有下述請求時,可以但不限于返回下述性能統(tǒng)計數(shù)據(jù)①上傳內容請求——獲取本域空閑資源比較多的節(jié)點,資源包括硬盤、下行帶寬、內存等的大小;②遷移內容請求——內容遷入節(jié)點,資源包括硬盤、下行帶寬、內存等的大小;內容遷出節(jié)點,資源包括上行帶寬;③刪除內容請求——針對資源比較緊張的節(jié)點;下載內容請求——節(jié)點的上行帶寬、內存等資源。本實施例提供的分布式網(wǎng)絡系統(tǒng)說明了該系統(tǒng)中各個設備之間的連接關系及各個設備對其他設備上的信息如何進行操作管理。其具體的操作方法,如節(jié)點即ES的NodeID如何計算獲得、如何進行節(jié)點查詢和內容查詢、節(jié)點列表如何配置管理等,均在上述方法實施例中涉及,在此不再贅述。本實施例提供的分布式網(wǎng)絡系統(tǒng)避免了采用現(xiàn)有KAD算法直接HASH得到節(jié)點的NodeID而帶來的網(wǎng)絡中的節(jié)點分布不均衡的問題,使得分布式網(wǎng)絡中的節(jié)點分布更加均衡,節(jié)點的負載也更加均衡;另外,對FieldID和PeerID各自的有效長度進行了限定,從而使得加入到網(wǎng)絡中的節(jié)點所需要維護的節(jié)點列表大大減少,節(jié)點查詢時的消息跳轉的次數(shù)減少,從而降低了系統(tǒng)的開銷。本領域普通技術人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可獲取存儲介質中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(Read-OnlyMemory,ROM)或隨機存儲記憶體(RandomAccessMemory,RAM)等。最后應說明的是以上實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發(fā)明各實施例技術方案的精神和范圍。權利要求一種分布式網(wǎng)絡構造方法,其特征在于,包括根據(jù)請求加入分布式網(wǎng)絡的請求節(jié)點的地址,確定所述請求節(jié)點所在的域,并獲取域標識;根據(jù)所述域具有的域內節(jié)點的數(shù)量,生成所述請求節(jié)點的域內標識;將所述域標識與所述域內標識級聯(lián),獲得所述請求節(jié)點的節(jié)點標識;將所述節(jié)點標識發(fā)送至所述請求節(jié)點,所述請求節(jié)點根據(jù)其獲得的節(jié)點標識獲取鄰近節(jié)點的節(jié)點信息,以加入所述分布式網(wǎng)絡。2.根據(jù)權利要求1所述的分布式網(wǎng)絡構造方法,其特征在于,所述獲取所述域標識包括設定域標識的有效長度M,M為正整數(shù);將所述分布式網(wǎng)絡中已有域的數(shù)量值表示為M位比特值,并根據(jù)該比特值生成所述域的域標識。3.根據(jù)權利要求1所述的分布式網(wǎng)絡構造方法,其特征在于,所述根據(jù)所述域具有的域內節(jié)點的數(shù)量,生成所述請求節(jié)點的域內標識包括設定域內標識的有效長度N,N為正整數(shù);判斷是否存在空閑的域內標識;若存在,則將所述空閑的域內標識賦值給所述請求節(jié)點;否則從所述域中獲取域內節(jié)點的數(shù)量值,并將該數(shù)量值轉換為對應N位比特值,并根據(jù)該比特值生成所述請求節(jié)點的域內標識。4.根據(jù)權利要求1、2或3所述的分布式網(wǎng)絡構造方法,其特征在于,所述請求節(jié)點根據(jù)其獲得的節(jié)點標識獲取鄰近節(jié)點的節(jié)點信息,以加入所述分布式網(wǎng)絡包括所述請求節(jié)點向其已知的接入節(jié)點發(fā)送針對所述請求節(jié)點的查詢請求;所述請求節(jié)點接收所述接入節(jié)點返回的節(jié)點標識與所述請求節(jié)點的節(jié)點標識異或距離最小的鄰近節(jié)點的節(jié)點信息,所述節(jié)點信息中包括所述鄰近節(jié)點的節(jié)點標識;將所述鄰近節(jié)點的節(jié)點標識與所述請求節(jié)點的節(jié)點標識進行匹配,根據(jù)匹配的比特位數(shù),記錄所述鄰近節(jié)點的節(jié)點信息到所述請求節(jié)點的相應的節(jié)點列表中;將所述鄰近節(jié)點作為其再次發(fā)送針對所述請求節(jié)點的查詢請求的接入節(jié)點,以查詢節(jié)點標識與所述請求節(jié)點的節(jié)點標識距離最小的鄰近節(jié)點的節(jié)點信息,直到所述請求節(jié)點接收到的鄰近節(jié)點全部為所述接入節(jié)點,查詢結束,所述請求節(jié)點加入所述分布式網(wǎng)絡。5.根據(jù)權利要求4所述的分布式網(wǎng)絡構造方法,其特征在于,還包括在所述分布式網(wǎng)絡中的一個或多個節(jié)點接收不到一退出節(jié)點的響應消息時,接收所述分布式網(wǎng)絡中的一個或多個節(jié)點發(fā)送的針對所述退出節(jié)點的處理請求;查看失效節(jié)點列表,并對所述退出節(jié)點做出是否失效的判定處理。6.根據(jù)權利要求5所述的分布式網(wǎng)絡構造方法,其特征在于,所述查看失效節(jié)點列表,對所述退出節(jié)點做出是否失效的判定處理包括若所述失效節(jié)點列表中不存在所述退出節(jié)點的節(jié)點信息,則在所述失效節(jié)點列表中創(chuàng)建所述退出節(jié)點;并判斷所述退出節(jié)點是否失效,若是,則將所述退出節(jié)點的節(jié)點標識寫入所述退出節(jié)點所在域的空閑域內標識列表中;若所述失效節(jié)點列表中存在所述退出節(jié)點的節(jié)點信息,并且所述退出節(jié)點沒有被判斷過是否失效,則判斷所述退出節(jié)點是否失效;若是,則將所述退出節(jié)點的節(jié)點標識寫入所述退出節(jié)點所在域的空閑域內標識列表中。7.根據(jù)權利要求5或6所述的分布式網(wǎng)絡構造方法,其特征在于,還包括周期性掃描所述失效節(jié)點列表并刪除所述失效節(jié)點列表中記錄的過期節(jié)點信息的步驟。8.根據(jù)權利要求4所述的分布式網(wǎng)絡構造方法,其特征在于,還包括當所述分布式網(wǎng)絡中的內容查詢請求節(jié)點發(fā)起對包括內容標識的內容索引信息的查詢時,內容查詢請求節(jié)點從其節(jié)點列表中找出節(jié)點標識與要查詢的內容標識距離最小的節(jié)點作為第一查詢節(jié)點,并向所述第一查詢節(jié)點發(fā)送針對所述內容標識的查詢請求;若在所述第一查詢節(jié)點的節(jié)點列表中沒有找到距離比所述第一查詢節(jié)點的節(jié)點標識與所述內容標識距離更小的節(jié)點,則將所述第一查詢節(jié)點的節(jié)點信息返回給所述內容查詢請求節(jié)點;若在所述第一查詢節(jié)點的節(jié)點列表中找到距離比所述第一查詢節(jié)點的節(jié)點標識與所述內容標識距離更小的第二查詢節(jié)點,則將所述第二查詢節(jié)點的節(jié)點信息返回給所述內容查詢請求節(jié)點;所述內容查詢請求節(jié)點向返回的節(jié)點發(fā)送查詢所述內容標識的請求,若該節(jié)點上管理有所述內容索引信息,則返回所述內容索引信息到所述內容查詢請求節(jié)點;否則,在該節(jié)點上繼續(xù)查找節(jié)點標識與內容標識距離最小的節(jié)點以查詢所述內容索引信息。9.根據(jù)權利要求8所述的分布式網(wǎng)絡構造方法,其特征在于,所述在所述第一查詢節(jié)點的節(jié)點列表中找到比所述第一查詢節(jié)點更加接近所述內容標識的第二查詢節(jié)點包括在所述第一查詢節(jié)點的節(jié)點列表中找到與所述內容標識的所述M位的前綴距離最小的M位比特值所標識的鄰近節(jié)點列表;在所述鄰近節(jié)點列表中查找與所述內容標識的所述M位后的所述N位前綴距離最小的節(jié)點列表中的鄰近節(jié)點,查找到的所述鄰近節(jié)點即所述第二查詢節(jié)點。10.根據(jù)權利要求8或9所述的分布式網(wǎng)絡構造方法,其特征在于,還包括第一節(jié)點加入到所述分布式網(wǎng)絡的第一域后,若所述第一域中僅有所述第一節(jié)點,則所述第一節(jié)點查找到域標識與所述第一域的域標識距離最小的第二域中的所有節(jié)點,獲取記錄在所述第二域中的所有節(jié)點上的內容標識的M位的前綴大于等于所述第一域的域標識的內容索引信息;若所述第一域中還有其他節(jié)點,則所述第一節(jié)點查找到節(jié)點標識與所述第一節(jié)點的節(jié)點標識距離最小的第二節(jié)點,獲取記錄在所述第二節(jié)點上的內容標識的M位后的N位前綴大于等于所述第一節(jié)點的域內標識的內容索引信息。11.一種在權利要求i-io任一所述的方法構造的分布式網(wǎng)絡中進行域內任務處理方法,其特征在于,包括第一節(jié)點接收任務處理請求,所述任務處理請求包括內容上傳處理請求、增加或刪除內容處理請求;所述第一節(jié)點判斷其自身的資源性能是否滿足任務處理的要求;若滿足,則將所述第一節(jié)點的節(jié)點信息返回發(fā)起所述任務處理請求的第二節(jié)點,所述第二節(jié)點向所述第一節(jié)點發(fā)起操作;若不滿足,則從所述第一節(jié)點的節(jié)點列表中選擇資源性能滿足任務處理的要求的第三節(jié)點,將所述第三節(jié)點的節(jié)點信息返回發(fā)起所述任務處理請求的第二節(jié)點,所述第二節(jié)點向所述第三節(jié)點發(fā)起操作;其中選擇第三節(jié)點時,先從存儲有所述第一節(jié)點所在域的域內節(jié)點信息的節(jié)點列表中選擇。12.—種節(jié)點標識生成裝置,其特征在于,包括域標識獲取模塊,用于根據(jù)請求加入分布式網(wǎng)絡的請求節(jié)點的地址,確定所述請求節(jié)點所在的域,并獲取域標識;域內標識生成模塊,用于根據(jù)所述域具有的域內節(jié)點的數(shù)量,生成所述請求節(jié)點的域內標識;節(jié)點標識獲取模塊,用于將所述域標識與所述域內標識級聯(lián),獲得所述請求節(jié)點的節(jié)點標識。13.根據(jù)權利要求12所述的節(jié)點標識生成裝置,其特征在于,所述域標識獲取模塊包括第一設置模塊,用于設定域標識的有效長度M,M為正整數(shù);第一計算模塊,用于將所述分布式網(wǎng)絡中已有域的數(shù)量值表示為M位比特值,并根據(jù)該比特值生成所述域的域標識。14.根據(jù)權利要求12所述的節(jié)點標識生成裝置,其特征在于,所述域內標識生成模塊包括第二設置模塊,用于設定域內標識的有效長度N,N為正整數(shù);判斷模塊,用于判斷是否存在空閑的域內標識;賦值?!姥?,用于將所述空閑的域內標識賦值給所述請求節(jié)點;第二計算模塊,用于從所述域中獲取域內節(jié)點的數(shù)量值,并將該數(shù)量值轉換為對應的N位比特值,并根據(jù)該比特值生成所述請求節(jié)點的域內標識。15.—種分布式網(wǎng)絡系統(tǒng),其特征在于,包括請求路由服務器,用于根據(jù)請求加入分布式網(wǎng)絡的請求節(jié)點的地址,確定所述請求節(jié)點所在的域,并獲取域標識;根據(jù)所述域具有的域內節(jié)點的數(shù)量,生成所述請求節(jié)點的域內標識;并將所述域標識與所述域內標識級聯(lián),獲得所述請求節(jié)點的節(jié)點標識;邊緣服務器,用于根據(jù)從所述請求路由服務器獲得的其所在域的域標識計算所述邊緣服務器的節(jié)點標識,或從所述請求路由服務器獲得由所述請求路由服務器計算所得的所述邊緣服務器的節(jié)點標識;用于存儲內容,所述內容具有對應的內容標識;用于查找與所述內容標識最近的一個或多個邊緣服務器登記所述內容對應的內容索引信息,以及查找所述邊緣服務器所要獲取的內容索引信息所在的邊緣服務器;還用于對其節(jié)點列表進行維護,對其鄰近的邊緣服務器發(fā)起節(jié)點查詢,以及對其性能進行統(tǒng)計、記錄;內容索引服務器,用于對上傳到所述分布式網(wǎng)絡系統(tǒng)的內容進行添加、刪除及分發(fā)的操作,登記所述內容對應的內容標識,以及接收用戶或所述邊緣服務器發(fā)送的查詢內容請求,進行查詢內容處理,并返回所要查詢的內容對應的內容標識。16.根據(jù)權利要求15所述的分布式網(wǎng)絡系統(tǒng),其特征在于,所述請求路由服務器包括域標識獲取模塊,用于根據(jù)請求加入分布式網(wǎng)絡的請求節(jié)點的地址,指定所述請求節(jié)點所在的域,所述域具有一域標識;域內標識生成模塊,用于根據(jù)所述域具有的域內節(jié)點的數(shù)量,生成所述請求節(jié)點的域內標識;節(jié)點標識獲取模塊,用于將所述域標識與所述域內標識級聯(lián),獲得所述請求節(jié)點的節(jié)點標識。17.根據(jù)權利要求16所述的分布式網(wǎng)絡系統(tǒng),其特征在于,所述請求路由服務器還包括域劃分管理列表,用于配置各個域的劃分條件及對域的劃分進行管理;域管理模塊,用于對所述分布式網(wǎng)絡系統(tǒng)中的域的數(shù)量、域標識的有效長度和域的列表信息進行管理。18.根據(jù)權利要求15所述的分布式網(wǎng)絡系統(tǒng),其特征在于,所述邊緣服務器包括內容索引管理模塊,用于記錄、管理與其節(jié)點標識的距離最小的內容標識所標識的內容索引信息;節(jié)點管理模塊,用于對其節(jié)點列表進行維護;查詢模塊,用于對其鄰近的邊緣服務器發(fā)起節(jié)點查詢,以及發(fā)起對所要查詢的內容對應的內容標識的查詢;性能統(tǒng)計模塊,用于對其性能進行統(tǒng)計、記錄。全文摘要本發(fā)明實施例涉及一種分布式網(wǎng)絡構造方法、裝置和系統(tǒng)以及任務處理方法。本發(fā)明實施例的方法根據(jù)請求加入分布式網(wǎng)絡的請求節(jié)點的地址,指定請求節(jié)點所在的域,所述域具有一域標識;根據(jù)域具有的域內節(jié)點的數(shù)量,生成請求節(jié)點的域內標識;將域標識與域內標識級聯(lián),獲得請求節(jié)點的節(jié)點標識;將節(jié)點標識發(fā)送至請求節(jié)點,請求節(jié)點根據(jù)其獲得的節(jié)點標識獲取鄰近節(jié)點的節(jié)點信息,以加入分布式網(wǎng)絡。本發(fā)明實施例避免了采用現(xiàn)有KAD算法直接哈希得到節(jié)點的節(jié)點標識而帶來的網(wǎng)絡中的節(jié)點分布不均衡的問題,使得分布式網(wǎng)絡中的節(jié)點分布更加均衡,節(jié)點上的負載也更加均衡,并且降低了節(jié)點維護的冗余信息以及節(jié)點間交互的消息數(shù)量。文檔編號H04L12/54GK101753610SQ20081024045公開日2010年6月23日申請日期2008年12月19日優(yōu)先權日2008年12月19日發(fā)明者王鐵英申請人:華為技術有限公司