1. 程式人生 > >3次握手中的最後一個ACK服務端收到了嗎

3次握手中的最後一個ACK服務端收到了嗎

             TCP三次握手考的應該是很多,也很重要,至於過程網上應該很多了,這裡我說一下我的思考。

             在TCP三次握手中的最後一次,服務端可能沒有收到客戶端發來的ACK嗎?答案是有可能的,如果服務端突然關閉,它顯然是收不到的,但是這種概率極低,因為正常情況下服務端應該是能收到的,因為它們之前已連通了。

             如果服務端突然關閉,根據TCP的超時重傳機制,ACK還會重傳嗎?答案是不會,最會一個ACK發出後,客戶端已建立連線,但是客戶端此時是沒有感知的。隨後,客戶端給服務端傳送資料,但服務端已斷開了,這時傳送資料不會受到服務端回的ACK,那麼客戶端重傳,直至超時。

            關於超時重傳,正常接收端會接收到重複的報文,每次重傳seq(序列號)都是相同的,接收端根據seq去重,序列號的作用也突顯出來。

            這篇博文講的很詳細: http://www.jellythink.com/archives/705