Bittorrent协议中的KeepAlive消息

3

我在互联网上找不到这个问题的答案。我想知道在BitTorrent协议中收到保持连接消息时会发生什么?我们是否应该回复一个保持连接消息?

2个回答

3
非官方比特流协议规范中得知:

keep-alive: < len = 0000>

keep-alive 消息是一条长度为零字节的消息。没有消息ID和负载。如果一段时间内没有发送任何指令(包括keep-alive或其他任何消息),则对等方可能会关闭连接,因此在给定时间内没有发送命令,必须发送keep-alive消息来保持连接活动状态。这段时间通常为两分钟。

我不是比特流专家,但根据这个规范和我所了解的网络协议,回答你的问题

我们是否应该发送回keep alive消息?

是否定的。至于

当您接收到keep-alive消息时会发生什么?

好吧,什么也不会发生 - 重要的是在经过提到的“给定时间”的情况下,您未收到keep-alive(或任何其他)消息会发生什么。在一个比特流实现中,接收keep-alive消息可能会重置计时器或更新"上次接收到的消息"时间戳。


0

来自比特流协议规范

长度为零的消息是保持连接,会被忽略。保持连接通常每两分钟发送一次,但请注意,当需要数据时,超时可以更快地完成。

换句话说,保持连接实际上是一个无操作的操作。 像所有其他消息一样,它重置了超时时间,因此其净效果只是“保持连接”另外2分钟。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接