the internet congestion manager hari balakrishnan mit laboratory for computer science cm team dave...

24
The Internet Congestion Manager Hari Balakrishnan MIT Laboratory for Computer Science http://wind.lcs.mit.edu/ CM team Dave Andersen, Deepak Bansal, Dorothy Curtis, Bodhi Priyantha, Srinivasan Seshan

Upload: duane-rice

Post on 17-Jan-2016

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: The Internet Congestion Manager Hari Balakrishnan MIT Laboratory for Computer Science  CM team Dave Andersen, Deepak Bansal, Dorothy

The Internet Congestion Manager

Hari BalakrishnanMIT Laboratory for Computer

Sciencehttp://wind.lcs.mit.edu/

CM teamDave Andersen, Deepak Bansal, Dorothy

Curtis, Bodhi Priyantha, Srinivasan Seshan

Page 2: The Internet Congestion Manager Hari Balakrishnan MIT Laboratory for Computer Science  CM team Dave Andersen, Deepak Bansal, Dorothy

Motivation

• End-systems implement many functions– Reliability– In-order delivery– Demultiplexing– Message boundaries– Connection abstraction– Congestion control

Of these, congestion control MUST be done for all communications

Of these, congestion control MUST be done for all communications

Page 3: The Internet Congestion Manager Hari Balakrishnan MIT Laboratory for Computer Science  CM team Dave Andersen, Deepak Bansal, Dorothy

State of Congestion Control

“Multimedia Transmissions Drive Net Toward Gridlock”

Sara RobinsonNew York Times8/23/99

Page 4: The Internet Congestion Manager Hari Balakrishnan MIT Laboratory for Computer Science  CM team Dave Andersen, Deepak Bansal, Dorothy

Two Issues

• Adaptation– Enable applications to learn about

network conditions and adapt

• Concurrent flows– Efficiently multiplex streams and share

paths

Congestion Manager (CM): A new end-system architecture for congestion management

Congestion Manager (CM): A new end-system architecture for congestion management

Page 5: The Internet Congestion Manager Hari Balakrishnan MIT Laboratory for Computer Science  CM team Dave Andersen, Deepak Bansal, Dorothy

Adaptation

• Available bandwidth• Round-trip times• Loss information

Application

Transport

Network

Link

CM exports a simple adaptation APICM exports a simple adaptation API

• Little information transferred across layers to applications• More & more non-TCP applications

Physical networks

Page 6: The Internet Congestion Manager Hari Balakrishnan MIT Laboratory for Computer Science  CM team Dave Andersen, Deepak Bansal, Dorothy

Concurrent Flows

• Overload causes congestion

CM abstracts all congestion-related information into one place

CM abstracts all congestion-related information into one place

• Concurrent streams compete, causing aggressive network behavior!

Additive-Increase &Multiplicative-Decrease (AIMD)

Win

dow

Time

“Slow start”

Page 7: The Internet Congestion Manager Hari Balakrishnan MIT Laboratory for Computer Science  CM team Dave Andersen, Deepak Bansal, Dorothy

What Can We Do?

• Inside-the-network smarts– RED and variants– Fair queueing and variants– Differentiated services– Integrated services

• End-system architecture– Leverage a decade of experience– Interact well with router mechanisms

Page 8: The Internet Congestion Manager Hari Balakrishnan MIT Laboratory for Computer Science  CM team Dave Andersen, Deepak Bansal, Dorothy

The Big Picture

IP

HTTP Video1

TCP1 TCP2 UDP

Audio Video2

All congestion management tasks performed in CMApps learn and adapt using API

All congestion management tasks performed in CMApps learn and adapt using API

CongestionManager

Per-”macroflow”statistics

(cwnd,rtt,…)API

Page 9: The Internet Congestion Manager Hari Balakrishnan MIT Laboratory for Computer Science  CM team Dave Andersen, Deepak Bansal, Dorothy

The CM ArchitectureApplication

(TCP, http, video, etc.)

Prober

CongestionController

Scheduler

Responder

Congestion Detector

Sender Receiver

CM protocol

API

Application

API

Hints Dispatch

Page 10: The Internet Congestion Manager Hari Balakrishnan MIT Laboratory for Computer Science  CM team Dave Andersen, Deepak Bansal, Dorothy

Problems

• How does CM control when and whose transmissions occur?– Keep application in control of what to

send

• How does CM discover network state?– What information is shared?– What is the granularity of sharing?

Key issues: API and information sharingKey issues: API and information sharing

Page 11: The Internet Congestion Manager Hari Balakrishnan MIT Laboratory for Computer Science  CM team Dave Andersen, Deepak Bansal, Dorothy

Transmission API

• Buffered-send– Does not allow apps to “pull back”

dataApp

CM

IP

cm_send( ,dst)

Packet queueto dst

Rate change

Lesson: move buffering into the applicationLesson: move buffering into the application

Pull out and re-encode (hard!)

Page 12: The Internet Congestion Manager Hari Balakrishnan MIT Laboratory for Computer Science  CM team Dave Andersen, Deepak Bansal, Dorothy

Transmission API (cont.)

• Callback-based send

