If I remember rightly, the sequence id does not just increment by one every time. It is closely related to the acknowledgment id throughout the session, and is randomly generated on each side when the 3 way handshake occurs.

From Wikipedia:http://en.wikipedia.org/wiki/Transmi..._establishment
1. SYN: The active open is performed by the client sending a SYN to the server. It sets the segment's sequence number to a random value A.
2. SYN-ACK: In response, the server replies with a SYN-ACK. The acknowledgment number is set to one more than the received sequence number (A + 1), and the sequence number that the server chooses for the packet is another random number, B.
3. ACK: Finally, the client sends an ACK back to the server. The sequence number is set to the received acknowledgement value i.e. A + 1, and the acknowledgement number is set to one more than the received sequence number i.e. B + 1.
So I guess the question is, how do you know the sequence id from the Syn-Ack phase is out of order? Based on what I know and what that wikipedia article indicates, it is randomly generated.