3

我在互联网上的任何地方都找不到这个问题的答案。我想知道当您在 bittorrent 协议上收到保持活动消息时会发生什么?我们是否应该发回一条保持活动状态的消息?

4

2 回答 2

3

来自非官方的 BitTorrent 规范

活着:<len=0000>

keep-alive消息是具有零字节的消息,指定长度前缀设置为零。没有消息 ID,也没有有效负载。如果对等点在一段时间内没有收到任何消息(keep-alive或任何其他消息),则可能会关闭连接,因此如果没有发送给定数量的命令,则必须发送 keep-alive 消息以保持连接处于活动状态的时间。这个时间量一般是两分钟。

我不是 BitTorrent 专家,但基于此以及我对网络协议的了解这听起来像是您问题的答案

我们是否应该发回一条保持活动状态的消息?

没有。至于

当您收到保持活动消息时会发生什么?

好吧,没什么——重要的是当您在提到的“给定时间”之后没有收到保持活动(或任何其他)消息时会发生什么。在 BitTorrent 实现中,接收保持活动消息可能会重置计时器,或更新“收到的最后一条消息”时间戳。

于 2012-05-01T02:52:52.870 回答
0

来自Bittorrent 规范

长度为零的消息是keepalive,并被忽略。Keepalive 通常每两分钟发送一次,但请注意,当预期有数据时,超时可以更快地完成。

换句话说,keep-alive 实际上是一个空操作。像所有其他消息一样,它会重置超时,因此它的净效果是“保持连接活动”再过 2 分钟。

于 2012-05-01T02:55:22.837 回答