TCP創建鏈接和終止協議詳細解說

TCP握手協議服務器

  在TCP/IP協議中,TCP協議提供可靠的鏈接服務,採用三次握手創建一個鏈接。ide

 
  第一次握手:創建鏈接時,客戶端發送syn包(syn=j)到服務器,並進入SYN_SEND狀態,等待服務器確認;
 
  第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時本身也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態;it

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

二、鏈接終止協議(四次分手)數據

  因爲TCP鏈接是全雙工的,所以每一個方向都必須單獨進行關閉。這原則是當一方完成它的數據發送任務後就能發送一個FIN來終止這個方向的鏈接。收到一個 FIN只意味着這一方向上沒有數據流動,一個TCP鏈接在收到一個FIN後仍能發送數據。首先進行關閉的一方將執行主動關閉,而另外一方執行被動關閉。
  (1) TCP客戶端發送一個FIN,用來關閉客戶到服務器的數據傳送(報文段4)。客戶端

  (2) 服務器收到這個FIN,它發回一個ACK,確認序號爲收到的序號加1(報文段5)。和SYN同樣,一個FIN將佔用一個序號。協議

  (3) 服務器關閉客戶端的鏈接,發送一個FIN給客戶端(報文段6)。di

  (4) 客戶段發回ACK報文確認,並將確認序號設置爲收到序號加1(報文段7)。view

相關文章
相關標籤/搜索