tcp的協議五種狀態?
TCP的協議狀態有以下幾種:
CLOSED狀態:初始狀態,表示TCP連接是“關閉的”或者“未打開的”
LISTEN狀態:表示服務端的某個端口正處于監聽狀態,正在等待客戶端連接的到來
SYN_SENT狀態:當客戶端發送SYN請求建立連接之后,客戶端處于SYN_SENT狀態,等待服務器發送SYN+ACK
SYN_RCVD狀態:當服務器收到來自客戶端的連接請求SYN之后,服務器處于SYN_RCVD狀態,在接收到SYN請求之后會向客戶端回復一個SYN+ACK的確認報文
ESTABLISED狀態:當客戶端回復服務器一個ACK和服務器收到該ACK(TCP最后一次握手)之后,服務器和客戶端都處于該狀態,表示TCP連接已經成功建立
FIN_WAIT_1狀態:當數據傳輸期間當客戶端想斷開連接,向服務器發送了一個FIN之后,客戶端處于該狀態
FIN_WAIT_2狀態:當客戶端收到服務器發送的連接斷開確認ACK之后,客戶端處于該狀態
CLOSE_WAIT狀態:當服務器發送連接斷開確認ACK之后但是還沒有發送自己的FIN之前的這段時間,服務器處于該狀態
TIME_WAIT狀態:當客戶端收到了服務器發送的FIN并且發送了自己的ACK之后,客戶端處于該狀態
LAST_ACK狀態:表示被動關閉的一方(比如服務器)在發送FIN之后,等待對方的ACK報文時,就處于該狀態
CLOSING狀態:連接斷開期間,一般是客戶端發送一個FIN,然后服務器回復一個ACK,然后服務器發送完數據后再回復一個FIN,當客戶端和服務器同時接受到FIN時,客戶端和服務器處于CLOSING狀態,也就是此時雙方都正在關閉同一個連接