是否可以通过向 localhost 快速发送大量 HTTP 请求来耗尽您的动态端口范围?

Posted

技术标签:

【中文标题】是否可以通过向 localhost 快速发送大量 HTTP 请求来耗尽您的动态端口范围?【英文标题】:Is it possible to exhaust your dynamic port range by rapidly sending a lot of HTTP requests to localhost? 【发布时间】:2021-08-24 14:16:52 【问题描述】:

考虑以下场景。我在同一台机器上有一个服务器应用程序和一个客户端应用程序。我的客户端非常快速地向我的服务器发送大量 HTTP 请求,并且新请求的处理速度比旧请求的处理速度更快。

如果客户端和服务器应用程序部署在不同的机器上,我们最终会用完客户端机器上动态端口范围内的端口。但这对于通过环回的本地主机连接也是如此吗?还是环回以某种方式“优化”了套接字,所以这个问题不适用?

我主要对特定于 Windows 的答案感兴趣,但特定于 Linux 的信息也可能有用。

谢谢!

【问题讨论】:

【参考方案1】:

在 FreeBSD 上:肯定是的。

在 Windows 上:可能是的。您的 TCP 状态是您的 IP 地址和端口的元组。如果您选择连接到本地主机,它仍然在您的连接表中并且处理完全像外部连接。这是我在 Windows 7 区域中已经遇到的一个问题,我不知道从那以后它已经改变了。它会带你很多连接面团。

【讨论】:

以上是关于是否可以通过向 localhost 快速发送大量 HTTP 请求来耗尽您的动态端口范围?的主要内容,如果未能解决你的问题,请参考以下文章

Axios 不断向错误的端点发送 GET

无法使用快速js检索会话

尝试从 localhost 向 localhost:8000 发送数据时,ajax 调用不起作用

从 Android Emulator 向 localhost 发送文件 - 来自 localhost / PHP 文件问题的 301 错误响应

解析服务器不向大量受众发送推送通知

如何快速自动发送 FCM 或 APNS 消息?