计算机网络-应用层(5)BitTorrent协议

BitTorrent是一种用于文件分发的P2P协议
参与一个特定文件分发的所有节点集合被称为一个洪流(torrent)
在一个洪流中的节点彼此下载等长度的文件块(Chunk) , 典型的块长度为256KB 。
当一个节点首次加入一个洪流时,它没有Chunk。随着时间的流逝,它累积了越来越多的chunk。
当它下载Chunk时,也为其他对等方上载了多个Chunk。
一且某节点获得了整个文件,它也许(自私地)离开洪流,或(大公无私地)留在该洪流中并继续向其他节点上载Chunk。
每个洪流具有一个基础设施结点,称为追踪器(tracker) 。当一个节点加入某洪流时,它向追踪器注册自己,并周期性地通知追踪器它仍在该洪流中。
追踪器跟踪正参与在洪流中的节点。当一个新的节点加入该洪流时,追踪器随机地从参与节点集合中选择一部分,并将这些节点IP地址发送给它 。节点收到这张节点列表后,会试图与该列表上的所有节点创建并行的TCP 连接。
所有和其成功地创建了TCP 连接的节点称为 临近节点。临近节点是随时间而波动的。
 
节点通过TCP连接周期性地询问每个邻近节点它们所具有的Chunk列表。每有一个不同的邻居,就获得一个块列表。随后节点将通过TCP连接,对当前还没有的Chunk发出请求 。
最稀缺优先(rarest first) 技术:针对自身没有的块在邻居中决定最稀缺的块(即邻居中副本数量最少的块),并首先请求那些最稀
缺的块。这样,最稀缺块得到更为迅速的重新分发,每个Chunk在洪流中的副本数量可以得到均衡。
节点会对于每个邻居持续地测量接收到比特的速率,并确定以最高速率流入的4个邻居节点,它只会向正在向其发送Chunk且速率最快的4个邻居发送Chunk,每10秒重新评估top 4。
每过30 秒,她也要随机地选择另外一个邻居并向其发送块。这样新加入的节点也能得到Chunk。

猜你喜欢

转载自www.cnblogs.com/yangyuliufeng/p/9265285.html