Network Fundamentals Beyond TCP Congestion Control

undefined
CS 4700 / CS 5700
Network Fundamentals
Lecture 13: Beyond TCP Congestion
Control
(a.k.a. how to get a job at MIT)
 
In Between Network and Transport…
2
Goals:
Replace TCP congestion control
Keep queues/delay short
Drop ~0 (data) packets
Key challenge:
How to estimate network congestion
better than TCP
How to make the solutions practical
Application
Presentation
Session
Transport
Network
Data Link
Physical
Issues with TCP CC
3
Fairness: throughput depends on RTT
High speed networks: slow start is too slow @10Gbps
Short flows: how to set the initial 
cwnd
?
Lossy links: poor performance over wireless
Synchronization and Oscillations
Can’t sustain throughput near capacity
Periods of high queuing delay
Guaranteed to drop packets
Full buffers: queues are usually full, no burst tolerance
Lock out: queue space is monopolized by few flows
undefined
ECN
Explicit Congestion Notification
XCP
eXplicit Congestion Control Protocol
PCP
Probe Control Protocol
Outline
4
Active Queue Management (AQM)
5
 
Detect “incipient” (early) congestion in the router
Try to keep average queue size in “good” range
Randomly choose flows to notify about congestion
E.g. RED, packet drops are 
implicit
 notification
Explicit Congestion Notification
6
ECN is an AQM mechanism
Use TCP/IP headers to send ECN signals
Router sets ECN bit in header if there is congestion
Host TCP treats ECN marked packets the same as packet
drops (i.e. congestion signal)
But no packets are dropped :)
ECN Implementation
7
 
Uses two 1-bit flags in the TCP header
Congestion Window Reduce (CWR): slow down
ECN-Echo (ECE): feedback in the ACK
Also uses two bits in the IP header ToS field
01/10 – ECT, indicates ECN compatibility
11 – CE, indicates congestion
Supported by…
Windows (Vista+), OS X (10.5+), Linux
Cisco routers, *BSD
… but usually turned 
off
 by default
Is the Internet ECN-Ready?
8
 
As of 2011, not really
Measuring the State of ECN Readiness (IMC 2011)
ECN incompatible servers: 83-86%
ECN incompatible clients: 96-100%
… but results are better than for 2004 and 2008
Caught many routers mangling ECN bits!
Typically done by ISP border routers
Legacy routers clear IP ToS field, destroy ECN bits
undefined
ECN
Explicit Congestion Notification
XCP
eXplicit Congestion Control Protocol
PCP
Probe Control Protocol
Outline
9
Settings the Stage for XCP
10
ECN uses a 1-bit congestion indicator
Is there congestion: yes or no?
Does not indicate 
amount
 of congestion
TCP combines utilization and fairness control
AIMD
Probes for bandwidth (utilization)
Converges to fairness (if we ignore RTT…)
Poor Performance of TCP CC
11
Key Observations
12
 
1.
Packet loss is a poor signal of congestion
Why?
Congestion is not only source of loss (i.e. wireless)
Loss takes time to detect
By the time you see loss, congestion has already occurred
Relies on timeouts, which are slow
Loss/no-loss a binary value: are you at the cliff?
Result: slowly and blindly walk towards cliff
Key Observations
13
 
2.
Rate of feedback is a function of delay to source
Congestion control as control loop w/ feedback delay
Large delays 
 instability. Why?
 
3.
TCP couples congestion control and fairness
eXplicit Control Protocol (XCP)
14
Uses multi-bit, explicit congestion feedback
Improves congestion control
Small queues at routers
Almost zero drops
Decouples congestion control from fairness
MIMD for congestion control
AIMD for fairness
Fair even when RTTs differ
Scalable: no per flow state in routers
XCP Implementation
15
Keep some TCP functionality
Keep most of the TCP header
Sequence numbers, reliable in-order delivery
Retransmit timers
Replace TCP’s 
cwnd
 functionality
Add additional fields to the TCP header
Modify routers to compute feedback
Like ECN and CSFQ
XCP Example
16
 
XCP extends ECN and CSFQ
Routers compute feedback without any per flow state
 
Congestion
Header
Feedback Computation
Goals
Match input traffic to link capacity
Drain the queue
Looks at aggregate traffic and
queue
 = 
 d
avg
 Spare - 
 Queue
d
avg 
is avg. RTT
Spare
 capacity
Queue
 length
 
and 
 are const. parameters
 
Goal: divide 
 fairly among
flows
Looks at each flow’s state in
their congestion header
Algorithm:
If 
 > 0 
 divide 
 equally
