Jay*_*tum 5 port reverse-proxy load-balancing haproxy azure
当请求到来时,它会被重新路由到该请求的多个可用服务器之一。但只有 64k 端口可用,因此在任何给定时间最多只能有 64k 传出请求。那么一些网站如何服务数百万并发请求呢?如果有人能够消除这种混乱,那就太棒了。谢谢!
已经链接的高流量站点如何为超过 65535 个 TCP 连接提供服务?Stack Overflow 上的其他问题解释了 5 元组以及每个 IP 的 这个(略小于)64K 限制是如何实现的- 每个临时端口都会获得一个连接。这仍然适用于“负载平衡器”工作负载,它也是该端的 IP 软件堆栈。
假设您在 IP 203.0.113.80 端口 443 上运行一个服务。不知何故,172.16.0.0/12 中的 100 万个 IP 中的每一个都单独访问它。64K 端口并不重要,因为它们的 IP 地址已经是唯一的。172.16.0.1 客户端可以建立 64K 连接,172.16.0.2 客户端也可以。因为这些流程是不同的:
Proto Source IP port Target IP port
TCP 203.0.113.80 443 172.16.0.1 44321
TCP 203.0.113.80 443 172.16.0.2 44321
Run Code Online (Sandbox Code Playgroud)
实际上,后端服务和代理连接的设备需要调整和扩展才能达到一百万。您需要大量主机,并调整它们的 TCP 堆栈以达到这么高的水平。
通常,只有在使用负载测试实用程序时,同一端口上的相同 IP 之间才会发生数万个连接。大多数单个 IP 没有足够的工作来建立数千个并发连接。