客户端套接字连接存在限制

时间:2013-04-24 07:05:46

标签: tcp windows-xp client

我在unix(OSX)机器上使用kqueue创建了一个tcp / ip echo服务器。它设置打开100个tcp / ip端口并接受每个端口4000个客户端。我使用另外15台机器建立了大约230,000个连接。 (每个过程4000个conn,每个盒子4个过程)

似乎服务器可以接受更多但问题是客户端。有很多连接的限制。如Windows XP - 3000,Windows7& Unix - 16384 ..

限制是对的吗?我错了吗?我希望在单个客户端上尽可能多地建立连接,例如500,000 / Machine。

我怎么能克服?

2 个答案:

答案 0 :(得分:0)

  

我想在单个客户端上尽可能多地建立连接,例如500,000 / Machine。

你做不到。 TCP连接由元组{协议,源地址,源端口,目标地址,目标端口}标识。这五个要素中有四个是固定的。剩余的元素源端口最多只能有65535个不同的值,因为端口号有16位且不能为零。

因此,您对同一客户的500,000个连接的期望过于乐观,大约为10倍。

答案 1 :(得分:0)

您可以在客户端计算机上配置多个IPv4地址。在客户端上运行的进程应该接收源IP地址作为参数,并将连接套接字绑定到它。因此,使用10个IP地址,您可以轻松达到400000个连接。