如何在 Bittorrent 跟踪器中完成对等点的识别
Posted
技术标签:
【中文标题】如何在 Bittorrent 跟踪器中完成对等点的识别【英文标题】:How identification of a peer is done in Bittorrent tracker 【发布时间】:2021-04-22 13:32:29 【问题描述】:根据 Bittorrent tracker (https://wiki.theory.org/BitTorrentSpecification) 的规范,peer 由其 peer_id 和 ip 标识。 peer_id 在宣布请求中传递给跟踪器,ip - 从请求标头中传递,但可以选择作为查询参数传递。跟踪器如何知道这个请求实际上是从这个对等点发送的(不是欺诈),没有任何密钥?
【问题讨论】:
【参考方案1】:请注意,official specification 将该参数列为可选参数,这意味着它不是客户端身份的一部分。相反,它应该被视为对跟踪器的提示,即跟踪器应该将该 IP 分发给其他客户端,而不是通知连接的来源。如果跟踪器不信任客户端,则应忽略此提示。
如果客户端向跟踪器验证自己的身份(例如,通过 HTTP 基本身份验证或通告 URL 中的秘密令牌),则可以建立信任。
跟踪器不仅可以信任客户端,还可以对其进行验证,例如通过打开一个bittorrent连接到宣布的IP和端口,然后为宣布的infohash发送一个bittorrent握手,以检查远程是否可以接受bittorrent连接。这还具有拒绝由于防火墙或 NAT 限制而无法访问的公告的优势。
对于开放的公共跟踪器,这两种方法都不实用,因此它们通常会忽略&ip=...
参数。部署在更受限制的环境中的跟踪器确实使用了信任和/或验证方法。
【讨论】:
以上是关于如何在 Bittorrent 跟踪器中完成对等点的识别的主要内容,如果未能解决你的问题,请参考以下文章