2. Not all flows are
congestion controlled
3 October 2008 NUS CS5229, Semester 1 2008/09 2
3. 1. Don’t need reliability, so
use UDP, which has no
congestion control
3 October 2008 NUS CS5229, Semester 1 2008/09 3
4. 2. No incentive to limit
own sending rate
3 October 2008 NUS CS5229, Semester 1 2008/09 4
5. Sally Floyd and Kevin Fall
“Promoting End-to-End
Congestion Control in
the Internet”
TON, 1999
3 October 2008 NUS CS5229, Semester 1 2008/09 5
6. What mechanisms can we
add to the router to provide
incentives for congestion
control?
3 October 2008 NUS CS5229, Semester 1 2008/09 6
7. Idea: Identify unresponsive flows,
then drop their packets or
regulate their rate.
3 October 2008 NUS CS5229, Semester 1 2008/09 7
8. Note: Not scalable to large
number of flows
(eg in core routers).
3 October 2008 NUS CS5229, Semester 1 2008/09 8
9. How to identify
unresponsive flows in a
router?
3 October 2008 NUS CS5229, Semester 1 2008/09 9
10. Approach 1:
Use TCP Throughput
Equation
3 October 2008 NUS CS5229, Semester 1 2008/09 10
11. The paper uses a rough approximation
3 October 2008 NUS CS5229, Semester 1 2008/09 11
12. MSS: Maximum packet size in bytes
over all outgoing links
p: Packet drop rates over all
outgoing links
RTT: Twice the 1-way propagation
delay of outgoing links
3 October 2008 NUS CS5229, Semester 1 2008/09 12
13. The expression will overestimate
the fair throughput for TCP.
Thus, not all unfriendly flows will
be identified.
3 October 2008 NUS CS5229, Semester 1 2008/09 13
15. Does the packet arrival rate of a
flow reduce appropriately when
packet drop rate increase?
3 October 2008 NUS CS5229, Semester 1 2008/09 15
16. If packet drop rate increases by
x%, then packet arrival rate
should decrease by sqrt(x)%
3 October 2008 NUS CS5229, Semester 1 2008/09 16
17. Does Not Work:
when packet drop rate is constant
3 October 2008 NUS CS5229, Semester 1 2008/09 17
18. Does Not Work:
packet might be dropped by
earlier router
3 October 2008 NUS CS5229, Semester 1 2008/09 18
19. Does Not Work:
A flow has an incentive to start
with high throughput
3 October 2008 NUS CS5229, Semester 1 2008/09 19
20. Approach 3:
Flows with
Disproportionate
Bandwidth
3 October 2008 NUS CS5229, Semester 1 2008/09 20
21. A flow should share 1/n of
total bandwidth
3 October 2008 NUS CS5229, Semester 1 2008/09 21
22. When congestion is low
(packet drop rate is low),
skewness is OK.
3 October 2008 NUS CS5229, Semester 1 2008/09 22
23. Condition 1: If a flow’s
bandwidth is more than ln(3n)/n
of the aggregate, then it is using
disproportionate share.
(ln(3n)/n : magic)
3 October 2008 NUS CS5229, Semester 1 2008/09 23
24. Condition 2: If a flow’s
bandwidth is more than
For MSS=512 and RTT=0.05s
3 October 2008 NUS CS5229, Semester 1 2008/09 24
25. If a flow’s bandwidth is more
than ln(3n)/n of the aggregate
flow bandwidth, then it is using
disproportionate share.
(ln(3n)/n : magic)
3 October 2008 NUS CS5229, Semester 1 2008/09 25
26. Does Not Work:
flows with short RTT will be
considered as disproportionate
3 October 2008 NUS CS5229, Semester 1 2008/09 26
27. Does Not Work:
the only flow with sustained
demand (long live) will be
considered as disproportionate.
3 October 2008 NUS CS5229, Semester 1 2008/09 27
28. Sally Floyd and Van Jacobson
“Random Early
Detection Gateway for
Congestion Avoidance”
TON, 1993
3 October 2008 NUS CS5229, Semester 1 2008/09 28
38. One queue per flow
3 October 2008 NUS CS5229, Semester 1 2008/09 38
39. Drop what?
Drop arriving packets from
flow i when queue i is full
3 October 2008 NUS CS5229, Semester 1 2008/09 39
40. Send what?
Each flow takes turn --
send the packet at the head
of the queues in a round
robin manner.
3 October 2008 NUS CS5229, Semester 1 2008/09 40
41. Advantages of
FIFO and Drop Tail
3 October 2008 NUS CS5229, Semester 1 2008/09 41
43. Scale well
(no per-connection states)
3 October 2008 NUS CS5229, Semester 1 2008/09 43
44. Reduce delay for a bursty
connection
(e.g. VoIP)
3 October 2008 NUS CS5229, Semester 1 2008/09 44
45. Problems with
FIFO and Drop Tail
3 October 2008 NUS CS5229, Semester 1 2008/09 45
46. Problem 1
Bias against bursty traffic
burstiness increases chances that the
queue will overflow
3 October 2008 NUS CS5229, Semester 1 2008/09 46
47. Problem 2
Global synchronization
connections reduce their windows
simultaneously, lowering utilization.
3 October 2008 NUS CS5229, Semester 1 2008/09 47
48. Problem 3
Queue size
higher bandwidth needs longer
queue, increasing delay. TCP tries to
keep the queue full
3 October 2008 NUS CS5229, Semester 1 2008/09 48
49. Problem 4
No isolation against
unresponsive flows
3 October 2008 NUS CS5229, Semester 1 2008/09 49
59. Drop what?
Drop arriving packet
randomly if queue is longer
than a threshold
3 October 2008 NUS CS5229, Semester 1 2008/09 59
60. Early random drop avoids
congestion (full queue) by
dropping packets before queue
is full.
3 October 2008 NUS CS5229, Semester 1 2008/09 60
61. RED
Random Early Detection
3 October 2008 NUS CS5229, Semester 1 2008/09 61
62. Drop what?
Drop arriving packet randomly
if average queue length is
above a threshold
3 October 2008 NUS CS5229, Semester 1 2008/09 62
63. Differences 1: Use average
queue length instead of
instantaneous length to absorb
transient congestion.
3 October 2008 NUS CS5229, Semester 1 2008/09 63
64. Differences 2: Dropping
probability should change
dynamically depending on
queue length.
3 October 2008 NUS CS5229, Semester 1 2008/09 64
65. Dropping Probability
1
Average Queue Length
3 October 2008 NUS CS5229, Semester 1 2008/09 65
66. foreach incoming packet X
calc average queue length
if minth < average < maxth
calc p
drop X with probability p
else if average > maxth
drop X
3 October 2008 NUS CS5229, Semester 1 2008/09 66
67. (Instead of dropping packets, we
can also set the ECN bit to
indicate congestion)
3 October 2008 NUS CS5229, Semester 1 2008/09 67
68. How to calculate average queue
length?
How to calculate drop probability?
How to set thresholds?
3 October 2008 NUS CS5229, Semester 1 2008/09 68
69. We can use exponentially
weighted average. On every
packet arrival:
3 October 2008 NUS CS5229, Semester 1 2008/09 69
70. Large wq : A burst of packets will
cause avg to increase too fast, hit
the max threshold
Small wq : avg increases too slowly
and we are unable to detect initial
stage of congestions.
3 October 2008 NUS CS5229, Semester 1 2008/09 70
80. How to calculate average queue
length?
How to calculate drop probability
How to set thresholds?
3 October 2008 NUS CS5229, Semester 1 2008/09 80
81. maxth - minth should be sufficiently
large otherwise average queue
size can oscillate beyond maxth
“need more research” for
optimal value.
3 October 2008 NUS CS5229, Semester 1 2008/09 81
95. Conclusion:
RED increases throughput,
reduces delay, controls average
queue sizes, reduces global sync
and is fairer to bursty traffic. It is
deployed in routers today.
But careful tuning of parameters
is needed.
3 October 2008 NUS CS5229, Semester 1 2008/09 95