1. 程式人生 > >學習筆記2.6——P2P應用

學習筆記2.6——P2P應用

P2P應用

P2P結構的特點

    

  1. 沒有伺服器
  2. 任意端系統間直接通訊
  3. 有很大的動態性和隨機性

           *節點階段性接入Internet

           *節點可能更換IP地址

檔案分發

C/S架構與P2P架構在檔案分發上的效能對比

說明:1)由於核心網路的頻寬充足,因此效能瓶頸主要在伺服器接入核心網路和客戶端接入核心網路。

           2)伺服器只向Internet上傳,每個節點可能下載或上傳檔案。

           3)圖中節點表示上傳,下載的方向標錯了

C/S架構:

             伺服器序列地傳送N個副本,所需時間為:NF/us

;——這個時間隨N線性增長

             客戶機i的下載時間為:F/di

             完成分發總時間:max{NF/us ;F/min(di)}

P2P:

             伺服器必須傳送一個副本給Internet,時間為:F/us

             客戶機i的下載時間為:F/di;

             總共需要下載NF位元

             最快的可能上傳速率(伺服器和所有節點同時上傳):us+∑ui

             上傳N個副本的總時間為:NF/(us+∑ui)

             完成分發總時間:max{F/us ;F/min(di);NF/(us+∑ui)}

BitTorrent協議

peer:節點

chunk:交換檔案塊

torrent:交換(或共享)同一個檔案的檔案塊的節點所形成的節點組

tracker:跟蹤參與torrent的節點

1)當Alice新加入網路時,向tracker查詢,獲取torrent節點列表,與其他節點建立TCP連線,進而可以與他們交換檔案塊

2)檔案被劃為256KB的chunk

3)節點加入torrent時

  • 沒有chunk,但會逐漸積累
  • 向tracker註冊以獲得節點清單,與某些節點(“鄰居”)建立連線

4)下載的同時,節點還需向其他節點上傳chunk

5)節點動態地加入和離開,且在獲得完整檔案後可以選擇離開或留下

6)獲取chunk

  • 給定任意時刻,不同的節點持有檔案的不同chunk集合
  • 節點定期查詢每個鄰居所持有地chunk列表
  • 節點發送請求,請求獲取缺失的chunk(稀缺優先原則,例:你所需要的一些chunk只有3個節點能夠提供,而另一些chunk有100個chunk可以提供,那麼優先獲取提供節點少的chunk,以防節點全部離開後無法獲得)

7)傳送chunk(一報還一報原則)

  • Alice向4個鄰居傳送chunk:正向它傳送的chunk,速率最快地4個(每10s重新評估top4)
  • 每30s隨機選擇一個其他節點,向他傳送chunk(新加入的節點可能進入top4s)

8)特點:上傳速率高,則能夠找到更好的交易夥伴,從而更快的獲取檔案

9)BT的危害:

  • 損害硬碟
  • 助長病毒傳播
  • 侵犯版權

索引技術

1:索引:資訊到節點位置(IP地址+埠號)的對映

2:檔案共享(如電驢)

  • 利用索引動態跟蹤節點所共享的檔案的位置
  • 節點需要告訴索引它擁有哪些檔案
  • 節點搜尋索引,從而獲知能夠得到哪些檔案

3:即時訊息(如QQ)

  • 索引負責將使用者名稱對映到位置
  • 當用戶開啟IM應用時,需要通知索引它的位置
  • 節點檢索索引,確定使用者地IP地址

集中式索引

搜尋過程:

  1. 節點加入時,通知中央伺服器(IP地址+內容)
  2. Alice查詢“Hey Jude”
  3. Alice從Bob處請求檔案

注:集中式索引內容和檔案的傳輸是分散式的,但內容定位是高度集中的

缺點:

  1. 單點失效問題(當集中式目錄伺服器崩潰時,整個p2p系統就崩了)
  2. 效能瓶頸(報到,查詢等都須通過中央目錄伺服器,會成為他的瓶頸)
  3. 版權問題

洪範式查詢(資訊傳輸到網路中的每一個節點)

1.完全分散式架構

2.每個節點對它共享的檔案進行索引,且只對它共享的檔案進行索引

3:覆蓋網路

  • 節點X與Y之間如果有TP連線那麼構成一條邊
  • 所有活動節點和便構成覆蓋網路
  • 邊:虛擬鏈路
  • 節點一般鄰居數少於10個

4:搜尋過程

  • 查詢訊息通過已有的TCP連線傳送
  • 節點轉發查詢訊息
  • 查詢命中,則利用反向路徑發回查詢節點

5.缺點

  • 洪範式查詢會大量消耗網路頻寬,導致網路擁塞
  • 新使用者加入時會有很多複雜的需要處理的因素

層次式覆蓋網路

1:介於集中式索引和洪範查詢之間的一種查詢方法

2每個節點或者一個超級節點,或者被分配一個超級節點

  • 節點和超級節點間維持TCP連線
  • 某些超級節點之間維持TCP連線

3.超級節點負責跟蹤子節點的內容,提供索引服務

  • 一個超級節點和普通節點是集中式查詢
  • 超級節點和超級節點之間為洪範式查詢

4:應用:Skype

  • 本質上是P2P的,使用者/節點之間直接通訊
  • 私有應用層協議
  • 採用層次式覆蓋網路架構
  • 索引負責維護使用者名稱和IP地址之間的對映
  • 索引分佈在超級節點上
  1. 有很大的動態性和隨機性

              *結點階段性接入Internet

              *節點可能更換IP地址