P2P文件分發(fā)
概念介紹
對等方:成對間歇連接的主機
鄰近對等方:成功創(chuàng)建一個TCP連接的對等方
洪流(torrent):參與一個特定文件分發(fā)的所有對等方的集合
追蹤器(tracker):每個洪流具有一個基礎(chǔ)設(shè)施結(jié)點
P2P體系結(jié)構(gòu)的拓展性
客戶端-服務(wù)器體系結(jié)構(gòu)與P2P體系結(jié)構(gòu)比較,得出如下結(jié)論:
- 客戶端-服務(wù)器體系下茬故,分發(fā)時間隨著對等方數(shù)量線性增加
- P2P體系下盖灸,分發(fā)時間呈線性增長而趨向一個常數(shù),若F表示分發(fā)的文件比特數(shù)量磺芭,u表示所有對等方具有的相同上傳速率赁炎,則這個常數(shù)為F/u。
最為流行的P2P協(xié)議是BitTorrent,迅雷的種子下載就屬此列徙垫。
BitTorrent
當一個對等方加入某洪流時讥裤,它向追蹤器注冊自己,并周期性地通知追蹤器它仍在該洪流中姻报。
工作過程
假設(shè)有一個新的對等方Alice加入一個洪流
- 追蹤器隨機地從參與對等方的集合中選擇對等方的一個子集(比如50個)并將這50個對等方的IP地址發(fā)送給Alice己英,Alice擁有了一個IP地址的列表
- Alice與列表上的所有對等方創(chuàng)建TCP連接,成為鄰近對等方
- Alice周期性的詢問每個鄰近對等方他們所具有的塊列表吴旋。
- 對當前自身沒有的塊信息损肛,Alice發(fā)送請求獲取(最稀缺的塊荣瑟,優(yōu)先級最高請求)
- 向哪些向她請求的塊的鄰居發(fā)送鄰居沒有的而自己有的塊信息治拿。如何決定響應(yīng)哪個鄰居的請求?BitTorrent使用了一種對換算法笆焰。
該對換算法的基本思想是Alice根據(jù)當前能夠以最高速率向她提供數(shù)據(jù)的鄰居劫谅,給出其優(yōu)先權(quán)。
操作過程如下:
- Alice對于她的每個鄰居持續(xù)的測試接收到比特的速率嚷掠,并確定以最高速率流入的4個鄰居
- 每過10秒捏检,她重新計算該速率并可能修改這4個對等方的集合
- 每隔30秒,Alice要隨機選擇另外一個鄰居并向其發(fā)送塊叠国,也即Alie隨機選擇一名新的對換伴侶未檩。
這種效果是對等方能夠趨于找到彼此的協(xié)調(diào)的速率上載。隨機選擇鄰居也允許新的對等方得到塊粟焊,因此他們能夠具有對換的東西冤狡,除了上訴5個對等方,其它對等方均被阻塞项棠。
參考文獻
計算機網(wǎng)絡(luò) 自頂向下方法 James F.Kurose & Keith W.Rose