wireshark異常數據解讀詳解


wireshark異常數據,軟件本身會以特殊顏色底紋標識。或者可以通過Analyze-->Expert Information分析。

1、TCP Previous segment not captured 、TCP Out-Of-Order

[TCP Previous segment not captured]在TCP傳輸過程中,同一台主機發出的數據段應該是連續的,即后一個包的Seq號等於前一個包的Seq + Len(三次握手和四次揮手是例外)。如果Wireshark發現后一個包的Seq號大於前一個包的Seq Len,就知道中間缺失了一段數據。

[TCP Out-of-Order]在TCP傳輸過程中(不包括三次握手和四次揮手),同一台主機發出的數據包應該是連續的,即后一個包的Seq號等於前一個包的Seq + Len。也可以說,后一個包的Seq會大於或等於前一個包的Seq。當Wireshark發現后一個包的Seq號小於前一個包的Seq Len時,就會認為是亂序了,因此提示 [TCP Out-of-Order] 。

Wireshark在獲取包序號25時,解析的序列號seq = 20441,而按正常邏輯對25的seq = 17521 + 1460 = 18981,所以wireshark軟件認為異常,將包25以黑色底紋標識,並添加解析文字[TCP Previous segment not captured],注意這里的解析文字是Wireshark軟件自己添加的,而不是tcp數據體本身的。在沒有接收到seq=18981的數據包之前,接收到了seq=2441數據包,所以提示 tcp 沒有捕獲前一個數據段。

Wireshark在獲取包序號26時發現seq=18981,而包序號25的數據包seq = 20441,所以wireshark認為數據包順序錯了,提示[TCP Out-of-Order]

 

 

2、TCP Dup ACK x#y


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

 

客戶端117.136.81.177包序號41和42到達服務器之后(包序號異常,理應先42后41),服務器115.28.150.86上發送包序號43的應答,是針對包序號41所做的應答,在服務器發送包序號40時就說,我希望獲取seq=28852的數據包,但是接下來獲取數據包41的seq=30312,所以服務器在發達應答的時候,發送Ack=28852,SLE=30312 SRE=31560用於提示客戶端,其中SLE:Sequence Left Edge(序列號左邊界值) SRE:Sequence Right Edge(序列號有邊界值)。Wireshark 添加解釋:[TCP Dup ACK]40#1。其中40表示對包序號40重復,#號之后的1表示重復次數為1次。


3、TCP Spurious Retransmission


[TCP spurious retransmission]意味着發送端認為發送的包已經丟失了,然后就重傳了,盡管此時接收端已經發送了對這些包的確認(確認還沒收到或者已經丟失了)。

在客戶端117.136.81.177發送包序號352、353、354、355、356之后,服務器給出了包序號357、358、359、360、361的應答,但是客戶端只收到了包序號357的應答,應答數據seq=104605-105035,即對應包序號352,客戶端認為353、354、355、356丟失,於是從新發送包序號362、363、366、367。這些數據發送到服務器之后,服務器tcp層數據檢測冗余之后就會被丟棄。Wireshark添加解釋文本:[TCP spurious retransmission]


4、TCP Fast Retransmission


當發送方收到3個或以上[TCP Dup ACK],就意識到之前發的包可能丟了,於是快速重傳它(這是RFC的規定)。

當服務器115.28.150.86連續發送了1165、1168、1169三條應答之后,客戶端快速重傳seq=291935的數據包

 

5、TCP Retransmission


[TCP Retransmission]如果一個包真的丟了,又沒有后續包可以在接收方觸發[Dup Ack],就不會快速重傳。這種情況下發送方只好等到超時了再重傳,此類重傳包就會被Wireshark標上[TCP Retransmission]。

包序號6661應答Ack=121046
包序號6662,syn=128347, len=1460, 不符合期待值121046,所以wireshark添加注釋文本[TCP Previous segment not captured]。理論下一包syn = 128347+1460=129807
包序號6663,syn=129807, len=1460, 符合期待值數據包正常,理論下一包syn = 129807+1460=131267
包序號6664,ack=121046, SLE=128347, SRE=129807,表示對包序號6662進行應答,檢測到數據包不連續,啟用tcp重復應答提示發送端可能數據丟失,wireshark添加注釋文本[TCP Dup ACK 6661#1]
包序號6665,ack=121046, SLE=128347, SRE=131267,表示對包序號6663進行應答,檢測到數據包不連續,啟用tcp重復應答提示發送端可能數據丟失,wireshark添加注釋文本[TCP Dup ACK 6661#2]
包序號6666,syn=123966, len=1460, 不符合期待值131267,所以wireshark添加注釋文本[TCP Out-Of-Order]
包序號6667,syn=121046, len=1460, 不符合期待值,所以wireshark添加注釋文本[TCP Out-Of-Order]
包序號6668,syn=122506, len=1460, 不符合期待值,所以wireshark添加注釋文本[TCP Out-Of-Order]
包序號6669,ack=121046, SLE=123966, SRE=123967, SLE=128347, SRE=131267 表示已經接收到了數據片段[123966-123967][128347-131267],因為[128347-131267]數據片段在6665包中已經應答,
所以這里是應答6666,啟用tcp重復應答提示發送端可能數據丟失,wireshark添加注釋文本[TCP Dup ACK 6661#3]
包序號6670,ack=122506, SLE=123966, SRE=123967, SLE=128347, SRE=131267 表示對6667應答
包序號6671,ack=123967, SLE=128347, SRE=131267,表示對6668應答。並告訴發送到差[123967-128346]數據段,已有數據段[128347-131267]
包序號6672,包序號6673,包序號6676,采取的tcp重傳措施,傳送數據段[123967-128346]


原文鏈接:https://blog.csdn.net/yuanbinquan/article/details/75434732


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM