天天看點

wireshark 抓包分析常見的提示含義

1. TCP DUP ACK

TCP dup ack XXX#X原因分析:

就是重複應答#前的表示封包到哪個序号丢失,#後面的是表示第幾次丢失.

當亂序或者丢包發生時,接收方會收到一些Seq号比期望值大的包。它每收到一個這種包就會Ack一次期望的Seq值,以此方式來提醒發送方,于是就産生了一些重複的Ack。Wireshark會在這種重複的Ack上标記[TCP Dup ACK] .

2. TCP Fast Retransmission

某一端收到三個重複的ack,啟動快速重傳.

3.TCP Previous segment not captured

丢失了中間某一段資料

4. TCP Out-of-Order

在TCP傳輸過程中(不包括三次握手和四次揮手),同一台主機發出的資料包應該是連續的,即後一個包的Seq号等于前一個包的Seq+ Len , 由于TCP DUP ACK的出現,導緻中途某個資料包丢失,需要重傳,511/512 重傳的資料seq就小于502資料包傳遞的序列.

wireshark 抓包分析常見的提示含義

以上圖為例:

496: (server->client) seq = 23067 , len = 1460

497: (server->client) 原本該包起始seq: 23067+1460 = 24527 , 但是,可以看到提示 TCP Previous segment not captured , 實際起始seq: 28907 , len = 1460, 就知道中間缺失了一段資料(24527- 28907)

498: (server->client) 起始seq: 30367 , len = 1460

499: (client->server)ACK ,告之server端,重新發送 seq= 24527 開使的資料包,同時告訴server ,client已經收到了(28907-30367)

500: (client->server) TCP dup ack 499#1 , 重複應答,告之server 端,重新發送seq= 24527 開使的資料包 ,更新client已經收到了(28907-31827)

502: (server->client) server繼續發送 seq = 31827 ,len = 1460

503: (client->server) TCP dup ack 499#2,再次重複應答,告知server端,重新發送seq= 24527 開使的資料包 ,更新client已經收到了(28907-33287)

510: (server->client)server 啟動快速重傳TCP Fast Retransmission,可以看到511,512,就把之前缺失的資料(24527- 28907)給重傳了.

515/516: (client->server) 發送ack給server端,告之client端已經收到了缺失的資料(24527- 28907)

517: (client->server) 發送ack給server端, 告之client端已經收到了33287,實際上是對503中client端收到該序列資料(28907-33287)的應答. 隻需把最大的序列号通知即可,server就知道前面所有的資料就已經成功接收了

wireshark 抓包分析常見的提示含義

5.TCP zerowindow

TCP包中的“win=”代表接收視窗的大小,即表示這個包的發送方目前還有多少緩存區可以接收資料。當Wireshark在一個包中發現“win=0”時,就會給它打上“TCP zerowindow”的标志,表示緩存區已滿,不能再接受資料了

6.TCP keep-Alive

用于檢測對端存活情況,如上圖,465通知win=0,暫停資料的傳輸,等了2s ,對端發送keep alive, 對端479立馬回複 win=0.

7. TCP window Update

通知視窗更新,如上圖,win=1024. 對端立馬可以發送資料

wireshark 抓包分析常見的提示含義

8.TCP ACKed unseen segment

當Wireshark發現被Ack的那個包沒被抓到,就會提示 [TCP ACKed unseen segment], 在一個網絡包的開頭會經常看到這個提示,因為隻抓到了後面的Ack但沒抓到前面的資料包。從上圖27可以看出,回複的Ack=16062 , 就代表client已經收到server前面所有的資料. 該種提示可以忽略,

繼續閱讀