我心中有几个疑问,同时也搜索了点素材,肯能对理解问题有帮助。
BT下载,即P2P下载,是一种不需要中心化服务器的下载,实现原理是,每个客户端在下载的时候也作为服务器。
我的疑问是,P2P各个节点是如何发现彼此的,我猜想是这样的,一个节点把信息发送到服务器,然后服务器维护一个列表,这个列表包含了拥有资源的客户端信息,其它节点从服务器读取这个列表,连接下载。可是我说的这个过程是需要用到服务器的,和P2P的概念是冲突的。我又猜测了一种方法,就是种子(种子中包含节点的IP 端口等信息?我不太确定,假设有),拥有资源的节点用户在各种社交平台发布种子文件,然后其它节点的用户下载这个种子之后就能连接上了资源节点了。可是其它客户端怎么更新种子信息呢?因为有人已经下载过了,下载过的节点也就可以作为P2P的节点了,得把这个信息告诉所有的P2P节点啊,要不然还是只能从最开始发布种子的那个节点下载。
这里有个链接:软件是如何连接到DHT网络的
https://www.zhihu.com/question/28235205
BT种子原理是什么
https://www.zhihu.com/question/49829233
我觉得有必要研究一下种子文件的结构
google上能搜索到几篇文章,感觉很有用
聊聊 GFW 如何封杀 Resilio Sync(BTSync)?以及如何【免翻墙】继续使用?
扫盲 BTSync(Resilio Sync)——不仅是同步利器,而且是【分布式】网盘
聊聊分布式散列表(DHT)的原理——以 Kademlia(Kad) 和 Chord 为例