本文根據(jù)RFC793協(xié)議規(guī)范和BSD 4.4的實(shí)現(xiàn),總結(jié)了
TCP分組丟失時(shí)的狀態(tài)變遷,如下圖所示:實(shí)線(xiàn)箭頭表示客戶(hù)端的狀態(tài)變遷,線(xiàn)段虛線(xiàn)箭頭表示服務(wù)端的狀態(tài)變遷,圓點(diǎn)虛線(xiàn)箭頭表示客戶(hù)端或服務(wù)端的狀態(tài)變遷;黑色文字表示正常時(shí)的行為,紅色文字表示分組丟失時(shí)的行為。
這里假設(shè)重傳時(shí)分組依然會(huì)丟失,當(dāng)在不同狀態(tài)(CLOSED除外)分組丟失后,最終會(huì)關(guān)閉套接字而回到CLOSED狀態(tài)。下面逐個(gè)分析各狀態(tài)時(shí)的情景。
SYN_SENT
連接階段第1次握手,客戶(hù)端發(fā)送的SYN分組丟失,因此超時(shí)收不到服務(wù)端的SYN+ACK而重傳SYN,嘗試幾次后放棄,關(guān)閉套接字。
SYN_RCVD
1)連接階段第2次握手,服務(wù)端響應(yīng)的SYN+ACK分組丟失,因此超時(shí)收不到客戶(hù)端的ACK而重傳SYN+ACK,嘗試幾次后放棄,發(fā)送RST并關(guān)閉套接字。
2)連接階段第3次握手,客戶(hù)端發(fā)送的ACK分組丟失,因此服務(wù)端超時(shí)收不到ACK而重傳SYN+ACK,嘗試幾次后放棄,發(fā)送RST并關(guān)閉套接字。
3)同時(shí)打開(kāi)第2次握手,本端響應(yīng)的SYN+ACK分組丟失,因此對(duì)端超時(shí)收不到SYN+ACK而重傳SYN、嘗試幾次后放棄、發(fā)送RST并關(guān)閉套接字,而此時(shí)本端收到RST。
ESTABLISHED
1)連接階段第3次握手,客戶(hù)端發(fā)送ACK分組后,雖然丟失但會(huì)進(jìn)入該狀態(tài)(因?yàn)锳CK不需要確認(rèn)),但此時(shí)服務(wù)端還處于SYN_RCVD狀態(tài),因?yàn)槌瑫r(shí)收不到客戶(hù)端的ACK而重傳SYN+ACK、嘗試幾次后放棄、發(fā)送RST并關(guān)閉套接字,而此時(shí)客戶(hù)端收到RST。
2)數(shù)據(jù)傳輸階段,本端發(fā)送的Data分組丟失,因此超時(shí)收不到對(duì)數(shù)據(jù)的確認(rèn)而重傳、嘗試幾次后放棄、發(fā)送RST并關(guān)閉套接字,而此時(shí)對(duì)端收到RST。
FIN_WAIT_1
1)關(guān)閉階段第1次握手,客戶(hù)端發(fā)送的FIN分組丟失,因此超時(shí)收不到服務(wù)端的ACK而重傳FIN,嘗試幾次后放棄,發(fā)送RST并關(guān)閉套接字。
2)關(guān)閉階段第2次握手,服務(wù)端響應(yīng)的ACK分組丟失,因此客戶(hù)端超時(shí)收不到ACK而重傳FIN,嘗試幾次后放棄,發(fā)送RST并關(guān)閉套接字。
FIN_WAIT_2
關(guān)閉階段第3次握手,服務(wù)端發(fā)送的FIN分組丟失,因此超時(shí)收不到客戶(hù)端的ACK而重傳FIN、嘗試幾次后放棄、發(fā)送RST并關(guān)閉套接字,而此時(shí)客戶(hù)端收到RST。
CLOSING
同時(shí)關(guān)閉第2次握手,本端發(fā)送的ACK分組丟失,導(dǎo)致對(duì)端超時(shí)收不到ACK而重傳FIN、嘗試幾次后放棄、發(fā)送RST并關(guān)閉套接字,而此時(shí)本端收到RST。
TIME_WAIT
關(guān)閉階段第4次握手,客戶(hù)端響應(yīng)的ACK分組丟失,導(dǎo)致服務(wù)端超時(shí)收不到ACK而重傳FIN、嘗試幾次后放棄、發(fā)送RST并關(guān)閉套接字,而此時(shí)客戶(hù)端收到RST。
CLOSE_WAIT
關(guān)閉階段第2次握手,服務(wù)端響應(yīng)的ACK分組丟失,導(dǎo)致客戶(hù)端超時(shí)收不到ACK而重傳FIN、嘗試幾次后放棄、發(fā)送RST并關(guān)閉套接字,而此時(shí)服務(wù)端收到RST。
LAST_ACK
關(guān)閉階段第3次握手,服務(wù)端發(fā)送的FIN分組丟失,導(dǎo)致超時(shí)收不到客戶(hù)端的ACK而重傳FIN、嘗試幾次后放棄、發(fā)送RST并關(guān)閉套接字。
posted on 2015-10-05 00:44
春秋十二月 閱讀(3320)
評(píng)論(1) 編輯 收藏 引用 所屬分類(lèi):
Network