可以在同一端口(单个套接字)上与服务器通信的最大并发客户端数(使用不同的端口号)是多少?有什么因素会影响这个数量?我正在Linux环境中查找w.r.t telnet的这些信息。
答案 0 :(得分:30)
这部分取决于您的操作系统。
但是对特定端口没有限制。然而,并发连接数有一个限制,通常受内核支持的文件描述符数量的限制(例如2048)。
要记住的是TCP连接是唯一的,连接是一对端点(本地和远程IP地址和端口),因此1000连接是否连接到服务器上的同一端口并不重要,因为连接仍然是唯一的,因为另一端是不同的。
要注意的另一个限制是,一台机器只能进行大约64K的出站连接或连接的内核限制,以较低者为准。这是因为端口是无符号的16位数(0-65535),每个出站连接使用其中一个端口。
您可以通过为计算机提供额外的IP地址来扩展此功能。每个IP地址是另一个64K地址的地址空间。
答案 1 :(得分:5)
比你更关心。或者更确切地说。
我可以保证它不仅仅是所有这些。大量套接字存在可扩展性限制,可以解决(Google针对c10k问题)。实际上,Linux下的单个进程可以使用超过10,000个套接字。如果每台服务器有多个进程,则可以再次增加该进程。
没有必要使用单个端口,因为您的专用负载平衡器将能够在需要时循环使用多个端口。
如果您为1000多个客户端进程运行服务,那么它继续工作可能相当重要,因此无论如何您将需要多个服务器来实现冗余。因此,部署更多服务器时不会遇到问题。
答案 2 :(得分:-1)
我在Windows上进行了测试,在单个套接字上进行多次环回连接。 Windows拒绝在16372分之后分配任何内容。