Good Ideas So Far : Flow Control
Good Ideas So Far : Flow Control
Good Ideas So Far : Flow Control
• Flow control
• Stop & wait
15-441 Computer Networking • Parallel stop & wait
• Sliding window
Lecture 17 – TCP & Congestion Control • Loss recovery
• Timeouts
• Acknowledgement-driven recovery (selective repeat or
cumulative acknowledgement)
Lecture 17: TCP & Congestion Control 3 Lecture 17: TCP & Congestion Control 4
Sequence Numbers TCP Flow Control
Window Flow Control: Send Side Window Flow Control: Send Side
App write
Next to be sent
window
Lecture 17: TCP & Congestion Control 9 Lecture 17: TCP & Congestion Control 10
Lecture 17: TCP & Congestion Control 13 Lecture 17: TCP & Congestion Control 14
• Goals
• Fill the bucket as quickly
as possible
• Avoid overflowing the sink
Lecture 17: TCP & Congestion Control 15 Lecture 17: TCP & Congestion Control 16
Plumbers Gone Wild! Plumbers Gone Wild 2!
Lecture 17: TCP & Congestion Control 17 Lecture 17: TCP & Congestion Control 18
100 Mbps
Lecture 17: TCP & Congestion Control 21 Lecture 17: TCP & Congestion Control 22
Lecture 17: TCP & Congestion Control 23 Lecture 17: TCP & Congestion Control 24
Example: TCP Congestion Control Outline
Lecture 17: TCP & Congestion Control 25 Lecture 17: TCP & Congestion Control 26
Efficiency Line
Lecture 17: TCP & Congestion Control 27 Lecture 17: TCP & Congestion Control 28
Basic Control Model Linear Control
• Reduce speed when congestion is perceived • Many different possibilities for reaction to
• How is congestion signaled? congestion and probing
• Either mark or drop packets • Examine simple linear controls
• Window(t + 1) = a + b Window(t)
• How much to reduce?
• Different ai/bi for increase and ad/bd for decrease
• Increase speed otherwise
• Supports various reaction to signals
• Probe for available bandwidth – how?
• Increase/decrease additively
• Increased/decrease multiplicatively
• Which of the four combinations is optimal?
Lecture 17: TCP & Congestion Control 29 Lecture 17: TCP & Congestion Control 30
Efficiency Line
Lecture 17: TCP & Congestion Control 31 Lecture 17: TCP & Congestion Control 32
Muliplicative Increase/Decrease Convergence to Efficiency
• Both X1 and X2
increase by the
Fairness Line
same factor over T1
Lecture 17: TCP & Congestion Control 33 Lecture 17: TCP & Congestion Control 34
xH
User 2’s
Allocation
x2
xH’
a<0 & b<1
Efficiency Line
Efficiency Line
Lecture 17: TCP & Congestion Control 35 Lecture 17: TCP & Congestion Control 36
Convergence to Efficiency & Fairness What is the Right Choice?
Lecture 17: TCP & Congestion Control 37 Lecture 17: TCP & Congestion Control 38
Lecture 17: TCP & Congestion Control 39 Lecture 17: TCP & Congestion Control 40
Pipes…Tubes…Let’s call
Good Ideas So Far…
the whole thing off
• Flow control • An alternate way to look at congestion?
• Stop & wait
• Parallel stop & wait
• Sliding window (e.g., advertised windows)
• Loss recovery
• Timeouts
• Acknowledgement-driven recovery (selective repeat or cumulative
acknowledgement)
• Congestion control
• AIMD ! fairness and efficiency
Lecture 17: TCP & Congestion Control 41 Lecture 17: TCP & Congestion Control 42