下圖為網路程式設計實戰學習筆記(八)中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通訊的時序 在這個例子中,首先客戶端主動發起連線 傳送請求,然後伺服器端響應請求,然後客戶端主動關閉連線。兩條豎線表示通訊的兩端,從上到下表 示...