为什么服务器可以支持超过65,536个客户端?

时间:2015-09-05 13:12:11

标签: sockets tcp

让我说一下我要问的一些背景,说清楚:
在通过Internet进行服务器 - 客户端TCP通信的上下文中,当服务器进程正在运行时,客户端进程可以启动到服务器的TCP连接。它通过启动三次握手来实现 在握手阶段结束时,accept()功能(在服务器端的欢迎套接字上调用)将设置套接字 - a < strong>连接套接字 - 专用于新传入的客户端连接 从现在开始,直到此连接终止,服务器将通过连接套接字与客户端通信。

由于每个客户端都获得一个连接套接字,并且服务器上的TCP套接字由四元组唯一标识(src IP地址,src端口号,dest IP地址,dest端口号),并且端口号是16位数,那么服务器如何支持超过65,536个客户端(好吧,65,536减去保留的客户端)?

1 个答案:

答案 0 :(得分:2)

除了客户端端口之外,元组还有其他三个成员。如果其中一个变化,则可能发生连接。通常,客户端端口和IP将变化到足以允许服务器使用一个IP和一个端口。如果需要,服务器可以使用多个IP和多个端口,这很难。