最大TCP连接数

时间:2016-05-04 07:01:01

标签: c++ sockets tcp omnet++

我正在做TCP客户端 - 服务器模拟。在模拟中,我创建了2个客户端和2个服务器。我已经编程了读取请求将转到服务器1,写入请求将转到服务器2.因此,客户端将始终更新它的套接字并建立与服务器的新连接。

然而,在客户端与服务器建立66561次连接之后,它只是发送一些空的ACK数据包,而不是发送请求数据包。

我希望两个客户端能够发送多达数百万个请求,但目前,两个客户端最多只能发送13k个请求。任何人都可以给我提示或建议吗?

2 个答案:

答案 0 :(得分:1)

Nagle's algorithm

解决方案:

  • 请勿在您的应用协议中使用小包装
  • 在双方客户端/服务器上使用套接字选项 TCP_NODELAY

答案 1 :(得分:0)

听起来像以前创建的大多数连接仍然占用资源(未从系统中释放)。根据您提供的信息,

然而,在客户端与服务器建立66561次连接之后,它只是发送一些空的ACK数据包,而不是发送请求数据包。

看起来已发布约1000多个连接。可能是因为2msl时间到期了。如果是这种情况,建议您在创建新连接之前明确释放连接。

复制并粘贴您的C / S部件代码将有助于分析。