Linux 半連線佇列,全連線佇列

2022-03-12 04:00:58 字數 886 閱讀 8186

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

TCP半連線佇列和全連線佇列

半連線佇列 syn queue 全連線佇列 accept queue ss lnt recv q send q local address port peer address port 0 100 8080 當連線處於時listen狀態,send q表示accept queue的最大值,recv q...

mysql半連線 MySQL半連線的攻略式思考

在此說是攻略式思考,是因為僅供參考,說是攻略,是因為暫時還沒有嚴謹的結論,目前只能說對結論有幫助。問題簡單復現下 建立乙個表users,然後插入一些資料之後,使用兩種方式來對比下 create table users userid int 11 unsigned not null,user name...

sql連線(內連線 外連線 全連線)

現有table for report 1和table for report 2,詳情如下 table for report 1有num欄位,c1,c2,c3欄位。資料如下 num c1 c2 c3 1 15001346690 11 12 13 2 13329921100 21 22 23 3 189...