p2p系統的應用越來越廣泛,在檔案共享、流**服務、即時通訊交流、計算和儲存能力共享以及協同處理與服務等方面都能看到p2p的存在,一些p2p應用如napster、emule、bittorrent等早已是家喻戶曉了。效果可以看下具體51搜尋展示結合xunsearch全文檢索技術,可以達到毫秒級的資料搜尋
p2p按其拓撲關係大致可以分為兩類四種形式:
1.非結構化拓撲。包括中心化拓撲、分布式拓撲、半分布式拓撲,其分別對應著napster、bittorrent、kazaa這三種知名的應用。
2.結構化拓撲。主要形式為分布式結構化拓撲,也就是所謂的dht網路。
dht——distributed hash table 分布式雜湊表:
1.雜湊表被分割成不連續的塊,每個節點被分配給乙個屬於自己的雜湊塊,並成為這個雜湊塊的管理者。
dht網路的基本思想如下:
1.每乙份資源都由一組關鍵字進行標識。
2.系統對其中的每乙個關鍵字進行hash,根據hash的結果決定此關鍵字對應的那條資訊(即資源索引中的一項)由哪個使用者負責儲存。
3.使用者搜尋的時候,用同樣的演算法計算每個關鍵字的hash,從而獲得該關鍵字對應的資訊儲存位置,並迅速定位資源。
dht關鍵字定位:
1.dht通過分布式雜湊函式,將輸入的關鍵字唯一對映到某個節點上,然後通過某些路由演算法同該節點建立連線。
2.每個節點並不需要儲存整個系統的節點檢視資訊,只在節點中儲存其鄰近的幾個後繼節點資訊,當乙個節點收到乙個查詢操作時,如果它發現所查詢的標識不在自己關聯的區間內,那麼該節點將會把該查詢傳送給其儲存節點資訊表中它認為最靠近目標的鄰居。
3.每次**都能更進一步地接近資料來源。因此較少的路由資訊就可以有效地實現到達目標節點。
dht的具體演算法實現過程:
(1)對每個節點的一定特徵(如ip位址)進行hash,使得到的每個節點的節點值唯一。將節點按照節點值的從小到大構成乙個環(chord環)。(此處節點值可以看作是新環中的ip位址)
(2)通過節點值,獲取每個節點與下乙個臨近節點之間的距離,從而獲得每個節點所需負責的值區間。(此過程類似於建立路由表)
(3)對每個節點上的資源提取關鍵字,並對關鍵字進行hash,得到的hash值按照(2)中的每個節點負責的區間進行分配,從而使每一項資源的儲存資訊都被儲存在乙個節點上。(此步驟獲得了資源的索引列表)
(4)當搜尋一項資源時,對其關鍵字進行hash,得到的值與當前節點的值區間表相比較,從而獲得資源的索引資訊最有可能存在的節點。查詢該節點,獲取資源的索引,根據索引,即可找到資源所在的節點,並建立通訊。
現在公開乙個DHT網路爬蟲網路爬蟲供大家一起交流
p2p系統的應用越來越廣泛,在檔案共享 流 服務 即時通訊交流 計算和儲存能力共享以及協同處理與服務等方面都能看到p2p的存在,一些p2p應用如napster emule bittorrent等早已是家喻戶曉了。p2p按其拓撲關係大致可以分為兩類四種形式 1.非結構化拓撲。包括中心化拓撲 分布式拓撲...
現在公開乙個DHT網路爬蟲網路爬蟲供大家一起交流
我引用 的 只能提示解析到第一層,關於後面剛開始沒方向,亂試了一通,沒弄出來,最後才明白json的關鍵,直接上 希望後別人也提個醒。效果可以看下具體51搜尋展示結合xunsearch全文檢索技術,可以達到毫秒級的資料搜尋 前面 我就不截了,直接把最重要的貼出來 dim objtest call in...
現在公開乙個DHT網路爬蟲網路爬蟲供大家一起交流
torrent檔案內的資料結構分為以下幾部分 效果可以看下具體51搜尋展示結合xunsearch全文檢索技術,可以達到毫秒級的資料搜尋 announce tracker的主伺服器 announce list tracker伺服器列表 comment 種子檔案的注釋 comment.utf 8 種子檔...