如何在 Torrent 协议中使用对等连接?

How to use peer connection in torrent protocol?

我正在尝试了解如何正确实现 torrent 协议的 p2p 通信。此帐户的规格不明确。

如果我作为客户端连接到一个点,然后发送握手,建立通信,然后我可以向那个点发送消息并接收响应。从客户的角度来看,这是完全可以理解的。我不明白的是,如果对等方想向我发送某些请求,在这种情况下,对等方处于客户端角色,而我是对等方,它会使用我发起的相同打开的连接还是它会尝试建立新连接吗?

这引出了另一个问题。与同一个对等点建立多个连接是否可能或正常?

in this case the peer is in a client role

就连线协议而言,与服务器角色没有区别'client role'。两个 peers 是平等的并且执行和支持相同的操作集 - 给予或接受一些协议扩展。

因此点对点。

术语 客户端 在 bittorrent 上下文中仅表示网络中的任何参与者。在规范中,它经常与 implementationpeer.

互换使用

TCP 连接是双向的。在 bittorrent 中,每个流都由无穷无尽的消息流组成,这些消息流与另一个方向不同步。 IE。没有请求-响应周期。

Is it possible or is it normal to establish multiple connections to the same peer?

可能吗?是的,假设 <source IP, source port, destination IP, destination port> 元组是不同的,这基本上就是 TCP 所要求的。

但其他实现可能会丢弃重复连接。