Bittorrent 在多个对等点之间维护状态
Posted
技术标签:
【中文标题】Bittorrent 在多个对等点之间维护状态【英文标题】:Bittorrent maintain states among multiple peers 【发布时间】:2020-04-10 19:22:17 【问题描述】:我正在关注Kristen Widman 编写bittorrent 客户端的教程,以及Wiki,但是我有一点困惑,我无法从在线资源中清除。
到目前为止,我已经能够发送一个跟踪器请求并接收一个对等点列表,我已经这样存储了它们的 IP 地址和端口:
['IP': IPv4Address('76.126.244.88'), 'port': 6881, ... ]
Kristen 在她的教程中建议我先尝试连接到单个对等点。我想我会先尝试与列表中的第一个对等方连接,到目前为止一切都很好。
但是,对于每个对等点,都有某些状态,例如 'am_choking' 、 'peer_choking' 、 'am_interested' 、 'peer_interested'。对于列表中的每个对等点,我是否需要跟踪这些状态中的每一个?
【问题讨论】:
【参考方案1】:是的,与每个对等方的连接需要维护一组独立的状态,以记住远程发送的最新状态是什么。
official bittorrent specification 中明确提到了这一点:
连接在两端包含两个状态位:阻塞与否,以及是否感兴趣。
还有on the wiki:
客户端必须维护它与远程对等方的每个连接的状态信息:
【讨论】:
以上是关于Bittorrent 在多个对等点之间维护状态的主要内容,如果未能解决你的问题,请参考以下文章
使用 SOCKS 时的 BitTorrent 本地对等点发现