當前位置:首頁 » 算力簡介 » dht去中心化

dht去中心化

發布時間: 2021-07-20 00:42:42

㈠ 如何建立一個完整可用的安全大數據平台


要建立一個大數據系統,我們需要從數據流的源頭跟蹤到最後有價值的輸出,並在現有的Hadoop和大數據生態圈內根據實際需求挑選並整合各部分合適的組件來構建一個能夠支撐多種查詢和分析功能的系統平台。這其中既包括了對數據存儲的選擇,也涵蓋了數據線上和線下處理分離等方面的思考和權衡。此外,沒有任何一個引入大數據解決方案的商業應用在生產環境上承擔的起安全隱患。

1
計算框架篇
大數據的價值

只有在能指導人們做出有價值的決定時,數據才能體現其自身的價值。因此,大數據技術要服務於實際的用途,才是有意義的。一般來說,大數據可以從以下三個方面指導人們做出有價值的決定:

報表生成(比如根據用戶歷史點擊行為的跟蹤和綜合分析、 應用程序活躍程度和用戶粘性計算等);

診斷分析(例如分析為何用戶粘性下降、根據日誌分析系統為何性能下降、垃圾郵件以及病毒的特徵檢測等);

決策(例如個性化新聞閱讀或歌曲推薦、預測增加哪些功能能增加用戶粘性、幫助廣告主進行廣告精準投放、設定垃圾郵件和病毒攔截策略等)。

圖 1

進一步來看,大數據技術從以下三個方面解決了傳統技術難以達成的目標(如圖1):

在歷史數據上的低延遲(互動式)查詢,目標是加快決策過程和時間, 例如分析一個站點為何變緩慢並嘗試修復它;

在實時數據上的低延遲查詢,目的是幫助用戶和應用程序在實時數據上做出決策, 例如實時檢測並阻攔病毒蠕蟲(一個病毒蠕蟲可以在1.3秒內攻擊1百萬台主機);

更加精細高級的數據處理演算法,這可以幫助用戶做出「更好」的決策, 例如圖數據處理、異常點檢測、趨勢分析及其他機器學習演算法。

蛋糕模式

從將數據轉換成價值的角度來說,在Hadoop生態圈十年蓬勃成長的過程中,YARN和Spark這二者可以算得上是里程碑事件。Yarn的出現使得集群資源管理和數據處理流水線分離,大大革新並推動了大數據應用層面各種框架的發展(SQL on Hadoop框架, 流數據,圖數據,機器學習)。

它使得用戶不再受到MapRece開發模式的約束,而是可以創建種類更為豐富的分布式應用程序,並讓各類應用程序運行在統一的架構上,消除了為其他框架維護獨有資源的開銷。就好比一個多層蛋糕,下面兩層是HDFS和Yarn, 而MapRece就只是蛋糕上層的一根蠟燭而已,在蛋糕上還能插各式各樣的蠟燭。

在這一架構體系中,總體數據處理分析作業分三塊(圖2),在HBase上做互動式查詢(Apache Phoenix, Cloudera Impala等), 在歷史數據集上編寫MapRece程序抑或利用Hive等做批處理業務, 另外對於實時流數據分析Apache Storm則會是一種標准選擇方案。

雖然Yarn的出現極大地豐富了Hadoop生態圈的應用場景,但仍存有兩個顯而易見的挑戰:一是在一個平台上需要維護三個開發堆棧;二是在不同框架內很難共享數據,比如很難在一個框架內對流數據做互動式查詢。這也意味著我們需要一個更為統一和支持更好抽象的計算框架的出現。

圖 2

一統江湖

Spark的出現使得批處理任務,互動式查詢,實時流數據處理被整合到一個統一的框架內(圖3),同時Spark和現有的開源生態系統也能夠很好地兼容(Hadoop, HDFS, Yarn, Hive, Flume)。 通過啟用內存分布數據集,優化迭代工作負載, 用戶能夠更簡單地操作數據,並在此基礎上開發更為精細的演算法,如機器學習和圖演算法等。

有三個最主要的原因促使Spark目前成為了時下最火的大數據開源社區(擁有超過來自200多個公司的800多個contributors):

Spark可以擴展部署到超過8000節點並處理PB級別的數據,同時也提供了很多不錯的工具供應用開發者進行管理和部署;

Spark提供了一個互動式shell供開發者可以用Scala或者Python即時性試驗不同的功能;

Spark提供了很多內置函數使得開發者能夠比較容易地寫出低耦合的並且能夠並發執行的代碼,這樣開發人員就更能集中精力地為用戶提供更多的業務功能而不是花費時間在優化並行化代碼之上。

當然Spark也和當年的MapRece一樣不是萬靈葯,比如對實時性要求很高的流數據處理上Apache Storm還是被作為主流選擇, 因為Spark Streaming實際上是microbatch(將一個流數據按時間片切成batch,每個batch提交一個job)而不是事件觸發實時系統,所以雖然支持者們認為microbatch在系統延時性上貢獻並不多,但在生產環境中和Apache Storm相比還不是特別能滿足對低延時要求很高的應用場景。

比如在實踐過程中, 如果統計每條消息的平均處理時間,很容易達到毫秒級別,但一旦統計類似service assurance(確保某條消息在毫秒基本能被處理完成)的指標, 系統的瓶頸有時還是不能避免。

但同時我們不能不注意到,在許多用例當中,與流數據的交互以及和靜態數據集的結合是很有必要的, 例如我們需要在靜態數據集上進行分類器的模型計算,並在已有分類器模型的基礎上,對實時進入系統的流數據進行交互計算來判定類別。

由於Spark的系統設計對各類工作(批處理、流處理以及互動式工作)進行了一個共有抽象,並且生態圈內延伸出了許多豐富的庫(MLlib機器學習庫、SQL語言API、GraphX), 使得用戶可以在每一批流數據上進行靈活的Spark相關操作,在開發上提供了許多便利。

Spark的成熟使得Hadoop生態圈在短短一年之間發生了翻天覆地的變化, Cloudera和Hortonworks紛紛加入了Spark陣營,而Hadoop項目群中除了Yarn之外已經沒有項目是必須的了(雖然Mesos已在一些場合替代了Yarn), 因為就連HDFS,Spark都可以不依賴。但很多時候我們仍然需要像Impala這樣的依賴分布式文件系統的MPP解決方案並利用Hive管理文件到表的映射,因此Hadoop傳統生態圈依然有很強的生命力。

另外在這里簡要對比一下互動式分析任務中各類SQL on Hadoop框架,因為這也是我們在實際項目實施中經常遇到的問題。我們主要將注意力集中在Spark SQL, Impala和Hive on Tez上, 其中Spark SQL是三者之中歷史最短的,論文發表在15年的SIGMOD會議上, 原文對比了數據倉庫上不同類型的查詢在Shark(Spark最早對SQL介面提供的支持)、Spark SQL和Impala上的性能比較。

也就是說, 雖然Spark SQL在Shark的基礎上利用Catalyst optimizer在代碼生成上做了很多優化,但總體性能還是比不上Impala, 尤其是當做join操作的時候, Impala可以利用「predicate pushdown」更早對表進行選擇操作從而提高性能。

不過Spark SQL的Catalyst optimizer一直在持續優化中,相信未來會有更多更好的進展。Cloudera的Benchmark評測中Impala一直比其他SQL on Hadoop框架性能更加優越,但同時Hortonworks評測則指出雖然單個數據倉庫查詢Impala可以在很短的時間內完成,但是一旦並發多個查詢Hive on Tez的優勢就展示出來。另外Hive on Tez在SQL表達能力也要比Impala更強(主要是因為Impala的嵌套存儲模型導致的), 因此根據不同的場景選取不同的解決方案是很有必要的。

圖 3

各領風騷抑或代有才人出?

近一年比較吸引人眼球的Apache Flink(與Spark一樣已有5年歷史,前身已經是柏林理工大學一個研究性項目,被其擁躉推崇為繼MapRece, Yarn,Spark之後第四代大數據分析處理框架)。 與Spark相反,Flink是一個真正的實時流數據處理系統,它將批處理看作是流數據的特例,同Spark一樣它也在嘗試建立一個統一的平台運行批量,流數據,互動式作業以及機器學習,圖演算法等應用。

Flink有一些設計思路是明顯區別於Spark的,一個典型的例子是內存管理,Flink從一開始就堅持自己精確的控制內存使用並且直接操作二進制數據,而Spark一直到1.5版本都還是試用java的內存管理來做數據緩存,這也導致了Spark很容易遭受OOM以及JVM GC帶來的性能損失。

但是從另外一個角度來說, Spark中的RDD在運行時被存成java objects的設計模式也大大降低了用戶編程設計門檻, 同時隨著Tungsten項目的引入,Spark現在也逐漸轉向自身的內存管理, 具體表現為Spark生態圈內從傳統的圍繞RDD(分布式java對象集合)為核心的開發逐漸轉向以DataFrame(分布式行對象集合)為核心。

總的來說,這兩個生態圈目前都在互相學習,Flink的設計基因更為超前一些,但Spark社區活躍度大很多,發展到目前毫無疑問是更為成熟的選擇,比如對數據源的支持(HBase, Cassandra, Parquet, JSON, ORC)更為豐富以及更為統一簡潔的計算表示。另一方面,Apache Flink作為一個由歐洲大陸發起的項目,目前已經擁有來自北美、歐洲以及亞洲的許多貢獻者,這是否能夠一改歐洲在開源世界中一貫的被動角色,我們將在未來拭目以待。

2
NoSQL資料庫篇
NoSQL資料庫在主流選擇上依舊集中在MongoDB, HBase和Cassandra這三者之間。在所有的NoSQL選擇中,用C 編寫的MongoDB幾乎應該是開發者最快也最易部署的選擇。MongoDB是一個面向文檔的資料庫,每個文檔/記錄/數據(包括爬取的網頁數據及其他大型對象如視頻等)是以一種BSON(Binary JSON)的二進制數據格式存儲, 這使得MongoDB並不需要事先定義任何模式, 也就是模式自由(可以把完全不同結構的記錄放在同一個資料庫里)。

