TCP IP協議三次握手與四次揮手

2022-08-30 12:48:11 字數 1158 閱讀 9243

一.標誌位和序號

seq序號 :傳送方隨機生成的

ack確認序號:ack=seq+1 標誌位ack=1時確認序號有效

syn標誌位:發起乙個新連線

ack標誌位:確認序號有效

fin標誌位:斷開連線

二.三次握手

三次握手是客戶端與服務端建立乙個tcp連線時,需要客戶端和服務端傳送三個包建立連線的過程

(1)第一次握手

客戶端將syn置為1,隨機產生乙個seq序號=j,將該資料報傳送給服務端,客戶端此時狀態為syn_send

(2)第二次握手

服務端收到客戶端傳送的資料報由syn=1知道客戶端要建立連線,客戶端將syn和ack都置為1,同時傳送確認序號ack=j+1

隨機產生乙個服務端序號seq=k,將此資料報傳送給客戶端。服務端此時的狀態為syn_revd

(3)第三次握手

客戶端收到服務端的資料報,由ack=1,ack=j+1無誤,客戶端將ack置為1,ack=k+1發給服務端

服務端收到ack=1,ack=k+1連線建立成功。客戶端和服務端此時的狀態為established

三.四次揮手

四次揮手是斷開tcp連線的時候,需要客戶端和服務端傳送四次包確認連線的斷開,斷開連線可由服務端或客戶端任意一方觸發

(1)第一次揮手

假設客戶端主動關閉。客戶端傳送關閉連線標誌位fin=1,序號seq=m。客戶端此時狀態為fin_wait_1

(2)第二次揮手

服務端收到標誌位fin=1,知道客戶端要關閉連線,客戶端傳送標誌位ack=1,確認序號ack=m+1,seq=n。

服務端並沒有傳送fin標誌位,因為服務端可能還有資料要傳送 。此時服務端處於close_wait狀態,客戶端處於fin_wait_2狀態

(3)第三次揮手

服務端傳送標誌位fin=1,seq=u 。此時服務端處於last_ack狀態

(4)第四次揮手

客戶端收到fin,傳送ack=1,確認序號ack=u+1給服務端。客戶端進入time_wait狀態。釋放連線完成

TCP IP協議三次握手與四次握手釋放

我們知道tcp建立連線要進行 三次握手 即交換三個分組。大致流程如下 只有就完了三次握手,但是這個三次握手發生在socket的那幾個函式中呢?請看下圖 圖1 socket中傳送的tcp三次握手 從圖中可以看出,當客戶端呼叫connect時,觸發了連線請求,向伺服器傳送了syn j包,這時connec...

TCP IP 協議 三次握手與四次揮手

1.序號 seq序號,佔32位,用來標識從tcp源端向目的端傳送的位元組流,發起方傳送資料時對此進行標記。2.確認序號 ack序號,佔32位,只有ack標誌位為1時,確認序號欄位才有效,ack seq 1。3.標誌位 共6個,即urg ack psh rst syn fin等,具體含義如下 a ur...

TCP IP協議三次握手 四次揮手

tcp是一種面向連線的端到端的可靠傳輸協議。一 客戶端傳送乙個連線請求,傳送乙個隨機數x,這時客戶端的埠狀態變為syn sent狀態。二 服務端收到客戶端發起的連線請求,埠狀態變為listen狀態,服務端回覆客戶端發起的請求,把收到的隨機數x 1返回確認收到,在傳送乙個自己生成的隨機數y給客戶端。此...