![如何阻止多线程下载?](https://linux22.com/image/1509999/%E5%A6%82%E4%BD%95%E9%98%BB%E6%AD%A2%E5%A4%9A%E7%BA%BF%E7%A8%8B%E4%B8%8B%E8%BD%BD%EF%BC%9F.png)
Steam 和 Microsoft Windows Store 等某些应用程序坚持采用多线程下载策略 - 当您下载应用程序或游戏时,它们会同时打开 10 个或更多连接。由于每个连接都连接到强大的 CDN 服务器,这会对我的网络造成破坏,在游戏下载期间 ping 数据包丢失率为 25%。
如果我从互联网上下载常规文件,数据包丢失率为 0%。我可以限制 steam 的下载速度,但不能限制它打开的连接数。这很遗憾,因为我可以只用 1 或 2 个线程就将连接数最大化,而不会降低整个网络的速度。
有没有办法阻止 Windows 中的应用程序打开大量同时连接?我意识到这可能是一种黑客行为,可能会破坏应用程序的正常运行,但我愿意接受所有建议。如果路由器选项也提供此功能,我也会接受。
重现该问题的一种方法是在 Steam 上下载免费游戏并运行 ping 来监控数据包丢失。
答案1
Steam 使用以下端口进行登录和下载内容:
HTTP(TCP 端口 80)和 HTTPS (443)
UDP 27015 至 27030
TCP 27015 至 27030
来源:https://support.steampowered.com/kb_article.php?ref=8571-GLVN-8711
您可以做的是通过路由器限制其中一些端口。因此,假设只启用 27015 到 27020。这会将端口数量减少到最初尝试使用的 33%。我不确定这实际上会如何破坏 steam,但如果它每个线程使用一个端口,这可能会解决您的问题,也可能会破坏一切。
对于 Windows 应用商店应用程序,没有关于使用哪些端口的文档,但您可以使用 WireShark 之类的工具来找出并阻止其中一些端口。
或者,您可以直接进入 Steam 设置并设置下载速度,这样可以减少传入流量。同样,对于 Windows Store 应用,不确定您是否可以更改这一点。