MongoDB對於完全索引的支持在應用上是很方便的,同時也具備一般NoSQL分布式資料庫中可擴展,支持復制和故障恢復等功能。 MongoDB一般應用於高度伸縮性的緩存及大尺寸的JSON數據存儲業務中,但不能執行「JOIN」操作,而且數據佔用空間也比較大,最被用戶詬病的就是由於MongoDB提供的是資料庫級鎖粒度導致在一些情況下建索引操作會引發整個資料庫阻塞。一般來說,MongoDB完全可以滿足一些快速迭代的中小型項目的需求。

下面來主要談談Cassandra和HBase之間的比較選擇。Cassandra和HBase有著截然不同的基因血統。HBase和其底層依賴的系統架構源自於著名的Google FileSystem(發表於2003年)和Google BigTable設計(發表於2006年), 其克服了HDFS注重吞吐量卻犧牲I/O的缺點,提供了一個存儲中間層使得用戶或者應用程序可以隨機讀寫數據。

具體來說,HBase的更新和刪除操作實際上是先發生在內存MemStore中, 當MemStore滿了以後會Flush到StoreFile, 之後當StoreFile文件數量增長到一定閾值後會觸發Compact合並操作,因此HBase的更新操作其實是不斷追加的操作,而最終所有更新和刪除數據的持久化操作都是在之後Compact過程中進行的。

這使得應用程序在向內存MemStore寫入數據後,所做的修改馬上就能得到反映,用戶讀到的數據絕不會是陳舊的數據,保證了I/O高性能和數據完全一致性; 另一方面來說, HBase基於Hadoop生態系統的基因就已經決定了他自身的高度可擴展性、容錯性。

在數據模型上,Cassandra和HBase類似實現了一個key-value提供面向列式存儲服務,其系統設計參考了 Amazon Dynamo (發表於2007年) 分布式哈希(DHT)的P2P結構(實際上大部分Cassandra的初始工作都是由兩位從Amazon的Dynamo組跳槽到Facebook的工程師完成),同樣具有很高的可擴展性和容錯性等特點。

除此之外, 相對HBase的主從結構,Cassandra去中心化的P2P結構能夠更簡單地部署和維護,比如增加一台機器只需告知Cassandra系統新節點在哪,剩下的交給系統完成就行了。同時,Cassandra對多數據中心的支持也更好,如果需要在多個數據中心進行數據遷移Cassandra會是一個更優的選擇。

Eric Brewer教授提出的經典CAP理論認為任何基於網路的數據共享系統,最多隻能滿足數據一致性、可用性、分區容忍性三要素中的兩個要素。實際分布式系統的設計過程往往都是在一致性與可用性上進行取捨,相比於HBase數據完全一致性的系統設計,Cassandra選擇了在優先考慮數據可用性的基礎上讓用戶自己根據應用程序需求決定系統一致性級別。

比如:用戶可以配置QUONUM參數來決定系統需要幾個節點返回數據才能向客戶端做出響應,ONE指只要有一個節點返回數據就可以對客戶端做出響應,ALL指等於數據復制份數的所有節點都返回結果才能向客戶端做出響應,對於數據一致性要求不是特別高的可以選擇ONE,它是最快的一種方式。

從基因和發展歷史上來說,HBase更適合用做數據倉庫和大規模數據處理與分析(比如對網頁數據建立索引), 而Cassandra則更適合用作實時事務和互動式查詢服務。Cassandra在國外市場佔有比例和發展要遠比國內紅火, 在不少權威測評網站上排名都已經超過了HBase。目前Apache Cassandra的商業化版本主要由軟體公司DataStax進行開發和銷售推廣。另外還有一些NoSQL分布式資料庫如Riak, CouchDB也都在各自支持的廠商推動下取得了不錯的發展。

雖然我們也考慮到了HBase在實際應用中的不便之處比如對二級索引的支持程度不夠(只支持通過單個行鍵訪問,通過行鍵的范圍查詢,全表掃描),不過在明略的大數據基礎平台上,目前整合的是依然是HBase。

理由也很簡單,HBase出身就與Hadoop的生態系統緊密集成,其能夠很容易與其他SQL on Hadoop框架(Cloudera Impala, Apache Phoenix, or Hive on Tez)進行整合,而不需要重新部署一套分布式資料庫系統,而且可以很方便地將同樣的數據內容在同一個生態系統中根據不同框架需要來變換存儲格式(比如存儲成Hive表或者Parquet格式)。

我們在很多項目中都有需要用到多種SQL on Hadoop框架,來應對不同應用場景的情況,也體會到了在同一生態系統下部署多種框架的簡便性。 但同時我們也遇到了一些問題, 因為HBase項目本身與HDFS和Zookeeper系統分別是由不同開源團隊進行維護的,所以在系統整合時我們需要先對HBase所依賴的其他模塊進行設置再對HBase進行配置,在一定程度上降低了系統維護的友好性。

目前我們也已經在考慮將Cassandra應用到一些新的客戶項目中,因為很多企業級的應用都需要將線上線下資料庫進行分離,HBase更適合存儲離線處理的結果和數據倉庫,而更適合用作實時事務和並發交互性能更好的Cassandra作為線上服務資料庫會是一種很好的選擇。

3
大數據安全篇
隨著越來越多各式各樣的數據被存儲在大數據系統中,任何對企業級數據的破壞都是災難性的,從侵犯隱私到監管違規,甚至會造成公司品牌的破壞並最終影響到股東收益。給大數據系統提供全面且有效的安全解決方案的需求已經十分迫切:

大數據系統存儲著許多重要且敏感的數據,這些數據是企業長久以來的財富

與大數據系統互動的外部系統是動態變化的,這會給系統引入新的安全隱患

在一個企業的內部,不同Business Units會用不同的方式與大數據系統進行交互,比如線上的系統會實時給集群推送數據、數據科學家團隊則需要分析存儲在數據倉庫內的歷史數據、運維團隊則會需要對大數據系統擁有管理許可權。

因此為了保護公司業務、客戶、財務和名譽免於被侵害,大數據系統運維團隊必須將系統安全高度提高到和其他遺留系統一樣的級別。同時大數據系統並不意味著引入大的安全隱患,通過精細完整的設計,仍然能夠把一些傳統的系統安全解決方案對接到最新的大數據集群系統中。

一般來說,一個完整的企業級安全框架包括五個部分:

Administration: 大數據集群系統的集中式管理,設定全局一致的安全策略

Authentication: 對用戶和系統的認證

Authorization:授權個人用戶和組對數據的訪問許可權

Audit:維護數據訪問的日誌記錄

Data Protection:數據脫敏和加密以達到保護數據的目的

系統管理員要能夠提供覆蓋以上五個部分的企業級安全基礎設施,否則任何一環的缺失都可能給整個系統引入安全性風險。

在大數據系統安全集中式管理平台這塊,由Hortonworks推出的開源項目Apache Ranger就可以十分全面地為用戶提供Hadoop生態圈的集中安全策略的管理,並解決授權(Authorization)和審計(Audit)。例如,運維管理員可以輕松地為個人用戶和組對文件、數據等的訪問策略,然後審計對數據源的訪問。

與Ranger提供相似功能的還有Cloudera推出的Apache Sentry項目,相比較而言Ranger的功能會更全面一些。

而在認證(Authentication)方面, 一種普遍採用的解決方案是將基於Kerberos的認證方案對接到企業內部的LDAP環境中, Kerberos也是唯一為Hadoop全面實施的驗證技術。

另外值得一提的是Apache Knox Gateway項目,與Ranger提高集群內部組件以及用戶互相訪問的安全不同,Knox提供的是Hadoop集群與外界的唯一交互介面,也就是說所有與集群交互的REST API都通過Knox處理。這樣,Knox就給大數據系統提供了一個很好的基於邊緣的安全(perimeter-based security)。

基於以上提到的五個安全指標和Hadoop生態圈安全相關的開源項目, 已經足已證明基於Hadoop的大數據平台我們是能夠構建一個集中、一致、全面且有效的安全解決方案。
我市再ITjob管網上面找的

㈡ eMule eD2K和Kad 有什麼聯系和區別如果只連接eD2K,對下載有什麼影響

eD2k網路是基於伺服器的,你需要連接到伺服器並從伺服器索引/查找用戶或者文件。
Kad是基於分布式哈希表(DHT)的分布式網路,也就是完全依靠用戶之間互相連接形成的網路,通過其它用戶的幫助來索引/查找用戶或者文件。
通俗一點說,eD2k網路相當於廣播電台,Kad網路相當於群眾口口相傳。
只連接eD2k,你所能查找到的來源會減少很多,特別是現在P2P網路去中心化日益激進的今天。實際上目前可用的eD2k伺服器已經沒剩幾個了,而且在不久的將來可能會徹底消失。屆時必須依靠Kad網路由大家手拉手分享信息。

㈢ 什麼是P2P軟體目前那種P2P軟體好用而且病毒少

P2P普及系列之一

拓撲結構是指分布式系統中各個計算單元之間的物理或邏輯的互聯關系,結點之間的拓撲結構一直是確定系統類型的重要依據。目前互聯網路中廣泛使用集中式、層次式等拓撲結構,Interne本身是世界上最大的非集中式的互聯網路,但是九十年代所建立的一些網路應用系統卻是完全的集中式的系統、很多Web應用都是運行在集中式的伺服器系統上。集中式拓撲結構系統目前面臨著過量存儲負載、Dos攻擊等一些難以解決的問題。

P2P系統一般要構造一個非集中式的拓撲結構,在構造過程中需要解決系統中所包含的大量結點如何命名、組織以及確定結點的加入/離開方式、出錯恢復等問題。

根據拓撲結構的關系可以將P2P研究分為4種形式:中心化拓撲(Centralized Topology);全分布式非結構化拓撲(Decentralized Unstructured Topology);全分布式結構化拓撲(Decentralized Structured Topology,也稱作DHT網路)和半分布式拓撲(Partially Decentralized Topology)。

