IsaacZ 发表于 2021-4-25 11:21:46

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

booeek 发表于 2024-1-25 13:04:59

我为人人,人人为我 好顶你
页: [1]
查看完整版本: P2P下载科普