日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

详解P2P技术

發(fā)布時間:2023/12/19 综合教程 28 生活家
生活随笔 收集整理的這篇文章主要介紹了 详解P2P技术 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

P2P = Peer to Peer

現(xiàn)在P2P也有很多不同架構(gòu),以下是常見的一些P2P架構(gòu)

純P2P架構(gòu)

  • 沒有總是在線的服務(wù)器
  • 任意端系統(tǒng)之間直接通信
  • 對等方之間可以間斷連接并可 以改變IP地址

例子:

  • 文件分發(fā)

  • 流媒體

  • VoIP

復(fù)雜應(yīng)用純P2P無法實現(xiàn)


P2P: 集中式目錄

Napster公司首先設(shè)計,由中央集中服務(wù)器管理

  1. 當(dāng)對等方啟動時,它通知目錄 服務(wù)器以下信息
  • IP地址

  • 可供共享的對象名稱

  1. Alice查詢文件“Hey Jude” 3) Alice 向Bob請求文件

通過架構(gòu)我們可以看到一些問題

集中式目錄問題

  • 單點故障
  • 性能瓶頸
  • 侵犯版權(quán)

文件傳輸是分散的, 但是定位內(nèi)容的過 程是高度集中的


Gnutella(使用洪泛法查詢)

類似于廣播,范圍有限,發(fā)出請求后,能響應(yīng)的服務(wù)器回應(yīng)

  • 全分布

  • 沒有集中式服務(wù)器

  • 公共域協(xié)議

  • 許多Gnutella客戶機實現(xiàn)Gnutella協(xié)議

覆蓋網(wǎng)絡(luò):

  • 如果對等方X和Y維護了一條TCP連接,則說X和Y之間有一條邊

  • 所有活躍的對等方和邊組成覆蓋網(wǎng)絡(luò)

  • 邊不是物理通信鏈路

  • 給定對等方連接的覆蓋網(wǎng)絡(luò)路徑中的節(jié)點少于10個,即TTL小于10

查詢報文在已有的TCP連接上發(fā)送

對等方轉(zhuǎn)發(fā)報文

QueryHit 報文按反向路徑傳送

Gnutella: 加入對等方

  • 加入對等方X必須發(fā)現(xiàn)在Gnutella網(wǎng)絡(luò)中的其他對等方:使用對等方列表 。

  • X試圖與該列表上的對等方建立一條TCP連接,直到與Y創(chuàng)建一條連接。

  • 向Y發(fā)送一個Ping報文;Y轉(zhuǎn)發(fā)該Ping報文。

  • 所有的對等方接收Ping報文并響應(yīng)一個Pong報 文。

  • X接收到許多Pong報文。然后能同某些其他對等 方建立TCP連接。

Gnutella: 對等方離開

  • 主動離開:離開接點的所有對等方都會刷新自身 的激活對等方列表,并開始與列表中的新的對等 方建立連接

  • 斷網(wǎng):發(fā)送信息的時候?qū)Φ确經(jīng)]有響應(yīng),則表明對 等方離開,節(jié)點刷新自身的激活對等方列表,并開 始與列表中的新的對等方建立連接


KaZaA

純P2P的改進,超級節(jié)點技術(shù)

  • 每個對等方要不被指派 為組長,要不被指派給一個組長

    • 對等方和組長之間建立 TCP連接

    • 組長之間建立TCP連接

  • 組長維護它的子對等方 共享的內(nèi)容

過程:

  • 每個文件有文件的散列碼標(biāo)識
  • 客戶機送向組長發(fā)送關(guān)鍵詞的查詢
  • 組長響應(yīng)匹配
  • 逐項匹配:
    • 元數(shù)據(jù)
    • 散列值
    • IP地址
  • 如果組長轉(zhuǎn)發(fā)查詢給其他組長則其他組長響應(yīng)匹 配
  • 客戶端選擇要下載的文件

特點:

  • 請求排隊:限制對等方并行上載數(shù)量,新的請求進行排隊。

  • 激勵優(yōu)先權(quán):根據(jù)不同的上載下載比例優(yōu)先服務(wù)貢獻大者。

  • 并行下載:將一個文件分成若干段,從多個對等方并行下載。


P2P文件分發(fā):BitTorrent

  • BitTorrent是一種用于文件分發(fā)的流行P2P協(xié)議。

  • 參與一個特定文件分發(fā)的所有對等方的集合被稱為一個洪流 (torrent)。

  • 一個洪流中的對等方彼此下載等長度的文件塊(chunk),典型 塊長度為256KB。

