RFC 1122 says this:
When a connection is closed actively, it MUST linger in TIME-WAIT state for a time 2xMSL (Maximum Segment Lifetime). However, it MAY accept a new SYN from the remote TCP to reopen the connection directly from TIME-WAIT state, if it: (1) assigns its initial sequence number for the new connection to be larger than the largest sequence number it used on the previous connection incarnation
Imagine this example:
- server does active close
- server listens again on same port
- same client sends a SYN
- server sets a large ISN and accepts this SYN
Now what if the server started sending data so fast that the sequence number would wrap and reach a number that was used in the previous connection incarnation? Can this not happen within the MSL time?