Title: Congestion Manager and its relevance to WebTP
1Congestion Manager and its relevance to WebTP
2Acknowledgements
- CM GROUP
- Hari Balakrishnan (MIT LCS)
- Hariharan S Rahul (MIT LCS)
- Srinivasan Seshan (IBM TJ Watson)
- SOURCES
- Paper in HotOS (March 99)
- MIT LCS Tech Report
- Presentation by Hari at Bell Labs
- http//inat.lcs.mit.edu/ projects/cm/
3Congestion Management Challenges
- Heterogeneous traffic mix
- Variety of applications and transports
- Multiple concurrent streams
- Separation from other tasks like loss recovery
- Stable control algorithms
- Enable applications ltthink WebTPgt
4Integrated TCP Sessions
r1
r2
r3
Server
Client
r-n
- Independent TCP connections, but shared control
parameters BPS98, Touch98 - Shared congestion windows, round-trip estimates
- But, this approach doesnt accommodate non-TCP
traffic
5What is the World Heading Toward?
u1
r1
u2
r2
u3
r3
Server
Client
u-m
r-n
- The world wont be just HTTP
- The world wont be just TCP
Logically different streams (objects) kept
separate, yet efficient congestion management
must be performed.
6What We Really Need
HTTP
Video1
Audio
Video2
TCP1
TCP2
UDP
IP
- An integrated approach to end-to-end
congestion management for the Internet
7Jobs of a CM
- Reacts to congestion
- Probes carefully and passively for spare
bandwidth - Receives feedback from the receivers (losses,
status) - Apportions available capacity between active flows
8CM Properties
- Ensures proper and stable congestion behavior
- Enables application and transport adaptation to
congestion via API - Trusted intermediary between flows for bandwidth
management - Per-host per-domain statistics (bandwidth, loss
rates, RTT) - Motivated by e2e argument and ALF
9CM Features
- Algorithms and Protocols
- Adaptation API
- Applications performance
10CM Features
- Algorithms and protocols
- Adaptation API
- Applications performance
11CM Algorithms
- Rate-based AIMD control
- Loss-resilient feedback protocol
- Exponential aging when feedback is infrequent
- Flow segregation to handle non-best-effort
networks - Scheduler to apportion bandwidth between flows
12TCP-friendly(?) rate-based control
- Friendly Throughput goes as 1/sqrt(p) for AIMD
scheme - nr2 K (nr/nd) 1 , where nr recd and nd
dropped is necessary and sufficient for
verifying TCP friendliness
13Receiver Feedback
- Implicit hints from application
- Losses, ECN (e.g TCP/CM)
- Explicit CM probes
- Probe every half RTT using loss-resilient
protocol - Requires modification to receiver (CM)
- Low overhead
- Tracks loss rate, RTT estimate
14Why Feedback?
- Loss rate inversely prop to feedback frequency
- Infrequent Feedback Exponential aging
- Reduce rate by half, every RTT.
- Uses minimum RTT. SRTT too aggressive
- Continues to transmit at safe rate without
clamping apps
Loss probability
x times per RTT
15Better than Best-effort ?
- Future networks will not treat all flows equally
- Per-host aggregation incorrect
- Solution flow segregation based on loss rates
and aggregrated throughput - Evaluation in-progress
- Use per-flow QoS parameters in CM
16CM Scheduler
- Currently HRR scheduler for rate allocation
- Uses pre-configured weights and receiver hints to
apportion bandwidth between flows - Application allowed to send the number of bytes
allowed by the CM - Experiments show it working well
- Exploring other scheduling algorithms for delay
management as well (real-time)
17CM Features
- Algorithms and protocols
- Adaptation API
- Applications performance
18CM API Principles
- Goal To enable easy application adaptation
- Four guiding principles
- Put the application in control (give it rate - it
can choose what to send) - Accommodate traffic heterogeneity
- Accommodate application heterogeneity
- Learn from the application (API should be
flexible enough to learn different info)
19CM API Structure
- Data Structure
- cm_entry
- cm_id
- Query
- cm_query
- Control
- cm_open
- cm_request
- cm_notify
- cm_update
- cm_close
- Callback
- app_notify
- change_rate
20Functioning of CM API
- Apps use cm_query to enquire about state
- App requests allocation using cm_request
- CM responds with app_notify
- App sends any data it pleases, up to allocation
- App informs CM of tx using cm_notify
- App can give extra fedback with cm_update
- CM may change rate using change_rate
21Application Heterogeneity
- API should not force particular application style
- Asynchronous transmitters (e.g., TCP)
- Triggered by events other than periodic clocks
- Request/callback/notify works well
- Synchronous transmitters
- Maintain internal timer for transmissions
- Need rate change triggers from CM
change_rate(newrate)
22CM Features
- Algorithms and protocols
- Adaptation API
- Applications performance
23Application 1 Web/TCP
Web server uses change_rate() to pick source
encoding
24CM Web Performance
TCP Newreno
Sequence number
With CM
Time (s)
CM greatly improves performance
predictability and consistency
25Application 2 Layered Streaming Audio
Competing TCP
TCP/CM
Sequence number
Audio/CM
Time (s)
Wanted TCP/CM Audio/CM to equal TCP
26CM Conclusions
- CM ensures proper and stable congestion behavior
- CM tells flows their rates
- Simple, yet powerful API to enable application
adaptation - Application is in control of what to send
- Improves performance consistency and
predictability for individual applications and
makes them better network citizens -)
27Proposed WebTP Architecture
MEASUREMENTS
Application User-centric Optim., Data Model
API
API
Light-weight Connection Protocol
Congestion Mgr
IP
28CM in WebTP
- How it Fits in
- Architecture diagram
- ALF motivation
- Learn from co-located flows
- Rate-based flow control
- QoS and CoS
- ltdiscussgt
- How it Doesnt
- Strictly sender-based
- Too much API overhead (App?CM ?FlowTP)
- Need separate control for reliability
- ltdiscussgt