其中,中心化拓撲最大的優點是維護簡單發現效率高。由於資源的發現依賴中心化的目錄系統,發現演算法靈活高效並能夠實現復雜查詢。最大的問題與傳統客戶機/伺服器結構類似,容易造成單點故障,訪問的「熱點」現象和法律等相關問題,這是第一代P2P網路採用的結構模式,經典案例就是著名的MP3共享軟體Napster。

Napster是最早出現的P2P系統之一,並在短期內迅速成長起來。Napster實質上並非是純粹的P2P系統,它通過一個中央伺服器保存所有Napster用戶上傳的音樂文件索引和存放位置的信息。當某個用戶需要某個音樂文件時,首先連接到Napster伺服器,在伺服器進行檢索,並由伺服器返回存有該文件的用戶信息;再由請求者直接連到文件的所有者傳輸文件。

Napster首先實現了文件查詢與文件傳輸的分離,有效地節省了中央伺服器的帶寬消耗,減少了系統的文件傳輸延時。這種方式最大的隱患在中央伺服器上,如果該伺服器失效,整個系統都會癱瘓。當用戶數量增加到105或者更高時,Napster的系統性能會大大下降。另一個問題在於安全性上,Napster並沒有提供有效的安全機制。

在Napster模型中,一群高性能的中央伺服器保存著網路中所有活動對等計算機共享資源的目錄信息。當需要查詢某個文件時,對等機會向一台中央伺服器發出文件查詢請求。中央伺服器進行相應的檢索和查詢後,會返回符合查詢要求的對等機地址信息列表。查詢發起對等機接收到應答後,會根據網路流量和延遲等信息進行選擇,和合適的對等機建立連接,並開始文件傳輸。

這種對等網路模型存在很多問題,主要表現為:
(1)中央伺服器的癱瘓容易導致整個網路的崩饋,可靠性和安全性較低。
(2)隨著網路規模的擴大,對中央索引伺服器進行維護和更新的費用將急劇增加,所需成本過高。
(3)中央伺服器的存在引起共享資源在版權問題上的糾紛,並因此被攻擊為非純粹意義上的P2P網路模型。對小型網路而言,集中目錄式模型在管理和控制方面佔一定優勢。但鑒於其存在的種種缺陷,該模型並不適合大型網路應用。

P2P普及系列之二

Pastry是微軟研究院提出的可擴展的分布式對象定位和路由協議,可用於構建大規模的P2P系統。在Pastry中,每個結點分配一個128位的結點標識符號(nodeID) ,所有的結點標識符形成了一個環形的nodeID空間,范圍從0到2128 - 1 ,結點加入系統時通過散列結點IP地址在128位nodeID空間中隨機分配。

在MIT,開展了多個與P2P相關的研究項目:Chord,GRID和RON。Chord項目的目標是提供一個適合於P2P環境的分布式資源發現服務,它通過使用DHT技術使得發現指定對象只需要維護O(logN)長度的路由表。

在DHT技術中,網路結點按照一定的方式分配一個唯一結點標識符(Node ID) ,資源對象通過散列運算產生一個唯一的資源標識符(Object ID) ,且該資源將存儲在結點ID與之相等或者相近的結點上。需要查找該資源時,採用同樣的方法可定位到存儲該資源的結點。因此,Chord的主要貢獻是提出了一個分布式查找協議,該協議可將指定的關鍵字(Key) 映射到對應的結點(Node) 。從演算法來看,Chord是相容散列演算法的變體。MIT GRID和RON項目則提出了在分布式廣域網中實施查找資源的系統框架。

T&T ACIRI中心的CAN(Content Addressable Networks) 項目獨特之處在於採用多維的標識符空間來實現分布式散列演算法。CAN將所有結點映射到一個n維的笛卡爾空間中,並為每個結點盡可能均勻的分配一塊區域。CAN採用的散列函數通過對(key, value) 對中的key進行散列運算,得到笛卡爾空間中的一個點,並將(key, value) 對存儲在擁有該點所在區域的結點內。CAN採用的路由演算法相當直接和簡單,知道目標點的坐標後,就將請求傳給當前結點四鄰中坐標最接近目標點的結點。CAN是一個具有良好可擴展性的系統,給定N個結點,系統維數為d,則路由路徑長度為O(n1/d) ,每結點維護的路由表信息和網路規模無關為O(d) 。

DHT類結構最大的問題是DHT的維護機制較為復雜,尤其是結點頻繁加入退出造成的網路波動(Churn)會極大增加DHT的維護代價。DHT所面臨的另外一個問題是DHT僅支持精確關鍵詞匹配查詢,無法支持內容/語義等復雜查詢。

半分布式結構(有的文獻稱作 Hybrid Structure)吸取了中心化結構和全分布式非結構化拓撲的優點,選擇性能較高(處理、存儲、帶寬等方面性能)的結點作為超級點(英文文獻中多稱作:SuperNodes, Hubs),在各個超級點上存儲了系統中其他部分結點的信息,發現演算法僅在超級點之間轉發,超級點再將查詢請求轉發給適當的葉子結點。半分布式結構也是一個層次式結構,超級點之間構成一個高速轉發層,超級點和所負責的普通結點構成若干層次。最典型的案例就是KaZaa。

KaZaa是現在全世界流行的幾款p2p軟體之一。根據CA公司統計,全球KaZaa的下載量超過2.5億次。使用KaZaa軟體進行文件傳輸消耗了互聯網40%的帶寬。之所以它如此的成功,是因為它結合了Napster和Gnutella共同的優點。從結構 上來說,它使用了Gnutella的全分布式的結構,這樣可以是系統更好的擴展,因為它無需中央索引伺服器存儲文件名,它是自動的把性能好的機器成為SuperNode,它存儲著離它最近的葉子節點的文件信息,這些SuperNode,再連通起來形成一個Overlay Network. 由於SuperNode的索引功能,使搜索效率大大提高。

P2P普及系列之三

全分布非結構化網路在重疊網路(overlay)採用了隨機圖的組織方式,結點度數服從"Power-law"[a][b]規律,從而能夠較快發現目的結點,面對網路的動態變化體現了較好的容錯能力,因此具有較好的可用性。同時可以支持復雜查詢,如帶有規則表達式的多關鍵詞查詢,模糊查詢等,最典型的案例是Gnutella。

Gnutella是一個P2P文件共享系統,它和Napster最大的區別在於Gnutella是純粹的P2P系統,沒有索引伺服器,它採用了基於完全隨機圖的洪泛(Flooding)發現和隨機轉發(Random Walker)機制。為了控制搜索消息的傳輸,通過TTL (Time To Live)的減值來實現。具體協議參照〔Gnutella協議中文版〕

在Gnutella分布式對等網路模型N中,每一個聯網計算機在功能上都是對等的,既是客戶機同時又是伺服器,所以被稱為對等機(Servent,Server+Client的組合)。

隨著聯網節點的不斷增多,網路規模不斷擴大,通過這種洪泛方式定位對等點的方法將造成網路流量急劇增加,從而導致網路中部分低帶寬節點因網路資源過載而失效。所以在初期的Gnutella網路中,存在比較嚴重的分區,斷鏈現象。也就是說,一個查詢訪問只能在網路的很小一部分進行,因此網路的可擴展性不好。所以,解決Gnutella網路的可擴展性對該網路的進一步發展至關重要。

由於沒有確定拓撲結構的支持,非結構化網路無法保證資源發現的效率。即使需要查找的目的結點存在發現也有可能失敗。由於採用TTL(Time-to-Live)、洪泛(Flooding)、隨機漫步或有選擇轉發演算法,因此直徑不可控,可擴展性較差。

因此發現的准確性和可擴展性是非結構化網路面臨的兩個重要問題。目前對此類結構的研究主要集中於改進發現演算法和復制策略以提高發現的准確率和性能。

全分布非結構化網路在重疊網路(overlay)採用了隨機圖的組織方式,結點度數服從"Power-law"[a][b]規律,從而能夠較快發現目的結點,面對網路的動態變化體現了較好的容錯能力,因此具有較好的可用性。同時可以支持復雜查詢,如帶有規則表達式的多關鍵詞查詢,模糊查詢等,最典型的案例是Gnutella。

Gnutella是一個P2P文件共享系統,它和Napster最大的區別在於Gnutella是純粹的P2P系統,沒有索引伺服器,它採用了基於完全隨機圖的洪泛(Flooding)發現和隨機轉發(Random Walker)機制。為了控制搜索消息的傳輸,通過TTL (Time To Live)的減值來實現。具體協議參照〔Gnutella協議中文版〕

在Gnutella分布式對等網路模型N中,每一個聯網計算機在功能上都是對等的,既是客戶機同時又是伺服器,所以被稱為對等機(Servent,Server+Client的組合)。

隨著聯網節點的不斷增多,網路規模不斷擴大,通過這種洪泛方式定位對等點的方法將造成網路流量急劇增加,從而導致網路中部分低帶寬節點因網路資源過載而失效。所以在初期的Gnutella網路中,存在比較嚴重的分區,斷鏈現象。也就是說,一個查詢訪問只能在網路的很小一部分進行,因此網路的可擴展性不好。所以,解決Gnutella網路的可擴展性對該網路的進一步發展至關重要。

由於沒有確定拓撲結構的支持,非結構化網路無法保證資源發現的效率。即使需要查找的目的結點存在發現也有可能失敗。由於採用TTL(Time-to-Live)、洪泛(Flooding)、隨機漫步或有選擇轉發演算法,因此直徑不可控,可擴展性較差。

因此發現的准確性和可擴展性是非結構化網路面臨的兩個重要問題。目前對此類結構的研究主要集中於改進發現演算法和復制策略以提高發現的准確率和性能。

P2P普及系列之四

半分布式結構的優點是性能、可擴展性較好,較容易管理,但對超級點依賴性大,易於受到攻擊,容錯性也受到影響。下表比較了4種結構的綜合性能,比較結果如表1-1所示。

