Bittorrent维护多个对等体之间的状态



我正在学习Kristen Widman编写bittorrent客户端的教程,以及Wiki,但我有一点困惑,无法从在线资源中清除。

到目前为止,我已经能够发送一个跟踪器请求并接收一个对等方列表,它们的IP地址和端口我存储如下:

[{'IP': IPv4Address('76.126.244.88'), 'port': 6881}, ... ]

Kristen在她的教程中建议我先尝试与一个同伴建立联系。我想我会先尝试与列表中的第一个同行联系,到目前为止还不错。

然而,对于每个对等体,都存在某些状态,如"am_choking"、"peer_choking"、"am_interested"、"peer_interested"。对于我列表中的每个同行,我是否需要跟踪这些州中的每一个?

是的,到每个对等点的连接都需要维护一组独立的状态,以记住远程发送的最新状态。

这在官方的bittorrent规范中有明确提及:

连接的两端都包含两个状态位:阻塞与否,感兴趣与否。

以及在wiki上:

客户端必须维护与远程对等端的每个连接的状态信息:

最新更新