One More Bit Is Enough
Download
Report
Transcript One More Bit Is Enough
One More Bit Is Enough
Yong Xia, RPI
Lakshmi Subramanian, UCB
Ion Stoica, UCB
Shiv Kalyanaraman, RPI
SIGCOMM’05, Philadelphia, PA
08 / 23 / 2005
Motivation #1: TCP does not perform well in high b/w
bottleneck utilization
bottleneck utilization
100%
100%
TCP
TCP
70%
50%
bandwidth (Mbps)
VCP
round-trip delay (ms)
2
Motivation #1: Why TCP does not scale?
TCP uses binary congestion signals, such as loss or one-bit
Explicit Congestion Notification (ECN)
congestion
window
congestion
Multiplicative Decrease (MD)
congestion avoidance
slow start
slow!
Additive Increase (AI)
time
AI with a fixed step-size can be very slow for large bandwidth
VCP
3
Motivation #2: XCP scales
XCP decouples efficiency control and fairness control
C
spare bandwidth
rate & rtt
-- MIMD
-- AIMD
DATA
x
sender
raterouter
ACK
receiver
But, XCP needs multiple bits (128 bits in its current IETF draft) to
carry the congestion-related information from/to network
VCP
4
Goal
Design a TCP-like scheme that:
requires a small amount of congestion
information (e.g., 2 bits)
scales across a wide range of network
scenarios
VCP
5
Key Observation
Fairness is not critical in low-utilization region
Use Multiplicative Increase (MI) for fast
convergence onto efficiency in this region
Handle fairness in high-utilization region
VCP
6
Variable-structure congestion Control Protocol (VCP)
Routers signal the level of congestion
End-hosts adapt the control algorithm accordingly range of interest
scale-free
control
load
factor
Multiplicative Decrease (MD)
1
Additive Increase (AI)
Multiplicative Increase (MI)
traffic rate
VCP
code
overload
(11)
high-load
(10)
low-load
(01)
0
x
2-bit ECN
sender
region
link capacity
2-bit ECN
router
ACK
receiver
7
VCP vs. ECN
ECN doesn’t differentiate between low-load and high-load regions
TCP
VCP
control
AQM / ECN
load
factor
Multiplicative Decrease (MD)
1
Additive Increase (AI)
Additive Increase (AI)
Multiplicative Increase (MI)
0
region
code
overload
(11)
(1)
high-load
underload
low-load
(10)
(0)
(01)
x
2-bit
1-bit ECN
sender
VCP
router
ACK
receiver
8
An illustration example
MI tracks available
bandwidth
exponentially
9 flows
join and
then leave fast
After high utilization is attained, AIMD provides fairness
link utilization
MI
AIMD
flow cwnd (pkt)
time (sec)
VCP
9
VCP vs. ECN
VCP
VCP
TCP+RED/ECN
utilization
utilization
cwnd
cwnd
time (sec)
time (sec)
10
VCP key ideas and properties
router
end-host
overload
high-load
fairness control
low-load efficiency control
AIMD
MI
Use network link load factor as the congestion signal
Decouple efficiency and fairness controls in different load regions
Achieve high efficiency, low loss, and small queue
Fairness model is similar to TCP:
VCP
Long flows get lower bandwidth than in XCP (proportional vs.
max-min fairness)
Fairness convergence much slower than XCP
11
Major design issues
control
load
region
code
Multiplicative Decrease (MD)
Additive Increase (AI)
overload
high-load
Multiplicative Increase (MI)
low-load
(11)
(10)
(01)
At the router
How to measure and encode the load factor?
At the end-host
VCP
When to switch from MI to AI?
What MI / AI / MD parameters to use?
How to handle heterogeneous RTTs?
12
Design issue #1: measuring and encoding load factor
Calculate the link load factor
load_factor =
demand
capacity
t = 200ms most rtt
arrival_traffic + queue_size
=
link_bandwidth * t
The load factor is quantized and encoded into the two ECN bits
information loss affects fairness
VCP
13
Design issue #2: setting MI / AI / MD parameters (, , )
overload
VCP
high-load
AIMD
low-load
MI
14
Design issue #2: setting MI / AI / MD parameters (, , )
Q: load factor transition point * for MI AI?
load factor
MD
AI
100%
= 1.0
= 0.875
safety margin
MI
= k (1 *) / *
where k = 0.25 (for stability)
* = 80%
TCP: = 1.0
VCP: = 0.06
80%
STCP: = 0.01
20%
0%
VCP
15
Design issue #3: Handling RTT heterogeneity for MI/AI
Scale to prevent MI from overshooting capacity when RTT is small
rtt < t
s
overshoot
rtt = t
if rtt < t
spare capacity
1
time
t
VCP
t
16
VCP scales across b/w, rtt, num flows
Evaluation using extensive ns2 simulations
150Mbps, 80ms, 50 forward flows and 50 reverse flows
VCP
17
VCP achieves high efficiency
bottleneck utilization
bottleneck utilization
XCP
XCP
VCP
VCP
TCP
TCP
bandwidth (Mbps)
VCP
round-trip delay (ms)
18
VCP minimizes packet loss rate
XCP
XCP
VCP
VCP
TCP
bottleneck utilization
bottleneck utilization
packet loss rate
packet loss rate
TCP
XCP
VCP
bandwidth (Mbps)
VCP
TCP
TCP
XCP
VCP
round-trip delay (ms)
19
VCP comparisons
Compared to TCP+AQM/ECN
Same architecture (end-hosts control, routers signal)
Router congestion detection: queue-based load-based
Router congestion signaling: 1-bit 2-bit ECN
End-host adapts (MI/AI/MD) according to the ECN feedback
End-host scales its MI/AI parameters with its RTT
Compared to XCP
VCP
Decouple efficiency/fairness control across load regions
Functionality primarily placed at end-hosts, not in routers
20
Theoretical results
Assumptions:
One bottleneck of infinite buffer space is shared by synchronous
flows that have identical RTTs;
The exact value of load factor is echoed back.
Theorem for the VCP fluid model:
It is globally stable with a unique and fair equilibrium, if k 0.5;
The equilibrium is max-min fair for general topologies;
The equilibrium is optimal by achieving all the design goals.
VCP protocol differs from the model in fairness.
VCP
21
Conclusions
With a few minor changes over TCP + AQM / ECN,
VCP is able to approximate the performance of XCP
VCP
High efficiency
Low persistent bottleneck queue
Negligible congestion-caused packet loss
Reasonable (i.e., TCP-like) fairness
22
Future work
How do we get there, incrementally?
End-to-end VCP
TCP-friendliness
Incentive
Extensions
Applications: short-lived data traffic, real-time traffic
Environment: wireless channel
Security
VCP
Robust signaling, e.g., ECN nonce
23
The end
Thanks!
VCP
24
Design issue #3: Handling RTT heterogeneity for MI/AI
TCP throughput is biased against flows with large RTT
rate
packet_size
rtt sqrt( loss_rate )
VCP scales for fair rate sharing (regardless of RTT)
rate = cwnd / rtt
VCP
25
VCP keeps small bottleneck queue
queue length in % buffer size
queue length in % buffer size
per-flow b/w-delayproduct < 1 packet
TCP
XCP VCP
bandwidth (Mbps)
VCP
VCP
XCP
TCP
round-trip delay (ms)
26
Vary the number of flows
XCP
VCP
TCP
bottleneck utilization
queue length in % buffer size
XCP
TCP
VCP
number of flows
VCP
27
Influence of RTT on fairness
To some extent, VCP distributes reasonably fairly
VCP
28
Influence of RTT on fairness (cont’d)
VCP
29
VCP converges onto fairness
VCP
30
VCP converges onto fairness faster with more bits
VCP
31
Responsiveness
50 flows
VCP
+ 150 flows
– 150 flows
32