between flows
If 
 < 0 
 divide 
 between
flows proportionally to their
current rate
Need to estimate 
N
, number
of flows…
17
Congestion Controller
Fairness Controller
undefined
18
Utilization vs. B/W and Delay
Bottleneck Bandwidth (Mb/s)
A
v
g
.
 
U
t
i
l
i
z
a
t
i
o
n
 
Round Trip Delay (sec)
 
A
v
g
.
 
U
t
i
l
i
z
a
t
i
o
n
Utilization as a func. of B/W
 
Utilization a func. of Delay
undefined
19
Response to Flow Dynamics
undefined
20
Short Flows
Utilization
Queue Length
(Packets)
Drops
(Packets)
Short Flow Arrival Rate (New Flows per Second)
undefined
21
Fairness
Flow ID
 
Different RTT
Same RTT
A
v
g
.
 
T
h
r
o
u
g
h
p
u
t
 
Flow ID
 
A
v
g
.
 
T
h
r
o
u
g
h
p
u
t
 
(RTT is 40 ms  
 330 ms )
XCP Bonus Prizes
 
Differentiating error loss from congestion loss
How?
Easy to differentiate unresponsive flows
How?
Easy to do differential bandwidth allocation
How?
What about performance metrics like queuing delay and
jitter?
Question: are there any weaknesses to XCP?
22
22
Other Thoughts
23
 
The XCP paper is exceptionally good
Innovative ideas
Challenges entrenched preconceptions
Other goodness metrics
SIGCOMM best paper award
Got Dina Katabi a faculty job at MIT
Inspired me to get a PhD
Originally, I was just a Masters student
My first paper ever was on XCP security
undefined
ECN
Explicit Congestion Notification
XCP
eXplicit Congestion Control Protocol
PCP
Probe Control Protocol
Outline
24
Network-Assisted CC
25
 
Routers provide feedback to end-systems
Add TCP-specific support to routers
Signal end-hosts to reduce their sending rates
Problems
Makes routers complicated/expensive
Hinders adoption
How can we improve congestion control without requiring
network support?
Context
26
Probe Control Protocol (PCP)
27
Test for bandwidth using short, non-intrusive probes
If bandwidth is available, send at the desired rate
Sending at desired rate is “safe”
Probe is a 
request
Successful probe 
sets 
the sending rate
Other flows cannot acquire the allocated bandwidth
T
i
m
e
R
a
t
e
Probe
Probe
Channel
Capacity
Probe
PCP Mechanisms
28
1.
Probes: how to check for available bandwidth
2.
Probe control: how to vary the requests?
3.
Rate compensation: deal with queue build-ups
Probes
29
Send packet train spaced at an interval to achieve
desired rate
Currently, five packets whose size could be varied
Check for queuing based on time delays
Probe Control
30
 
Base protocol:
Start with a baseline rate:
One maximum sized packet per round-trip
If probe succeeds, double the requested bandwidth
If probe fails, halve the requested bandwidth
If probed rate falls below baseline rate:
Keep probed rate constant
Issue probes less frequently (exponential back-off)
Augmented with history:
Endpoint keeps track of previously used rates for different
paths
Directly jumps to probe for a rate based on history
Rate Compensation
31
 
Queue build-ups could occur:
Even short probes, can trigger queuing
Simultaneous probes could allocate the same bandwidth to
two flows
Measurement errors could result in too much load
Solution: rate compensation
Monitor packet delays
Notice queue-buildups
Slow down the transmission rate to drain queue
Performance
32
PCP vs. TCP vs. 4 concurrent PCP flows
Is PCP Fair vs. TCP?
33
Is PCP getting its performance gains by being
aggressive to TCP traffic?
Another View on PCP
34
PCP decouples B/W estimation from data traffic
Control traffic now more light-weight
Probe more often
Minimal impact on data flows
No need to incur data loss
Probe loss is OK
Different Perspectives on CC
35
 
Three very different approaches to congestion control
Implicit router feedback (RED)
Explicit router feedback (ECN, XCP)
Light-weight bandwidth measurements (PCP)
Which approach is best?
Ease of deployment?
Stability?
Fairness?
Utilization?
Slide Note

8/22/2012

Defense

Christo Wilson

Embed
Share

In this lecture, delve into the challenges and issues with TCP congestion control, exploring alternatives like Explicit Congestion Notification (ECN) and Active Queue Management (AQM). Learn about improving network congestion estimation, sustaining throughput, and practical solutions. Understand how ECN works using TCP/IP headers, router signals, and sender feedback to manage congestion effectively. Dive into ECN implementation details and its support by various operating systems and routers for better network performance.

  • Network Fundamentals
  • TCP Congestion Control
  • Explicit Congestion Notification
  • Active Queue Management
  • ECN Implementation

