【码上杂谈】关于之前对Server上允许的最大TCP连接数理解错误的更正
来源:互联网 发布:mac jmeter下载安装 编辑:程序博客网 时间:2024/05/01 10:33
转载请注明原文地址:http://blog.csdn.net/mxm691292118/article/details/51165603
我把Android重难点和读书笔记都整理在github上:https://github.com/miomin/AndroidDifficulty
如果你觉得对你有帮助的话,希望可以star/follow一下哟,我会持续保持更新。
前几天去国内某二线互联网企业参加实习生面试,与面试官讨论Server上允许的最大TCP连接数是多少。我回答,由于资源限制或其他客观因素,一般保持3000-4000的连接就死掉了。面试官问我,如果不考虑这些因素,理论上的最大连接数应该是多少?
我回答如下:操作系统上端口号1024以下是系统保留的,从1024-65535是用户使用的。由于每个来自客户端Socket的TCP连接都要占一个端口号,所以我们最多可以有60000多个并发连接。
面试官点了点头,说没错,我也觉得没什么问题,相信还有很多人有跟我一样的想法。大错特错~!!!!!
今天晚上队友问我这个问题,讨论了一下,越发觉得不对劲,后来在博客上看到正解。下面引用内容:
如何标识一个TCP连接:系统用一个4四元组来唯一标识一个TCP连接:{local ip, local port,remote ip,remote port}。好吧,我们拿出《UNIX网络编程:卷一》第四章中对accept的讲解来看看概念性的东西,第二个参数cliaddr代表了客户端的ip地址和端口号。而我们作为服务端实际只使用了bind时这一个端口,说明端口号65535并不是并发量的限制。
server最大tcp连接数:server通常固定在某个本地端口上监听,等待client的连接请求。不考虑地址重用(unix的SO_REUSEADDR选项)的情况下,即使server端有多个ip,本地监听端口也是独占的,因此server端tcp连接4元组中只有remote ip(也就是client ip)和remote port(客户端port)是可变的,因此最大tcp连接为客户端ip数×客户端port数,对IPV4,不考虑ip地址分类等因素,最大tcp连接数约为2的32次方(ip数)×2的16次方(port数),也就是server端单机最大tcp连接数约为2的48次方。
- 【码上杂谈】关于之前对Server上允许的最大TCP连接数理解错误的更正
- 关于TCP最大连接数的问题
- 对TCP上的SIP实现理解
- oracle查看允许的最大连接数
- Windows 2003 server远程桌面连接“终端服务器超出了最大允许连接数”的解决办法
- 打印机连接不上的解决办法:超过连接最大数
- windows server 2003服务器远程桌面出现“终端服务器超出了最大允许连接数”的解决办法
- Oracle数据库当前连接数 允许的最大连接数 修改最大连接数
- 更正一个上课时讲的BUG
- 远程桌面超出了最大允许连接数的解决办法
- 终端服务器超出了最大允许连接数的解决办法
- 终端服务器超出了最大允许连接数的解决办法
- 终端服务器超出了最大允许连接数的解决办法
- 3389远程桌面 最大允许连接数的解决办法
- 终端服务器超出了最大允许连接数的解决办法
- “终端服务器超出了最大允许连接数”的解决方法
- 远程桌面时出现超过最大允许连接数的解决办法
- 使用远程桌面遇到“超出最大允许连接数”的问题
- librbd代码目录解读
- python 类属性
- Leetcode题解 70. Climbing Stairs
- Android Studio 错误 Duplicate files copied in APK META-INF/LICENSE.txt
- 【Leetcode】1.Two Sum 解题
- 【码上杂谈】关于之前对Server上允许的最大TCP连接数理解错误的更正
- poj 2082 Terrible Sets
- 背包问题
- ZOJ-3802-Easy 2048 Again【状态压缩dp】【位运算】【好题】
- compoer安装
- 杭电2187
- 单例模式
- Leetcode-136:Single Number
- 杭电1161