Академический Документы
Профессиональный Документы
Культура Документы
sender receiver
+
sender and receiver amount of time is
needed to process a packet at the receiver
Hence duplication of packets arises a data
packet was lost, an ACK was lost, or if the
packet or ACK was simply overly delayed
Timeout
ACK arrives Time
– If received ACK, send
the next packet
– If timeout, ReTransmit
the same packet
• Receiver:
– When you receive a
packet correctly, send
an ACK
Recovering from Error
Timeout
Timeout
Timeout
Time
Timeout
Timeout
Timeout
Packet lost ACK lost Early timeout
Timeout
Timeout
Time
Timeout
Timeout
Timeout
Packet lost ACK lost Early timeout
U L/R .008
sender
= = = 0.00027
RTT + L / R 30.008 microsec
onds
1KB pkt every 30 msec -> 33kB/sec thruput over 1 Gbps link
network protocol limits use of physical resources!
Increase utilization
by a factor of 3!
U 3*L/R .024
sender
= = = 0.0008
RTT + L / R 30.008 microsecon
ds
Transport Layer 3-20
rdt3.0 in action
Last ACK Received Last Packet Sent Next Packet Expected Last Packet Acceptable
(LAR) (LPS) (NPE) (LPA)
… … … …
Sent & Acked Sent Not Acked Received & Acked Acceptable Packet
receiver sees no
difference in two
scenarios!
incorrectly passes
duplicate data as new in
(a)
Q: what relationship
between seq # size
and window size?
Transport Layer 3-35
TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581
receiver
door door
TCP TCP
send buffer receive buffer
segment
Problem
ACK does not really acknowledge a transmission
• It actually acknowledges the receipt of data
When a segment is retransmitted and then an
ACK arrives at the sender
• It is impossible to decide if this ACK should be
associated with the first or the second transmission
for calculating RTTs
Karn/Partridge Algorithm
Associating the ACK with (a) original transmission versus (b) retransmission
350
300
250
RTT (milliseconds)
200
150
100
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
Seq=92 timeout
timeout
X
loss
Sendbase
= 100
Seq=92 timeout
SendBase
= 120
SendBase
= 100 SendBase
= 120 premature timeout
time time
lost ACK scenario
Transport Layer 3-50
TCP retransmission scenarios (more)
Host A Host B
timeout
X
loss
SendBase
= 120
time
Cumulative ACK scenario
DevRTT = (1-)*DevRTT +
*|SampleRTT-EstimatedRTT|
(typically, = 0.25)