Bittorrent 协议中的 KeepAlive 消息
Posted
技术标签:
【中文标题】Bittorrent 协议中的 KeepAlive 消息【英文标题】:KeepAlive messages in Bittorrent protocol 【发布时间】:2012-05-01 02:47:36 【问题描述】:我在互联网上的任何地方都找不到这个问题的答案。我想知道当您在 bittorrent 协议上收到保持活动消息时会发生什么?我们是否应该发回一条保持活动消息?
【问题讨论】:
【参考方案1】:来自Unofficial BitTorrent Specification:
保持活动状态:
<len=0000>
keep-alive 消息是零字节的消息,指定长度前缀设置为零。那里 没有消息 ID 也没有负载。对等点可能会关闭连接,如果他们 没有收到任何消息(keep-alive 或任何其他消息) 一定的时间,所以必须发送一个keep-alive消息到 如果没有为给定的命令发送命令,则保持连接处于活动状态 多少时间。这段时间一般是两分钟。
我不是 BitTorrent 专家,但基于此以及我了解的网络协议知识,这听起来像是您问题的答案
我们是否应该发回一条保持活动消息?
是没有。至于
当您收到保持活动消息时会发生什么?
好吧,没什么——重要的是当您在提到的“给定时间”之后没有收到 keep-alive(或任何其他)消息时会发生什么。在 BitTorrent 实现中,接收保持活动消息可能会重置计时器,或更新“收到的最后一条消息”时间戳。
【讨论】:
【参考方案2】:来自Bittorrent Specification:
长度为零的消息是keepalive,并被忽略。 Keepalive 通常每两分钟发送一次,但请注意,当预期有数据时,超时可以更快地完成。
换句话说,keep-alive 实际上是一个空操作。 与所有其他消息一样,它会重置超时,因此它的最终效果是“保持连接活动”再过 2 分钟。
【讨论】:
以上是关于Bittorrent 协议中的 KeepAlive 消息的主要内容,如果未能解决你的问题,请参考以下文章