2

http://www.bittorrent.org/beps/bep_0005.html中,announce_peer 查询需要一个令牌,该令牌需要“响应先前的 get_peers 查询而收到的“令牌””。

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

4

3 回答 3

2

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

不,是相反的:

  • 节点 A 想要宣布它正在下载某个种子。
  • 节点 Aget_peers向节点 B 进行查询。
  • get_peers节点 B 针对它刚刚发送的查询向节点 A 发送响应。节点 B 的响应包括token.
  • 现在,节点 A 可以使用它刚刚从节点 B 的响应中收到的announce_peer查询向节点 B发送查询。token

为什么要大惊小怪?

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

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

于 2017-03-20T13:33:16.897 回答
0

令牌代表了宣布一个人正在加入一个群体的能力。就像你第一次问关于蜂群的问题——“嘿,这个蜂群怎么样了?” - 你问的对等点会告诉你它对那个群体的了解,如果你也想加入那个群体,它还会给你一张可以返回或不返回的票。细粒度的能力安全为赢!

于 2017-06-23T17:12:03.597 回答
-1

是的,这是正确的。它确保宣布对等点的人实际上对相应的种子感兴趣,并且已经证明了对宣布的地址的控制。

于 2014-08-27T19:13:58.907 回答