原文地址:http://www.cnblogs.com/eaglet/archive/2010/09/21/1832233.html
在做Socket 编程时,我们经常会要问,单机最多可以建立多少个 TCP 连接,本文将介绍如何调整系统参数来调整单机的最大TCP连接数。
Windows 下单机的TCP连接数有多个参数共同决定,下面一一介绍:
最大TCP连接数
[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters]
TcpNumConnections = 0x00fffffe (Default = 16,777,214)
以上注册表信息配置单机的最大允许的TCP连接数,默认为 16M。这个数值看似很大,这个并不是限制最大连接数的唯一条件,还有其他条件会限制到TCP 连接的最大连接数。
最大动态端口数
TCP客户端和服务器连接时,客户端必须分配一个动态端口,默认情况下这个动态端口的分配范围为 1024-5000 ,也就是说默认情况下,客户端最多可以同时发起3977 个Socket 连接。我们可以修改如下注册表来调整这个动态端口的范围
[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters]
MaxUserPort = 5000 (Default = 5000, Max = 65534)
配置上面两项,客户端连服务器端的时候,连接数上就能上去了
最大TCB 数量
系统为每个TCP 连接分配一个TCP 控制块(TCP control block or TCB),这个控制块用于缓存TCP连接的一些参数,每个TCB需要分配 0.5 KB的pagepool 和 0.5KB 的Non-pagepool,也就说,每个TCP连接会占用 1KB 的系统内存。
系统的最大TCB数量由如下注册表设置决定
[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters]
MaxFreeTcbs = 2000 (Default = RAM dependent, but usual Pro = 1000, Srv=2000)
非Server版本,MaxFreeTcbs 的默认值为1000 (64M 以上物理内存)
Server 版本,这个的默认值为 2000。
也就是说,默认情况下,Server 版本最多同时可以建立并保持2000个TCP 连接。
最大TCB Hash table 数量
TCB 是通过Hash table 来管理的,下面注册表设置决定了这个Hash table 的大小
HKEY_LOCAL_MACHINE \System \CurrentControlSet \services \Tcpip \Parameters]
MaxHashTableSize = 512 (Default = 512, Range = 64-65536)
这个值指明分配 pagepool 内存的数量,也就是说,如果MaxFreeTcbs = 1000 , 则 pagepool 的内存数量为 500KB
那么 MaxHashTableSize 应大于 500 才行。这个数量越大,则Hash table 的冗余度就越高,每次分配和查找 TCP 连接用时就越少。这个值必须是2的幂,且最大为65536.
IBM WebSphere Voice Server 在windows server 2003 下的典型配置
这是IBM WebSphere Voice Server 的典型配置,大家可以做个参考。原文参见
IBM Web Sphere Voice Server 配置
- MaxUserPort = 65534 (Decimal)
- MaxHashTableSize = 65536 (Decimal)
- MaxFreeTcbs = 16000 (Decimal)
这里我们可以看到 MaxHashTableSize 被配置为比MaxFreeTcbs 大4倍,这样可以大大增加TCP建立的速度。
相关推荐
【Windows下Flash烧写步骤详解】 在电力系统中,经常需要对网络隔离装置进行软件更新以满足特定功能需求。为了方便不具备Linux环境的用户也能进行烧写操作,我们可以使用Windows平台下的tftpd32软件模拟Linux的TFTP...
先感谢 hp-socket 以及各位开源的前辈! 模块是我这 82 年的电脑硬盘里的 模块只用了 hp-socket 传送 : ...放上一个不成器的tcp压力测试..... 代码写的很烂,各位大佬刀下留情...
- **增加用户数**:为了确保系统能够顺利运行,需要增加用户数,通常情况下每个运行的恒生系统Windows应用程序会占用一个用户。建议增加至20个用户,这样可以避免因用户数量不足而导致的问题。 - **字符集设置**:...
在 Weblogic 10.3 中,可以通过修改 `weblogic\user_projects\domains\<domain_name>\config\config.xml` 文件来设置连接池连接数。 4. Weblogic 的服务设置 Weblogic 的服务设置是影响服务器性能的重要参数之一。...
9. ADSL连接:ADSL(Asymmetric Digital Subscriber Line)单机上网通常使用双绞线连接计算机与ADSL Modem。 10. 计算机网络目标:计算机网络的主要目标是实现资源共享和信息传送。 11. OSI参考模型:应用层是OSI...
29. Windows单机版:Windows单机版支持单用户同时登录。 30. 鼠标和键盘:在Windows中,鼠标和键盘通常是互补的操作工具。 31. 文件扩展名与类型:扩展名通常与文件类型相关,但并不总是准确反映文件内容。 32. ...
用户需要ADSL Modem、分离器、Windows操作系统和TCP/IP协议,设置IP地址、DNS和网关参数。有效传输距离约3-5公里,适合需要较高下行速率的用户。 5. **通过DDN接入**:数字数据网(DDN)是一种专用网络,用户可以...
13. **最大连接数设置**:在“Max Connections”界面,根据你的需求设置最大连接数,然后点击“Next”。 14. **端口设置**:在“Port Number”界面,通常保持默认的3306端口,如果需要修改,可在此设置,选中“Add ...
- **具有通信功能的单机系统**:最早期的计算机网络形态,通过简单的连接设备实现数据传输。 - **具有通信功能的多机系统**:多个计算机通过通信线路相连,形成初步的网络结构。 - **计算机通信网络**:随着技术...
升级PORT插件,在无法创建Raw Socket时改为使用标准TCP连接方式检测开放端口。 X-Scan v1.1 -- 发布日期:11/25/2001,将所有检测功能移入插件,使主程序完全成为“容 器”;提供多语言支持;更新图形接口程序;...
### ADSL拨号上网配置详解 ...通过上述步骤,不仅能够实现单机拨号上网,还能通过ADSL Modem和路由器轻松实现多用户共享上网,大大提高了网络资源的利用率。这种配置方法简单易行,适合家庭及小型办公环境使用。
- `-concurrency`:设置并发连接数。 - `-requests`:指定发送的请求数量。 - `-interval`:设置请求间隔时间。 - `-payload`:如果适用,可以指定请求的负载数据。 ### 应用场景 - **性能基准测试**:在新服务...
15. 查看路由表命令:在Windows 95/98的DOS环境下,可以使用`ROUTE PRINT`命令查看主机路由表。 16. 子网划分:10.110.12.29与子网掩码255.255.255.224属于同一个网段的IP地址是10.110.12.30,因为它们都属于10.110...
由于Socket在TCP/IP应用中的广泛采用,特别是在Sun公司的支持下,它成为了开发网络应用的主流工具,甚至移植到了DOS和Windows系统中。 在开始Socket编程前,我们需要理解几个核心概念: 1. **网间进程通信**:这是...
升级PORT插件,在无法创建Raw Socket时改为使用标准TCP连接方式检测开放端口。 X-Scan v1.1 -- 发布日期:11/25/2001,将所有检测功能移入插件,使主程序完全成为“容器”;提供多语言支持;更新图形接口程序;...
1. `kaillerasrv.conf`:这是服务器的配置文件,用于设定服务器的各项参数,比如端口号、最大连接数等。玩家可以根据自己的需求进行修改,以适应不同的网络环境。 2. `kaillerasrv.exe`:这是服务器的可执行文件,...