無(wú)線(xiàn)Ad-Hoc網(wǎng)絡(luò )中P2P文件搜索機制的研究
3.1 WANET網(wǎng)絡(luò )系統樹(shù)形拓撲的建立
假設網(wǎng)絡(luò )組建初期只有一個(gè)初始節點(diǎn)A,要建立一個(gè)如圖1d所示的7個(gè)節點(diǎn)的WANET文件共享網(wǎng)絡(luò ),樹(shù)形拓撲的建立過(guò)程如下:
(1)節點(diǎn)A對自己的兩個(gè)共享文件α1、α2哈希后將值映射到整段共享文件哈希鏈上,如圖2a所示。
(2)節點(diǎn)B(共享文件β1、β2)發(fā)現節點(diǎn)A并向節點(diǎn)A發(fā)起接入請求,即B要加入A組成的網(wǎng)絡(luò )。節點(diǎn)A收到B的接入請求后,將自己所負責的哈希鏈分成兩段并分配一半給B,文件α2因此落入節點(diǎn)B負責的一段哈希鏈,A將文件α2的位置索引送至B(文件雖然還存放在節點(diǎn)A,但A上α2的位置信息置空)。因此,A成為B的雙親節點(diǎn)。B存放著(zhù)文件α2的位置信息[α2,A]。
(3)B向網(wǎng)絡(luò )插入其共享文件β1和β2,β1映射到B節點(diǎn)所負責的哈希鏈段,β2映射到A節點(diǎn)所負責哈希鏈段。則B節點(diǎn)存儲位置信息[β1,B],A節點(diǎn)存儲位置信息[β2,B],即B為文件β1的PnodeA為文件β2的Pnode,如圖2b所示。
(4)另一個(gè)新節點(diǎn)C(存儲文件γ1、γ2)發(fā)現節點(diǎn)B并對其發(fā)出接入請求,節點(diǎn)C從B接入網(wǎng)絡(luò ),B將自己的哈希鏈段分出一半給C。節點(diǎn)C上的文件γ1、 γ2哈希后映射到哈希鏈上,如圖2c。α2落入C所負責的哈希鏈段,B將α2的信息送至C,節點(diǎn)C不僅保留α2的位置信息,也保留從C到文件α2的路徑信息。C將B加到路徑上,同時(shí)保存[α2,BA]的索引項。表明文件α2存儲在節點(diǎn)A,并且從C到節點(diǎn)A的路徑是“C-B-A”。節點(diǎn)B成為C的雙親節點(diǎn)。
(5)C向網(wǎng)絡(luò )插入共享文件γ1、γ2,γ1映射到C負責的哈希鏈段,γ2映射到A負責的哈希鏈段。
(6)同理,節點(diǎn)E發(fā)現網(wǎng)絡(luò )并向節點(diǎn)B發(fā)出接入請求后,分擔了B負責的一半哈希鏈并插入文件σ1,B成為E的雙親節點(diǎn);節點(diǎn)D(存儲文件δ1和δ2)發(fā)現網(wǎng)絡(luò )并從節點(diǎn)E接入后分擔了E一半的哈希鏈,節點(diǎn)F(存儲了文件η1和η2)發(fā)現網(wǎng)絡(luò )并從E接入,叉分擔E剩下部分一半的哈希鏈:最后節點(diǎn)G(存儲共享文件ε1)也從E加入網(wǎng)絡(luò )又分擔了 E剩下哈希鏈的一半。這樣,E成為節點(diǎn)D、G、F的雙親節點(diǎn)。各個(gè)節點(diǎn)在加入的過(guò)程中向網(wǎng)絡(luò )插入自己提供的共享文件,如圖2d~圖2g中所示,相應的共享文件被插入到網(wǎng)絡(luò )中各節點(diǎn)所負責的哈希鏈上,在此過(guò)程中,相應的節點(diǎn)也存儲了文件名及到達文件存儲節點(diǎn)的路由信息。
該網(wǎng)絡(luò )結構建立后,網(wǎng)絡(luò )中各共享文件的當前位置和路由信息也被定位,搜索各共享文件的路由可從訪(fǎng)問(wèn)Pnode的請求消息中獲得,如圖2所示。網(wǎng)絡(luò )的樹(shù)形拓撲結構也同時(shí)建立,如圖1所示。
(7)恢復當雙親節點(diǎn)的一個(gè)子節點(diǎn)斷網(wǎng)時(shí),雙親節點(diǎn)重新獲得子節點(diǎn)所負責的哈希鏈段?;蜃庸濣c(diǎn)與其雙親斷開(kāi)時(shí),從子節點(diǎn)往下每個(gè)雙親與子節點(diǎn)哈希鏈重新分配。
(8)離開(kāi)當一個(gè)節點(diǎn)要離開(kāi)WANET文件共享網(wǎng)絡(luò )時(shí),要先刪除所有共享文件,再將其索引信息刪除,如E將自己的哈希鏈交付雙親B,同時(shí)將離網(wǎng)消息通知其雙親B和子節點(diǎn)D、G、F,則節點(diǎn)B將D、G、F加為子節點(diǎn),節點(diǎn)D、G、F將B作為雙親節點(diǎn)。
綜上所述,在圖1d中,假設節點(diǎn)D要查找文件η1,則D為查詢(xún)節點(diǎn)Qnode,文件η1存儲在F節點(diǎn),則F節點(diǎn)就是文件節點(diǎn)Fnode,文件η1映射到哈希鏈上的H(η1)點(diǎn),而H(η1)點(diǎn)正好落在節點(diǎn)C負責的哈希鏈上,所以,節點(diǎn)C就是路徑節點(diǎn)Pnode,它存儲著(zhù)由Pnode(節點(diǎn)C)到Fnode (節點(diǎn)F)的路由信息。
p2p機相關(guān)文章:p2p原理
評論