Title: End-to-end Congestion Management for the NGI
1End-to-end Congestion Management for the NGI
- Hari Balakrishnan
- MIT Laboratory for Computer Science
- http//nms.lcs.mit.edu/
- DARPA NGI PI Meeting
- October 2, 2000
- Srinivasan Seshan (CMU), Frans Kaashoek (MIT)
- Dave Andersen, Deepak Bansal, Dorothy Curtis,
Nick Feamster
2iNAT Project Motivation
- Increasing heterogeneity in the Internet
- Nodes Mobiles, devices, sensors,...
- Links Optical, wireless,...
- Services applications Web, telepresence,
streaming, remote device control - Need a general solution for applications to
discover resources and deal with mobility - Need a general framework for learning about and
adapting to changing network conditions
3iNAT Approach
- Intelligent naming
- Resource discovery Intentional Naming System
(INS) using expressive names and self-configuring
name resolver overlay network - Mobility Via dynamic name updates and secure
connection migration (check out demo!) - Adaptive transmission
- End-system congestion management and adaptation
framework for the NGI - Congestion Manager software and algorithms
4The Problem
- End-to-end congestion management is essential
- Reacting when congestion occurs
- Probing for spare bandwidth when it doesnt
- The future isnt about just TCP!
- Many applications are inherently adaptive, but
they dont adapt today - Enable applications to learn about network
conditions - Many applications use concurrent flows between
sender and receiver, which has adverse effects - Enable efficient multiplexing and path sharing
Congestion Manager (CM) A new end-system
architecture for congestion management
5The Big Picture
HTTP
Video1
Audio
Video2
Per-macroflow statistics (cwnd,rtt,)
TCP1
TCP2
UDP
API
IP
Flows aggregated into macroflows to share
congestion state All congestion management tasks
performed in CM Apps learn and adapt using API
6CM Architecture
Receiver
Sender
Application (TCP, HTTP, RTP, etc.)
Application
API
Congestion Controller
Scheduler
Sharing macroflow bandwidth Deciding who can
send
Stable controls Deciding when to send
7Transmission API
- Traditional kernel buffered-send has problems
- Does not allow app to pull back data
cm_send( ,dst)
Lesson move buffering into the application
8Transmission API (cont.)
Schedule requests, not packets
Enables apps to adapt at the last instant
9Transmission API (cont.)
- Request API works for asynchronous sources
- while (some_event)
- get_data() / e.g., from a file, image
capture, etc. / - send_data() / call cm_request() and send on
callback / -
- But what about synchronous sources (e.g., audio
at constant sampling rate)? - do_every_t_ms / timer loop /
- get_data()
- send() / oops, waiting for send
callback wrecks timing / -
- Solution rate-change callback cmapp_update(newrat
e)Sender then adapts packet size or timing rate
10Benefits of macroflow sharing
- Shared learning
- Avoids overly aggressive behavior
- Good for Internet stability and fairness
- Adoption incentives
- More consistent performance of concurrent
downloads - Avoids independent slow-starts and improves
response times - Beats persistent-connection HTTP on interactive
performance by allowing parallel downloads
11CM Web Performance
TCP Newreno
Sequence number
With CM
Time (s)
CM greatly improves predictability and
consistency of downloads
12CM applications
- TCP over CM
- Congestion-controlled UDP
- HTTP server
- Uses TCP/CM for concurrent connections
- cm_query() to pick content formats
- SCTP Stream Control Transport Protocol
- Real-time streaming applications
- Synchronous API for audio (e.g., vat)
- Callback API for video (scalable MPEG-4 delivery
system)
13Congestion Control for Streaming Applications
- CM provides a flexible framework for
per-macroflow congestion control algorithms - TCP-style additive-increase/multiplicative
decrease (AIMD) is ill-suited for streaming media
MD causes large, drastic rate changes
Slow start
- Goal Smooth rate reductions
14TCP-friendliness
- Throughput vs. loss-rate equation for AIMD
- l ? K ? size / (sqrt(p) ? RTT)
- Important for safe deployment and competition
with TCP connections - Two different approaches
- Increase/Decrease rules
- Increase w(tR) ? I(w) e.g., w1 or 2w
- Decrease w(tdt) ? D(w), e.g., w/2
- Loss-rate monitoring (e.g., TFRC)
- Estimate loss rate, p, and set rate ? f(p)
15Binomial Algorithms
- I(w) and D(w) are nonlinear functions
- I w(tR) ? w a / wK
- D w(t dt) ? w - b wL
- Generalize linear algorithms
- AIMD (K0, L1) MIMD (K-1, L1)
- When L lt 1, reductions are smaller than
multiplicative-decrease - Are there interesting TCP-friendly binomial
algorithms?
16The (K,L) space
I w(tR) ? w a / wK D w(t dt) ? w - b wL
Unstable (L gt 1)
L
1
0
K
Unstable (KL lt -1)
TCP-friendly KL 1
17Window Evolution
w(t)
AIMD
dw/dt a / (wK ?RTT)
Trade-off between increase aggressiveness and
decrease magnitude TCP-friendliness rule KL 1
t
18Binomial Algorithms Benefit Layered MPEG-4
Delivery
19CM Linux Implementation
App stream
cmapp_()
Stream requests, updates
libcm.a
User-level library implements API
Control socket for callbacks
System calls (e.g., ioctl)
UDP-CC
CM macroflows, kernel API
TCP
Congestion controller
Scheduler
Prober
ip_output()
ip_output()
cm_notify()
IP
20Server performance
CPU seconds for 200K pkts
cmapp_send()
Buffered UDP-CC
TCP, no delack
TCP/CM, no delack
TCP/CM, w/ delack
TCP, w/ delack
Packet size (bytes)
21Status
- CM Linux alpha code release this week
- http//nms.lcs.mit.edu/projects/cm/
- Sender-only CM soon to be up for proposed
standard in IETF ECM working group - WG document draft-ietf-ecm-cm-02.txt
- Mailing list ecm-request_at_aciri.org
- On-going work
- Evaluation of slowly responsive algorithms
- Macroflow formation for diffserv
- Congestion control vs. feedback frequency
- CM scheduler algorithms
- Using binomial algorithms on high-speed paths
22Summary
- Congestion Manager (CM) framework provides
end-to-end adaptation platform for NGI
applications and protocols - CM enables
- Adaptive applications using application-level
framing (ALF) ideas - Efficient multiplexing and stable control of
concurrent flows by sharing path information - Per-macroflow congestion control algorithms,
including binomial algorithms for streaming media - Download it!