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

问题

一个端口最多接受一个客户端的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连接,这个主要看客户端有没有这么多端口用,不是服务端的限制。

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值