比較標准/拓撲結構 中心化拓撲 全分布式非結構化拓撲 全分布式結構化拓撲 半分布式拓撲
可擴展性 差 差 好 中
可靠性 差 好 好 中
可維護性 最好 最好 好 中
發現演算法效率 最高 中 高 中
復雜查詢 支持 支持 不支持 支持

表1:4種結構的性能比較

P2P普及系列之五

國外開展P2P研究的學術團體主要包括P2P工作組(P2PWG) 、全球網格論壇(Global Grid Forum ,GGF) 。P2P工作組成立的主要目的是希望加速P2P計算基礎設施的建立和相應的標准化工作。P2PWG成立之後,對P2P計算中的術語進行了統一,也形成相關的草案,但是在標准化工作方面工作進展緩慢。目前P2PWG已經和GGF合並,由該論壇管理P2P計算相關的工作。GGF負責網格計算和P2P計算等相關的標准化工作。

從國外公司對P2P計算的支持力度來看,Microsoft公司、Sun公司和Intel公司投入較大。Microsoft公司成立了Pastry項目組,主要負責P2P計算技術的研究和開發工作。目前Microsoft公司已經發布了基於Pastry的軟體包SimPastry/ VisPastry。Rice大學也在Pastry的基礎之上發布了FreePastry軟體包。

在2000年8月,Intel公司宣布成立P2P工作組,正式開展P2P的研究。工作組成立以後,積極與應用開發商合作,開發P2P應用平台。2002年Intel發布了. Net基礎架構之上的Accelerator Kit (P2P加速工具包) 和P2P安全API軟體包,從而使得微軟. NET開發人員能夠迅速地建立P2P安全Web應用程序。

Sun公司以Java技術為背景,開展了JXTA項目。JXTA是基於Java的開源P2P平台,任何個人和組織均可以加入該項目。因此,該項目不僅吸引了大批P2P研究人員和開發人員,而且已經發布了基於JXTA的即時聊天軟體包。JXTA定義了一組核心業務:認證、資源發現和管理。在安全方面,JXTA加入了加密軟體包,允許使用該加密包進行數據加密,從而保證消息的隱私、可認證性和完整性。在JXTA核心之上,還定義了包括內容管理、信息搜索以及服務管理在內的各種其它可選JXTA服務。在核心服務和可選服務基礎上,用戶可以開發各種JXTA平台上的P2P應用。

P2P實際的應用主要體現在以下幾個方面:

P2P分布式存儲
P2P分布式存儲系統是一個用於對等網路的數據存儲系統,它可以提供高效率的、魯棒的和負載平衡的文件存取功能。這些研究包括:OceanStore,Farsite等。其中,基於超級點結構的半分布式P2P應用如Kazza、Edonkey、Morpheus、Bittorrent等也是屬於分布式存儲的范疇,並且用戶數量急劇增加。

計算能力的共享
加入對等網路的結點除了可以共享存儲能力之外,還可以共享CPU處理能力。目前已經有了一些基於對等網路的計算能力共享系統。比如SETI@home。目前SETI@home採用的仍然是類似於Napster的集中式目錄策略。Xenoservers向真正的對等應用又邁進了一步。這種計算能力共享系統可以用於進行基因資料庫檢索和密碼破解等需要大規模計算能力的應用。

P2P應用層組播
應用層組播,就是在應用層實現組播功能而不需要網路層的支持。這樣就可以避免出現由於網路層遲遲不能部署對組播的支持而使組播應用難以進行的情況。應用層組播需要在參加的應用結點之間實現一個可擴展的,支持容錯能力的重疊網路,而基於DHT的發現機制正好為應用層組播的實現提供了良好的基礎平台。
Internet間接訪問基礎結構(Internet Indirection Infrastructure)。

為了使Internet更好地支持組播、單播和移動等特性,Internet間接訪問基礎結構提出了基於匯聚點的通信抽象。在這一結構中,並不把分組直接發向目的結點,而是給每個分組分配一個標識符,而目的結點則根據標識符接收相應的分組。標識符實際上表示的是信息的匯聚點。目的結點把自己想接收的分組的標識符預先通過一個觸發器告訴匯聚點,當匯聚點收到分組時,將會根據觸發器把分組轉發該相應的目的結點。Internet間接訪問基礎結構實際上在Internet上構成了一個重疊網路,它需要對等網路的路由系統對它提供相應的支持。

P2P技術從出現到各個領域的應用展開,僅用了幾年的時間。從而證明了P2P技術具有非常廣闊的應用前景。

P2P普及系列之六

隨著P2P應用的蓬勃發展,作為P2P應用中核心問題的發現技術除了遵循技術本身的邏輯以外,也受到某些技術的發展趨勢、需求趨勢的深刻影響。

如上所述,DHT發現技術完全建立在確定性拓撲結構的基礎上,從而表現出對網路中路由的指導性和網路中結點與數據管理的較強控制力。但是,對確定性結構的認識又限制了發現演算法效率的提升。研究分析了目前基於DHT的發現演算法,發現衡量發現演算法的兩個重要參數度數(表示鄰居關系數、路由表的容量)和鏈路長度(發現演算法的平均路徑長度)之間存在漸進曲線的關系。

研究者採用圖論中度數(Degree)和直徑(Diameter)兩個參數研究DHT發現演算法,發現這些DHT發現演算法在度數和直徑之間存在漸進曲線關系,如下圖所示。在N個結點網路中,圖中直觀顯示出當度數為N時,發現演算法的直徑為O(1);當每個結點僅維護一個鄰居時,發現演算法的直徑為O(N)。這是度數和直徑關系的2種極端情況。同時,研究以圖論的理論分析了O(d)的度和O(d)的直徑的演算法是不可能的。

從漸進曲線關系可以看出,如果想獲得更短的路徑長度,必然導致度數的增加;而網路實際連接狀態的變化造成大度數鄰居關系的維護復雜程度增加。另外,研究者證明O(logN)甚至O(logN/loglogN)的平均路徑長度也不能滿足狀態變化劇烈的網路應用的需求。新的發現演算法受到這種折衷關系制約的根本原因在於DHT對網路拓撲結構的確定性認識。

非結構化P2P系統中發現技術一直採用洪泛轉發的方式,與DHT的啟發式發現演算法相比,可靠性差,對網路資源的消耗較大。最新的研究從提高發現演算法的可靠性和尋找隨機圖中的最短路徑兩個方面展開。也就是對重疊網路的重新認識。其中,small world特徵和冪規律證明實際網路的拓撲結構既不是非結構化系統所認識的一個完全隨機圖,也不是DHT發現演算法採用的確定性拓撲結構。

實際網路體現的冪規律分布的含義可以簡單解釋為在網路中有少數結點有較高的「度」,多數結點的「度」較低。度較高的結點同其他結點的聯系比較多,通過它找到待查信息的概率較高。

Small-world[a][b]模型的特性:網路拓撲具有高聚集度和短鏈的特性。在符合small world特性的網路模型中,可以根據結點的聚集度將結點劃分為若干簇(Cluster),在每個簇中至少存在一個度最高的結點為中心結點。大量研究證明了以Gnutella為代表的P2P網路符合small world特徵,也就是網路中存在大量高連通結點,部分結點之間存在「短鏈」現象。

因此,P2P發現演算法中如何縮短路徑長度的問題變成了如何找到這些「短鏈」的問題。尤其是在DHT發現演算法中,如何產生和找到「短鏈」是發現演算法設計的一個新的思路。small world特徵的引入會對P2P發現演算法產生重大影響。

P2P普及系列之七

有DHT演算法由於採用分布式散列函數,所以只適合於准確的查找,如果要支持目前Web上搜索引擎具有的多關鍵字查找的功能,還要引入新的方法。主要的原因在於DHT的工作方式。

基於DHT的P2P系統採用相容散列函數根據精確關鍵詞進行對象的定位與發現。散列函數總是試圖保證生成的散列值均勻隨機分布,結果兩個內容相似度很高但不完全相同的對象被生成了完全不同的散列值,存放到了完全隨機的兩個結點上。因此,DHT可以提供精確匹配查詢,但是支持語義是非常困難的。

目前在DHT基礎上開展帶有語義的資源管理技術的研究還非常少。由於DHT的精確關鍵詞映射的特性決定了無法和信息檢索等領域的研究成果結合,阻礙了基於DHT的P2P系統的大規模應用。

P2P發現技術中最重要的研究成果應該是基於small world理論的非結構化發現演算法和基於DHT的結構化發現演算法。尤其是DHT及其發現技術為資源的組織與查找提供了一種新的方法。

隨著P2P系統實際應用的發展,物理網路中影響路由的一些因素開始影響P2P發現演算法的效率。一方面,實際網路中結點之間體現出較大的差異,即異質性。由於客戶機/伺服器模式在Internet和分布式領域十幾年的應用和大量種類的電子設備的普及,如手提電腦、行動電話或PDA。這些設備在計算能力、存儲空間和電池容量上差別很大。另外,實際網路被路由器和交換機分割成不同的自治區域,體現出嚴密的層次性。

另一方面,網路波動的程度嚴重影響發現演算法的效率。網路波動(Churn、fluctuation of network)包括結點的加入、退出、失敗、遷移、並發加入過程、網路分割等。DHT的發現演算法如Chord、CAN、Koorde等都是考慮網路波動的最差情況下的設計與實現。由於每個結點的度數盡量保持最小,這樣需要響應的成員關系變化的維護可以比較小,從而可以快速恢復網路波動造成的影響。但是每個結點僅有少量路由狀態的代價是發現演算法的高延時,因為每一次查找需要聯系多個結點,在穩定的網路中這種思路是不必要的。

同時,作為一種資源組織與發現技術必然要支持復雜的查詢,如關鍵詞、內容查詢等。盡管信息檢索和數據挖掘領域提供了大量成熟的語義查詢技術,由於DHT精確關鍵詞映射的特性阻礙了DHT在復雜查詢方面的應用。

P2P普及系列之八

