并发客户端(使用不同的端口号)的最大数量可以在同一端口(单个套接字)上与服务器通信的最大数量是多less? 什么是可能影响这个计数的因素? 我正在Linux环境中寻找这个信息和telnet。
这部分取决于您的操作系统。
然而对特定端口没有限制。 然而,并发连接的数量是有限的,通常受内核支持的文件描述符数量的限制(如2048)。
需要记住的是,TCP连接是唯一的,连接是一对端点(本地和远程IP地址和端口),所以1000个连接连接到服务器上的同一端口并不重要,因为连接是所有仍然是独特的,因为另一端是不同的。
另一个值得注意的限制是一台机器只能做大约64K的出站连接或内核连接的限制,以较低者为准。 这是因为端口是无符号的16位数字(0-65535),每个出站连接使用其中一个端口。
你可以通过给机器额外的IP地址来扩展这个。 每个IP地址是另一个64K地址的地址空间。
比你关心的还要多。 更确切地说。
我可以保证它不仅仅是这些。 有大量的套接字可扩展性的限制,可以解决(谷歌的C10K问题)。 在实践中,在Linux下一个进程有可能使用超过10,000个套接字。 如果每台服务器有多个进程,则可以再次增加进程。
没有必要使用单个端口,因为如果需要的话,您的专用负载均衡器将能够循环多个端口。
如果您正在为数千个客户端进程运行一个服务,那么它可能保持正常运行可能相当重要,因此您将需要几台服务器来进行冗余。 因此,您将不会遇到部署更多服务器的问题。
我在Windows上做了一个测试,在一个套接字上做了多个环回连接。 Windows在16372标记之后拒绝分配任何东西。