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

时间:2015-07-22 01:45:11

标签: connection bittorrent peer

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

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

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

1 个答案:

答案 0 :(得分:1)

  

在这种情况下,对等方处于客户端角色

就线路协议而言,没有特殊的客户角色'与服务器角色不同。两个 peer 都是相同的,并且执行并支持同一组操作 - 提供或采取一些协议扩展。

因此是点对点。

bittorrent上下文中的术语 client 仅表示网络中的任何参与者。在规范中,它经常与实现 peer 互换使用。

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

  

与同一个对等方建立多个连接是否可能或是否正常?

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

但是其他实现可能会丢失重复的连接。