Simply requiring a TCP handshake may not be enough to prevent
attackers from spoofing TCP packets, since attackersmay be able to predict TCP
sequence numbers. Although many operating systems use a random sequence
number selection, the pseudo-random number generators they use may not be
random enough [Zalewski 2002; Zalewski 2001]. TCP-specific probes intelligently
craft TCP acknowledgment messages to add another layer of protection.
Since the sender of spoofing packets is often unable to see any replies, a recipient
host can send acknowledgments that should change the TCP window size
or cause packet retransmission, and then observe whether or not the supposed
source responds correctly. If the supposed source does not change the window
size or does not retransmit the packet, the recipient host considers the packet’s
source to be spoofed.