可能的网络连接数

时间:2011-05-10 05:42:35

标签: sockets connection port

由于端口号限制为65536,连接数是否有限制?

每个连接如何相互不同?

如果是端口,那么同时连接的连接数绝不会超过65536个?

2 个答案:

答案 0 :(得分:9)

有许多不同的作品。由于连接由(Src IP, Src Port, Dest IP, Dest Port)元组定义,因此在任何给定时间允许在两个给定对等体之间建立65536 ^ 2个连接:从1到1,从1到2,从1到65535,等等。这只是在两个同行之间 - 你当然可以同时向许多同行开放许多联系。

,大​​多数操作系统限制每个进程打开的文件描述符/句柄数。此限制历史较低(20),但现在通常更高(我的系统为1024,ulimit -a将显示bash(1)中的每个进程限制。

除了Unix系统的setrlimit(3)限制外,还有系统范围的限制; Linux系统上的/proc/sys/fs/file-max将报告整个系统允许的最大打开文件数。 (这是我系统上的596118。)其他系统将有不同的限制。

并且,中间stateful firewall强制执行的打开连接数可能会有限制。由于每个状态都需要防火墙表中的内存,因此任何状态都可能强制执行一些任意限制,以避免内存不足。

答案 1 :(得分:7)

TCP连接实际上是通过对等IP地址+对等端口+本地IP地址+本地端口来识别的,所以你实际上可以超过64k,但我不知道操作系统是否允许工作超过64k每个本地IP地址。 Windows没有。

有趣的是,港口在关闭后可以保留一段时间。 (这样做是为了避免旧连接和新连接之间的意外或故意串扰。)通过简单地在紧密循环上创建和关闭连接,您实际上可以使您的机器用完端口。有关将挂起套接字连接调用的Perl代码(在某些计算机上),请参阅http://www.perlmonks.org/?node_id=897591。使用所有套接字。

UDP也有端口,但UDP没有连接。因此,套接字仅通过其本地IP地址+本地端口进行标识,因此每个本地IP地址最多可以有64k个UPD端口。

更新:在UDP上添加了段落。