TCP的三次握手


TCP/IP協議中,TCP協議提供可靠的連接服務,采用三次握手建立一個連接。

  (1)第一次握手:建立連接時,客戶端A發送SYN包(SYN=j)到服務器B,並進入SYN_SEND狀態,等待服務器B確認。

  (2)第二次握手:服務器B收到SYN包,必須確認客戶A的SYN(ACK=j+1),同時自己也發送一個SYN包(SYN=k),即SYN+ACK包,此時服務器B進入SYN_RECV狀態。

  (3)第三次握手:客戶端A收到服務器B的SYN+ACK包,向服務器B發送確認包ACK(ACK=k+1),此包發送完畢,客戶端A和服務器B進入ESTABLISHED狀態,完成三次握手。

   完成三次握手,客戶端與服務器開始傳送數據

 

TCP四次揮手關閉連接

  由於TCP連接是全雙工的,因此每個方向都必須單獨進行關閉。這原則是當一方完成它的數據發送任務后就能發送一個FIN來終止這個方向的連接。收到一個 FIN只意味着這一方向上沒有數據流動,一個TCP連接在收到一個FIN后仍能發送數據。首先進行關閉的一方將執行主動關閉,而另一方執行被動關閉。
  TCP協議的連接是全雙工連接,一個TCP連接存在雙向的讀寫通道。 
  簡單說來是 “先關讀,后關寫”,一共需要四個階段。以客戶機發起關閉連接為例:
  1.服務器讀通道關閉
  2.客戶機寫通道關閉
  3.客戶機讀通道關閉
  4.服務器寫通道關閉
  關閉行為是在發起方數據發送完畢之后,給對方發出一個FIN(finish)數據段。直到接收到對方發送的FIN,且對方收到了接收確認ACK之后,雙方的數據通信完全結束,過程中每次接收都需要返回確認數據段ACK。


免責聲明!

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



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