A modern world is full of gigabit/sec switches.
There are 2^32 octets (bytes) of the sequence space as per TCP standard.
Let's calculate. 1_000_000_000 is 125_000_000 bytes. Conceptually, each byte within the established TCP connection has its own unique sequence number; uniqueness is a must here because without it the whole thing just malfunctions. So, (2^32) / 125_000_000 yields approx. 35 seconds. In other words, a modern gigabit/sec switch/network can exhaust the whole sequence space in half a minute.
To me, it sounds extremely unsafe with respect to the core assumption about the uniqueness of the sequence number. How can we guarantee that within these 35 seconds an assumed "old" packet with some sequence number
X will die and no conflict between the old one and a new one will pop up all of a sudden? At which level of OSI does this guarantee live, if it does exist in the first place?
Just for the clarity sake, I gonna quote the TCP RFC:
Under normal conditions, TCPs keep track of the next sequence number to emit and the oldest awaiting acknowledgment so as to avoid mistakenly using a sequence number over before its first use has been acknowledged. This alone does not guarantee that old duplicate data is drained from the net, so the sequence space has been made very large to reduce the probability that a wandering duplicate will cause trouble upon arrival. At 2 megabits/sec. it takes 4.5 hours to use up 2**32 octets of sequence space. Since the maximum segment lifetime in the net is not likely to exceed a few tens of seconds, this is deemed ample protection for foreseeable nets, even if data rates escalate to l0's of megabits/sec. At 100 megabits/sec, the cycle time is 5