- P1 and
P2
will always use
the same
starting sequence/ACK numbers:
(I used ZERO (0), but it can be
any fixed set of numbers
- P1
sends the first message,
but the message is
delayed (congestion):
- P1
times out
and retransmits the
first message:
In the mean time, the
old first transmission
is still
delayed (due congestion)
Suppose:
- The retransmitted packet
arrives first
|
- After the message delivery,
the TCP connection is
terminated (closed):
(The old first transmission
is still
delayed)
- Now:
another program P3
makes TCP connection to
a program P4:
Coincidentally:
-
P3 and
P4 use
the same
source and
destination ports
used by P1 and
P2 !!!
|
- Suppose at this moment,
the
delayed first transmission
from
P1 to P2 arrives:
Result:
- The bogus message will be
accepted for delivery
ny P4 !!!
- This is wrong and
TCP will
fail to
guarantee reliability...
|
|