Professional Documents
Culture Documents
Topic: Congestion Control: What You Will Learn
Topic: Congestion Control: What You Will Learn
GC
Topic: Congestion Control 2019-2020
Congestion Control 1
GC
Principles of congestion control 2019-2020
Congestion Control 2
1
02/10/2019
GC
Queueing Theory 2019-2020
to other
to terminal node
to other
node
to other
GC
Ideal Performance 2019-2020
2
02/10/2019
GC
Practical Performance 2019-2020
GC
Approaches towards congestion control 2019-2020
3
02/10/2019
GC
Network-assisted congestion control 2019-2020
Congestion Control 7
GC
Mechanisms to prevent congestion 2019-2020
Reservation
Admission control: a new reservation is denied if network
resources are inadequate (congestion is avoided!)
The network and the user enter into a traffic contract
which specifies a data rate and other characteristics of the
traffic flow (traffic descriptors)
The network agrees to give a defined QoS as long as the
traffic flow is within contract parameters
Traffic policing: the access node monitors the flow
• Excess traffic is either discarded or marked to indicate that it is
liable to discard or delay
Scheme adopted also in IP networks (IntServ architecture)
Congestion Control 8
4
02/10/2019
GC
2019-2020
Congestion Control 9
GC
Windows in TCP 2019-2020
TCP uses two windows (send window and receive window) for
each direction of data transfer
The amount of unacknowledged data is dictated by the receiver (flow
control) and the congestion in the underlying network (congestion control)
Congestion Control 10
5
02/10/2019
GC
TCP Flow Control 2019-2020
TCP
decouples acknowledgment of
received data units from the
granting of permission to send
additional data units
uses a credit allocation scheme for
flow control
• The receiver “advertises” the free
buffer space by including the value of
the rwnd variable in the TCP header
(in the field named “window”) of
receiver-to-sender segments
• The sender limits the amount of
unacknowledged (“in-flight”) data to
the receiver’s rwnd value
GC
TCP congestion control 2019-2020
Congestion Control 12
6
02/10/2019
GC
TCP congestion control (cont.) 2019-2020
GC
TCP Slow Start 2019-2020
Congestion Control 14
7
02/10/2019
GC
TCP Slow Start (cont.) 2019-2020
Congestion Control 15
GC
Congestion Avoidance 2019-2020
Congestion avoidance,
additive (linear) increase
Congestion Control 16
8
02/10/2019
GC
Fast Recovery 2019-2020
Optional in TCP
When the third duplicate TCP Reno
ACK arrives,
Set ssthresh = cwnd/2
Retransmit the missing
segment (fast retransmit)
Set cwnd = ssthresh +3
Adding 3 to ssthresh
accounts for the number of Round-trip times
segments that have left the
network and that the other Evolution of cwnd in Tahoe and Reno
end has buffered
Congestion Control 17
GC
Many variants of TCP congestion control 2019-2020
Congestion Control 18
9
02/10/2019
GC
TCP: AIMD congestion control 2019-2020
Assumptions:
Initial slow-start period ignored
losses indicated by triple duplicate ACK rather than timeouts
(light to moderate congestion)
Additive-Increase, Multiplicative Decrease (AIMD):
TCP’s congestion control consists of a linear increase in cwnd
of one MSS per RTT and then a halving of cwnd on a triple
duplicate-ACK event
congestion
window
24 Kbytes
The “saw-tooth” behavior
illustrates the TCP probing
16 Kbytes
for bandwidth
8 Kbytes
GC
TCP/IP Explicit Congestion Notification (ECN) 2019-2020
Congestion Control 20
10
02/10/2019
GC
Changes required for ECN 2019-2020
Congestion Control 21
GC
ECN bits in IP header 2019-2020
ECN uses the two least significant bits (ECN field) of the
“DiffServ” field in the IPv4 or IPv6 header to encode four different
codes:
Value Meaning
00 Not-ECT - Not ECN-Capable Transport
01 ECT(1) - ECN-Capable Transport
10 ECT(0) - ECN-Capable Transport
11 CE - Congestion Encountered
When both endpoints support ECN, they mark their packets with
ECT(0) or ECT(1)
Instead of dropping the packet, a congested ECN-aware router
may change the code to CE (“marking” the packet) to inform the
receiving endpoint of impending congestion
This congestion indication is then echoed back to the transmitting
Congestion Control 22
endpoint
11
02/10/2019
GC
IP header (cont) 2019-2020
Congestion Control 23
GC
ECN bits in TCP header 2019-2020
Congestion Control 24
12
02/10/2019
GC
TCP header (cont.) 2019-2020
Congestion Control 25
GC
ECN negotiation 2019-2020
Congestion Control 26
13
02/10/2019
GC
Basic ECN operation 2019-2020
GC
Basic ECN operation (cont.) 2019-2020
Congestion Control 28
14