Linux上超过65536个TCP连接

我试图从Linux(RedHat5)框中设置超过65536个传出TCP连接。

我已经configuration了传出和接收框以允许足够的文件描述符。

我不相信接受方面有问题 – 我有多个目标框,每个有多个IP地址,我使用多个端口。

在传出方面,我不相信我每个IP地址的限制 – 我使用多个IP地址和端口(我打开连接从端口30,000 – 60,000为每个IP地址)。

有一些Linux内核可调参数我错过了吗? 或者TCP有一些根本的限制?

失败的是,我的应用程序打开连接挂在connect()调用。

感谢NickB的帮助

这是一个博客,有人从一个盒子里获得了超过100万的出站。

  • 理查德琼斯,MetaBrew.com,2008-11-04, 与Mochiweb,第3部分, 一个百万用户彗星应用部分把它变成100万 (存档在这里 。)

在第1部分中,我们将范围设置为“1024 65535” – 表示有65535-1024 = 64511个非特权端口可用。 其中一些将被其他进程使用,但是我们将永远无法获得64511个客户端连接,因为我们将用尽端口。

所以我们带上17个新的IP地址,打算从每个地址build立62,000个连接 – 总共给我们1,054,000个连接

TCP协议仅将16位用于目标端口和源端口。 没有办法一次打开超过65536个端口 – 甚至没有Linux。