Examine the figure to the right. Here both a CONNECTION REQUEST and an acknowledgment to a CONNECTION ACCEPTED which where floating around in the network arrive at host B. Both before host A gets a chance to reject the connection. This is unfortunate because host B has accepted the stale DATA packet with sequence number X causing unknown havoc. However the TCP handshake protocol does not have this problem and there is something wrong with this picture. How does TCP deal with this double duplicate delayed packet delivery scenario and what is wrong with this picture? The second delayed duplicate cannot have an ACK = Y because B delayed sending SEQ = Y until all ACK = Y in the network had died off. Hence, with ACK != Y, B rejects the second duplicate as a delayed packet. |