listen的第二个参数详解
之前对于listen的第二个参数的理解,只是停留在它代表服务器缓冲区队列的大小层面上,具体并没有详细研究过,一次偶然的tcp实验,发现了很大的bug。
当服务器端没有调用accept函数时,此时3个客户端同时连接服务器,用netstat查看服务器状态,但是当启动第4个客户端时,发现客户端状态正常,服务器出现了SYN_RECV状态,而不是ESTABLISHED状态,如下图所示:
这是因为,Linux内核协议栈为一个tcp连接管理使用两个队列,分别是:
半连接队列:用来保存SYN_SENT和SYN_RECV两个状态的连接
全连接队列:用来保存保存ESTABLISHED状态的连接
全连接队列存放三次握手成功的连接。当服务器不调用accept函数,没有将全连接队列的请求拿出来,当队列满的时候,客户端的连接就无法再过来,即存放在半连接队列中,所以此实验中当第4个客户端发起连接时,服务器会处于SYN_RECV状态。
注意:全队列的长度是listen的第二个参数+1
listen的第二个参数详解相关推荐
- OPenCV imread()函数第二个参数详解
在OpenCV官方文档中imread()函数的原型如下: Mat imread(const string& filename, int flags = 1); 第一个参数filename是我们 ...
- ioctl函数详解(参数详解,驱动unlocked_ioctl使用、命令码如何封装)
@ioctl函数详解 一.ioctl函数的原型 在用户空间的函数原型 #include <sys/ioctl.h> int ioctl(int d, int request, ...); ...
- TCP listen() Backlog 参数详解
int listen(int fd, int backlog); socket系统调用listen只被tcp 服务器使用,他做两件事: 1. 将未链接的套接口转换为被动套接口,指示内核接受向此套接口的 ...
- CI流水线配置文件参数详解(一)
文章目录 4. 参数详解(一) 4.1 ``script`` 4.2 ``image`` 指定使用Docker镜像.如 ``iamge:name`` ,暂时忽略. 4.3 ``before_scrip ...
- plot参数详解python_30行Python代码实现3D数据可视化
作者:潮汐 来源:Python技术 欢迎来到编程教室~ 我们之前的文章中有讲解过不少 Matplotlib 的用法,比如: 完成这50个Matplotlib代码,你也能画出优秀的图表 25个常用Mat ...
- Lesson 8.3Lesson 8.4 ID3、C4.5决策树的建模流程CART回归树的建模流程与sklearn参数详解
Lesson 8.3 ID3.C4.5决策树的建模流程 ID3和C4.5作为的经典决策树算法,尽管无法通过sklearn来进行建模,但其基本原理仍然值得讨论与学习.接下来我们详细介绍关于ID3和C4. ...
- Lesson 8.1Lesson 8.2 决策树的核心思想与建模流程CART分类树的建模流程与sklearn评估器参数详解
Lesson 8.1 决策树的核心思想与建模流程 从本节课开始,我们将介绍经典机器学习领域中最重要的一类有监督学习算法--树模型(决策树). 可此前的聚类算法类似,树模型也同样不是一个模型,而是一类模 ...
- 系列 《使用sklearn进行集成学习——理论》 《使用sklearn进行集成学习——实践》 目录 1 Random Forest和Gradient Tree Boosting参数详解 2 如何调参?
系列 <使用sklearn进行集成学习--理论> <使用sklearn进行集成学习--实践> 目录 1 Random Forest和Gradient Tree Boosting ...
- Retrofit 注解参数详解
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/121000230 本文出自[赵彦军的博客] 系列文章推荐: Android Flow ...
最新文章
- 特征选择之嵌入法、嵌入法、排列重要性
- [转]深刻理解Python中的元类(metaclass)
- Leetcode 172. 阶乘后的零 解题思路及C++实现
- fcn网络结构代码_FCN实现2-模型结构及实现
- mysql单列去重复group by分组取每组前几条记录加order by排序
- 网络编程之Socket【Python】
- P3768-简单的数学题【莫比乌斯反演,杜教筛】
- OJ1059: 最高分(C语言)
- ios 企业证书 ipa 重新签名发布
- mac 下设置 sublime text2 的命令行快捷方式 subl
- java怎么用一行代码初始化ArrayList
- flash文件怎么打开 怎么将swf格式转换成avi视频
- 一个浏览图片新闻的App
- oracle脱敏脚本
- 当3A射击游戏遇上Play to Earn,暴躁兔带你了解MetalCore
- 人工智能——产生式规则
- 公司午休 同事打鼾怎么办?
- PS如何查看所选图层的实际像素?
- 关于大象,冰箱和软件项目报价的故事
- 微信公众号更新缓存问题--批量添加版本号