Bittorrent协议'不可用'/'结束连接'响应?

时间:2011-05-03 01:02:44

标签: ruby udp bittorrent

我喜欢能够使用torrent应用程序来获取最新的电视节目,以便我可以在我的照片中观看。问题是协议的结构在我关闭客户端后的一段时间内会导致连接上的大量传入噪声。由于我也喜欢玩在线游戏,这意味着我必须确保在我想玩游戏之前我的torrent客户端关闭了大约一个小时(取决于跟踪器给我的群体做广告的时间)。否则,由于持续涌入的洪流请求,我得到了与游戏的可怕联系。

我把一个小的Ruby应用程序放在一起观察传入的请求,这样我就知道UTP流量何时放松:

http://pastebin.com/TbP4TQrK

我想到了这样的想法,我可能会发送一些回复来通知客户我不再参与群体并且他们应该停止发送请求。我浏览了协议规范,但我没有找到任何类型的东西。有没有更熟悉协议的人知道是否有这样的回应?

提前感谢任何建议。

1 个答案:

答案 0 :(得分:0)

如果互联网上的一群同行拥有你的IP并认为你在他们的群体中,他们会在放弃之前尝试与你联系几次。你无能为力。告诉他们一次停止一个可能最终会使用更多的带宽而忽略UDP数据包。

现在,您可以采取一些措施来缓解这种情况:

  1. 确保您的客户端向其所有跟踪器发送已停止的请求。这是协议规范的一部分,大多数客户端都这样做。如果成功,跟踪器将不会告诉任何人关于你的信息。但同龄人记得见过你,所以并不意味着没有人会试图联系你。
  2. 关闭DHT。 DHT的行为很像跟踪器,除了它没有停止的消息。一旦向DHT宣布,您的IP需要15-30分钟才能超时。
  3. 我认为,问问自己这些杂散的 23字节 UDP数据包是否真的很重要也可能是相关的。据推测,你不会被淹没超过每秒几次(可能更少)。你有没有做过任何实际的测量,或者等待他们放松是否主要是偏执狂?

    我假设您正在播放一些对延迟敏感的FPS,在这种情况下,服务器很可能每秒至少播放10-50个完整MTU数据包,没有任何拥塞控制。如果你吸引了如此多的bittorrent连接尝试会导致任何游戏数据包被丢弃,我会感到惊讶。