P2P

1 概述

比于客户-服务器体系结构,P2P具有自扩展性,表现在对等方N越大,最小分发时间也趋于平缓。这种自扩展性的直接成因是:对等方除了是比特的消费者外还是它们的重新分发者。

P2P 体系结构的扩展性

  • 最小分发时间,对等方N越大,P2P的最小分发时间越小
  • 对等方除了是比特的消费者外还是他们的重新分发者

2 BitTorrent

工作过程

  • P2P文件共享协议,参与一个特定文件分发的所有对等方结合被称为一个洪流(torrent),在一个洪流的对等方彼此下载等长度的文件块,可以随时离开洪流,也可继续向其他对等方上载

  • Alice加入某洪流时,会在追踪器里进行注册,周期性通知追踪器它仍在洪流中。

  • 洪流随机从参与对等方的结合中选择一个子集,将他们的IP地址发给Alice,Alice维护这张对等方列表,视图与所有对等方建立并行的TCP连接。

  • Alice周期询问每个邻近对等方(连上的)他们有的文件块列表,她随时知道邻居有哪些文件块

  • Alice使用最稀缺优先技术,首先请求那些邻居们副本数量最少的块,使该文件块迅速分发,以均衡每个块在洪流中的副本数量

  • BitTorrent使用一种算法,Alice优先从像她传时速度最快的邻居(4个,每10s修改一次)那里获取文件块。

  • 每过30s,Alice也要随机选择另外一个对等方Bob,向他发送块。若Alice是Bob最快的前四快,Bob也是Alice的前4快,则Bob和Alice互相发送数据。

  • 每过30s换一个新的对象,互相交换数据(一报还一报),为了使对等方能够找到彼此协调的速率上传

BitTorrent其他机制和变种

片、流水线、随机优先选择、残局模型、反怠慢等机制
变种:P2P直播流式应用,如PPLive和PPstream

3 分布式散列表(DHT)

  • 分布式、P2P版本的key-value数据库,在大量对等方上存储key-value值(键值对)
  • 分布式数据库用来定位拥有某key-value的对等方,然后向查询方返回该键值对
  • 环形DHT、对等方扰动