Internet作為當今人類社會信息化的標志,其規模正以指數速度高速增長.如今Internet的「面貌」已與其原型ARPANET大相徑庭,依其高度的復雜性,可以將其看作一個由計算機構成的「生態系統」.雖然Internet是人類親手建造的,但卻沒有人能說出這個龐然大物看上去到底是個什麼樣子,運作得如何.Internet拓撲建模研究就是探求在這個看似混亂的網路之中蘊含著哪些還不為我們所知的規律.發現Internet拓撲的內在機制是認識Internet的必然過程,是在更高層次上開發利用Internet的基礎.然而,Internet與生俱來的異構性動態性發展的非集中性以及如今龐大的規模都給拓撲建模帶來巨大挑戰.Internet拓撲建模至今仍然是一個開放性問題,在計算機網路研究中佔有重要地位.

Internet拓撲作為Internet這個自組織系統的「骨骼」,與流量協議共同構成模擬Internet的3個組成部分,即在拓撲網路中節點間執行協議,形成流量.Internet拓撲模型是建立Internet系統模型的基礎,由此而體現的拓撲建模意義也可以說就是Internet建模的意義,即作為一種工具,人們用其來對Internet進行分析預報決策或控制.Internet模型中的拓撲部分刻畫的是Internet在宏觀上的特徵,反映一種總體趨勢,所以其應用也都是在大尺度上展開的.對Internet拓撲模型的需求主要來自以下幾個方面1) 許多新應用或實驗不適合直接應用於Internet,其中一些具有危害性,如蠕蟲病毒在大規模網路上的傳播模擬;(2) 對於一些依賴於網路拓撲的協議(如多播協議),在其研發階段,當前Internet拓撲只能提供一份測試樣本,無法對協議進行全面評估,需要提供多個模擬拓撲環境來進行實驗;(3) 從國家安全形度考慮,需要在線控制網路行為,如美國國防高級研究計劃局(DARPA)的NMS(network modeling and simulation)項目。

隨機網路是由N個頂點構成的圖中,可以存在條邊,我們從中隨機連接M條邊所構成的網路。還有一種生成隨機網路的方法是,給一個概率p,對於中任何一個可能連接,我們都嘗試一遍以概率p的連接。如果我們選擇M = p,這兩種隨機網路模型就可以聯系起來。對於如此簡單的隨機網路模型,其幾何性質的研究卻不是同樣的簡單。隨機網路幾何性質的研究是由Paul,Alfréd Rényi和Béla Bollobás在五十年代到六十年代之間完成的。隨機網路在Internet的拓撲中佔有很重要的位置。

隨機網路參數
描述隨機網路有一些重要的參數。一個節點所擁有的度是該節點與其他節點相關聯的邊數,度是描述網路局部特性的基本參數。網路中並不是所有節點都具有相同的度,系統中節點度的分布情況,可以用分布函數描述,度分布函數反映了網路系統的宏觀統計特徵。理論上利用度分布可以計算出其他表徵全局特性參數的量化數值。

聚集系數是描述與第三個節點連接的一對節點被連接的概率。從連接節點的邊的意義上,若為第i個節點的度,在由k.個近鄰節點構成的子網中,實際存在的邊數E(i)與全部k.個節點完全連接時的總邊數充的比值定義為節點i的聚集系數。

emule很不錯,不過不要用verycd版的,有搜索限制,用官方原版的更好。
bt下載也很好
參考資料:http://www.p2psky.com/tech/article2976.html

㈣ 磁力下載的好處

顯而易見的好處是,整個下載網路的可靠性提高了,每一個節點都是可以被替代的。另一個好處是,審查變得更困難了,因為每次下載的路徑都是不一樣的,而且每個節點都是動態變化的,導致實際上無法追蹤誰在下載。此外,magnet URI只是一個字元串,非常容易傳播,根本無法禁止。
現在BT下載的多款軟體已經更新均採用了最新的BT磁力鏈接(magnet)方式,類似電馿的ED2K鏈接,放棄了需要BT種子才能下載的傳統方式,現在您不需要下載種子文件,只要有磁力鏈接就可以下載BT了。
現在µTorrent等下載工具都有磁力下載,你可以試試。
磁力下載是BT的進化。最早期的BT就是一個種子(seed),它是由一個待發布文件外加一些tracker經過計算得到的一個文件,通過BT的網路吸收營養,最後長成一棵大樹。這個種子需要水壺(tracker伺服器)不斷的澆灌才能成長。Tracker伺服器是早期下載中必須的角色。它工作的過程是這樣的:
Client向tracker發一個HTTP的GET請求,並把它自己的信息放在GET的參數中;這個請求的大致意思是:我是xxx(一個唯一的ID),我想下載yyy文件,我的IP是aaa,我用的埠是bbb。
tracker對所有Client的信息進行維護,當它收到一個請求後,首先把Client的信息記錄下來(如果已經記錄在案,那麼就檢查是否需要更新),然後將一部分參與下載同一個文件(一個Tracker伺服器可能同時維護多個文件的下載)的另一個Client的信息返回給對方。
Client在收到Tracker的響應後,就能獲取其它Client的信息,那麼它就可以根據這些信息,與其它Client建立連接,從它們那裡下載文件片斷。
水壺不總是會工作,偶爾也罷工偷懶,偶爾也會被人惦記上,於是,為了擺脫對水壺的依賴,DHT(Distributed Hash Table,分布式哈希表)和PEX(Peer Exchange,節點信息交換)技術就出現了。
2005年,BT軟體開始引入這種技術,在BT中被稱為DHT協議。DHT是一種分布式存儲方法。DHT的作用是找到那些與本機正在下載(上傳)相同文件的對端主機(Peer),當然,實現這一過程並不依賴 Tracker伺服器。在DHT網路中的每個客戶端負責一個小范圍的路由,並負責存儲一小部分數據,從而實現整個DHT網路的定址和存儲。這種信息獲取方 式保證了整個網路沒有單個的中心,即使一個節點下線,依然可以通過其他節點來獲取文件,因此也就不需要Tracker伺服器來告訴你,其他節點在什麼地方。
雖然DHT解決了去中心化的問題,但要在沒有「中心協調員」(Tracker)的情況下實現高效定址,就要藉助PEX。PEX所提供的功能有點類似於以前的Tracker伺服器,但工作方式卻非常不同。舉個例子,我叫D,我有A需要的東西,但是A不認識我,A只認識B,B只認識C,我只認識C,這樣A就可以通過B--C,從而找到我。現在Tracker伺服器的功能已經可以被DHT+PEX所取代。
磁力鏈接(Magnet URI)出場了。如果說現實中,待發布的文件就是一個人,我們如何找到他?指紋,是的,每個人都有一個獨一無二的指紋,指紋所蘊含的信息,足以找到這個人,而磁力鏈接(Magnet URI)就是描述這個指紋的一段信息,注意,是一段信息而已,僅僅存在於精神世界的信息。所以,沒有人能消滅它!於是我們看到了現在一個全新的BT世界,DHT+PEX網路和 Magnet Link取代了種子和Tracker伺服器,沒有了中心協調員,連根源都沒有了,它實現了真正的人人平等。

㈤ 請問一下,BT下載裡面的DHT技術到底是什麼意思

DHT網路的介紹

DHT網路的介紹

評論:新版Bitcomet發布,DHT加深反盜難度
本文已發表於《電腦商情報•家用電腦》

2005年6月8日,著名的BT下載軟體Bitcomet升級到版本0.59。這次的升級與以往不同,它包含著里程碑式的改變——其開始「支援連入公用DHT網路,實現無Tracker下載」。聯想到此前另一著名BT用戶端Azureus從2.3.0.0,以及BT官方的BitTorrent從Beta 4.1.0開始使用的"trackerless" torrents,BT下載已經進入嶄新的DHT時代。

那麼,DHT究竟為BT帶來了什麼?我們采訪了Bitcomet的作者燦爛微笑,並將在此文中加以剖析。

一、實戰新版Bitcomet

目前國內用戶使用最多的BT用戶端就是Bitcomet,因此我們在這裏也以它為例講解DHT網路的使用。

默認情況下,無須做任何設置BitComet即可自動連接並使用DHT網路。啟動軟體,它會使用和TCP埠號相同的UDP埠進行DHT網路連接。此時,用戶可以在Bitcomet的狀態條上得到DHT網路連接的狀態。

當然,如果要順利使用DHT功能,除了連接DHT網路之外,還需要檔的發布者在製作種子的時候就打開DHT選項。單擊功能表「檔」-「製作Torrent檔」,在彈出的視窗中,就可以調節是否讓種子使用DHT網路,共有三種選擇。

「使用公用DHT網路(推薦)」表示種子同時使用Tracker伺服器和公用DHT網路來尋找用戶,列表框中可以填寫傳統Tracker伺服器位址或者DHT網路節點位址,也可以只填其中一種,也可以什麼都不填。什麼都不填代表僅僅使用DHT網路,自動連接節點;只填寫DHT網路節點代表僅僅使用DHT網路,而且默認連接這幾個填寫的節點;只填寫Tracker代表同時使用Tracker和DHT網路,自動連接Tracker伺服器和節點;同時填寫Tracker和DHT網路節點代表同時使用Tracker和DHT網路,而且默認連接這幾個Tracker伺服器和節點。總之,此種方式下的BT種子將採取盡可能多的方式進行連接,因此建議種子製作者保持這個默認選項,列表框中像往常一樣填寫一兩個普通的Tracker伺服器地址。

另外兩個選擇:「不使用公用DHT網路(優先使用Tracker伺服器)」表示在不能鏈結上Tracker伺服器的情況下使用DHT網路功能,如果能鏈結上Tracker伺服器,就不使用DHT網路功能;「僅從Tracker伺服器獲取用戶資訊(禁用DHT及用戶來源交換)」則代表禁止使用公用DHT網路以及用戶來源交換來尋找用戶,完全禁用DHT網路功能,相當於Azureus軟體的「安全Torrent」。

如果你不想用Bitcomet的DHT網路功能,則可以在「選項」-「高級設置」中去掉「自動添加DHT網路作為備用Tracker」,並在其下的「網路連接」中去掉「允許加入到公用DHT網路」前面的勾。

