当前位置:   article > 正文

tcp连接 本地端口_最大65535TCP连接是怎么回事

tcp连接的本地端口

问题

一个端口最多接受一个客户端的65535个TCP连接?

81a638c33dbfb290883d00130cc054b7.png

原理

系统通过一个四元组来标识一条TCP连接,结构如:{本地IP,本地端口,远程IP,远程端口}

在IPv4上, 本地IP和远程IP是32位,本地端口和远程端口为16位,即IP可以是2^32=4294967296,端口可以是2^16=65536。因此可以有TCP连接2^(32+16+32+16)=79228162514264337593543950336 个,这个是理论值。在IPv6上就更不用说了。

一个服务端口可以建立多少个TCP连接?

一个服务一般端口和IP是绑定的,因此能变的就是远程IP和远程端口,即可以建立 2^(32+16)=281474976710656 个TCP连接。

一个服务端口可以和一个客户端建立多少个TCP连接?

对于服务端来说,确定的是本地IP和端口,一个客户端表示远程IP也是固定的,即可以建立 2^16 = 65536 TCP连接。(一般说的65535是不包含0,0不会用)

以上都是理论值。

a01a3420ab76f86222f3dae72fd203e4.png

实际

客户端一般会有一些保留端口用于自身的服务,不用全部用于远程连接,因此一般不会达到65535这个极限。

529098adcc507b413d8afcae9b87b1ef.png

例如客户端是windows操作系统,一般会有网络邻居的服务等占用端口。

比如Linux客户端上内核上可以通过内核参数net.ipv4.ip_local_port_range限制,用户远程连接的端口范围

cat /proc/sys/net/ipv4/ip_local_port_range3276860999

注:前面要是偶数,后面要奇数,不然会有告警信息。

还有一些使用nat的网络环境,只有一个公网IP,也会限制客户端建立TCP连接。

87aee8c27519ece3a4c6c822f3bb904b.png

总结

一个端口最多接受一个客户端的65535个TCP连接,这个主要看客户端有没有这么多端口用,不是服务端的限制。

个人总结,有问题留言一起讨论

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/164597
推荐阅读
相关标签
  

闽ICP备14008679号