對等網絡是一種網絡結構的思想。它與目前網絡中佔據主導地位的客戶端/服務器(Client/Server)結構(也就是WWW所採用的結構方式)的一個本質區別是,整個網絡結構中不存在中心節點(或中心服務器)。在P2P結構中,每個節點(peer)大都同時具備信息消費者、信息提供者和信息通信等三方面的功能。從計算模式上來講,P2P打破了傳統的Client/Server (C/S)模式,在網絡中的每一個節點的地位都是對等的。每一個節點既充當服務器,爲其餘節點提供服務,同時也享用其餘節點提供的服務。
1.BitTorrent介紹
BitTorrent(比特洪流)就是咱們常說的BT,它使用的就是P2P通訊方式。緩存
它將文件劃分爲256KB的chunk(塊)服務器
在節點加入torrent(索引):沒有chunk,可是會逐漸積累網絡
向tracker註冊以得到節點清單,與某些節點創建鏈接架構
在下載的同時,節點須要向其它節點上傳chunk分佈式
其中節點可能加入或離開,不會一直在線。計算機網絡
2.磁力連接
磁力連接,簡單的說(Magnet URI scheme):相似下面這樣以「magnet:?xt=urn:btih:」開頭的字符串,就是一條磁力連接;確切的說:「磁力連接」的主要做用是識別【可以經過「點對點技術(即:P2P)」下載的文件】。這種連接是經過不一樣文件內容的Hash結果生成一個純文本的「數字指紋」,來識別文件的。而不是基於文件的位置或者名稱。翻譯
衆所周知,
BT下載速度不夠穩定,當中斷種時則沒法完整下載。可是,這還不是最嚴重的。從2009年開始,BT下載遭遇到了「更大的困難」——不少的BT服務器被關,不只不少種子文件沒法找到,BT Tracker服務器也斷開解析工做,這就使得BT下載成爲很大的難題。磁力連接很好地解決了這個問題。磁力連接的問世與大行其道,標誌着BT 1.0時代已通過去,BT 2.0 時代已經到來。
深入理解磁力連接
簡單地說,磁力連接是一種特殊連接,可是它與傳統基於文件的位置或名稱的普通連接(如http://xxx)不同,它只是經過不一樣文件內容的Hash結果生成一個純文本的「數字指紋」,並用它來識別文件。它相似於生活消費品包裝上常見的條碼,不一樣的是這個「數字指紋」能夠被任何人從任何文件上生成,這也就註定了磁力連接不須要任何「中心機構」的支持(例如:BT Tracker服務器),且識別準確度極高。所以任何人均可以生成一個Magnet 連接並確保經過該連接下載的文件準確無誤。
3.P2P搜索信息
P2P的索引:信息到節點位置(IP地址+端口號)的映射設計
文件共享(電驢):索引
即時消息(QQ):資源
4.集中式索引
Napster最先採用這種設計:一切都要通過中央,一切決定都需中央制定。
5.洪泛式查詢
洪範式查詢=Query flooding
採用徹底分佈式架構,每一個節點對它共享的文件進行索引,且只對它共享的文件進行索引。
查詢消息經過已有的TCP鏈接發送,收到消息的節點若無其所查詢的內容,則轉發查詢消息,
若是查詢命中則利用反向路徑發回給查詢節點。
6.層次式覆蓋網絡
它是介於集中式索引和洪範式查詢之間的一種方法。
每一個節點或者是一個超級節點,或者被分配到一個超級節點。
超級節點負責跟蹤子節點的內容。
這種結構屬於小區域集中管理,大區域分佈管理。