Congestion Avoidance Behavior Congestion Window Cut Time Packet loss Grabbing t retransmit Congestion back Window Bandwidth and rate Lecture 19: TCP Congestion Control 11
Lecture 19: TCP Congestion Control 11 Congestion Avoidance Behavior Time Congestion Window Packet loss + retransmit Grabbing back Bandwidth Cut Congestion Window and Rate
Packet conservation At equilibrium, inject packet into network only When one is removed Sliding window and not rate controlled But still need to avoid sending burst of packets would overflow links Need to carefully pace out packets Helps provide stability Need to eliminate spurious retransmissions Accurate Rto estimation Better loss recovery techniques(e.g. fast retransmit) Lecture 19: TCP Congestion Control
Lecture 19: TCP Congestion Control 12 Packet Conservation • At equilibrium, inject packet into network only when one is removed • Sliding window and not rate controlled • But still need to avoid sending burst of packets would overflow links • Need to carefully pace out packets • Helps provide stability • Need to eliminate spurious retransmissions • Accurate RTO estimation • Better loss recovery techniques (e.g. fast retransmit)
TCP Packet Pacing Congestion window helps to pace the transmission of data packets In steady state, a packet is sent when an ack is received Data transmission remains smooth once it is smooth Self-clocking behavior b Sender R ecelver Lecture 19: TCP Congestion Control
Lecture 19: TCP Congestion Control 13 TCP Packet Pacing • Congestion window helps to “pace” the transmission of data packets • In steady state, a packet is sent when an ack is received • Data transmission remains smooth, once it is smooth • Self-clocking behavior Pr Pb Ar Ab Sende Receiver r As
How to Change Window When a loss occurs have W packets outstanding New cwnd =0.5 cwnd How to get to new state without losing ack clocking? Lecture 19: TCP Congestion Control 14
Lecture 19: TCP Congestion Control 14 How to Change Window • When a loss occurs have W packets outstanding • New cwnd = 0.5 * cwnd • How to get to new state without losing ack clocking?
Fast Recovery Each duplicate ack notifies sender that single packet has cleared network When cwnd packets are outstanding Allow new packets out with each new duplicate acknowledgement · Behavior Sender is idle for some time-waiting for 12 cwnd worth of dupacks Transmits at original rate after wait Ack clocking rate is same as before loss Lecture 19: TCP Congestion Control
Lecture 19: TCP Congestion Control 15 Fast Recovery • Each duplicate ack notifies sender that single packet has cleared network • When < cwnd packets are outstanding • Allow new packets out with each new duplicate acknowledgement • Behavior • Sender is idle for some time – waiting for ½ cwnd worth of dupacks • Transmits at original rate after wait • Ack clocking rate is same as before loss