總結:1、ack包可以和其他包合在一起,比如ack包可以攜帶資料
2、可以接收多個資料報後,一次性給乙個應答,不用每個資料報一一對應給應答
3、在通訊過程中,通過接收到的包的ack值可以判斷是否是上乙個本機傳送包的應答包(ack值與上乙個本機傳送包的seq有關),seq值和ack值的確定規則如下:
三次握手:
第一次握手(傳送):seq為x(x為任意值),無視ack(因為是第乙個包,不需要給其他包應答)
第二次握手(傳送):seq為y(y為任意值),ack等於接收包seq+1(即x+1)
資料傳輸:
某主機傳送的seq和ack是根據上乙個接收包的seq、ack和len得到,具體為:seq=ack,ack=seq+len
特別:如果握手完第乙個資料報是客戶端傳送,第乙個資料報的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
wireshark抓包分析 tcp包長度
1 最近分析rtmp資料報的時候,用tcpdump抓到一段資料報,有一部分理解不了。tcp連線的時候,協商的mss是1460,為什麼這裡傳輸的時候是2920位元組?2 原因分析,tcpdump工作在資料鏈路層,linux系統在設定了tso iso的時候,通過網絡卡進行分tcp資料 組合tcp資料報以...
TCP抓包總結
感謝博主 tcp window update 如果乙個tcp window變為0了,或者接近0了,這就會警告資料傳送方沒有更多空間來接受更多資料了.檔案傳輸會停止,直到收到乙個update說buffer已經清空了tcp previous segment lost 它告訴傳送方資料段丟失 tcp du...
Wireshark抓包分析tcp連線的建立和斷開
1 建立連線 客戶端ip 192.168.101.129 伺服器ip 192.168.3.22 ip host 192.168.3.22 and tcp 第一次握手 客戶端主機a傳送標誌位位碼syn 1,隨機產生seq number x的資料報到伺服器,客戶端進入syn send狀態,等待伺服器的確...