服务端TCP连接数问题

参考

  • 经典的”服务器最多65536个连接”误解
  • 由socket的accept说开去
  • how-do-multiple-clients-connect-simultaneously-to-one-port-say-80-on-a-server

总结

一个socket是由5个字段的元组标识, {本地IP, 本地端口, 目标IP, 目标端口, 协议}.

对于服务端的Server socket来说, 其绑定了一个IP以及一个PORT以后, 其实之后Accept新的连接请求, 都不会再申请一个新的PORT. 因为每次Accept之后新生成的socket都是有不同五元组 (对于不同客户端有客户端IP或者客户端PORT不同, 也可能两者都不同; 对于同一个客户端的多个连接, 有客户端PORT不同), 所以服务器能够区分不同socket, 而无需再申请一个新的PORT.

而且假设服务端每一次Accept, 都会申请一个新的PORT, 一个是浪费资源, 一个是这样导致用户不得不重新连接这个新的远程端口, 所以这样做是极其不合理的.

你可能感兴趣的:(服务端TCP连接数问题)