1 Congestion Control Congestion Control and Traffic and Traffic Management Management in High Speed in High Speed Networks Networks Carey Williamson University of Calgary
Dec 17, 2015
1
Congestion ControlCongestion Controland Traffic Management and Traffic Management
in High Speed Networksin High Speed Networks
Carey Williamson
University of Calgary
2
Introduction Introduction
The goal of congestion control is to regulate traffic flow in the network in order to avoid saturating or overloading intermediate nodes in the network
3
Congestion: EffectsCongestion: Effects
Congestion is undesirable because it can cause:
Increased delay, due to queueing within the network
Packet loss, due to buffer overflow Reduced throughput, due to
packet loss and retransmission Analogy: “rush hour” traffic
4
Congestion: CausesCongestion: Causes
The basic cause of congestion is that the input traffic demands exceed the capacity of the network
In typical packet switching networks, this can occur quite easily when:
- output links are slower than inputs - multiple traffic sources competing
for same output link at the same time
5
Buffering: A Solution?Buffering: A Solution? Buffering in switches can help alleviate
short term or transient congestion problems, but...
Under sustained overload, buffers will still fill up, and packets will be lost– only defers the congestion problem
More buffers means more queuing delay– beyond a certain point, more buffering
makes the congestion problem worse, because of increased delay and retransmission
6
MotivationMotivation
The congestion control problem is even more acute in high speed networks
Faster link speeds mean that congestion can happen faster than before
e.g., 64 kilobyte buffer @ 64 kbps: 8.2 seconds @ 10 Mbps: 52 milliseconds @ 1 Gbps: 0.52 milliseconds
7
Motivation (Cont’d)Motivation (Cont’d)
Buffer requirements increase with link speeds
e.g., to store 1 second worth of traffic
@ 64 kbps: 8 kilobytes @ 10 Mbps: 1.25 Mbytes @ 1 Gbps: 125 Mbytes
8
Motivation (Cont’d)Motivation (Cont’d)
Heterogeneity of link speeds - just because you add new high
speed links to a network doesn’t mean that the old low speed links go away
- interconnecting high speed and lower speed networks creates congestion problems at the point of interconnect
9
Motivation (Cont’d)Motivation (Cont’d)
Traffic is bursty - high peak-to-mean ratio, peak rates - e.g., data traffic: 10-to-1, 1-10 Mbps - e.g., video traffic: 20-to-1, 5-100
Mbps - can statistically multiplex several
channels, but if too many are active at the same time, congestion is inevitable
10
Motivation (Cont’d)Motivation (Cont’d)
Reaction time is bounded by the propagation delay
- in a high-speed wide-area network, the delay x bandwidth product is HUGE!!!
- d x b tells you how many bits fit in the “pipe” between you and the receiver
- by the time you realize that network is congested, you may have already sent another Mbit or more of data!!!
11
Reactive versus Reactive versus PreventivePreventive There are two fundamental
approaches to congestion control: reactive approaches and preventive approaches
Reactive: feedback-based– attempt to detect congestion, or the
onset of congestion, and take action to resolve the problem before things get worse
Preventive: reservation-based– prevent congestion from ever happening
in the first place, by reserving resources
12
Reactive versus Preventive Reactive versus Preventive (Cont’d)(Cont’d) Most of the Internet approaches are reactive schemes– TCP Slow Start– Random-Early-Detection (RED) Gateways– Source Quench
The large d x b product means that many of these approaches are not applicable to high speed networks
Most ATM congestion control strategies are preventive, reservation-based
13
Congestion Control in ATMCongestion Control in ATM
When people discuss congestion control in the context of high speed ATM networks, they usually distinguish between call-level controls and cell-level controls
14
Call-Level ControlCall-Level Control
An example of the call-level approach to congestion control is call admission control (to be discussed later this semester)
Tries to prevent congestion by not allowing new calls or connections into the network unless the network has sufficient capacity to support them
15
Call-Level Control (Cont’d)Call-Level Control (Cont’d)
At time of call setup (connection establishment) you request the resources that you need for the duration of the call (e.g., bandwidth, buffers)
If available, your call proceeds If not, your call is blocked E.g., telephone network, busy signal
16
Call-Level Control (Cont’d)Call-Level Control (Cont’d)
Tradeoff: aggressive vs conservative Want to accept enough calls to have
reasonably high network utilization, but don’t want to accept so many calls that you have a high probability of network congestion (which might compromise the QOS requirements that you are trying to meet)
17
Call-Level Control (Cont’d)Call-Level Control (Cont’d)
Problems: Can be unfair - denial of service, long access delay Hard to specify resource requirements
and QOS parameters precisely - may not know, or may cheat - congestion can still occur
18
Cell-Level ControlCell-Level Control Also called input rate control Control the input rate of traffic sources
to prevent, reduce, or control the level of congestion
Many possible mechanisms: Traffic shaping, traffic policing, UPC Leaky bucket (token bucket) Cell tagging (colouring), cell
discarding Cell scheduling disciplines
19
Congestion Control in ATMCongestion Control in ATM
There is actually a complete spectrum of traffic control functions, ranging from the very short-term (e.g., traffic shaping, cell discarding) to the very long-term (e.g., network provisioning)
See [Gilbert et al 1991]
20
ATM Traffic Control ATM Traffic Control SchemesSchemes
Time Scale
21
ATM Traffic Control ATM Traffic Control SchemesSchemes
Time Scale
ShortTerm usec
22
ATM Traffic Control ATM Traffic Control SchemesSchemes
Time Scale
ShortTerm usec
LongTerm Months, years
23
ATM Traffic Control ATM Traffic Control SchemesSchemes
Time Scale
Cell Time
Usage Parameter ControlPriority ControlTraffic ShapingCell Discarding
PropagationDelay Time
Explicit Congestion NotificationFast Reservation ProtocolNode to Node Flow Control
CallDuration
Admission ControlRouting, Load Balancing
LongTerm
Resource Provisioning
24
ATM Traffic Control ATM Traffic Control SchemesSchemes
Time Scale
Cell Time
Usage Parameter ControlPriority ControlTraffic ShapingCell Discarding
25
ATM Traffic Control ATM Traffic Control SchemesSchemes
Time Scale
PropagationDelay Time
Explicit Congestion NotificationFast Reservation ProtocolNode to Node Flow Control
26
ATM Traffic Control ATM Traffic Control SchemesSchemes
Time Scale
CallDuration
Admission ControlRouting, Load Balancing
27
ATM Traffic Control ATM Traffic Control SchemesSchemes
Time Scale
LongTerm
Resource Provisioning
28
ATM Traffic Control ATM Traffic Control SchemesSchemes
Time Scale
Cell Time
Usage Parameter ControlPriority ControlTraffic ShapingCell Discarding
PropagationDelay Time
Explicit Congestion NotificationFast Reservation ProtocolNode to Node Flow Control
CallDuration
Admission ControlRouting, Load Balancing
LongTerm
Resource Provisioning
29
ATM Traffic Control ATM Traffic Control SchemesSchemes Preventive controls: Resource provisioning Connection admission control Call routing and load balancing Usage parameter control Priority control Traffic shaping Fast reservation protocol
30
ATM Traffic Control ATM Traffic Control SchemesSchemes Reactive controls: Adaptive admission control Call routing and load balancing Adaptive usage parameter control Explicit congestion notification (forward or backward) Node to node flow control Selective cell discarding
31
Leaky BucketLeaky Bucket
One of the cell-level control mechanisms that has been proposed is the leaky bucket (a.k.a. token bucket)
Has been proposed as a traffic policing mechanism for Usage Parameter Control (UPC), to check conformance of a source to its traffic descriptor
Can also be used as a traffic shaper
32
Leaky Bucket (Cont’d)Leaky Bucket (Cont’d)
Think of a bucket (pail) with a small hole in the bottom
You fill the bucket with water Water drips out the bottom at a
nice constant rate: drip, drip, drip...
33
Leaky Bucket (Cont’d)Leaky Bucket (Cont’d)
34
Leaky Bucket (Cont’d)Leaky Bucket (Cont’d)
Bucket
35
Leaky Bucket (Cont’d)Leaky Bucket (Cont’d)
Bucket
Empty
36
Leaky Bucket (Cont’d)Leaky Bucket (Cont’d)
Bucket
Hole
37
Leaky Bucket (Cont’d)Leaky Bucket (Cont’d)
Bucket
Water
Hole
38
Leaky Bucket (Cont’d)Leaky Bucket (Cont’d)
39
Leaky Bucket (Cont’d)Leaky Bucket (Cont’d)
Drip
40
Leaky Bucket (Cont’d)Leaky Bucket (Cont’d)
41
Leaky Bucket (Cont’d)Leaky Bucket (Cont’d)
42
Leaky Bucket (Cont’d)Leaky Bucket (Cont’d)
43
Leaky Bucket (Cont’d)Leaky Bucket (Cont’d)
Constantrate stream ofdrips, all nicelyspaced, periodic
44
Leaky Bucket (Cont’d)Leaky Bucket (Cont’d)
Constantrate stream ofdrips, all nicelyspaced, periodic
Storage areafor dripswaiting to go
45
Leaky Bucket (Cont’d)Leaky Bucket (Cont’d) A leaky bucket flow control mechanism
is then a software realization of this very simple idea
Packets (cells) waiting for transmission arrive according to some (perhaps unknown) arrival distribution
Tokens arrive periodically (deterministically)
Cell must have a token to enter network
46
Leaky Bucket (Cont’d)Leaky Bucket (Cont’d)
Incoming Cells(generated bytraffic sourcewith rate X)
Incoming Tokensat rate r tokens/sec
+ ToNetwork
47
Leaky Bucket (Cont’d)Leaky Bucket (Cont’d)
Incoming Cells
Incoming Tokensat rate r tokens/sec
+ ToNetwork
12345
48
Leaky Bucket (Cont’d)Leaky Bucket (Cont’d)
Incoming Cells
Incoming Tokens
+ ToNetwork
12345
49
Leaky Bucket (Cont’d)Leaky Bucket (Cont’d)
Incoming Cells
Incoming Tokens
+ ToNetwork12345
50
Leaky Bucket (Cont’d)Leaky Bucket (Cont’d)
Incoming Cells
Incoming Tokens
+ ToNetwork12345
51
Leaky Bucket (Cont’d)Leaky Bucket (Cont’d)
Incoming Cells
Incoming Tokens
+ ToNetwork12345
52
Leaky Bucket (Cont’d)Leaky Bucket (Cont’d)
Incoming Cells
Incoming Tokens
+ ToNetworkX 123
45
53
Leaky Bucket (Cont’d)Leaky Bucket (Cont’d)
Incoming Cells
Incoming Tokens
+ ToNetworkXX 123
45
54
Leaky Bucket (Cont’d)Leaky Bucket (Cont’d)
Incoming Cells
Incoming Tokens
+ ToNetworkXX 123
55
Leaky Bucket (Cont’d)Leaky Bucket (Cont’d)
Cells must obtain tokens in order to proceed into the network
If no token available, then cell is discarded
Constrains the rate at which cells enter the network to be the rate negotiated at the time of call setup
Shapes traffic, reduces burstiness
56
BufferedBuffered Leaky Bucket Leaky Bucket
Arriving cells that find a token waiting can proceed directly into the network
Arriving cells that find no token ready must wait in queue for a token
Cells that arrive to a full queue are lost Tokens that arrive to a full token pool
are simply discarded
57
Buffered Leaky BucketBuffered Leaky Bucket
Incoming Cells
Incoming Tokensat rate r tokens/sec
+ ToNetwork
Queue ofat most Bwaiting cells
Pool of at most Mwaiting tokens
58
Buffered Leaky Bucket Buffered Leaky Bucket (Cont’d)(Cont’d) Incoming cell rate: X
Token rate: r If X > r, then cells wait in buffer until
tokens are available Output traffic is r cells/sec, nicely
paced If X < r, then tokens always ready Output traffic is X (< r) Use for traffic shaping or UPC
59
Buffered Leaky Bucket Buffered Leaky Bucket (Cont’d)(Cont’d) A station can “save up” at most M
tokens Limits the maximum burst size in
the network Can send at most M cells back to
back B can be set to balance the tradeoff
between cell loss and cell delay
60
Leaky Bucket UPCLeaky Bucket UPC The token rate r is set based on the
rate declared at the time of call setup Makes sure that each source obeys
rate that was used when the call admission decision was made (i.e., descriptor)
Can use “single leaky bucket” to police just the peak cell rate (PCR)
Can use “dual leaky bucket” to police both PCR and SCR
61
VariationsVariations
There are several different variations of the basic leaky bucket concept described in the literature, such as the virtual leaky bucket, spacer, others
Basic idea: rather than strictly enforcing rates, allow senders to occasionally exceed their prescribed rate, as long as they mark or tag their extra cells
62
Cell Marking SchemeCell Marking Scheme
Uses leaky bucket to regulate cell transmissions as before, but rather than having cells wait for tokens when there are no tokens ready, the station can transmit the cell and mark it as a violation cell (i.e., cell colouring)
Green (CLP = 0) for cells that obey rate Red (CLP = 1) for cells that don’t
63
Cell Colouring (Cont’d)Cell Colouring (Cont’d)
If the network detects congestion at any point, then it does not hesitate to throw away red cells (CLP = 1), but always gives preference to green cells
Green cells must get through Red cells get through only if there is
spare capacity in the network “No harm in trying!” principle
64
Selective Cell Discard Selective Cell Discard (SCD)(SCD) A cell-level control mechanism in ATM
switches called selective cell discard can be implemented quite easily using a CLP threshold on each queue/buffer
Below the threshold, can accept both green and red cells
Beyond the threshold, can only accept green cells
65
Selective Cell Discard Selective Cell Discard (Cont’d)(Cont’d)
Buffer in an ATM switch
66
Selective Cell Discard Selective Cell Discard (Cont’d)(Cont’d)
Buffer in an ATM switch
67
Selective Cell Discard Selective Cell Discard (Cont’d)(Cont’d)
Buffer in an ATM switch
Some cellswaiting to go
68
Selective Cell Discard Selective Cell Discard (Cont’d)(Cont’d) CLP
Threshold
Buffer in an ATM switch
69
Selective Cell Discard Selective Cell Discard (Cont’d)(Cont’d) CLP
Threshold
70
Selective Cell Discard Selective Cell Discard (Cont’d)(Cont’d) CLP
Threshold
71
Selective Cell Discard Selective Cell Discard (Cont’d)(Cont’d) CLP
Threshold
72
Selective Cell Discard Selective Cell Discard (Cont’d)(Cont’d) CLP
Threshold
73
Selective Cell Discard Selective Cell Discard (Cont’d)(Cont’d) CLP
Threshold
74
Selective Cell Discard Selective Cell Discard (Cont’d)(Cont’d) CLP
Threshold
75
Selective Cell Discard Selective Cell Discard (Cont’d)(Cont’d) CLP
Threshold
76
Selective Cell Discard Selective Cell Discard (Cont’d)(Cont’d) CLP
Threshold
77
Selective Cell Discard Selective Cell Discard (Cont’d)(Cont’d) CLP
Threshold
78
Selective Cell Discard Selective Cell Discard (Cont’d)(Cont’d) CLP
Threshold
79
Selective Cell Discard Selective Cell Discard (Cont’d)(Cont’d) CLP
Threshold
80
Selective Cell Discard Selective Cell Discard (Cont’d)(Cont’d) CLP
Threshold
81
Selective Cell Discard Selective Cell Discard (Cont’d)(Cont’d) CLP
Threshold
82
Selective Cell Discard Selective Cell Discard (Cont’d)(Cont’d) CLP
Threshold
83
Selective Cell Discard Selective Cell Discard (Cont’d)(Cont’d) CLP
Threshold
84
Selective Cell Discard Selective Cell Discard (Cont’d)(Cont’d) CLP
Threshold
85
Selective Cell Discard Selective Cell Discard (Cont’d)(Cont’d) CLP
Threshold
86
Selective Cell Discard Selective Cell Discard (Cont’d)(Cont’d) CLP
Threshold
87
Selective Cell Discard Selective Cell Discard (Cont’d)(Cont’d) CLP
Threshold
88
Selective Cell Discard Selective Cell Discard (Cont’d)(Cont’d) CLP
Threshold
89
Explicit Congestion Explicit Congestion NotificationNotification There are some proposals to use
reactive congestion control approaches for end-to-end flow control in ATM
One of the mechanisms proposed is called Explicit Forward Congestion Notification (EFCN) (or EFCI, for Explicit Forward Congestion Indication)
90
EFCI: Basic OperationEFCI: Basic Operation
Switches can detect the onset of congestion (e.g., buffers filling up)
Switches set a control bit in cell headers to indicate this congestion condition
Sources react by reducing the volume of traffic that they are sending through that switch
Suitable for VBR or ABR traffic
91
EFCI: Basic Operation EFCI: Basic Operation (Cont’d)(Cont’d)
Traffic Source
Traffic Sink
Switch Switch Switch
92
EFCI: Basic Operation EFCI: Basic Operation (Cont’d)(Cont’d)
Traffic Source
Traffic Sink
Switch Switch Switch
Buffer
93
EFCI: Basic Operation EFCI: Basic Operation (Cont’d)(Cont’d)
Traffic Source
Traffic Sink
Switch Switch Switch
OccupiedUnoccupied
94
EFCI: Basic Operation EFCI: Basic Operation (Cont’d)(Cont’d)
Traffic Source
Traffic Sink
Switch Switch Switch
EFCI Threshold
95
EFCI: Basic Operation EFCI: Basic Operation (Cont’d)(Cont’d)
Traffic Source
Traffic Sink
Switch Switch Switch
EFCI Threshold
DataCell
96
EFCI: Basic Operation EFCI: Basic Operation (Cont’d)(Cont’d)
Traffic Source
Traffic Sink
Switch Switch Switch
EFCI Threshold
97
EFCI: Basic Operation EFCI: Basic Operation (Cont’d)(Cont’d)
Traffic Source
Traffic Sink
Switch Switch Switch
EFCI Threshold
98
EFCI: Basic Operation EFCI: Basic Operation (Cont’d)(Cont’d)
Traffic Source
Traffic Sink
Switch Switch Switch
EFCI Threshold
99
EFCI: Basic Operation EFCI: Basic Operation (Cont’d)(Cont’d)
Traffic Source
Traffic Sink
Switch Switch Switch
EFCI Threshold
100
EFCI: Basic Operation EFCI: Basic Operation (Cont’d)(Cont’d)
Traffic Source
Traffic Sink
Switch Switch Switch
EFCI Threshold
101
EFCI: Basic Operation EFCI: Basic Operation (Cont’d)(Cont’d)
Traffic Source
Traffic Sink
Switch Switch Switch
EFCI Threshold
102
EFCI: Basic Operation EFCI: Basic Operation (Cont’d)(Cont’d)
Traffic Source
Traffic Sink
Switch Switch Switch
EFCI Threshold
103
EFCI: Basic Operation EFCI: Basic Operation (Cont’d)(Cont’d)
Traffic Source
Traffic Sink
Switch Switch Switch
EFCI Threshold
!!!
104
EFCI: Basic Operation EFCI: Basic Operation (Cont’d)(Cont’d)
Traffic Source
Traffic Sink
Switch Switch Switch
EFCI Threshold
AckCell
105
EFCI: Basic Operation EFCI: Basic Operation (Cont’d)(Cont’d)
Traffic Source
Traffic Sink
Switch Switch Switch
EFCI Threshold
106
EFCI: Basic Operation EFCI: Basic Operation (Cont’d)(Cont’d)
Traffic Source
Traffic Sink
Switch Switch Switch
EFCI Threshold
107
EFCI: Basic Operation EFCI: Basic Operation (Cont’d)(Cont’d)
Traffic Source
Traffic Sink
Switch Switch Switch
EFCI Threshold
108
EFCI: Basic Operation EFCI: Basic Operation (Cont’d)(Cont’d)
Traffic Source
Traffic Sink
Switch Switch Switch
EFCI Threshold
!!!
109
EFCI: Basic Operation EFCI: Basic Operation (Cont’d)(Cont’d)
Traffic Source
Traffic Sink
Switch Switch Switch
EFCI Threshold
110
EFCI: Basic Operation EFCI: Basic Operation (Cont’d)(Cont’d)
Traffic Source
Traffic Sink
Switch Switch Switch
EFCI Threshold
111
EFCI: Basic Operation EFCI: Basic Operation (Cont’d)(Cont’d)
Traffic Source
Traffic Sink
Switch Switch Switch
EFCI Threshold
112
EFCI: Basic Operation EFCI: Basic Operation (Cont’d)(Cont’d)
Traffic Source
Traffic Sink
Switch Switch Switch
EFCI Threshold
113
EFCI: Basic Operation EFCI: Basic Operation (Cont’d)(Cont’d)
Traffic Source
Traffic Sink
Switch Switch Switch
EFCI Threshold
114
EFCI IssuesEFCI Issues How to set EFCI threshold What should sources do when EFCI
signal is seen What should sources do when no
EFCI signal is seen Forward versus backward
notification Effect of feedback delay Delay x bandwidth product
115
SummarySummary
Congestion control in high speed ATM networks is a difficult problem
Lots of good ideas of how to do it, but no real standard (yet?)
Will likely require a combination of schemes at different time scales and for different classes of traffic
Lots more remains to be done