
(圖檔來源http://www.cnxct.com/something-about-phpfpm-s-backlog/)
syns queue(半連接配接隊列);accept queue(全連接配接隊列)
三次握手中,在第一步server收到client的syn後,把相關資訊放到半連接配接隊列中,同時回複syn+ack給client(第二步);
比如syn floods 攻擊就是針對半連接配接隊列的,攻擊方不停地建連接配接,但是建連接配接的時候隻做第一步,第二步中攻擊方收到server的syn+ack後故意扔掉什麼也不做,導緻server上這個隊列滿其它正常請求無法進來
第三步的時候server收到client的ack,如果這時全連接配接隊列沒滿,那麼從半連接配接隊列拿出相關資訊放入到全連接配接隊列中,否則按
tcp_abort_on_overflow
訓示的執行。
這時如果全連接配接隊列滿了并且tcp_abort_on_overflow是0的話,server過一段時間再次發送syn+ack給client(也就是重新走握手的第二步),如果client逾時等待比較短,就很容易異常了。
tcp_abort_on_overflow 為0表示如果三次握手第三步的時候全連接配接隊列滿了那麼server扔掉client 發過來的ack(在server端認為連接配接還沒建立起來)
【參考文檔】
https://www.cnblogs.com/sidesky/p/6844228.html
待補充