三次握手協議

前端面試題

  1. 說說三次握手協議

答:第一次握手:創建鏈接時,客戶端發送syn包(syn=j)到服務器,並進入syn_sent狀態,等待服務器確認,syn:同步序列編號前端

第二次握手:服務器收到syn包,必須確認客戶的syn(ack=j+1),同時本身也發送一個syn包(syn=k),即syn + ack包,此時服務器進入syn_recv狀態面試

第三次握手:客戶端收到服務器的syn+ack包,向服務器發送確認包ack(ack = k + 1),此包發送完畢,客戶端和服務器進入established(tcp鏈接成功)狀態,完成三次握手服務器

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

Seq 與ack在三次握手協議的計算同步

第一次   客戶端發起第一次握手:隨機生成一個seq爲i,包含在syn包裏面發送給服務器,服務器接收到syn包數據

第二次   服務器發起第二次握手:服務器向客戶端發送一個ack包,並把服務器狀態變成爲syn_recv狀態,服務器隨機生成一個ack碼爲j,並把客戶端發送的seq碼加一,客戶端

第三次   客戶端接收服務器發送的ack包,首先驗證seq碼是否加一,seq(客戶端) = seq(服務器)+1,並接收到服務器發來的ack碼,在ack碼上添加一協議

Ack(客戶端)+1 = ack(服務器)tab

相關文章
相關標籤/搜索