Uploaded on Feb 14, 2025 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. CS 4700 / CS 5700 Network Fundamentals Lecture 13: Beyond TCP Congestion Control (a.k.a. how to get a job at MIT)

  2. In Between Network and Transport 2 Goals: Replace TCP congestion control Keep queues/delay short Drop ~0 (data) packets Application Presentation Session Transport Network Data Link Physical Key challenge: How to estimate network congestion better than TCP How to make the solutions practical

  3. Issues with TCP CC 3 Fairness: throughput depends on RTT High speed networks: slow start is too slow @10Gbps Short flows: how to set the initial cwnd? Lossy links: poor performance over wireless Synchronization and Oscillations Can t sustain throughput near capacity Periods of high queuing delay Guaranteed to drop packets Full buffers: queues are usually full, no burst tolerance Lock out: queue space is monopolized by few flows

  4. Outline 4 ECN Explicit Congestion Notification XCP eXplicit Congestion Control Protocol PCP Probe Control Protocol

  5. Active Queue Management (AQM) 5 Detect incipient (early) congestion in the router Try to keep average queue size in good range Randomly choose flows to notify about congestion E.g. RED, packet drops are implicit notification Randomly notify flow via packet drop min queue_len max

  6. Explicit Congestion Notification 6 ECN is an AQM mechanism Use TCP/IP headers to send ECN signals Router sets ECN bit in header if there is congestion Host TCP treats ECN marked packets the same as packet drops (i.e. congestion signal) But no packets are dropped :) Congestion Sender receives feedback No ECN-bit set in ACK Congestion

  7. ECN Implementation 7 Uses two 1-bit flags in the TCP header Congestion Window Reduce (CWR): slow down ECN-Echo (ECE): feedback in the ACK Also uses two bits in the IP header ToS field 01/10 ECT, indicates ECN compatibility 11 CE, indicates congestion Supported by Windows (Vista+), OS X (10.5+), Linux Cisco routers, *BSD but usually turned off by default

  8. Is the Internet ECN-Ready? 8 As of 2011, not really Measuring the State of ECN Readiness (IMC 2011) ECN incompatible servers: 83-86% ECN incompatible clients: 96-100% but results are better than for 2004 and 2008 Caught many routers mangling ECN bits! Typically done by ISP border routers Legacy routers clear IP ToS field, destroy ECN bits

  9. Outline 9 ECN Explicit Congestion Notification XCP eXplicit Congestion Control Protocol PCP Probe Control Protocol

  10. Settings the Stage for XCP 10 ECN uses a 1-bit congestion indicator Is there congestion: yes or no? Does not indicate amount of congestion TCP combines utilization and fairness control AIMD Probes for bandwidth (utilization) Converges to fairness (if we ignore RTT )

  11. Poor Performance of TCP CC 11 50 flows in both directions Buffer = BW x Delay 50 flows in both directions Buffer = BW x Delay BW = 155 Mb/s RTT = 80 ms Round Trip Delay (sec) Bottleneck Bandwidth (Mb/s)

  12. Key Observations 12 1. Packet loss is a poor signal of congestion Why? Congestion is not only source of loss (i.e. wireless) Loss takes time to detect By the time you see loss, congestion has already occurred Relies on timeouts, which are slow Loss/no-loss a binary value: are you at the cliff? Result: slowly and blindly walk towards cliff

  13. Key Observations 13 2. Rate of feedback is a function of delay to source Congestion control as control loop w/ feedback delay Large delays instability. Why? 3. TCP couples congestion control and fairness Bandwidth allocation policy High utilization, Small queues, Few drops

  14. eXplicit Control Protocol (XCP) 14 Uses multi-bit, explicit congestion feedback Improves congestion control Small queues at routers Almost zero drops Decouples congestion control from fairness MIMD for congestion control AIMD for fairness Fair even when RTTs differ Scalable: no per flow state in routers

  15. XCP Implementation 15 Keep some TCP functionality Keep most of the TCP header Sequence numbers, reliable in-order delivery Retransmit timers Replace TCP s cwnd functionality Add additional fields to the TCP header Modify routers to compute feedback Like ECN and CSFQ

  16. XCP Example 16 RTT cwnd feedback RTT cwnd +0.1 packets Feedback copied into ACK RTT cwnd -0.3 packets cwnd = cwnd + feedback Congestion Header XCP extends ECN and CSFQ Routers compute feedback without any per flow state

  17. Feedback Computation 17 Congestion Controller Fairness Controller Goal: divide fairly among flows Looks at each flow s state in their congestion header Algorithm: If > 0 divide equally between flows If < 0 divide between flows proportionally to their current rate Need to estimate N, number of flows Goals Match input traffic to link capacity Drain the queue Looks at aggregate traffic and queue = davg Spare - Queue davg is avg. RTT Spare capacity Queue length and are const. parameters

  18. Utilization vs. B/W and Delay 18 Utilization as a func. of B/W Utilization a func. of Delay and chosen to make XCP robust to delay XCP increases proportionally to spare bandwidth Bottleneck Bandwidth (Mb/s) Round Trip Delay (sec)

  19. Response to Flow Dynamics start stop 40 flows 40 flows 19

  20. High utilization with few short flows Short Flows 20 Utilization Significantly shorter queues Queue Length (Packets) Almost zero drops! Drops (Packets) Short Flow Arrival Rate (New Flows per Second)

  21. Fairness Same RTT Different RTT 21 Flow ID Flow ID (RTT is 40 ms 330 ms )

  22. XCP Bonus Prizes 22 Differentiating error loss from congestion loss How? Easy to differentiate unresponsive flows How? Easy to do differential bandwidth allocation How? What about performance metrics like queuing delay and jitter? Question: are there any weaknesses to XCP? 22

  23. Other Thoughts 23 The XCP paper is exceptionally good Innovative ideas Challenges entrenched preconceptions Other goodness metrics SIGCOMM best paper award Got Dina Katabi a faculty job at MIT Inspired me to get a PhD Originally, I was just a Masters student My first paper ever was on XCP security

  24. Outline 24 ECN Explicit Congestion Notification XCP eXplicit Congestion Control Protocol PCP Probe Control Protocol

  25. Network-Assisted CC 25 Routers provide feedback to end-systems Add TCP-specific support to routers Signal end-hosts to reduce their sending rates Problems Makes routers complicated/expensive Hinders adoption How can we improve congestion control without requiring network support?

  26. Context 26 Endpoint Router Support TCP, Vegas, RAP, FastTCP, Scalable TCP, HighSpeed TCP Try and Backoff DecBit, ECN, RED, AQM Request and Set ATM, XCP, WFQ, RCP ?

  27. Probe Control Protocol (PCP) 27 Test for bandwidth using short, non-intrusive probes If bandwidth is available, send at the desired rate Sending at desired rate is safe Probe Channel Capacity Rate Probe Probe Time Probe is a request Successful probe sets the sending rate Other flows cannot acquire the allocated bandwidth

  28. PCP Mechanisms 28 1. Probes: how to check for available bandwidth 2. Probe control: how to vary the requests? 3. Rate compensation: deal with queue build-ups

  29. Probes 29 Send packet train spaced at an interval to achieve desired rate Currently, five packets whose size could be varied Check for queuing based on time delays

  30. Probe Control 30 Base protocol: Start with a baseline rate: One maximum sized packet per round-trip If probe succeeds, double the requested bandwidth If probe fails, halve the requested bandwidth If probed rate falls below baseline rate: Keep probed rate constant Issue probes less frequently (exponential back-off) Augmented with history: Endpoint keeps track of previously used rates for different paths Directly jumps to probe for a rate based on history

  31. Rate Compensation 31 Queue build-ups could occur: Even short probes, can trigger queuing Simultaneous probes could allocate the same bandwidth to two flows Measurement errors could result in too much load Solution: rate compensation Monitor packet delays Notice queue-buildups Slow down the transmission rate to drain queue

  32. Performance 32 PCP vs. TCP vs. 4 concurrent PCP flows 100 Percentage of Flows 80 60 PCP 40 4-PCP TCP 20 0 0 1 2 3 4 5 6 Transfer Time

  33. Is PCP Fair vs. TCP? 33 Is PCP getting its performance gains by being aggressive to TCP traffic? 2000 Transfer Time (ms) 1500 TCP w/4-PCP TCP 1000 4-PCP PCP 500 0 0 500 1000 Flow Size (KB)

  34. Another View on PCP 34 PCP decouples B/W estimation from data traffic Control traffic now more light-weight Probe more often Minimal impact on data flows No need to incur data loss Probe loss is OK

  35. Different Perspectives on CC 35 Three very different approaches to congestion control Implicit router feedback (RED) Explicit router feedback (ECN, XCP) Light-weight bandwidth measurements (PCP) Which approach is best? Ease of deployment? Stability? Fairness? Utilization?

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#