p2p架構
P2P應用:原理與檔案分發
純P2P架構:Peer-to-peer

- 沒有服務器
- 任意端系統之間直接通信
- 節點階段性接入Internet
- 節點可能更換IP地址
檔案分發:客戶機/服務器vs. P2P
從一個服務器向N個節點分發一個檔案需要多長時間?
客戶機/服務器

服務器串行地發送N個副本,時間:NF/us,客戶機i需要F/di時間下載

P2P
服務器必須發送一個副本,時間:F/us,客戶機i需要F/di時間下載,總共需要下載NF位元,最快的可能上傳速率:us+ ∑ui


檔案分發:BitTorrent

-
檔案劃分為256KB的chunk
-
節點加入torrent
- 沒有chunk,但是會逐漸積累
- 向tracker注冊以獲得節點清單,與某些節點(“鄰居”)建立連接
-
下載的同時,節點需要向其他節點上傳chunk
-
節點可能加入或離開
-
一旦節點獲得完整的檔案,它可能(自私地)離開或(無私地)留下
-
獲取chunk
- 給定任一時刻,不同的節點持有檔案的不同chunk集合
- 節點(Alice)定期查詢每個鄰居所持有的chunk串列
- 節點發送請求,請求獲取缺失的chunk
- 稀缺優先
-
發送chunk: tit-for-tat
- Alice向4個鄰居發送chunk:正在向其發送Chunk,速率最快的4個
- 每10秒重新評估top 4
- 每30秒隨機選擇一個其他節點,向其發送chunk
- 新選擇節點可能加入top 4
- “optimistically unchoke”10
- Alice向4個鄰居發送chunk:正在向其發送Chunk,速率最快的4個

P2P應用:索引技術
P2P: 搜索資訊
P2P系統的索引:資訊到節點位置(IP地址+埠號)的映射
檔案共享(電驢):利用索引動態跟蹤節點所共享的檔案的位置,節點需要告訴索引它擁有哪些檔案,節點搜索索引,從而獲知能夠得到哪些檔案
即時訊息(QQ)?索引負責將用戶名映射到位置,當用戶開啟IM應用時,需要通知索引它的位置,節點檢索索引,確定用戶的IP地址
集中式索引
Napster最早采用這種設計:1) 節點加入時,通知中央服務器:?IP地址?內容,2) Alice查找“Hey Jude”,3) Alice從Bob處請求檔案

內容和檔案傳輸是分布式的,但是內容定位是高度集中式的,存在:單點失效問題,性能瓶頸,著作權問題
洪泛式查詢: Query flooding
完全分布式架構,Gnutella采用這種架構,每個節點對它共享的檔案進行索引,且只對它共享的檔案進行索引
覆寫網路(overlay network): Graph
- 節點X與Y之間如果有TCP連接,那么構成一個邊
- 所有的活動節點和邊構成覆寫網路
- 邊:虛擬鏈路
- 節點一般鄰居數少于10個
- 查詢訊息通過已有的TCP連接發送
- 節點轉發查詢訊息
- 如果查詢命中,則利用反向路徑發回查詢節點

層次式覆寫網路
介于集中式索引和洪泛查詢之間的方法,每個節點或者是一個超級節點,或者被分配一個超級節點,節點和超級節點間維持TCP連接,某些超級節點對之間維持TCP連接,超級節點負責跟蹤子節點的內容

P2P案例應用:Skype
本質上是P2P的:用戶/節點對之間直接通信,是私有應用層協議,所以只能猜,采用層次式覆寫網路架構,索引負責維護用戶名與IP地址間的映射,索引分布在超級節點上

所謂P2P(Peer to Peer),其最本質的含義即“對等”,該技術最早是用于網路中對等節點之間的資源和資訊共享的技術,通常人們所知道的是將P2P技術用在檔案下載程序中,即網路上的對等終端在下載共享檔案的同時又作為一個“種子”為其他對等終端提供資源和資訊,后來,Skype在網路通話業務系統中靈活應用了該技術
由于沖擊了傳統通信領域,Skype在引起很多爭議的同時也使人耳目一新,可以說,Skype是發展和演進了的P2P應用,對于P2P技識訓沒有規范的定義,結合其已有的應用,就更廣泛的意義而言,P2P技術是指網路中的所有節點都動態參與到路由、資訊處理和帶寬增強等作業中,而不是單純依靠服務器來完成這些作業,Skype是P2P技術演進到混合模式后的典型應用,它結合了集中式和分布式的特點,在網路的邊緣節點采用集中式的網路結構,而在超級節點之間采用分布式的網路結構
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/83383.html
標籤:其他
下一篇:計算機網路--Socket
