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次握手,如果第三次握手一直不完成,  服務器會怎么處理?

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM