學習筆記2.6——P2P應用
P2P應用
P2P結構的特點
- 沒有伺服器
- 任意端系統間直接通訊
- 有很大的動態性和隨機性
*節點階段性接入Internet
*節點可能更換IP地址
檔案分發
C/S架構與P2P架構在檔案分發上的效能對比
說明:1)由於核心網路的頻寬充足,因此效能瓶頸主要在伺服器接入核心網路和客戶端接入核心網路。
2)伺服器只向Internet上傳,每個節點可能下載或上傳檔案。
3)圖中節點表示上傳,下載的方向標錯了
C/S架構:
伺服器序列地傳送N個副本,所需時間為:NF/us
客戶機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地址
集中式索引
搜尋過程:
- 節點加入時,通知中央伺服器(IP地址+內容)
- Alice查詢“Hey Jude”
- Alice從Bob處請求檔案
注:集中式索引內容和檔案的傳輸是分散式的,但內容定位是高度集中的
缺點:
- 單點失效問題(當集中式目錄伺服器崩潰時,整個p2p系統就崩了)
- 效能瓶頸(報到,查詢等都須通過中央目錄伺服器,會成為他的瓶頸)
- 版權問題
洪範式查詢(資訊傳輸到網路中的每一個節點)
1.完全分散式架構
2.每個節點對它共享的檔案進行索引,且只對它共享的檔案進行索引
3:覆蓋網路
- 節點X與Y之間如果有TP連線那麼構成一條邊
- 所有活動節點和便構成覆蓋網路
- 邊:虛擬鏈路
- 節點一般鄰居數少於10個
4:搜尋過程
- 查詢訊息通過已有的TCP連線傳送
- 節點轉發查詢訊息
- 查詢命中,則利用反向路徑發回查詢節點
5.缺點
- 洪範式查詢會大量消耗網路頻寬,導致網路擁塞
- 新使用者加入時會有很多複雜的需要處理的因素
層次式覆蓋網路
1:介於集中式索引和洪範查詢之間的一種查詢方法
2每個節點或者一個超級節點,或者被分配一個超級節點
- 節點和超級節點間維持TCP連線
- 某些超級節點之間維持TCP連線
3.超級節點負責跟蹤子節點的內容,提供索引服務
- 一個超級節點和普通節點是集中式查詢
- 超級節點和超級節點之間為洪範式查詢
4:應用:Skype
- 本質上是P2P的,使用者/節點之間直接通訊
- 私有應用層協議
- 採用層次式覆蓋網路架構
- 索引負責維護使用者名稱和IP地址之間的對映
- 索引分佈在超級節點上
- 有很大的動態性和隨機性
*結點階段性接入Internet
*節點可能更換IP地址