码迷,mamicode.com
首页 > 系统相关 > 详细

Linux 半连接队列,全连接队列

时间:2019-11-02 13:49:30      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:文件   accept   怎么   near   sock   阻塞   span   半连接   操作   

socket 中 listen api中参数backlog指定的是 全队列大小

accept api是从全队列中获取, 没有就阻塞了, 直到有新连接进来.

listen中指定的值大小,有一个最大上限, 

这个上限是系统内核中设定的. 在配置文件中: /proc/sys/net/core/somaxconn

这个值默认是128.   

 

三次握手:

客户端发一个syn包,

服务器发一个包(syn+ack),

客户端发一个ack确认包. 至此连接完成

 

半连接是是未完成队列:

/proc/sys/net/ipv4/tcp_syncookies  是否缓存syn

这个值操作系统内部设定的, 在 /proc/sys/net/ipv4/tcp_max_syn_backlog 文件中. 默认是1024

[root@118 ipv4]# cat tcp_timestamps
1
[root@118 ipv4]# cat tcp_thin_linear_timeouts
0
[root@118 ipv4]# cat tcp_fin_timeout
60
[root@118 ipv4]# cat /proc/sys/net/ipv4/tcp_syncookies 
1
[root@118 ipv4]# cat tcp_synack_retries
2
[root@118 ipv4]# cat tcp_syn_retries
6

 

一个连接的完成需要经过3次握手,   只经过了2次握手,如果第三次握手一直不完成,  服务器会怎么处理?

 

Linux 半连接队列,全连接队列

标签:文件   accept   怎么   near   sock   阻塞   span   半连接   操作   

原文地址:https://www.cnblogs.com/dzqdzq/p/11781340.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!