Hi, I would like to know the meaning of out-of-order TCP segments in wireshark with the following question
thank you! asked 02 Dec '13, 07:29 SteveZhou |
2 Answers:
From packet-tcp.c:
answered 02 Dec ‘13, 07:42 Kurt Knochner ♦ edited 02 Dec ‘13, 08:20 |
A common reason why Wireshark marks certain segments "Out-of-order" is because of a known bug in Wireshark: In a sequence like the following: 1) A ------SYN-----> B 2) A <-----SYN------ B 3) A ----SYN/ACK---> B , Wireshark will mark segment 3) "Out-of-order". This is of course a mistake. This sequence is a normal TCP sequence, often called "TCP simultaneous connect". Since P2P applications use TCP simultaneous connect a lot to perform TCP NAT punching, you might see such sequences and false positives often. Someone at Wireshark should fix it imho, it looks bad when a network analyzer doesn't understand the basic TCP state diagram. answered 05 Jun '14, 15:27 abdul edited 05 Jun '14, 15:29 Hi Abdul, do you have a bug ID for this known issue? I'm really curious about it. I'm seeing TCP out-of-order packets and I'm wondering if it could be related. (16 Jun '14, 13:11) calpolygrad
@abdul: can you post a sample capture file (google drive, dropbox, cloudshark.org) that shows the mentioned behavior? (17 Jun '14, 11:51) Kurt Knochner ♦ I have a capture example of what Abdul is talking about:
(04 Aug ‘14, 11:53) Frank Murray Can you post the capture somewhere? what were the circumstances of the capture? (04 Aug ‘14, 12:03) grahamb ♦ @frank murray did you see grahamb’s comment? (07 Apr ‘15, 10:08) barlop |
So IP doesn’t have the responsibility to put the packets in a right order, does it? It is TCP’s job, what if the application layer protocol doesn’t use TCP? Who will put the packets in a right order? Application layer protocol?
No. The job of IP is just to route/transport the frames to the destination, regardless of packet order or the way/path it chooses.
For TCP: Yes, it’s TCP that will deliver data in the right order to the application, which will/can cause delays if you have a lot of out-of-order packets, as TCP must wait until all required segments have arrived.
the application itself or the ‘application protocol’, if that is implemented ‘outside’ of the application - for whatever reason.
thanks a lot!
Your “answer” has been converted to a comment as that’s how this site works. Please read the FAQ for more information.