追蹤器tracker服務(wù)器

P2P文件分發(fā)流程

  • 對等方加入 torrent:
    • 沒有文件塊,但會隨著時間流逝從其它對等方處累積文件 塊
    • 在tracker處注冊,取得對等方列表,連到所有對等方的 一個子集(鄰居)
  • 在下載的同時給其它對等方上傳文件塊
  • 對等方可能改變和其交換文件塊的對象
  • 對等方會不斷進入或者離開
  • 一旦某對等方下載完了整個文件,它可以離開(自 私)或者繼續(xù)留在torrent系統(tǒng)里(無私)

BitTorrent:請求、發(fā)送

請求文件塊

  • 在任何給定的時刻,不同的對等方擁有不同的文件塊子集

  • 每個對等方會周期性的詢 問其它每個它連接的對等方當(dāng)前所擁有的文件塊列 表

  • 對等方將請求下載最稀缺的文件塊

**發(fā)送文件塊: tit-for-**tat(一報還一報)

  • Alice發(fā)送文件塊的對象是 所有鄰居中向自己發(fā)送速率 最快的4個

    • 其它鄰居被阻塞

    • 每10秒重新計算速率

  • 每30秒,隨機選擇一個其 他鄰居,發(fā)送文件塊


DHT(分布式Hash表)

DHT: 一個分布式的P2P數(shù)據(jù)庫

  • 數(shù)據(jù)庫由許多(key,value)((鍵, 值)) 對構(gòu)成。例如:
    • key: 社保號; value: 人名
    • key: 電影名稱; value: IP地址
  • 所有(key, value) 對被分發(fā)到成千上萬的對等方用戶群中
  • 一個對等方利用key來查詢DHT
  • DHT返回與之匹配的value
  • 對等方還可以插入(key, value)對

怎樣把鍵值分配給對等方?

核心問題:

  • 分配 (key, value) 對給各對等方

基本思想:

  • 把每個key轉(zhuǎn)化成一個整數(shù)
  • 給每個對等方分配一個整數(shù)標(biāo)識符
  • 把 (key,value) 對分配給標(biāo)識符離key最近的 那個對等方

DHT 標(biāo)識符

  • 給每個對等方分配一個[0,2n-1]之間的整數(shù)標(biāo)識符,n為某給定值.
    • 每個標(biāo)識符由 n 比特構(gòu)成.
  • 需要每個key也在同樣的范圍內(nèi)
  • 為得到整數(shù)key,將原key做hash
    • 例如*,* key = hash(“Led Zeppelin IV”)
    • 這就是為什么叫做分布式hash表的原因

key分配給對等方

規(guī)則:把key分配給具有最鄰近ID的對等方.

  • 為方便起見: 最臨近被定義為該key的直接后繼 (immediate successor )
  • 例如:
  • n=4; peers: 1,3,4,5,8,10,12,14;
  • key = 13, then successor peer = 14
  • key = 15, then successor peer = 1

環(huán)形DHT

  • 每個對等方僅和其直接后繼和直接前任( predecessor)聯(lián)系.

  • “覆蓋網(wǎng)絡(luò)”

當(dāng)有N個對等方時,為找 到負(fù)責(zé)的鍵,發(fā)送消息數(shù) 量的負(fù)責(zé)度是O(N)

帶捷徑的環(huán)形DHT

  • 每個對等方知曉直接前任、后繼以及捷徑方的IP

  • 本例中,將消息數(shù)從6減至2

  • DHT可以設(shè)計為每個對等方的鄰居和每個請求的報文數(shù)均為O(log N)

對等方擾動

  • 對等方可能進入或者離去
  • 對等方需要知曉它后面兩個后繼的地址
  • 每個對等方周期性的ping這兩個后繼以 檢查它們的存活性
  • 如果直接后繼離開了,則選擇它的下一 個后繼作為直接后繼

例如: peer 5離開

  • peer 4檢測到5的離開,將8當(dāng)作其直接后繼,并且問 8它的直接后繼是誰(10),然后將10當(dāng)作其第二后繼。
  • 如果編號為13的peer要加入怎么辦? 后續(xù)還有很多問題,篇幅有限,感興趣可以下來了解。

希望你能通過這篇文章了解到現(xiàn)在網(wǎng)絡(luò)上常見的幾個P2P的模式。

總結(jié)

以上是生活随笔為你收集整理的详解P2P技术的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。