在Azureus和BitTorrent Beta中製作支援DHT功能的種子,以及使用DHT網路同樣簡單,只不過它們的DHT網路功能都沒有Bitcomet這麼強大。因此Bitcomet可以同時支援DHT網路和Tracker伺服器,而其他兩種軟體同時只能支援這兩者之一。

有關BT之DHT網路的使用,還請參看我的另外一篇文章--實戰BT之DHT網路。

二、DHT技術讓反盜版更加困難?

在多數人眼中,任何P2P技術的改進都與版權的博奕脫不了干係,DHT網路能夠引起如此注目亦是如此。

確實,BT採用DHT網路後,反盜版將變得更加困難。因為在此之前,用戶進行BT下載時,必需首先連接上Tracker伺服器,根據所獲得的正在進行下載和上傳的用戶列表,才能夠進行正常的檔交換。這樣的話,只需封禁掉提供Tracker服務的網站,便可以截斷盜版傳播的途徑。DHT網路則不同,由於此時互聯網中任何一個運行BT用戶端的用戶都可以作為DHT網路中的節點,因此即使封禁掉那些提供Tracker服務的網站,用戶還是能夠通過全球范圍的邏輯DHT網路分享檔,反盜版就無從談起。除非讓世界上的人都不上網,或宣布使用BT軟體為重罪。

不過,在我們對Bitcomet作者的采訪中,他否認了DHT網路是為了更好的傳播盜版。他指出,DHT網路的「主要優勢是穩定性,本來Tracker伺服器人多了很容易宕機,但是DHT網路沒有這個問題,再多的人也沒事」。

這一切還是印證著那句話——「技術從來都是一把雙刃劍」。在批判BT助長盜版氣焰的同時,我們也應該看到,BT也正在日漸成為合法作品傳播的途徑。由於無法承受大流量的訪問,一些免費和共用軟體(如Foobar2000等)開始採用BT方式分發,大型的合法軟體——Linux系統,更是將BT作為主要的分發管道。這種良性的應用可能會為BitTorrent帶來一定的法律保護,使BT下載商業化甚至合法化。

而隨著DHT技術的採用,這種應用還將向縱深發展。雖然它加重了反盜版的難度,但也將使合法分發各種文件更加容易。事物就是如此辯證,但筆者相信P2P軟體一定能夠尋求到一個更加合理的應用。

三、主要優勢在於穩定--采訪Bitcomet作者「燦爛微笑」

Bitcomet 0.59發布笠日,我們有幸通過MSN Messenger采訪了Bitcomet的作者「燦爛微笑」(網名),請他來談一下使用DHT網路後的BT:

問:BT的各個用戶端軟體是從什麼時候開始用DHT的?它與eMule中的Kad有何不同?
答:BitTorrent是5月份開始測試DHT的,Azureus比較早,但糟糕的是它們兩個不互通。eMule中的Kad也是DHT的一種,不過它的實現協議與BT中的並不相同,所以不能互通。 Bitcomet中的DHT與BitTorrent是相容的。

問:為何會出現不互通的現像呢?
答:開發者不同,而且在這個DHT問題上互相之間沒有協調好,所以就成了現在這樣。更糟糕的是Azureus的DHT代碼很長,我卻找不到協議文檔。

問:對一個用戶來說,它獲得一個使用DHT網路的種子後,啟動Bitcomet進行下載,這時軟體是如何連接的?
答:用戶打開軟體以後就連入網路了,啟動使用DHT網路的種子的任務後,Bitcomet就會在DHT網路中搜索。種子上如果有默認節點,那麼可以幫助沒有連入網路的用戶通過那些節點連入網路,如果下載者已經聯入DHT網路了,種子裏填寫的節點就不需要了。Bitcomet內置了2個節點,分別是node://router.bittorrent.com:6881和node://router.bitcomet.net:554。其實任何一個長期線上的用戶都可以做個好節點。

問:如果這兩個長期線上的內置節點出現問題時,是不是就連接不上DHT網路了?
答:不會,這個只是最初的連接用的,如果它們都失效了,那麼1.曾經連上過DHT的用戶保存了其他節點,所以只要不要很長時間不用,應該還可以連上;2.新的用戶可以通過打開帶有DHT節點的種子連入。

問:那麼,DHT網路相比Tracker伺服器來說,有什麼主要的優勢?是不是以前下載時,種子只是同時連接同一台Tracker伺服器的下載者,而現在卻可以搜索整個DHT網路中,得到更多的源?
答:主要優勢是穩定性,本來Tracker伺服器人多了很容易宕機,但是DHT網路沒有這個問題,再多的人也沒事。如果是單個檔的種子,確實也有你說的好處。

問:剛才你說Emule也用DHT,那麼相比之下,BT協議在技術上的優勢是什麼呢?
答:應該說BT的DHT才剛開始,eMule應該測試了有1年左右了,BT的優勢可能還是原來的吧,就是對新的東西分享比較快。

問:你是如何看待BT下載和軟體版權問題的?
答:這個……有難度啊!BT本來只是一種不錯的P2P網路技術,我覺得它的流行也代表了一種市場需要吧,說明通過互聯網分發作品的可能的價值。雖然目前BT有些被濫用了,不過我想這種P2P技術應該能夠尋求到一個更加合理的應用,就像Skype的創始人原來做的是Kazza一樣。

問:再問一個讀者關心的問題,你認為BT傷硬碟麼?
答:軟體剛出來的時候,沒有任何緩沖,完全大范圍隨機地按16K來讀寫硬碟,所以確實對硬碟不好(不過要速度快的時候才有影響)。當然後來就在軟體裡面做緩存了,這個問題就基本不存在了。

問:最後一個問題,你自己經常使用BT下載嗎?
答:我很久沒用了(很出乎意料吧),不過感覺DHT很好玩,現在的樂趣更多是在編寫軟體上了。

DHT網路

DHT的全稱是Distributed Hash Table,即分散式哈希表技術,是一種分散式存儲方法。這種網路不需要中心節點伺服器,而是每個用戶端負責一個小范圍的路由,並負責存儲一小部分資料,從而實現整個DHT網路的定址和存儲。和中心節點伺服器不同,DHT網路中的各節點並不需要維護整個網路的資訊,而是只在節點中存儲其臨近的後繼節點資訊,大幅減少了帶寬的佔用和資源的消耗。DHT網路還在與關鍵字最接近的節點上復制備份冗餘資訊,避免了單一節點失效問題。

形象地,我們可以把整個DHT網路想像成一個大城市,那麼每個用戶端,就好比城市裏各個角落的地圖,上面繪制了附近區域的地形情況,把這些地圖一匯總,城市的全貌就出來了。

而DHT所採用的演演算法中最出名的是Kademlia,eMule早在一年多前就開始採用,Bitcomet、Azureus和BitTorrent只是步其後塵,同樣使用Kademlia演演算法的DHT。不過它們各自的實現協議不盡相同,因此不能相互相容(BitComet與BitTorrent相容,Azureus更像eMule,但與其他都不相容)。

Tracker

Tracker是指運行於伺服器上的一個服務程式,也稱Tracker伺服器。這個程式能夠追蹤到底有多少人同時在下載或上傳同一個檔。用戶端連上Tracker伺服器,就會獲得一個正在下載和上傳的用戶的資訊列表(通常包括IP位址、埠、用戶端ID等資訊),根據這些資訊,BT用戶端會自動連上別的用戶進行下載和上傳。

㈥ 1. P2P的特點是什麼 2. 基於DHT的Chord環的原理是什麼

你好,我們知道區塊鏈網路中多採用P2P網路來進行節點連接和節點之間的消息通信。這里對P2P網路的優缺點做個簡單匯總,
1、網路中節點的可擴展性
在P2P網路中,節點可以隨意的添加和刪除。新的節點添加到網路中,一般通過種子節點接入網路,同時種子節點將新節點廣播給其他節點並進行連接。
2、去中心化
在P2P網路中,不存在客戶端與伺服器這樣的嚴格區分,同時每個節點又充當著客戶端和伺服器。各個節點之間是平等的,只要接入網路,任意節點都能夠將消息通知給網路中的每個節點。

㈦ 什麼叫做P2P

下載——滑鼠輕點幾下即可完成的操作!迅雷、Bitcomet、電騾、風播.......大家使用的下載工具五花八門,但仔細研究這些主流的下載工具,它們都圍繞著一個核心的技術名詞——P2P。如何能夠最快最完整地得到你想下載的資源呢?那麼,你就不得不了解當今最火爆的P2P下載技術。

一、認識P2P

1998年,18歲的肖恩·范寧為了解決室友如何在網上找音樂的問題而開發了Napster軟體,在短時間內就擁有了8000萬的用戶!它帶給我們新的體驗,改變了我們的生活,Napster也理所當然地成為了P2P技術誕生的標志,從此以後,P2P開始了極富生命力的發展。

[圖1]P2P為英文Peer to Peer的簡寫,意為對等網路,簡單地說就是互聯網上的每台計算機都可以作為一個節點來與其他節點直接進行通訊,它又可以分為少量依賴Server、完全依賴Server和完全不依賴Server三種方式。P2P讓人們通過互聯網直接交互,每台計算機既充當著伺服器又充當著客戶端的角色。使用P2P模式進行下載可在下載同一文件的同時將已下載的部分數據傳遞給其它的計算機,將上傳的開銷分攤到各個下載者那裡,這樣「下載人數越多,下載速度越快」(P2P下載原理如圖1所示)。

P2P下載最大的優點是下載速度不再受伺服器帶寬及下載人數的限制,它充分利用了傳統下載方式空閑的上傳帶寬。但P2P下載也有一些缺點,如:長期霸佔帶寬資源可導致內網通信中斷,如果「種子」過期則無法下載。

二、主流的P2P軟體

目前,眾多P2P下載工具已經給用戶帶來了各種便利,比較有特色的包括:Bitcomet、迅雷、Emule(電騾)、風播等。下面就這幾種軟體進行深入的比較,以便大家能夠對P2P 技術有更深刻的認識。

