TCP三次握手 四次揮手(面試)

2021-10-18 12:44:52 字數 924 閱讀 1410

第一次握手:客戶端傳送第乙個包,其中syn標誌位為1, ack=0,傳送順序號sequence=x(隨機int)。客戶端進入syn傳送狀態,等待伺服器確認。

第二次握手:伺服器收到這個包後傳送第二個包,其中包syn、ack標誌位為1,傳送順序號seq=y(隨機int),接收順序號ack=x+1,此時伺服器進入syn接收狀態。

第三次握手:客戶端收到伺服器傳來的包後,向伺服器傳送第三個包,syn=0, ack=1,接收順序號ack = y+1,傳送順序號seq=x+1。此包傳送完畢,客戶端和伺服器進入established建立成功狀態,完成三次握手。

1、為什麼建立連線協議是三次握手,而關閉連線卻是四次握手呢?

建立連線時,ack和syn可以放在乙個報文裡來傳送。而關閉連線時,被動關閉方可能還需要傳送一些資料後,再傳送fin報文表示同意現在可以關閉連線了,所以它這裡的ack報文和fin報文多數情況下都是分開傳送的。

2、如果已經建立了連線,但是客戶端突然出現故障了怎麼辦?

tcp設有乙個保活計時器,客戶端如果出現故障,伺服器不能一直等下去,白白浪費資源。伺服器每收到一次客戶端的請求後都會重新復位這個計時器,時間通常是設定為2小時,若兩小時還沒有收到客戶端的任何資料,伺服器就會傳送乙個探測報文段,以後每隔75秒鐘傳送一次。若一連傳送10個探測報文仍然沒反應,伺服器就認為客戶端出了故障,接著就關閉連線。

詳解TCP三次握手四次揮手面試題

tcp transmission control protocol 傳輸控制協議。是面向連線的 全雙工的協議。主要用來傳輸tcp報文的。而傳輸需要客戶端client與伺服器server建立連線來完成 三次握手 傳輸完成後需要釋放鏈結 四次揮手 建立連線 三次握手 第一次握手 首先客戶a主動開啟連線,...

TCP三次握手 四次揮手

tcp 三次握手 tcp 連線是通過三次握手進行初始化的。三次握手的目的是同步連線雙方的序列號和確認號並交換 tcp 視窗大小資訊。以下步驟概述了通常情況下客戶端計算機聯絡伺服器計算機的過程 1.客戶端向伺服器傳送乙個syn置位的tcp報文,其中包含連線的初始序列號x和乙個視窗大小 表示客戶端上用來...

TCP三次握手 四次揮手

服務端的tcp程序先建立傳輸控制塊tcb,準備接受客戶端程序的連線請求,然後服務端程序處於listen狀態,等待客戶端的連線請求,如有,則作出響應。1 客戶端的tcp程序也首先建立傳輸控制模組tcb,然後向服務端發出連線請求報文段,該報文段首部中的syn 1,ack 0,同時選擇乙個初始序號seq ...