TCP面試題之四次揮手過程


 

TCP四次揮手過程:

  1、第一次揮手:Client發送一個FIN,用來關閉Client到Server的數據傳送,Client進入FIN_WAIT_1狀態;

  2、第二次揮手:Server收到FIN后,發送一個ACK給Client,確認序號為收到序號+1(與SYN相同,一個FIN占用一個序號),Server進入CLOSE_WAIT狀態;

  3、第三次揮手:Server發送一個FIN,用來關閉Server到Client的數據傳送,Server進入LAST_ACK狀態;

  4、第四次揮手:Client收到FIN后,Client進入TIME_WAIT狀態,接着發送一個ACK給Server,確認序號為收到的序號+1,Server進入CLOSED狀態,完成四次揮手;

 

為什么會有TIME_WAIT狀態:

  1、確保有足夠的時間讓對方收到ACK包,一來一去就是2MSL;

  2、避免新舊連接混,即不會跟后面的新連接混淆;

服務器出現大量CLOSE_WAIT狀態的原因:

原因:沒有及時關閉連接

解決方案:

  1、檢查代碼,特別是釋放資源的代碼;

  2、檢查配置,特別是處理請求的線程配置;

 


免責聲明!

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



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