对前面提到的文件分发场景进行简单的定量分析,考虑在两种体系结构下的分发时间(distribution time)
分发时间
所有N个对等方得到该文件的副本所需要的时间
客户-服务器体系结构分析
考虑两个时间
CS体系结构的文件分发时间随着对等点数量的增加呈线性增长,而P2P体系结构由于对等方既下载文件块又上传文件块,其文件分发时间对于任意N总小于1小时
分析:由于 d m i n d_{min} dmin≥ u s u_s us,则F/ d m i n d_{min} dmin 小于F/ u u u;对于 D P 2 P D_{P2P} DP2P的最后一项,分子为NF,分母为Nu+ u s u_s us必然会得到一个小于F/u的结果
一个用于文件分发的P2P协议
BitTorrent基础介绍
洪流(torrent):参与一个特定文件分发的所有对等方的集合
在一个torrent中的对等方之间文件传输单位为等长度的文件块(chunk)
追踪器(tracker):每个torrent都有的节点,追踪当前仍在tracker中的对等点。追踪实现方式为:当一个对等方加入某洪流时,它向追踪器注册自己,并周期性地通知追踪器它仍在该洪流中
实例说明
邻近对等方
一个新的对等方Alice加入torrent向tracker注册,tracker随机选择了50个对等方,将这些对等方的ip地址发给Alice,Alice则尝试与这些对等方建立TCP连接,成功建立TCP连接的对等方称为Alice的“邻近对等方”。
文件分发准备
Alice周期性地通过TCP连接询问每个邻近对等方它们所具有的块列表。最终Alice将得到其所有邻近对等方所有的块列表,为其请求她没有的块做准备。
在任何给定的时刻,Alice将具有块的子集并知道它的邻居具有哪些块
请求哪些块
最稀缺优先(rarest first):向邻近对等方请求副本最少的块,一定程度上实现均衡每个块在洪流中的副本数量
响应哪些请求
对换算法:Alice根据当前能够以最高速率向她提供数据的邻居(疏通),给出其优先权。
Alice持续地测量接收到比特的速率,并确定以最高速率流入的4个邻居作为备选相应集,这四个对等方称为疏通(unchocked)。疏通集每过10s则重新计算并修改。另外,每过30s,Alice将随机选择另一个邻居向其发送chunk。除了这5个对等方,其他的邻近对等方都被阻塞,无法与Alice进行数据传输
对等方能够以趋向于找到彼此的协调的速率上载
随机选择邻居允许新的对等方得到块,避免纯速率匹配将数据传输局限在很小范围内