wireshark異常數據解讀

轉載自:https://blog.csdn.net/yuanbinquan/article/details/75434732

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]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章