`
顽石
  • 浏览: 163439 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

单机最大tcp连接数

阅读更多

在tcp应用中,server事先在某个固定端口监听,client主动发起连接,经过三路握手后建立tcp连接。那么对单机,其最大并发tcp连接数是多少?

 

如何标识一个TCP连接

在确定最大连接数之前,先来看看系统如何标识一个tcp连接。系统用一个4四元组来唯一标识一个TCP连接:{local ip, local port,remote ip,remote port}。

 

client最大tcp连接数

client每次发起tcp连接请求时,除非绑定端口,通常会让系统选取一个空闲的本地端口(local port),该端口是独占的,不能和其他tcp连接共享,因此client端的tcp连接数取决于/受限于端口数量。tcp端口的数据类型是unsigned short,因此本地端口个数最大只有65536,端口0有特殊含义,不能使用,这样可用端口最多只有65535,所以在全部作为client端的情况下,一个client最大tcp连接数为65535,这些连接可以连到不同的server ip。

 

 

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次方。

 

实际的tcp连接数

上面给出的是理论上的单机最大连接数,在实际环境中,受到机器资源、操作系统等的限制,特别是sever端,其最大并发tcp连接数远不能达到理论上限。在unix/linux下限制连接数的主要因素是内存和允许的文件描述符个数(每个tcp连接都要占用一定内存,每个socket就是一个文件描述符),另外1024以下的端口通常为保留端口。

对server端,通过增加内存、修改最大文件描述符个数等参数,单机最大并发TCP连接数超过10万,甚至上百万 是没问题的,国外 Urban Airship 公司在产品环境中已做到 50 万并发 。在实际应用中,对大规模网络应用,还需要考虑C10K ,c100k问题。

 

1
0
分享到:
评论
2 楼 BLoodHunter 2011-11-14  
这篇文章蛋疼不行。你去写个接收10万个连接的tcpsrv程序给我看看?
更不要和我说用java写,你能五百个计算机不死掉,我就拜你为师了
一点技术含量没用,纯粹大一学生
1 楼 victor-yang 2011-11-14  
一个TCP连接大概占多少内存呢?

相关推荐

    易语言-hp-socket Agent模型,单机6w+并发连接数 tcp 压测

    hp-socket Agent模型,单机6w+并发连接数 tcp 压测

    hp-socket Agent模型,单机6w+并发连接数 tcp 压测-易语言

    先感谢 hp-socket 以及各位开源的前辈! 模块是我这 82 年的电脑硬盘里的 模块只用了 hp-socket 传送 : ...放上一个不成器的tcp压力测试..... 代码写的很烂,各位大佬刀下留情...

    MrioTCP-0.9.9源码

    经过两个多月的测试(编写c++客户端测试及调优系统参数),测试结果得到单机最大带宽吞吐1000M,测试最高TCP长连接100万,每秒处理连接数达4万,此时系统压力load值很低。 总之,它可以发挥一台服务器的最大极限以...

    毕业设计论文范文源码-mariotcp:高性能tcp服务器

    经过两个多月的测试(编写c++客户端测试及调优系统参数),测试结果得到单机最大带宽吞吐1000M,测试最高TCP长连接100万,每秒处理连接数达4万,此时系统压力load值很低。总之,它可以发挥一台服务器的最大极限以...

    PHP Socket 网络应用框架 beyod

    测试中,单机10万tcp连接时,消耗内存仅2.4GB。 稳定可靠,可长时间运行, 工作进程崩溃自动恢复。 使用Master-worker方式的多进程、单线程模型。实现了工作进程异常崩溃后的自动重启, 我们熟知的Nginx也使用了Master...

    linux系统下实现聊天室

    linux系统下实现聊天室 (1)在Linux系统下,使用TCP协议套接字编程; (2)服务器应具有处理多个客户端连接能力(设定最大连接数,如5个); (3)具有群发和私聊的能力; (4)过程描述

    最新C++网络编程实践视频教程 陈硕

    阻塞IO下的TTCP实验.mkv8.TCP自连接.mkv9.扩展练习.mkv10.时钟概述.mkv11.时钟精确度和校准.mkv12.网络时间同步.mkv13.Roundtrip代码分析.mkv14.其他测试方案.mkv15.UDP vs TCP.mkv16.扩展知识.mkv17.如何正确使用...

    泰格至尊超市软件5.2.3

    安装时提示选择单店版、连锁总部、连锁分店,请根据需要选择,其中单店版的单机版只允许一台电脑使用,其他版本可以注册时根据注册授权数多机器使用。 三、安装模板数据库 安装完SQL后,请打开光盘目录里的db_...

    泰格至尊超市版

    安装时提示选择单店版、连锁总部、连锁分店,请根据需要选择,其中单店版的单机版只允许一台电脑使用,其他版本可以注册时根据注册授权数多机器使用。 三、安装模板数据库 安装完SQL后,请打开光盘目录里的db_...

    远程数据库对象 通过ADO对象实现远程数

    这是我从网上下载的,我感觉很不错 ...2行代码使你的客户端程序具有了方便的访问到远端的数据库,像使用本地数据库一样,并且你原有的单机数据库程序可以很方便改为远程数据库。 具体使用方法可以查看DEMO程序

    电子测量中的基于EPA的光栅位移测量系统

    工作台的结构布局、位移量的大小、测量速度等都越来越趋于灵活,自动化程度也越来越高,但是这些工作台大多数都是单机监控的分散结构,有些是通过RS485、现场总线、PLC等把设备连接在一起,构成简单的DCS或FCS网络...

    基于EPA的光栅位移测量系统

    工作台的结构布局、位移量的大小、测量速度等都越来越趋于灵活,自动化程度也越来越高,但是这些工作台大多数都是单机监控的分散结构,有些是通过RS485、现场总线、PLC等把设备连接在一起,构成简单的DCS或FCS网络...

    置水安全无忧信息分析控制系统 v1.23

    可以通过TCP、UDP和ICMP在一分钟内一直超过某个值进行报警,也可以通过单机一分钟内的流速一直超过某个值进行报警,这样可以及时知道网络异常情况,并通过置水安全无忧信息分析控制软件分析处理; 现场察看: ...

    网络安全技术测试题.docx

    连接,并预测到目标主机的TCP序列号,攻击者就能伪造有害数据包,使之被目标主机接受。对于SYN Flood攻击,目前还没有完全有效的方法,但可以从以下几个方面加以防范: 1. 对系统设定相应的内核参数,使得系统强制...

    网上特工上网行为管理

    可以通过TCP、UDP和ICMP在一分钟内一直超过某个值进行报警,也可以通过单机一分钟内的流 速一直超过某个值进行报警,这样可以及时知道网络异常情况,并通过网上特工二代分析处理; 现场察看: 现场图形查看,每...

    DriverStudio 3.2+注册码

    SoftICE支持单机,用串行线连接的双机或是通过TCP/IP连接的远程计算机上的核心 级和用户级的调试。在DriverStudio 3.1版本中,SoftICE可以: 支持VMware 4.0 在"DriverStudio Config"中提供了一个新的反编译选项页 ...

    最全的oracle常用命令大全.txt

    说明:21是某个连接的sid数 然后用 kill 命令杀此进程号。 五、SQL*PLUS使用 a、近入SQL*Plus $sqlplus 用户名/密码 退出SQL*Plus SQL>exit b、在sqlplus下得到帮助信息 列出全部SQL命令和SQL*Plus命令 SQL>...

    DriverStudio 3.2

    SoftICE支持单机,用串行线连接的双机或是通过TCP/IP连接的远程计算机上的核心 级和用户级的调试。在DriverStudio 3.1版本中,SoftICE可以: 支持VMware 4.0 在"DriverStudio Config"中提供了一个新的反编译选项页 ...

    智能制造.pptx

    新一轮产业变革 1.3 美国工业互联网 互联网 工业 1970s 1980s 1990s 2000s 2010s 单机 数控 计算机辅助设计系统 CAD 柔性制造 系统 计算机辅助制造与工程 CAM/CAE 数控机床 自动化岛 工业使用以计算机为代表的ICT...

Global site tag (gtag.js) - Google Analytics