概念介紹
對等方:成對間歇連接的主機
洪流(torrent):參與一個特定文件分發的所有對等方的集合
追蹤器(tracker):每個洪流具有一個基礎設施結點
鄰近對等方:成功創建一個TCP連接的對等方
P2P體系結構的拓展性
客戶端-服務器體系結構與P2P體系結構比較,得出如下結論:
- 客戶端-服務器體系下,分發時間隨着對等方數量線性增加
- P2P體系下,分發時間呈線性增長而趨向一個常數,若F表示分發的文件比特數量,u表示所有對等方具有的相同上傳速率,則這個常數爲F/u。
最爲流行的P2P協議是BitTorrent,迅雷的種子下載就屬此列。
BitTorrent
當一個對等方加入某洪流時,它向追蹤器註冊自己,並週期性地通知追蹤器它仍在該洪流中。
工作過程
假設有一個新的對等方Alice加入一個洪流
- 追蹤器隨機地從參與對等方的集合中選擇對等方的一個子集(比如50個)並將這50個對等方的IP地址發送給Alice,Alice擁有了一個IP地址的列表
- Alice與列表上的所有對等方創建TCP連接,成爲鄰近對等方
- Alice週期性的詢問每個鄰近對等方他們所具有的塊列表。
- 對當前自身沒有的塊信息,Alice發送請求獲取(最稀缺的塊,優先級最高請求)
- 向哪些向她請求的塊的鄰居發送鄰居沒有的而自己有的塊信息。如何決定響應哪個鄰居的請求?BitTorrent使用了一種對換算法。
該對換算法的基本思想是Alice根據當前能夠以最高速率向她提供數據的鄰居,給出其優先權。
操作過程如下:
- Alice對於她的每個鄰居持續的測試接收到比特的速率,並確定以最高速率流入的4個鄰居
- 每過10秒,她重新計算該速率並可能修改這4個對等方的集合
- 每隔30秒,Alice要隨機選擇另外一個鄰居並向其發送塊,也即Alie隨機選擇一名新的對換伴侶。
這種效果是對等方能夠趨於找到彼此的協調的速率上載。隨機選擇鄰居也允許新的對等方得到塊,因此他們能夠具有對換的東西,除了上訴5個對等方,其它對等方均被阻塞。
參考文獻
計算機網絡 自頂向下方法 James F.Kurose & Keith W.Rose