Bitcomet:BT下載的全稱是Bit Torrent,而Bitcomet是美國人Bram cohen 在2001年開發的一個開源和開放協議的下載工具,其技術特點是簡單有效,設計十分精巧,而且比起老前輩 Napster、Kazaa 、Gnutella 等來,由於有了MFTP多源下載技術,速度提升十分快。

迅雷:它2004年出現,開始是與Flashget 網際快車類似的下載工具,由於迅雷兼容了傳統的FTP和HTTP下載技術,同時支持P2SP 技術,所以下載速率得到不少提升。

Emule(電騾):它實際是源於電驢EDonkey,兩者的協議基本相同,只不過後來由不同的開源組織進行維護。電騾最大的優點是可以支持軟體內搜索,而且可以搜索到的資源很多。

風播:它是2006年出現的一個新興的P2P視頻點播軟體,不僅僅支持常規下載,而且還支持在下載的同時觀看影視節目。所以我們不必等待幾小時到影片下載完畢再觀看。最重要的是風播兼容BT協議和Torrent種子文件,所以節目源非常豐富。

三、下載技術大比武

1.如何找到下載文件

P2P技術的實現原理其實基本是一樣的,打個比方,我要和某個不認識的朋友通信,但我不知道對方的聯系方式,最簡單的方式就是我和對方都在一個我們共同知道的地方留下聯系方式。在P2P網路中,這個共同知道的地方就是目錄伺服器。每個客戶端首先需要登錄到目錄伺服器上,在登錄的時候客戶端需要將自己擁有的資源向伺服器匯報一下,這樣當其他客戶端希望下載某個資源時,只需要向伺服器查詢一下擁有該資源的客戶端IP地址和埠,然後直接聯系客戶端即可。在BT和風播中,目錄伺服器被稱為Tracker;在電騾中,目錄伺服器被稱為電騾伺服器,迅雷也有類似的中央控制伺服器。

當前,已經出現了純P2P技術,就是無需目錄伺服器的DHT動態哈希表技術,BT、風播、電騾均支持。DHT技術實際上也是一種特殊的目錄伺服器,只不過把中央目錄伺服器變為很多小目錄伺服器。由於細節比較復雜,就不在這里繼續討論了。

2.如何讓下載的人越多速度越快

P2P下載速度快的秘密就是MFTP(多源下載)技術,可以將下載速率提高至少10倍。MFTP技術的核心有三點:一是要將資源文件分割成等長的分片,這樣便於標記和處理;二是客戶端之間必須互相了解對方都有哪些文件分片,這樣便於互通有無,達到邊下載邊上傳的目的;三是客戶端收到一個分片後,必須有機制可以校驗該分片是正確的,否則如果一個分片錯誤會導致整個資源文件損壞。

BT和風播採用的分片是可以調整的,是從64KB到8MB不等,一般在512KB至1MB之間,電騾是9.28MB。迅雷也有類似的分片技術,但是不支持在下載的同時上傳。分片大小對下載效率還是有影響的,一般來說,分片大了,客戶端之間互相交互所消耗的流量也會比較小,因為客戶端互相交互分片信息也是需要數據包的,但是分片大了,會導致傳輸效率下降。

有些用戶使用BT和風播的時候,不明白Torrent 種子文件是什麼,其實種子文件記錄的信息很大一部分就是每個文件分片的校驗和。而電騾的文件校驗和又在哪裡呢?大家可以打開電騾的Temp目錄,裡面有一個後綴名為part.met的文件,裡面就包含了校驗和。

3.如何搜索到下載資源

這里所說的資源搜索其實主要是資源的展示方面,也就是平時我們如何找到我們想下載的資源文件。
電騾是依靠伺服器和客戶端兩種搜索方式,電騾依靠強制共享,將每個騾友的部分硬碟目錄及文件共享出去,在電騾啟動時候,它會將我們電腦的共享目錄上報到電騾伺服器上,這樣其他騾友就可以直接到伺服器上進行搜索了。

BT、迅雷、風播基本上是依靠到Web伺服器上搜索資源文件或檢索資源文件,在BT和風播中,打開種子文件即可下載。而迅雷是保存了FTP或HTTP的原始鏈接,打開鏈接以後啟動下載功能。

4.壞人演算法與好人演算法

有朋友問,為什麼我用電騾下載某個文件即使源很多,下載速度也特別慢呢?這就要從P2P分享率談起,分享率是P2P世界的一個非常重要的指標,分享率指上傳和下載的比值。

不同的P2P技術對於解決分享率有不同的處理方式。大致可以分為兩種:壞人演算法和好人演算法。所謂壞人演算法和好人演算法其實是一種假設,壞人演算法假定所有的客戶端都是自私的,但是為了大家都來貢獻自己的力量,制定了一個規則:如果不共享,就要遭受一定的懲罰;好人演算法默認每個客戶端都會按照自己能力盡量上傳。

在電騾的網路中,採用了一種信用機制,當你上傳流量很多的時候,你就獲得比較高的信用值,從其他人那裡獲取流量的可能性就加大。每個電騾會維護一個服務隊列,當我向別人請求數據時候,別人會根據我的信用等級進行排隊,信用等級越低,排隊越靠後。因此,老電騾們由於上傳多,積分也高,下載速度就比較快;而新手由於上傳少,積分低,下載速度也相對比較慢。

BT採用的是壞人演算法,客戶端定時會計算對方是否給自己流量,如果對方不給我流量,我會將對方阻塞掉。這樣迫使對方必須提供一定的上傳帶寬。

迅雷採用的主要還是好人演算法,每個客戶端不可以控制自己不向別人貢獻流量。風播採用好人演算法和壞人演算法相結合的方式。

5.調度演算法

調度演算法是所有P2P技術的核心,不同的廠商有不同的實現方式,一般都是技術機密。對於BT、電騾、迅雷來說,一般採用亂序下載演算法,這是迅速利用客戶端上傳帶寬比較有效的方式。風播為了實行在線播放,調度演算法完全不同於其他P2P軟體,是一種順序和亂序的結合演算法。

假設做種的Seed 有1、2、3、4、5 五個分片,如果按照傳統的HTTP或FTP下載方式,Peer1和Peer2 向Seed 都從文件頭部的分片1開始請求,那麼極端的後果就是P2P無法實行,因為Peer1和Peer2還是把壓力加在Seed上(原理如圖2所示)。

但是如果採用亂序下載就不一樣了,Peer1 從Seed獲取分片1,Peer2從Seed獲取分片2,它們相互就可以從對方獲取自己沒有的數據,P2P 方式就很容易發揮作用(原理如圖3所示)。

對於P2P下載,亂序方式解決得很好。但是對於流媒體,必須要求文件分片是順序獲取,風播採用了一種亂序和順序相結合的方式來解決該問題,也就是整個文件的獲取方式,基本上是順序方式獲取,但是具體每個分片,又採用亂序方式獲取,這樣就取得了下載速度和順序觀看影片的平衡。

㈧ 求助NS2下如何模擬P2P裡面的chord演算法,現在十分迷茫

P2P的一個常見問題是如何高效的定位節點,也就是說,一個節點怎樣高效的知道在網路中的哪個節點包含它所尋找的數據,如下圖:

對此,有三種比較典型的來解決這個問題。

Napster:使用一個中心伺服器接收所有的查詢,伺服器告知去哪下載其所需要的數據。存在的問題是中心伺服器單點失效導致整個網路癱瘓。

Gnutella:使用消息洪泛(message
flooding)來定位數據。一個消息被發到系統內每一個節點,直到找到其需要的數據為止。當然,使用生存時間(TTL)來限制網路內轉發消息的數量。存在的問題是消息數與節點數成線性關系,導致網路負載較重。

SN型:現在大多數採用所謂超級節點(Super
Node),SN保存網路中節點的索引信息,這一點和中心伺服器類型一樣,但是網內有多個SN,其索引信息會在這些SN中進行傳播,所以整個系統的崩潰幾率就會小很多。盡管如此,網路還是有崩潰的可能。

現在的研究結果中,Chord、Pastry、CAN和Tapestry等常用於構建結構化P2P的分布式哈希表系統(Distributed Hash
Table,DHT)。

DHT的主要思想是:首先,每條文件索引被表示成一個(K,
V)對,K稱為關鍵字,可以是文件名(或文件的其他描述信息)的哈希值,V是實際存儲文件的節點的IP地址(或節點的其他描述信息)。所有的文件索引條目(即所有的(K,
V)對)組成一張大的文件索引哈希表,只要輸入目標文件的K值,就可以從這張表中查出所有存儲該文件的節點地址。然後,再將上面的大文件哈希表分割成很多局部小塊,按照特定的規則把這些小塊的局部哈希表分布到系統中的所有參與節點上,使得每個節點負責維護其中的一塊。這樣,節點查詢文件時,只要把查詢報文路由到相應的節點即可(該節點維護的哈希表分塊中含有要查找的(K,V)對)。

這里介紹的Chord演算法就是解決網路內節點定位問題的一種P2P協議。它通過多個節點跳轉找到我們所查找的資源:

我們先看看它是如何進行的,隨後再總結其特點和操作特徵,以及一些實現。

1.Chord裡面的基本要素

節點ID:NID(node
identifier),表示一個物理機器,m位的一個數字(m要足夠大以保證不同節點的NID相同的幾率小的可以忽略不計),由節點機器的IP地址通過哈希操作得到。

資源ID;KID(key
identifiers),原為鍵ID,其實際表示一個資源(因為Key與一個資源value哈希綁定),故在本文中統稱資源ID(這樣比較直觀),m位的一個數字(m要足夠大以保證不同資源的KID相同的幾率小的可以忽略不計),由Key通過哈希操作得到。

常哈希函數:較之一般哈希函數,節點的加入和離開對整個系統影響最小,另外還有一些優勢在此不贅述。在Chord中使用SHA-1來進行常哈希計算。

