美文网首页
创建TCP连接的限制

创建TCP连接的限制

作者: 兮兮码字的地方 | 来源:发表于2022-01-11 10:57 被阅读0次

1. 端口号限制?

首先,不存在由于端口号限制 65535 个的说法,因为目标端的ip和端口是无限的。

当然, Linux 对可使用的端口范围是有具体限制的,具体可以用如下命令查看:

[root]# cat /proc/sys/net/ipv4/ip_local_port_range 

1024 65000

这个限制可以 vim /etc/sysctl.conf 这个文件进行修改,我们在这个文件里添加一行记录:

net.ipv4.ip_local_port_range = 60000 60009

保存好后执行 sysctl -p /etc/sysctl.conf 使其生效。

2. 文件描述符的限制?

系统级:当前系统可打开的最大数量,通过 cat /proc/sys/fs/file-max 查看

用户级:指定用户可打开的最大数量,通过 cat /etc/security/limits.conf 查看

进程级:单个进程可打开的最大数量,通过 cat /proc/sys/fs/nr_open 查看

[root ~]# cat /proc/sys/fs/file-max

100000

[root ~]# cat /proc/sys/fs/nr_open

100000

[root ~]# cat /etc/security/limits.conf

...

* soft nproc 100000

* hard nproc 100000

修改单个进程可打开的最大文件描述符限制为100,可以这样:

echo 100 > /proc/sys/fs/nr_open

理论上文件描述符可以设置的足够大。

3. 线程数的限制?

每建一个TCP连接就创建一个线程的方式,是最传统的多线程并发模型,早期的操作系统也只支持这种方式。

 C10K 问题: 当服务器连接数达到 1 万且每个连接都需要消耗一个线程资源时,操作系统就会不停地忙于线程的上下文切换,最终导致系统崩溃。

但是:

现在的操作系统都支持 IO 多路复用的方式,简单说就是一个线程可以管理多个 TCP 连接的资源,这样就可以用少量的线程来管理大量的 TCP 连接了。

4. 内存的限制?

这个错误叫内存溢出,每个TCP连接本身,以及这个连接所用到的缓冲区,都是需要占用一定内存的

5. CPU的限制?

6. 总结一下,创建tcp连接需要的资源:

相关文章

  • 创建TCP连接的限制

    1.端口号限制? 首先,不存在由于端口号限制 65535 个的说法,因为目标端的ip和端口是无限的。 当然, Li...

  • JDBC创建sokect连接的过程

    一、创建连接 - TCP连接怎么创建 com.mysql.jdbc.ConnectionImpl#coreConn...

  • TCP连接的建立与释放

    一、TCP连接的建立 TCP 是面向连接的,在传输 TCP 报文段之前先要创建连接,发起连接的一方被称为客户端,而...

  • socket--客户端

    大多数连接都是可靠的TCP连接,创建TCP连接时,主动发起的连接叫客户端,被动响应连接的叫做服务器

  • 最大TCP连接数

    按照目前的理解TCP最大连接数在于系统的限制、以及硬件的上限。源IP、源端口与目标IP、目标端口不断变化则可以创建...

  • tcp连接建立断开过程

    使用telnet指令连接服务器,创建一个tcp连接,创建完毕后不传送数据,马上关闭该连接。对该连接创建与断开过程中...

  • TCP客户端小程序

    几个小概念 网络小程序,其中一种方式就是用TCP/IP协议进行连接。创建TCP连接时,主动发起连接(请求对方提供服...

  • Iptables限制同一IP连接数防CC/DDOS攻击方法

    限制与80端口连接的IP最大连接数为10iptables -I INPUT -p tcp --dport 80 -...

  • 请求限制

    现在的 http 协议支持在一次连接上建立多次请求,于是就有了请求限制和连接限制http1.1 支持顺序性 tcp...

  • http/https、TCP/IP、UDP的选择

    TCP是简单直接的长连接,可靠的信息传输,数据包的大小没有限制。要实现一个稳定的TCP网络连接,需要处理断线检测、...

网友评论

      本文标题:创建TCP连接的限制

      本文链接:https://www.haomeiwen.com/subject/bvjbcrtx.html