P2P下载科普
知乎用户10 人赞同了该回答
创建于: 2020-04-22 00:28:21 编辑于: 2020-04-22 01:14:21
简单科普一下
当很多主机(host)想要从一个服务器(server)获得同一个大文件(视频等),这个时候用到P2P。每一个peer在收到一部分数据(chunk)的时候都会同时地分享给别人,所以就很快,这个你应该知道。
这些参与下载的host我们又称作peer。每个peer向别的Peer下载一个固定的等大小的chunk(256KB)。这些chunk就是想要下载的文件的一部分。所以逐步每个peer会有很多chunk积累起来,大家下载地也就越来越快。
每一个资源都有一个tracker,可以理解为服务器, 用来记录了所有参与这个资源下载的peer的IP地址,新加入的成员会获得一部分peer,称作他的邻居。
种子文件(Torrent)就是tracker信息和文件的集合体!
那么每一个peer如何知道他下一个应该索取哪一个chunk?又应该向谁索取新的chunk?给谁提供chunk? 这可不是随机乱来的。
两个原则:
rarest first, 在这个peer周围的邻居中最稀少的chunk就是他索取的chunk
trading algorithm,谁给自己提供的chunk最快就把自己有的chunk发送给谁
遵循这个原则,如果自己的上传速度太慢(或者你限制了上传速度),也就是没办法给别人很快的提供chunk, 那么自己就很容易也收不到别人的chunk,这个时候我们称之为choke,也就是你卡死了,所以p2p的精神就是我为人人,人人为我。
编辑于 2020-04-22 我为人人,人人为我 好顶你 种子的服务器需要什么软件
页:
[1]