#初步理解TCP最大并发连接个数 ###前记 前几年跟我们技术团队一个做消息推送系统的团队leader聊天,他告诉我,他们现在使用erlang开发的消息推送系统的connector server现在可以达到单机24G内存150万连接,我们暂且不讨论他们使用erlang是如何做到的,我当时就引申出两个问题:
- 这个单机能够撑多少连接的测试用例是什么样的?
- 假设系统性能允许,硬件允许,那么在一单机上这个服务程序可以支持多少并发连接?
###问题理解
参考博文关于 TCP 并发连接的几个思考题与试验
这篇博文把上面的第二个问题再细化具体了一下:
假设有一个TCP服务程序地址是属于IPv4的范畴,且只监听一个端口,那么问它从离殇能接受多少个并发连接?
答案: 只考虑IPv4情况下,并发数的理论上限2^48
因为在TCP连接有两端,其中每一端是ip:port。因为IPV4的个数是4个字节,也就是可以假设这世界上可以有2^32个拥有独立IP的客户端主机,然后每个客户端主机上能够打开的最大端口数是2个字节也就是2^16,
所以理论上能够去连接这个TCP服务端程序的连接一共是2^32乘以2^16=2^48