【问题标题】:there is a limitation of client socket connection客户端套接字连接存在限制
【发布时间】:2013-04-17 14:54:28
【问题描述】:

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

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

限制对吗?我错了吗?我想在单个客户端上建立尽可能多的连接,例如 500,000 / 机器。

我该如何克服?

【问题讨论】:

    标签: tcp windows-xp client


    【解决方案1】:

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

    【讨论】:

    • Nokolai,你是个天才。谢谢。
    【解决方案2】:

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

    你不能。 TCP 连接由元组 {protocol, source address, source port, target address, target port} 标识。这五个元素中有四个是固定的。其余元素,源端口,最多只能有 65535 个不同的值,因为端口号有 16 位,不能为零。

    因此,您对同一客户端的 500,000 次连接的预期过于乐观了大约 10 倍。

    【讨论】:

      猜你喜欢
      • 2015-02-08
      • 1970-01-01
      • 1970-01-01
      • 2021-12-22
      • 1970-01-01
      • 2016-03-31
      • 1970-01-01
      • 2021-02-03
      • 2013-04-21
      相关资源
      最近更新 更多