Chord環:Chord
Ring,NID和KID被分配到一個大小為2^m的環上,用於資源分配(給某一個節點)和節點分布,以及資源定位(註:在這個環上的ID為0--2^m-1)。首先我們說資源分配,資源被分配到NID>=KID的節點上,這個節點成為k的後繼節點,是環上從k起順時針方向的第一個節點,記為successor(k)。而節點分布則順時針將節點N由大到小放在這個環上。例如下邊這幅圖:

這是一個m=6的環,其中有10個節點,5個資源,K10的後繼節點為N14,也就是說K10被分配給了N14。

2.Chord資源定位(Key
Location)

資源定位是Chord協議的核心功能,為了便於理解,我們先介紹一個簡單的資源定位方法,然後再介紹這個可伸縮的資源定位方法。

簡單方法:

考慮如下場景:節點n尋找KID為id的資源,此時節點n首先問詢是否在下一個節點上(find_successor),這要看資源k的KID是否在該節點NID和下一個節點的NID之間,若在則說明資源k被分配給了下一個節點,若不在則在下一個節點上發起同樣的查詢,問詢下下一個點是否有該資源。如此迭代下去,用偽代碼定義這個操作:

n.find_successor(id)
if (id є (n; successor])
return
successor;
else
// 將查詢沿著環進行下去
return
successor.find_successor(id);

例如下圖:

節點N8尋找K54這個資源,N8.find_successor(K54)發現下一個節點N14不合符54є (8;
14],於是N14發起同樣的搜索,然後一跳一跳後直到節點N56滿足54є (51; 56],於是得知資源K54在N56這個節點上。

在一個有N個節點的環上,這樣的查找方法顯然在最壞的時候要查找N次才能得到所需資源的位置,查找次數與節點個數成線性關系。顯然,這樣的效率不給力,所以Chord使用了可伸縮資源定位的方式來提高效率。

可伸縮方法:

在每個節點N上都維護了最多有m項(m為ID的位數)的路由表(稱為finger
table),用來定位資源。這個表的第i項是該節點的後繼節位置,至少包含到2^(i-1)後的位置。還是延續上邊的例子:

節點N8的路由表中,左邊那一欄包含了N8+1到N8+32(2^5-1)的位置,右邊那一欄每個位置對應的實際存在的節點。比如N8+1-N14,表示在N8後的第一個位置上的資源由N14來負責。這樣記錄有以下優勢:

每個節點只包含全網中一小部分節點的信息。

每個節點對於臨近節點負責的位置知道的更多,比如N8節點對於N14負責的位置知道3處,而對N21負責的位置只知道1處。

路由表通常不包含直接找到後繼節點的信息,往往需要詢問其他節點來完成。

當在某個節點上查找資源時,首先判斷其後繼節點是不是就持有該資源,若沒有則直接從該節點的路由表從最遠處開始查找,看哪一項離持有資源的節點最近(發現後跳轉),若沒有則說明本節點自身就有要尋找的資源。如此迭代下去。

例如:節點N8尋找K54這個資源

首先,在N8上查找後繼節點為N14,發現K54並不符合54є (8;
14]的要求,那麼直接在N8的路由表上查找符合這個要求的表項(由遠及近查找),此時N8的路由表為:

我們發現路由表中最遠的一項N8+32--N42滿足42є (8;
54],則說明N42這個點離持有K54這個資源的節點最近(因為N42在該路由表中離N8這個節點最遠),那麼此時跳到N42這個節點上繼續查找。N42的後繼節點為N48,不符合54є
(42; 48]的要求,說明N48不持有資源54,此時,開始在N42的路由表上查找:

N42節點的路由表為:

我們由遠及近開始查找,發現N42+8--N51滿足51є (42;
54],則說明N51這個點離持有K54這個資源的節點最近,那麼此時跳到N51這個節點上繼續查找。N51節點的後繼節點為N56,符合54є (51;
56],此時定位完成,N56持有資源節點K54。

用偽代碼表示:

// 查詢節點n後繼節點。
n.find_successor(id)
if (id є (n;
successor])
return successor;
else n0 =
closest_preceding_node(id);
return n0.find successor(id);

// search
the local table for the highest
// predecessor of
id
n.closest_preceding_node(id)
for i = m downto 1
if (finger[i] є
(n; id))
return finger[i];
return n;

經證明,最多經過O(log N)次查找就能找到一個資源。

3.Chord的節點加入

Chord通過在每個節點的後台周期性的進行stabilization詢問後繼節點的前序節點是不是自己來更新後繼節點以及路由表中的項。

有三個操作:
join(n0) :n加入一個Chord環,已知其中有一個節點n0.

Stabilize():
n查詢其後繼節點的前序節點P來決定P是否應該是n的後續節點,也就是說當p不是n本身時,說明p是新加入的,此時將n的後繼節點設置為p。

Notify(n0): n0通知n它的存在,若此時n沒有前序節點或,n0比n現有的前序節點更加靠近n,則n將其設置為前序節點。

Fix_fingers(): 修改路由表。

具體的,例如:

這是原先的結構:

現在N26節點要加入系統,首先它指向其後繼N32,然後通知N32,N32接到通知後將N26標記為它的前序節點(predecessor)。如下圖:

然後N26修改路由表,如下圖:

下一次N21運行stabilize()詢問其後繼節點N32的前序節點是不是還是自己,此時發現N32的前序節點已經是N26:

於是N21就將後繼節點修改為N26,並通知N26自己已經將其設置為後繼節點,N26接到通知後將N21設置為自己的前序節點。

這個加入操作會帶來兩方面的影響:

1)正確性方面:當一個節點加入系統,而一個查找發生在stabilization結束前,那麼此時系統會有三個狀態:

A.所有後繼指針和路由表項都正確時:對正確性沒有影響。

B.後繼指針正確但表項不正確:查找結果正確,但速度稍慢(在目標節點和目標節點的後繼處加入非常多個節點時)。如下圖:

C.後繼指針和路由表項都不正確:此時查找失敗,Chord上層的軟體會發現數據查找失敗,在一段時間後會進行重試。

總結一下:節點加入對數據查找沒有影響。

2)效率方面:當stabilization完成時,對查找效率的影響不會超過O(log N)
的時間。當stabilization未完成時,在目標節點和目標節點的後繼處加入非常多個節點時才會有性能影響。可以證明,只要路由表調整速度快於網路節點數量加倍的速度,性能就不受影響。

4.Chord節點失敗的處理

我們可以看出,Chord依賴後繼指針的正確性以保證整個網路的正確性。但如圖,若N14, N21,
N32同時失效,那麼N8是不會知道N38是它新的後繼節點。為了防止這樣的情況,每個節點都包含一個大小為r的後繼節點列表,一個後續節點失效了就依次嘗試列表中的其他後繼節點。可以證明,在失效幾率為1/2的網路中,尋找後繼的時間為O(log
N) 。

5.Chord的特徵和應用

特徵:去中心化,高可用度,高伸縮性,負載平衡,命名靈活。

應用:全球文件系統、命名服務、資料庫請求處理、互聯網級別的數據結構、通信服務、事件通知、文件共享。

http://blog.csdn.net/foreverdengwei/article/details/6179438

㈨ 什麼是ipfs

星際文件系統IPFS(InterPlanetary File System)是一個面向全球的、點對點的分布式版本文件系統目標是為了補充甚至是取代目前統治互聯網的超文本傳輸協議(HTTP),將所有具有相同文件系統的計算設備連接在一起。它的文件一直都可以使用,您可以瀏覽相關電影等。
個人覺得就是想試試最好託管,因為IPFS挖礦主要因素是寬頻和位置,進行搶單。家用礦機其實根本搶不到單子,自然沒什麼收益。目前ipfs還沒上主網,所以現在的礦機基本上都在推廣階段,性價比是比較好的時間段。ipfs上線主網之後的未來收益還是值得期待的。
不知道說礦機名字會不會有廣告嫌疑,反正有個叫「壹五叄IPFS礦機」的經過比較之後還不錯,保證本津、挖礦策略智能(ipfs是需要調整挖礦策略的)
最近還和這個團隊的人聊了聊,覺得還是靠譜,年級都不大,所以理想化、具有精神吧

㈩ APP宣稱自己利用區塊鏈技術而發展出來,什麼是真正的區塊鏈技術

區域塊鏈一詞比較抽象,理解難度較大,第一次聽到這個詞語之後,許多人感覺晦澀難懂,其實簡單點來說,雖然是一個分布賬單,將不同的交易,用不同的賬單呈現出來,這就是區塊鏈,當然這些都是我個人看法。

真正的區塊鏈要懂得方便迅速,現在社會發展較快,人們已經適應快節奏的生活,所以區塊鏈也要投其所好,知道人們想要什麼東西。

所以區塊鏈就我們個人而言,它是一個比較抽象的名詞,但是隨著時間的推移和發展,這個名字會被大家越來越熟悉,慢慢的也會走入我們的生活。當然區塊鏈這個名詞會越來越完善,同時也會越來越清晰,不會像現在這么抽象,當然隨著時間的發展,他的真面目也會揭開,變得不再那麼神秘,同時走進我們大眾的視野,這些對於區塊鏈的發展都是至關重要的。

熱點內容
世界區塊鏈大有關plustoken 發布:2025-09-15 23:36:23 瀏覽:877
以太幣eth充值提現賬單交易 發布:2025-09-15 23:32:07 瀏覽:416
ETH新人教程 發布:2025-09-15 23:28:22 瀏覽:936
怎樣從礦池裡把幣轉出來 發布:2025-09-15 23:21:51 瀏覽:44
doge上線美國最大 發布:2025-09-15 23:20:02 瀏覽:666
ctc區塊鏈是真是假 發布:2025-09-15 23:15:52 瀏覽:441
eth算 發布:2025-09-15 22:48:02 瀏覽:977
平安銀行的區塊鏈 發布:2025-09-15 22:21:47 瀏覽:805
超級比特幣礦機最新 發布:2025-09-15 22:20:34 瀏覽:297
礦幣場景 發布:2025-09-15 22:06:45 瀏覽:975