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

Posted Please Call me 小强

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 半连接队列,全连接队列相关的知识,希望对你有一定的参考价值。

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 半连接队列,全连接队列的主要内容,如果未能解决你的问题,请参考以下文章

关于TCP 半连接队列和全连接队列

你知道TCP的半连接与全连接队列吗?

TCP 半连接队列和全连接队列

TCP 半连接队列和全连接队列

TCP 半连接队列和全连接队列

TCP半连接队列和全连接队列(史上最全)