last_ack狀態及rst標記

大多數的博客在介紹tcp的三次握手和四次揮手時,只是介紹了握手和揮手的流程,有些博客還會分析四次揮手時主動關閉連接的一端的time_wait狀態的作用,但卻幾乎沒有博客會介紹被動關閉連接的一端維持last_ack狀態的作用,以及在四次揮手中如果出現丟包,last_ack將如何處理等。

實際上,last_ack(持續時間一般爲一個RTO(retransmission timeout,數據包重傳的timeout時間)的時間,這個時間根據RTT動態計算出來)有兩個作用:作用一是處理重用連接:防止前一個連接上延遲的數據包或者丟失重傳的數據包,被後面複用的連接(前後兩次連接的協議相同,ip相同,端口號相同,且包的seq號也恰巧相同)錯誤的接收,則發送rst,重置連接;作用二是在發送第二個fin之後,如果在RTO之後,還沒收到ack,則重發fin。

 

 

參考文檔:

1、https://blog.csdn.net/stpeace/article/details/75675581  tcp四次揮手中LAST_ACK狀態一般持續多久?

2、https://blog.csdn.net/qzcsu/article/details/72861891 TCP的三次握手與四次揮手(詳解+動圖)

3、https://blog.csdn.net/qq_35733751/article/details/80205158  25-tcp協議——連接復位(RST)

4、https://blog.csdn.net/hzrandd/article/details/74463313 全面深入分析TCP的TIME_WAIT和CLOSE_WAIT(上)

5、https://networkengineering.stackexchange.com/questions/38805/why-is-the-last-ack-needed-in-tcp-four-way-termination  Why is the last ACK needed in TCP four way termination

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章