tcp/ip 11種狀態


三次握手的創建狀態服務器

wKioL1mpJw_zkF_zAAE4EdYsXtg326.png

一、一開始創建以前服務器和客戶端的狀態都爲closed網絡

二、服務器建立socket後開始監聽,變爲listen狀態socket

三、客戶端請求創建鏈接,向服務器發送syn報文,客戶端的狀態變爲SYN_SENT.tcp

四、服務器收到客戶端的報文後向客戶端發送ack和SYN報文,此時,服務器的狀態變爲SYN_RCVD.ide

五、而後,客戶端收到ACK、SYN,就向報務端發送ACK,客戶端狀態變爲ESTABLISHED。blog


四次揮手關閉狀態ip

wKiom1mpLH2T7IsdAAFNunfTTMQ179.png

由與tcp鏈接是全雙工的,斷開鏈接會比創建鏈接麻煩一點點。get

一、客戶端先向服務端發送FIN報文,請求斷開鏈接,其狀態變爲FIN_WAIT1。it

二、服務端收到FIN後向客戶端發出ACK,服務器狀態變爲CLOSE_WAIT。io

三、客戶端收到ACK後就進入了FIN_WAIT2狀態。此時鏈接已經斷開了一半了。若是服務器還有數據要發送給客戶端,就會繼續發送。

四、直到發完了,就發送FIN報文,此時服務器進入了LAST_ACK狀態。

五、客戶端收到服務器的FIN後,立刻發送ACK給服務器,此時客戶端進入TIME_WAIT狀態。

六、再過了2MSL找的時間後進入CLOSED狀態。服務器收到客戶端的ACK就進入CLOSED狀態。


CLOSING狀態表示:

客戶端發生了FIN,但沒有收到服務器的ACK,卻收到了服務器的FIN。

這種狀況發生在服務器發送的ACK丟包的時候,由於網絡傳輸有時會有意外。


tcp/ip 11種狀態總結

wKiom1mtJcOwh5pJAALOQDnDgZk980.png

wKioL1mtJaei4GI0AAGW6AQmvH8321.png




LISTEN

偵聽來自遠方的TCP端口的鏈接請求

SYN-SENT

在發送鏈接請求後等待匹配的鏈接請求 

SYN-RECEIVED

在收到和發送一個鏈接請求後等待對方對鏈接請求的確認

ESTABLISHED

表明一個打開的鏈接



FIN-WAIT-1

等待遠程TCP鏈接中斷請求,或先前的鏈接中斷請求的確認

FIN-WAIT-2

從遠程TCP等待鏈接中斷請求

CLOSE-WAIT

等待從本地用戶發來的鏈接中斷請求

CLOSING

等待遠程TCP對鏈接中斷的確認

LAST-ACK

等待原來的發向遠程TCP的鏈接中斷請求的確認

TIME-WAIT

等待足夠的時間以確保遠程TCP接收到鏈接中斷請求的確認 

CLOSED

沒有任何鏈接狀態 

相關文章
相關標籤/搜索