DHT中的announce_peer令牌

时间:2014-05-27 00:41:33

标签: bittorrent dht kademlia

http://www.bittorrent.org/beps/bep_0005.html中,announce_peer查询需要一个具有要求的令牌,""令牌"收到以回复之前的get_peers查询"。

这是否意味着如果节点A从未向节点B发送get_peer查询,那么节点A永远不会从节点B收到peer_announce查询?

3 个答案:

答案 0 :(得分:2)

  

这是否意味着如果节点A从未向节点B发送get_peer查询,那么节点A永远不会从节点B收到peer_announce查询?

不,这是相反的方式:

  • 节点A希望宣布它正在下载某个种子。
  • 节点A向节点B发出get_peers查询。
  • 节点B向节点A发送它刚刚发送的get_peers查询的响应。节点B的响应包括token
  • 现在,节点A可以使用刚从节点B的响应中收到的announce_peer向节点B发送token查询。

为什么这么大惊小怪?

  

对等查询的返回值包含一个称为“令牌”的不透明值。对于节点宣布其控制对等体正在下载torrent,它必须在最近的对等查询中呈现从相同查询节点接收的令牌。当节点尝试“通告”torrent时,查询的节点会根据查询节点的IP地址检查令牌。这是为了防止恶意主机注册其他主机以获取种子。

     

http://www.bittorrent.org/beps/bep_0005.html

答案 1 :(得分:0)

令牌表示宣布正在加入群组的功能。这就像你首先询问群体一样 - “嘿,这群人怎么了?” - 你问的同伴会告诉你它对该群的了解程度,如果你想加入那个群,它还会给你一张你可以退回的机票。 获胜的细粒度功能安全性!

答案 2 :(得分:-1)

是的,这是对的。它确保宣布对等方的人实际上对相应的torrent感兴趣,并且已证明可以控制已宣布的地址。