TCP服务器最多支持多少客户端连接
目录
一、理论数值
二、实际部署
参考
一、理论数值
首先知道一个基础概念,对于一个 TCP 连接可以使用四元组(src_ip, src_port, dst_ip, dst_port)进行唯一标识。因为服务端 IP 和 Port 是固定的(如下图中的bind阶段),那么一个TCP服务器支持最多的连接数就是由客户端 IP 和 端口决定的了。
端口数在 TCP 传输协议中占两个字节,所以一共有 2 ^ 16 = 65535 个端口(未减去保留端口,假设数量为 m)。
IP 在 IP 网络协议中占四个字节,所以有 2 ^ 32 个网络地址(未减去广播地址、多播地址和私有地址,假设他们数量之和为 n)。
所有理论上 TCP 服务器支持 ( 2 ^ 32 - n ) * ( 2 ^ 16 - m )条连接,简单计算一下,理论上支持的 TCP 连接数是以亿为量级的。
下图是 TCP 服务器与客户端的交互过程。

二、实际部署
实际使用中,TCP 服务器支持的最大连接数受服务端内存和文件描述符的约束。
(1)一条处于 ESTABLISH 状态的 TCP 连接占用的大小是 3.44 KB,数据来源文末参考链接。

(2)服务器内每个 TCP 连接就是一个文件描述符,受如下 linux 系统参数的限制。
系统级:当前系统可打开的最大数量,通过 cat /proc/sys/fs/file-max 查看;
用户级:指定用户可打开的最大数量,通过 cat /etc/security/limits.conf 查看;
进程级:单个进程可打开的最大数量,通过 cat /proc/sys/fs/nr_open 查看;
参考
https://mp.weixin.qq.com/s/l9ggXLAEHp4LTjd2Qsyqtg
相关文章:
TCP服务器最多支持多少客户端连接
目录 一、理论数值 二、实际部署 参考 一、理论数值 首先知道一个基础概念,对于一个 TCP 连接可以使用四元组(src_ip, src_port, dst_ip, dst_port)进行唯一标识。因为服务端 IP 和 Port 是固定的(如下图中的bind阶段࿰…...
UML类图学习
UML类图学习 UML类图是描述类之间的关系概念1.类(Class):使用三层矩形框表示2.接口(interface):使用两层矩形框表示,与类图主要区别在于顶端有<<interface>>显示3、继承类(extends):用空心三角…...
死锁面试题详解
什么是死锁? 死锁是指两个或多个进程在执行过程中,因争夺资源而造成的一种相互等待的现象,如果没有外力干涉,这些进程将永远无法继续执行 死锁通常发生在多个进程试图同时访问同一资源而无法获取的情况下,例如&#…...
【rust/bevy】使用points构造ConvexMesh
目录 说在前面问题提出Rapier具体实现参考 说在前面 操作系统:win11rust版本:rustc 1.77.0-nightlybevy版本:0.12github:这里 问题提出 在three.js中,可以通过使用ConvexGeometry从给定的三维点集合生成凸包(Convex Hu…...
【C语言】string.h——主要函数总结
string.h主要定义了字符串处理函数和内存操作函数。 字符串处理函数 strlen() 功能:strlen()函数返回字符串的字节长度,不包括末尾的空字符\0。 函数原型:size_t strlen(const char* s); 返回值:返回的是size_t类型的无符号整…...
如何在前端优化中减少页面加载时间?
在前端优化中,减少页面加载时间是至关重要的,因为快速加载的页面可以提高用户体验,减少跳出率,从而提升网站的整体性能。本文将介绍一些实用的前端优化技巧,以帮助您减少页面加载时间。 一、优化图片 图片是页面加载…...
Typecho后台无法登录显示503 service unavailable问题及处理
一、Typecho 我的博客地址:https://www.aomanhao.top 使用老薛主机动态Typecho博客框架handsome主题的搭配,文章内容可以异地网页更新,可以听后台背景音乐,很好的满足我的痛点需求,博客部署在云端服务器访问响应较快…...
Python入门(一)
anaconda安装 官网:https://www.anaconda.com下载 jupyter lab 简介: 包含了Jupyter Notebook所有功能。 JupyterLab作为一种基于web的集成开发环境,你可以使用它编写notebook,操作终端,编辑markdown文本…...
云表企业级无代码案例-自主开发ERP管理系统
痛点 我是一名企业经营者,同时也是信息化建设的坚定倡导者。凭借管理专业背景,我深知经营数据对于企业的至关重要性。如何高效搜集、精准分析经营数据,并将其转化为决策依据,直接关乎企业的生死存亡。太多因盲目决策而倒闭的企业…...
Qt —— 编译Qt5版本QFTP库,并实现连接服务、获取列表、上传、下载、删除文件等操作(附源码、附基于Qt5编译好的QFTP库)
示例效果1 示例效果2 介绍 QFTP是Qt4的库,Qt5改用了QNetworkAccessManager来代替。但是Qt5提供的QNetworkAccessManager仅支持FTP的上传和下载,所以只能将QFTP库编译为Qt5的库来进行调用。 QFTP在Github的下载地址:https://github.com/qt/qtftp 客户端源码生成的release结果…...
碰到es6的...拓展运算符
第一次碰到,哥们啥也不会 let searchForm ref({}) let formData ref({}) const initArgs async() > { args.value props.init_data formData .value { ...searchForm.value,//把值都带过来 workWhere : args.value.workWhere, statusArgs : args.value.sta…...
JDK8新特性详解
☆* o(≧▽≦)o *☆嗨~我是小奥🍹 📄📄📄个人博客:小奥的博客 📄📄📄CSDN:个人CSDN 📙📙📙Github:传送门 📅&a…...
ELK+Filebeat 部署实验
Filebeat是轻量级的开源日志文件数据搜集器。通常在需要采集数据的客户端安装 Filebeat,并指定目录与日志格式,Filebeat 就能快速收集数据,并发送给 logstash 进行解析,或是直接发给 Elasticsearch 存储,性能上相比运行…...
利用wireshark lua扩展能力增加自定义解析器[注释解读版]
前言 Wireshark提供了lua扩展能力,可以定制一些Listner和Dissector,用于一些自定义的使用场景,例如: lua插件适应场景Listener报文统计、内容抽取等Dissector协议树解析,在wireshark中立等可看 已在以前的文档中积累了对于List…...
GPT-5不叫GPT-5?下一代模型会有哪些新功能?
OpenAI首席执行官奥特曼在上周三达沃斯论坛接受媒体采访时表示,他现在的首要任务就是推出下一代大模型,这款模型不一定会命名GPT-5。虽然GPT-5的商标早已经注册。 如果GPT-4目前解决了人类任务的10%,GPT-5应该是15%或者20%。 OpenAI从去年开…...
2024.1.23(347.前k个高频元素)
2024.1.23(347.前k个高频元素) 思路 这道题目主要涉及到如下三块内容: 1.要统计元素出现频率 2.对频率排序 3.找出前K个高频元素 首先统计元素出现的频率,这一类的问题可以使用map来进行统计。 然后是对频率进行排序,这里我们可以使用一种…...
MySQL对数据库的操作
前腰:本节只是的数据库本身进行增删查改、备份、恢复等操作,而不是对数据库内的数据表做操作,还请您区分好这两点。 1.创建数据库 # 创建数据库的语法形式 CREATE DATABASE [IF NOT EXISTS] database_name [create_specification]# 大写的是…...
解决Unity WebGLInput插件全屏输入的问题
unity webgl的中文输入插件WebglInput在全屏的时候会出现无法输入中文/输入的英文会字母出现在光标后面/什么都输入不了的等无法正常使用的情况。 插件官网作者给出了unity的2017,2018,2019版本的全屏输入解决方法。 最新插件下载地址:http…...
Android14实战:调整A2DP音量曲线(五十三)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只…...
vector讲解
在学习玩string后我们开始学习vector,本篇博客将对vector进行简单的介绍,还会对vector一些常用的函数进行讲解 vector的介绍 实际上vector就是一个数组的数据结构,但是vector是由C编写而成的,他和数组也有本质上的区别ÿ…...
从RGA注意力机制到实战:行人重识别模型核心代码与论文精讲
1. RGA注意力机制原理解析 行人重识别(Person Re-identification)是计算机视觉领域的重要课题,而注意力机制在其中扮演着关键角色。RGA(Relation-aware Global Attention)机制通过建立全局关系感知模型,显…...
半导体制造中的ProcessJob与Control Job:从定义到实战避坑指南
半导体制造中的ProcessJob与Control Job:从定义到实战避坑指南 在半导体制造的高精度世界里,每一片晶圆的流转都像一场精密编排的交响乐。而ProcessJob(PJ)和Control Job(CJ)就是这场演奏中不可或缺的指挥…...
CodeMaker:让编码效率提升3倍的智能代码生成工具
CodeMaker:让编码效率提升3倍的智能代码生成工具 【免费下载链接】CodeMaker A idea-plugin for Java/Scala, support custom code template. 项目地址: https://gitcode.com/gh_mirrors/co/CodeMaker 一、核心价值:重新定义开发效率 你是否也曾…...
5分钟掌握Goldberg模拟器:告别Steam限制,畅玩单机游戏
5分钟掌握Goldberg模拟器:告别Steam限制,畅玩单机游戏 【免费下载链接】gbe_fork Fork of https://gitlab.com/Mr_Goldberg/goldberg_emulator 项目地址: https://gitcode.com/gh_mirrors/gbe/gbe_fork 你是否厌倦了Steam平台的网络限制ÿ…...
为什么头部AI工厂已全面切换PyTorch 3.0静态图训练?揭秘2024年Q2实测吞吐提升3.8倍、成本下降41%的关键配置
第一章:PyTorch 3.0静态图训练的企业级演进全景PyTorch 3.0标志着深度学习框架从动态优先范式向动静统一架构的关键跃迁。其核心突破在于TorchDynamo Inductor后端的深度融合,使torch.compile()不再仅是实验性优化器,而成为企业级生产训练流…...
【NoC片上网络 On-Chip Network】从总线到NoC:多核芯片通信架构的演进与设计权衡
1. 多核芯片的通信困境与架构演进 记得我第一次接触多核芯片设计是在2013年,当时还在用传统的总线架构连接四个ARM Cortex-A9核心。调试时经常遇到总线争用导致的性能瓶颈,就像早高峰时所有车辆挤在一条单车道上的场景。这种体验让我深刻理解了为什么芯片…...
传统信号处理与AI结合:FUTURE POLICE模型前端预处理技术详解
传统信号处理与AI结合:FUTURE POLICE模型前端预处理技术详解 最近在做一个语音相关的AI项目,发现直接把麦克风录到的原始音频丢给模型,效果总是不太理想。背景的键盘声、远处的谈话声,甚至是空调的嗡嗡声,都会让模型的…...
Phi-4-mini-reasoning实操手册:vLLM日志分析与常见加载失败排障指南
Phi-4-mini-reasoning实操手册:vLLM日志分析与常见加载失败排障指南 1. 模型简介 Phi-4-mini-reasoning是一个基于合成数据构建的轻量级开源模型,专注于高质量、密集推理的数据处理能力。作为Phi-4模型家族的一员,它经过专门微调以提升数学…...
09. CSS生成艺术创作指南:用代码绘制视觉诗篇
09. CSS生成艺术创作指南:用代码绘制视觉诗篇 引言 CSS 不仅仅是样式语言,它也是一种创作艺术的工具。通过 CSS,我们可以创建出令人惊叹的生成艺术作品,这些作品不仅美观,而且具有动态性和交互性。作为一名把代码当散文…...
【实战指南】腾讯会议回放视频如何批量下载与本地永久保存?免费工具全解析
1. 为什么需要本地保存腾讯会议回放? 每次参加完重要会议或培训课程,最怕的就是回放视频突然过期。我遇到过好几次这种情况:刚想复习某个关键知识点,发现视频已经显示"已过期"。特别是当会议组织者设置了7天自动删除规则…...
