Wireshark抓包工具--TCP數據包seq ack等解讀

1、Wireshark的數據包詳情窗口,如果是用中括號[]括起來的,表示註釋,在數據包中不佔字節


2、在二進制窗口中,如“DD 3D”,表示兩個字節,一個字節8位


3、TCP數據包中,seq表示這個包的序號,注意,這個序號不是按1遞增的,而是按tcp包內數據字節長度加上,如包內數據是21字節,而當前IP1發到IP2的包的seq是10的話,那下個IP1發到IP2的包的seq就是10+21=31


4、注意我們分析tcp包時,要以一個會話做爲一個完整對象,即通訊只發生在兩個IP之間,兩個固定的端口之間,如果端口變化了,那鏈接就不是同一條了,不同的鏈接之間的seq是沒有關聯的


5、tcp包分爲包頭的內容,tcp的包頭長度是32字節,整個數據包的包頭是66字節(不一定的),如果整個數據包是66字節的話,那內容長度就是0


6、每個tcp包都帶有win、ack,這些是告訴對方,我還可以接收數據的滑動窗口是多少,如果A發到B的包的win爲0,就是A告訴B說我現在滑動窗口爲0了,飽了,你不要再發給我了,就說明A端環境有壓力(如帶寬滿了等)


7、ack可以理解爲應答。A發給B的ack是告訴B,我已收到你發的數據包,收到ack號這裏了,你下次要發seq爲ack號的給我


8、在網絡不堵即滑動窗口一點都不堵的情況下,第一個包的ack號就是第二個包的seq號,如果堵了,由於是滑動窗口緩存處理隊列,所以這個值會錯開


9、如果A發到B連續幾個包,seq號不變,ack號一直在變大,說明A一直在收B的數據,一直在給B應答


10、如果A發到B連續幾個包,seq號一直變大,ack號一直沒變,說明A一直在向B發數據,不用給B應答,而是在等B的應答


11、可以接收多個數據包後,一次性給一個應答,不用每個數據包一一對應給應答


12、發了一個包,很久沒有收到應答後,會重發包,在Wireshark抓包工具提示“[TCP Retransmission]”,在數據包詳情窗口點開可以看到是對哪個數據包的重傳


13、“[TCP Dup ACK ?#?]”應答包的重傳


14、如果出現這個錯誤“[TCP Previous segment not captured]”,說明亂序了,前一個包沒有收到,收到後面的包了,這時也會重傳包
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章