cm_request()cmapp_send() based on

allowed rate

App

CM

IP

Enables apps to adapt “at the last instant”Enables apps to adapt “at the last instant”

Schedule requests,not packets

send( )

cm_notify(nsent)

Page 13: The Internet Congestion Manager Hari Balakrishnan MIT Laboratory for Computer Science  CM team Dave Andersen, Deepak Bansal, Dorothy

Transmission API (cont.)• Request API works for asynchronous sources

wait for (some_events) {

get_data(); /* e.g., from a file, image capture, etc. */

send(); /* call cm_request() and send on callback */

}

• But what about synchronous sources (e.g., audio with 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(rate, srtt)

Page 14: The Internet Congestion Manager Hari Balakrishnan MIT Laboratory for Computer Science  CM team Dave Andersen, Deepak Bansal, Dorothy

Feedback about Network State

• Monitoring successes and losses– Application hints– Probing system

• Notification API (application hints)– Application calls cm_update(nsent,

nrecd, congestion indicator, rtt)

Page 15: The Internet Congestion Manager Hari Balakrishnan MIT Laboratory for Computer Science  CM team Dave Andersen, Deepak Bansal, Dorothy

IP header

Probing System

• Receiver modifications necessary– Support for separate CM header– Uses sequence number to detect losses– Sender can request count of packets received

• Receiver modifications detected/negotiated via handshake– For incremental deployment

IP payload CM headerIP payload

Page 16: The Internet Congestion Manager Hari Balakrishnan MIT Laboratory for Computer Science  CM team Dave Andersen, Deepak Bansal, Dorothy

Congestion Controller

• Responsible for deciding when to send a packet

• Window-based AIMD with traffic shaping (“TCP-friendly”)

• Exponential aging when feedback low– Halve window every RTT (use min RTT)

• Can plug in other algorithms– Selected on a “macroflow” granularity

Page 17: The Internet Congestion Manager Hari Balakrishnan MIT Laboratory for Computer Science  CM team Dave Andersen, Deepak Bansal, Dorothy

CM Scheduler

• Responsible for deciding who should send a packet

• Currently hierarchical round robin• Hints from application or receiver

– Used to prioritize flows

• Plug in other algorithms– Selected on a “macroflow” granularity– Prioritization interface may be different

Page 18: The Internet Congestion Manager Hari Balakrishnan MIT Laboratory for Computer Science  CM team Dave Andersen, Deepak Bansal, Dorothy

How will apps use the CM?

• TCP– Asynchronous callback API

• HTTP– Rate callbacks to decide content

• Congestion controlled UDP– Buffered API

• Conferencing applications– Synchronous API for real-time streams– Combination of others for other streams

Page 19: The Internet Congestion Manager Hari Balakrishnan MIT Laboratory for Computer Science  CM team Dave Andersen, Deepak Bansal, Dorothy

TCP/CM

TCP(reliability,

conn. mgmt.)

CM

1. cm_open

2. cm_request

3. cmapp_send 6. cm_updateon ACK

7. cm_close

Steps 2-6 occur multiple times

IP

5. cm_notify

4. send

Page 20: The Internet Congestion Manager Hari Balakrishnan MIT Laboratory for Computer Science  CM team Dave Andersen, Deepak Bansal, Dorothy

CM Web Performance

With CM

CM greatly improvespredictabilityand consistency

TCP Newreno

Time (s)

Seq

uen

ce n

um

ber

Page 21: The Internet Congestion Manager Hari Balakrishnan MIT Laboratory for Computer Science  CM team Dave Andersen, Deepak Bansal, Dorothy

Layered Streaming Audio

Audio adapts to available bandwidthCombination of TCP & Audio compete equally with normal TCP

0

50

100

150

200

250

300

350

400

450

0 5 10 15 20 25

Time (s)

Seq

uen

ce n

um

ber

Competing TCP

TCP/CM

Audio/CM

Page 22: The Internet Congestion Manager Hari Balakrishnan MIT Laboratory for Computer Science  CM team Dave Andersen, Deepak Bansal, Dorothy

Status & Future

• Implementation in progress (Linux)– TCP/CM + Web server– Layered audio server– Congestion-controlled UDP sockets– Modify clients to reflect user preferences

• Handling diffserv and traffic splitters• Aggregation: per-host, per-subnet,…• Feedback frequency analysis• Aging of congestion information

Page 23: The Internet Congestion Manager Hari Balakrishnan MIT Laboratory for Computer Science  CM team Dave Andersen, Deepak Bansal, Dorothy

Deployment Issues

• In the long-term, change senders and receivers to use the CM

• In the short-term, change only senders easier deployment– Requires receiver app feedback (e.g., TCP

ACKs)

• CM protocol and headers negotiable incremental deployment

• IETF working group to be formed

Page 24: The Internet Congestion Manager Hari Balakrishnan MIT Laboratory for Computer Science  CM team Dave Andersen, Deepak Bansal, Dorothy

Summary

• CM enables proper and stable congestion behavior

• Simple API to enable application to learn and adapt to network state

• Improves consistency and predictability of network transfers

• Provides benefit even when deployed at senders alone