首页 > 系统服务 > 详细

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

时间:2019-11-02 14:36:11      阅读:125      评论:0      收藏:0      [点我收藏+]

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 半连接队列,全连接队列

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!