开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第19天,点击查看活动详情 这也是第24篇文章
参考资料
我的粗浅总结
BitTorrent是一种peer-to-peer的网络(翻译为对等,peer是相同水平的人的意思),下载资源时,有别于传统的各个客户端各自从某个服务器中下载资源,BitTorrent技术是当a在下载A片段时,b下载B片段,之后a可从b那里获取到B片段,b同理,可从a那里获取到A片段。所以参与下载的节点越多,下载速度就越快,因为大家分摊了下载的任务。更确切地讲,其实也没有确切的“服务器”,因为这一过程是去中心化的,不需要依赖于某个特定的服务器资源。同一时间内下载同一份文件的节点组成了一个“swarm”(中文译名:群)
运行机制
- 在BitTorrent的最初版本中,第一个上传文件的用户必须创建一个小的torrent描述符文件,并上传到torrent索引站点。第一个上传者是在播种(seed),而其他的下载者组成了群。
- 谁拥有了完整的文件,谁就可以去播种。
组件
Tracker(追踪者)
如其名,它是一个服务端,作用就是帮助下载同一个文件的不同的节点发现彼此。它是没有任何文件的副本的。
Metainfo file(元资料文件)
以.torrent为后缀的文件,里面包含有关tracker的URL、文件名和文件片段哈希的编码信息,用于验证下载的文件片段。
seeder
前面解释过了只要有完整的版本,就可以作为播种器
leecher
指的是还没有完整副本的peer,不过他们也可以把已有的部分分发出去了。
注意
BT可以理解为是一种协议,一个思想,不过真正应用它的软件是有很多的,比如迅雷,百度网盘等,可以直接用(我的意思是知道这些的原理是基于这个)。至于能不能达到理论的下载效果,还是和资源有关。大家都好好学习,不要访问一些不好的资源。