文档章节

转--端口数和最大连接数的关系

yjnic
 yjnic
发布于 2016/04/11 21:50
字数 664
阅读 57
收藏 0

初学编程的人可能会有这样的误解:单个服务器程序可承受最大连接数“理论”上是“65535”。
这种说法是错误的,请注意,这里有两个词分别被我标记上了引号,一个是“理论”,一个是“65535”。强调“理论”这个词,是想特别明确误解者的意思:就是说,这个值是不可能被打破的,是铁板钉丁的。而65535这个数字的由来,很多人想当然地将它与port最大值联系起来。的确,TCP的端口数,最大值确实为65535。但是,这并不代表一个服务器可以接受的连接数就是这个值,很多人之所以把这两个概念搞混淆是因为对socket和port没有更深的认识和理解。我们先来回想一下服务器服务的先后过程:服务器创建监听socket- >与对外服务的端口号绑定->开始listen->客户端连接到服务器对应的port->服务器accept为新的客户端产生新的socket->基于这个新的socket与客户端交换数据。从以上流程来看,最大值为65535的“端口号”这个重要的东东,我们只用了一次,就是执行bind的时候!而以后创建的socket,说白了就是一个可以进行网络IO操作的HANDLE而已,它跟端口号的牵扯仅限bind以及作为客户端连接服务器的识别端口号的时候,一旦accept产生了socket,这个端口号,对服务器和新客户端的通信而言就不再有任何意义。而服务器可承载的连接数最大量,不就是能产生多少个客户端的socket吗?这个socket值即使与端口号无关,又何来65535的“理论”上限?我再一次地将“理论”二字用引号括起,是因为在有的操作系统中,默认的配置会将socket最大值设定为65535,但这个值是可以改的!端口号仅仅是门牌地址,不能因为鸟巢体育场能容纳10万名观众就搞10万个门牌号码吧,那电话簿要多厚啊!
所以说最大连接数是受linux最大可打开文件文件数限制的,当然,因为最大可打开文件数可以通过修改系统配置文件更改,所以最终最大连接数的限制来自于系统的资源限制。

本文转载自:http://mp.weixin.qq.com/s?__biz=MzAxMzc4Mzk1Mw==&mid=402323876&idx=5&sn=0959cff74b2ceb56aa95ba950...

共有 人打赏支持
yjnic
粉丝 0
博文 9
码字总数 4333
作品 0
程序员
私信 提问
nginx 并发数问题思考:worker_connections,worker_processes与

原文http://liuqunying.blog.51cto.com/3984207/1420556 我相信,很多人都跟我一样,看书都不会太细致也不太认真思考,感觉书中讲的东西都应该是对的,最近读书时我发现以前认为理所当然的东...

应念
2015/08/07
0
1
如何优化tomcat配置(从内存、并发、缓存4个方面)优化

Tomcat有很多方面,我从内存、并发、缓存四个方面介绍优化方法。   ** 一.Tomcat内存优化 **   Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.s...

holy2009
2017/07/18
0
0
思科交换机端口安全

交换机端口安全 1.本实验是将switch中的f0/1的端口做成安全端口,构建mac地址绑定,只让pc0能够进入这个单口,pc1不能进入 2.在f0/1上进行配置,先进入端口 1>Switch(config)#int f0/1 Switch(c...

余二五
2017/11/16
0
0
Tomcat常用的配置

一、改JVM内存 进入tomcat的bin目录,打开catalina.bat,修改 在echo Using CATALINABASE: "%CATALINABASE%"的上面一行加下面代码 set JAVAOPTS="-server -Xms256m -Xmx512m -XX:PermSize=6......

hc24
2015/10/15
143
0
Windows Socket 最大连接数

原文:Windows Socket 最大连接数 Socket 编程时,单机最多可以建立多少个 TCP 连接,受到操作系统的影响。 Windows 下单机的TCP连接数受多个参数影响: 最大TCP连接数 [HKEY_LOCAL_MACHINE ...

杰克.陈
2017/12/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

MIT 6.828 main.c文件分析

#include <inc/x86.h>#include <inc/elf.h> /*这是一个简单粗略的boot loader,它唯一的工作就是从硬盘的第一个扇区启动格式为ELF的内核镜像硬盘布局这个程序(包括boot.S和mai...

FeanLau
13分钟前
0
0
SpringBoot 整合 Redis

1. pom.xml 文件中添加 Redis 依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><exclusions><exclusio......

北漂的我
21分钟前
0
0
TechDay实录 | 认识PaddlePaddle:更低使用成本、更高开发效率的深度学习框架

导读: 在人工智能时代,各行各业都在尝试利用机器学习/深度学习等前沿技术来解决自身的业务需求,深度学习框架也应运而生。为了继续帮助AI开发者们在深度学习的道路上快速升级,百度PaddleP...

PaddleWeekly
22分钟前
3
0
JAVA AES加解密服务

package com.pasenger.aes;import lombok.Data;import org.apache.commons.codec.binary.Base64;import org.springframework.beans.factory.InitializingBean;import org.springframewo......

Pasenger
33分钟前
0
0
SpringCloud集成 Mybatis分表插件shardbatis 踩坑日志及其原理分析

公司新开发的系统数据量过大,需要进行分表处理,我在网上浏览一圈,选中了Shardbatis,原因有二: 1.公司项目本身集成了Mybatis,而Shardbatis是其插件,引入方便; 2.Sharbatis十分轻便,只...

L墨龙
40分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部