让我介绍一下我在问什么,以便说清楚:
在通过Internet进行服务器 - 客户端TCP通信的上下文中,当服务器进程正在运行时,客户端进程可以启动TCP连接到服务器。它通过发起三方握手来实现。
在用手摇动阶段结束时,accept()
函数(调用在在服务器侧欢迎插座)将设立新插座 - 一个连接插座 - 专用于新的输入客户端连接。
从现在起,直到此连接将被终止,服务器将通过连接套接字与客户端进行通信。由于每个客户端都获得一个连接套接字,并且服务器上的TCP-socket由四元组(src IP地址,src端口号,dest IP地址,dest端口号)唯一标识,并且端口号为一个16位的数字,那么服务器如何支持超过65,536个客户端(好吧,65,536减去保留的)?为什么服务器可以支持超过65,536个客户端?
回答
该元组除了客户端口外还有三个其他成员。如果其中一个变化,连接可能发生。通常,客户端端口和IP会有所不同,以允许服务器使用一个IP和一个端口。如果需要,服务器可以使用多个IP和多个端口,这很难。
因此......服务器上的两个“连接套接字”可以具有相同的本地端口**,只要该四元组中的其他因素不同即可。 –
是的。如果Web服务器接受端口80上的某些内容,则该连接将位于端口80上。不仅仅是监听。 – usr
@ so.very.tired:如果服务器正在侦听单个IP /端口,所有连接的客户端将具有相同的服务器端IP /端口,并且通过客户端IP /端口进行区分。如果服务器正在监听多个IP /端口,则来自同一台计算机的两个连接的客户端可以使用相同的客户端IP **和**端口,只要它们各自连接到不同的服务器端IP /端口即可。这并不常见,但这是可能的。客户端端口通常是随机选择的,但也可以通过bind()静态地进行选择。 –
- 1. Xtext语言服务器可以支持多个客户端吗?
- 2. Android客户端 - Java服务器:一台服务器可以同时支持多少个客户端?
- 3. 支持多个客户端的服务器可能听?
- 4. 为什么WCF不支持服务端超时?
- 5. 为支持多协议的服务器设计客户端
- 6. 为什么以在客户机和服务器端
- 7. Java客户端/服务器 - 我们可以使服务器作为客户端到另一台服务器吗?
- 8. iPhone 3.0中的Gamekit服务器可以支持多少客户端
- 9. Play Framework对客户端/服务器状态的同步化有什么支持?
- 10. PHP可以作为客户端与服务器保持持久会话吗?
- 11. 我可以通过服务器实现客户端 - 客户端通信吗?
- 12. Java为什么服务器不响应第二个客户端?
- 13. 防止客户端超载服务器?
- 14. 为什么服务器端HTML渲染比客户端更快?
- 15. 多个客户端支持
- 16. 如何启用gRPC服务器以支持仅一个客户端连接
- 17. 为什么短线只能持有65,536个可能值?
- 18. 如何告诉服务器客户端支持SPDY协议?
- 19. 最佳Java支持的服务器/客户端协议?
- 20. 最佳Python支持的服务器/客户端协议?
- 21. 客户端服务器与脱机支持同步
- 22. 客户端与服务器之间不支持TLS 1.0
- 23. 支持i18n的Rails 3.1共享客户端/服务器模板
- 24. 服务器和客户端都支持Java NIO吗?
- 25. 客户端和服务器同时支持多种语言
- 26. redis是否支持服务器和客户端之间的UDP
- 27. 什么可能阻止客户端连接到服务器?
- 28. 为什么不直接连接到客户端的SQL服务器?为什么我们需要客户端 - 服务器模型中的应用服务器?
- 29. 为什么客户端不连接到服务器? Qt
- 30. Java Socket为什么服务器不能回复客户端
http://serverfault.com/questions/533611/how-do-high-traffic-sites-service-more-than-65535-tcp-connections – CodeCaster
通过引入多个CD服务器(农场)来增加冗余 - 假设资源是约束。 –
而且还http://stackoverflow.com/questions/2332741/what-is-the-theoretical-maximum-number-of-open-tcp-connections-that-a-modern-lin。尝试搜索。 – CodeCaster