TCP/IP建立連接和斷開連接


一、了解TCP報文段

image

Seq:序列號,占32位,用來標識從TCP源端向目的端發送的字節流,發起方發送數據時對此進行標記。

ACK(Acknowledgement):確認序號位,當該為1時,用於確認發送方的數據

 

窗口大小:用於說明本地可接收數據段的數目,窗口大小是可變的

SYN:同步序列號,TCP需要建立連接時將該值設為1

FIN:當TCP斷開連接時將該位置為1

ACK(Acknowledgement Number):確認序號,占32位,只有ACK標志位為1時,確認序號字段才有效,Ack=Seq+1

其他的可以參考:https://blog.csdn.net/mary19920410/article/details/58030147


 

二、TCP/IP三次握手

image

圖片中名詞的解釋:

CLOSED        初始(無連接)狀態。  

LISTEN        偵聽狀態,等待遠程機器的連接請求。  

SYN_SEND    在TCP三次握手中,主動連接端發送了SYN包后,進入SYN_SEND狀態,等待對方的ACK包。   

SYN_RECV     在TCP三次握手中,主動連接端收到ACK包后,進入SYN_RECV狀態。  

ESTABLISHED     完成TCP三次握手后,主動連接端進入ESTABLISHED狀態。此時,TCP連接已經建立,可以進行通信。

TCP三次握手的過程如下:  

1. 客戶機1(主動連接端)發送一個SYN包給服務器2(被動連接端);  

2. 服務器2(被動連接端)收到SYN包后,發送一個帶ACK和SYN標志的包給客戶機1(主動連接端);  

3. 客戶機1(主動連接端)發送一個帶ACK標志的包給服務器2(被動連接端),握手動作完成。

 

三、TCP/IP四次揮手

image

圖片中名詞的解釋: 

FIN_WAIT_1    在TCP四次斷開時,主動關閉端發送FIN包后,進入FIN_WAIT_1狀態。  

FIN_WAIT_2    在TCP四次斷開時,主動關閉端收到ACK包后,進入FIN_WAIT_2狀態。

TIME_WAIT     在TCP四次斷開時,主動關閉端發送了ACK包之后,進入TIME_WAIT狀態。  

CLOSE_WAIT    在TCP四次斷開時,被動關閉端收到FIN包后,進入CLOSE_WAIT狀態。 

  LAST_ACK      在TCP四次斷開時,被動關閉端發送FIN包后,進入LAST_ACK狀態,等待對方的ACK包。

TCP四次斷開的過程如下:

1. 客戶機1(主動連接端)發送一個FIN包給服務器2(被動連接端)請求斷開連接;

2. 服務器2(被動連接端)收到FIN包后,發送一個ACK包給客戶機1(主動連接端);

3. 服務器2(被動連接端)發送了ACK包后,再發送一個FIN包給客戶機1(主動連接端)確認斷開;

4. 客戶機1(主動連接端)收到FIN包后,發送一個ACK包,當服務器2(被動連接端)收到ACK包后,四次斷開動作完 成,連接斷開。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM