您好,登錄后才能下訂單哦!
重要的標志位含義:
ACK:表示確認。只有當ACK標志位為1時,TCP報文的確認字段才有效。
SYN:表示同步,在連接建立時用來同步序列號。當SYN=1而ACK=0時,表明這是一個連接請求報文。若對方同意建立連接時,則在響應報文中,應使SYN=1,ACK=1.因此,同步比特SYN置為1,就表明這是一個連接請求報文或連接接受響應報文。
FIN:用于釋放一個連接。當FIN位為1時,表明此報文段的發送端數據已發送完畢,并要求釋放連接。
一、TCP/IP的三次握手
第一次握手:首先發送方主機向接收方主機發起一個建立連接的同步(SYN)請求SYN(X),進入SYN_SENT狀態,等待接收方主機確認。
第二次握手:接收方在收到這個請求后,如果同意建立連接,則發送確認ACK,確認序列號為收到的序列號加1,并且報文中的SYN也要置1,即向發送方主機回復一個同步/確認(SYN/ACK)應答報文,并進入SYN_RECVD狀態。
第三次握手:發送方主機收到此應答報文后,再向接收方發送一個確認(ACK)報文,然后發送方和接收方均進入ESTABLISHED狀態,完成三次握手,至此,TCP連接建立成功,發送方和接收方就可以開始傳輸數據了。
TCP建立連接的三次握手過程如圖所示:
二、TCP/IP的四次斷開
當應用進程結束數據傳送后,就要釋放已建立的連接,TCP連接是雙向的,每個方向都必須單獨進行關閉,首先進行關閉的一方執行主動關閉,而另一方則執行被動關閉。
1、當客戶端的數據傳輸完后,可主動發送出FIN置1的報文給服務端(客戶端主動關閉),以關閉客戶端至服務端方向的數據傳送,并等待服務端的ACK確認應答,同時進入FIN_WAIT1狀態。
2、服務端收到FIN置1的報文后,進入被動關閉,回復一個ACK確認報文,并進入CLOSE_WAIT狀態;客戶端收到該ACK確認報文后,進入FIN_WAIT2狀態。
3、至此完成了TCP連接的半關閉,即完成了客戶端至服務端方向的數據發送。此時,客戶端雖然不能發送數據,但仍然能接受服務端發給客戶端的數據,即服務端至客戶端方向的連接還未關閉。
4、服務端發送一個FIN置1的報文給客戶端,關閉服務端至客戶端方向的數據傳送,并等待客戶端的ACK確認應答,同時進入LAST_ACK狀態,客戶端收到FIN置1的報文后,回復ACK確認報文,并進入TIME_WAIT狀態,經過2倍報文最大生存時間(MSL)后,TCP刪除原來建立的鏈接記錄,返回到初始的CLOSED狀態。服務端收到ACK確認報文后,進入CLOSED狀態,完成鏈接的雙向關閉。
TCP/IP四次斷開過程如圖:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。