我正在尝试理解BitTorrent中的过程并实现类似的东西。但是,我仍然不知道片断选择和转移的过程。每个对等体如何知道哪个对等体具有哪个文件?每个同伴是否需要一直询问对方是否有所要求的作品?
我也听说过“最稀有的第一件”的方法,试图让之前变得更加稀有。如何在不浪费网络流量的情况下获取这些信息?
谢谢。
答案 0 :(得分:4)
这是通过两条消息完成的:bitfield and have。
在两个对等体执行握手后,他们可以选择发送位域作为第一条消息,这些消息紧凑地代表所有已完成的块。
一旦对等方成功下载并验证了一个块,他们就会向所有连接的对等体广播 has 消息,让他们知道他们刚刚完成了哪个块。