TCP 作為傳輸層的協議,是一個IT工程師素養的體現,也是面試中經常被問到的知識點。在此,我將 TCP 核心的一些問題梳理了一下,希望能幫到各位。
實際上這篇文章相當于是復習之前的網絡基礎部分。只不過這篇文章的提問方式更靈活,也是讓讀者們懂得變通,更熟悉TCP。
前兩篇文章主要說TCP和UDP的區別,三次握手和四次揮手, 本篇主要關于TCP三次握手的一些狀態,滑動窗口和擁塞機制進行提問。
說說半連接隊列和 SYN Flood 攻擊的關系
三次握手前,服務端的狀態從CLOSED
變為LISTEN
, 同時在內部創建了兩個隊列:半連接隊列和全連接隊列,即SYN隊列和ACCEPT隊列。
半連接隊列
當客戶端發送SYN
到服務端,服務端收到以后回復ACK
和SYN
,狀態由LISTEN
變為SYN_RCVD
,此時這個連接就被推入了SYN隊列,也就是半連接隊列。
全連接隊列
當客戶端返回