'distributed tracker' 概念在 Bittorrent DHT 中如何运作?
How does 'distributed tracker' concept work in Bittorrent DHT?
我已阅读 Kademila spec and DHT BEP for Bittorent 但仍然无法理解 DHT 如何使无跟踪种子变得可靠。
我对路由程序的理解是:
- 节点(比如 A)从其路由 table(比如 B)中选择 ID 最接近 torrent 的 infohash 的节点,并向其发送 find_peers 查询
- 如果 B 没有关于对等点的信息,它会发送 ID 更接近 infohash 的节点地址
- 节点 A 进行迭代路由,直到它到达以播种对等地址响应的节点(比如 X)
- 当节点A开始下载过程时,节点A向节点X宣布它
但是当节点 X 从集群中消失时会发生什么?有故障转移吗?跟踪信息如何分布在群中的节点之间?
首先,DHT 是所有 bittorrent 客户端共享的全局覆盖层,它不特定于单个群。
其次,直接来自论文第 2.3 节:
To store a (key,value) pair, a participant locates the k closest nodes
to the key and sends them storE RPCs. Additionally, each node
re-publishes (key,value) pairs as necessary to keep them alive, as
described later in Section 2.5 . This ensures persistence (as we show
in our proof sketch) of the (key,value) pair with very high
probability.
我已阅读 Kademila spec and DHT BEP for Bittorent 但仍然无法理解 DHT 如何使无跟踪种子变得可靠。 我对路由程序的理解是:
- 节点(比如 A)从其路由 table(比如 B)中选择 ID 最接近 torrent 的 infohash 的节点,并向其发送 find_peers 查询
- 如果 B 没有关于对等点的信息,它会发送 ID 更接近 infohash 的节点地址
- 节点 A 进行迭代路由,直到它到达以播种对等地址响应的节点(比如 X)
- 当节点A开始下载过程时,节点A向节点X宣布它
但是当节点 X 从集群中消失时会发生什么?有故障转移吗?跟踪信息如何分布在群中的节点之间?
首先,DHT 是所有 bittorrent 客户端共享的全局覆盖层,它不特定于单个群。
其次,直接来自论文第 2.3 节:
To store a (key,value) pair, a participant locates the k closest nodes to the key and sends them storE RPCs. Additionally, each node re-publishes (key,value) pairs as necessary to keep them alive, as described later in Section 2.5 . This ensures persistence (as we show in our proof sketch) of the (key,value) pair with very high probability.