三次握手和四次揮手的包分析

2021-09-27 21:51:39 字數 852 閱讀 7369

下圖為網路程式設計實戰學習筆記(八)中demo的實驗抓包情況

tcp ------ 抓包分析(seq ack)總結的挺好的,直接抄過來了。

總結:1、ack包可以和其他包合在一起,比如ack包可以攜帶資料

2、可以接收多個資料報後,一次性給乙個應答,不用每個資料報一一對應給應答

三次握手:

第一次握手(傳送):seq為x(x為任意值),無視ack(因為是第乙個包,不需要給其他包應答)

第二次握手(傳送):seq為y(y為任意值),ack等於接收包seq+1(即x+1)

資料傳輸:

特別:如果握手完第乙個資料報是客戶端傳送,第乙個資料報的seq和ack和第三次握手的一樣

四次揮手:

如果是伺服器發起的揮手,揮手前最後乙個包是伺服器傳送:

如果是客戶端發起的揮手,揮手前最後乙個包是客戶端傳送:

第二個揮手(傳送):seq為本次接收包ack,ack為本次接收包seq+1

第三次揮手(傳送):和第二次揮手一樣

第四次揮手(傳送):seq為本次接收包ack,ack為本次接收包seq+1

如果是伺服器發起的揮手,揮手前最後乙個包是客戶端傳送:

如果是客戶端發起的揮手,揮手前最後乙個包是伺服器傳送:

第一次揮手(傳送):seq為本次接收包ack,ack為本次接收包seq+len

第二個揮手(傳送):seq為本次接收包ack,ack為本次接收包seq+1

第三次揮手(傳送):和第二次揮手一樣

第四次揮手(傳送):seq為本次接收包ack,ack為本次接收包seq+1

三次握手和四次揮手

三次握手和四次揮手如圖所示 為什麼是三次握手而不是兩次 因為當客戶端第傳送syn到服務端的時候,如果有幾次請求是因為網路等原因延時等情況的時候,如果沒有第三次握手的確定。服務端就會認為客戶端重寫傳送請求了,就會去開啟連線相應。為什麼關閉連線的時候是四次握手而不是三次?當客戶端傳送請求關閉連線的時候,...

三次握手和四次揮手

tcp三次握手和四次揮手的全過程 tcp是主機對主機層的傳輸控制協議,提供可靠的連線服務,採用三次握手確認建立乙個連線 位碼即tcp標誌位,有6種表示 syn synchronous建立連線 ack acknowledgement 表示響應 確認 psh push表示有data資料傳輸 fin fi...

三次握手和四次揮手

1.在學習tcp協議的時候,總是在強調三次握手,那麼為什麼是三次?而不是兩次或者四次?強迫症表示黑人問號?今天我們就來分析一下為什麼是三次,下圖是一次tcp通訊的時序 在這個例子中,首先客戶端主動發起連線 傳送請求,然後伺服器端響應請求,然後客戶端主動關閉連線。兩條豎線表示通訊的兩端,從上到下表 示...