Congestion Manager. Nick Feamster Computer Networks. M.I.T. Laboratory for Computer Science. October 24, 2001

Similar documents
RTP. Prof. C. Noronha RTP. Real-Time Transport Protocol RFC 1889

Transporting Voice by Using IP

Transport Over IP. CSCI 690 Michael Hutt New York Institute of Technology

Intro to LAN/WAN. Transport Layer

COMP/ELEC 429/556 Introduction to Computer Networks

OSI Transport Layer. Network Fundamentals Chapter 4. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1

CSCD 433/533 Advanced Networks Fall Lecture 14 RTSP and Transport Protocols/ RTP

EEC-682/782 Computer Networks I

RTP/RTCP protocols. Introduction: What are RTP and RTCP?

Chapter 7. The Transport Layer

6.1 Internet Transport Layer Architecture 6.2 UDP (User Datagram Protocol) 6.3 TCP (Transmission Control Protocol) 6. Transport Layer 6-1

4 rd class Department of Network College of IT- University of Babylon

TSIN02 - Internetworking

Outline. Internet. Router. Network Model. Internet Protocol (IP) Design Principles

Bandwidth Allocation & TCP

RTP Profile for TCP Friendly Rate Control draft-ietf-avt-tfrc-profile-03.txt

Multimedia in the Internet

CS 218 F Nov 3 lecture: Streaming video/audio Adaptive encoding (eg, layered encoding) TCP friendliness. References:

RTP: A Transport Protocol for Real-Time Applications

Chapter 3 outline. 3.5 Connection-oriented transport: TCP. 3.6 Principles of congestion control 3.7 TCP congestion control

TSIN02 - Internetworking

CS 43: Computer Networks. 19: TCP Flow and Congestion Control October 31, Nov 2, 2018

TSIN02 - Internetworking

Transmission Control Protocol. ITS 413 Internet Technologies and Applications

Digital Asset Management 5. Streaming multimedia

EEC-484/584 Computer Networks. Lecture 16. Wenbing Zhao

Lecture 11. Transport Layer (cont d) Transport Layer 1

Transport layer. UDP: User Datagram Protocol [RFC 768] Review principles: Instantiation in the Internet UDP TCP

Transport layer. Review principles: Instantiation in the Internet UDP TCP. Reliable data transfer Flow control Congestion control

UDP, TCP, IP multicast

On the Scalability of RTCP Based Network Tomography for IPTV Services. Ali C. Begen Colin Perkins Joerg Ott

Lecture 3: The Transport Layer: UDP and TCP

Internet Streaming Media. Reji Mathew NICTA & CSE UNSW COMP9519 Multimedia Systems S2 2007

TSIN02 - Internetworking

Problem 7. Problem 8. Problem 9

Transport Protocols and TCP

CS457 Transport Protocols. CS 457 Fall 2014

Transport Protocols. CSCI 363 Computer Networks Department of Computer Science

Chapter 3 outline. 3.5 Connection-oriented transport: TCP. 3.6 Principles of congestion control 3.7 TCP congestion control

Congestion Control. Daniel Zappala. CS 460 Computer Networking Brigham Young University

CMSC 417. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala. October 25, 2018

CS519: Computer Networks. Lecture 9: May 03, 2004 Media over Internet

Chapter 3 Transport Layer

Transport Layer. Application / Transport Interface. Transport Layer Services. Transport Layer Connections

Different Layers Lecture 20

ECE697AA Lecture 3. Today s lecture

CS4700/CS5700 Fundamentals of Computer Networks

CS 344/444 Computer Network Fundamentals Final Exam Solutions Spring 2007

User Datagram Protocol

Kommunikationssysteme [KS]

Provide a generic transport capabilities for real-time multimedia applications Supports both conversational and streaming applications

Reliable Transport I: Concepts and TCP Protocol

6. The Transport Layer and protocols

cs/ee 143 Communication Networks

Outline. QoS routing in ad-hoc networks. Real-time traffic support. Classification of QoS approaches. QoS design choices

II. Principles of Computer Communications Network and Transport Layer

Chapter 24. Transport-Layer Protocols

EE 122: Transport Protocols. Kevin Lai October 16, 2002

ETSF10 Internet Protocols Transport Layer Protocols

Introduction to Networking. Operating Systems In Depth XXVII 1 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Networked Systems and Services, Fall 2017 Reliability with TCP

Answers to Sample Questions on Transport Layer

9th Slide Set Computer Networks

TCP and Congestion Control (Day 1) Yoshifumi Nishida Sony Computer Science Labs, Inc. Today's Lecture

TCP reliable data transfer. Chapter 3 outline. TCP sender events: TCP sender (simplified) TCP: retransmission scenarios. TCP: retransmission scenarios

TCP so far Computer Networking Outline. How Was TCP Able to Evolve

Application. Transport. Network. Link. Physical

Transport Protocols. ISO Defined Types of Network Service: rate and acceptable rate of signaled failures.

CS519: Computer Networks. Lecture 5, Part 4: Mar 29, 2004 Transport: TCP congestion control

Page 1. Goals for Today" Discussion" Example: Reliable File Transfer" CS162 Operating Systems and Systems Programming Lecture 11

CCNA 1 Chapter 7 v5.0 Exam Answers 2013

CSCI 466 Midterm Networks Fall 2013

Reliable Transport I: Concepts and TCP Protocol

Transport Protocols Reading: Sections 2.5, 5.1, and 5.2. Goals for Todayʼs Lecture. Role of Transport Layer

MIDTERM EXAMINATION #2 OPERATING SYSTEM CONCEPTS U N I V E R S I T Y O F W I N D S O R S C H O O L O F C O M P U T E R S C I E N C E

Placement of Function in a Best Effort World. Course Logistics Update

Midterm Review. EECS 489 Computer Networks Z. Morley Mao Monday Feb 19, 2007

Module objectives. Integrated services. Support for real-time applications. Real-time flows and the current Internet protocols

Outline Computer Networking. TCP slow start. TCP modeling. TCP details AIMD. Congestion Avoidance. Lecture 18 TCP Performance Peter Steenkiste

Recap. TCP connection setup/teardown Sliding window, flow control Retransmission timeouts Fairness, max-min fairness AIMD achieves max-min fairness

TCP/IP Networking. Part 4: Network and Transport Layer Protocols

CS 716: Introduction to communication networks th class; 7 th Oct Instructor: Sridhar Iyer IIT Bombay

Chapter III: Transport Layer

CMSC 417. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala. October 11, 2018

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 10

CSE/EE 461. TCP congestion control. Last Lecture. This Lecture. Focus How should senders pace themselves to avoid stressing the network?

Networked Systems and Services, Fall 2018 Chapter 3

CS 5520/ECE 5590NA: Network Architecture I Spring Lecture 13: UDP and TCP

Transport Protocols Reading: Sections 2.5, 5.1, and 5.2

CMSC 417. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala. October 30, 2018

Transport protocols Introduction

Proxy-based TCP-friendly streaming over mobile networks

bitcoin allnet exam review: transport layer TCP basics congestion control project 2 Computer Networks ICS 651

Lecture 13: Transportation layer

PLEASE READ CAREFULLY BEFORE YOU START

13. Internet Applications 최양희서울대학교컴퓨터공학부

CS 640: Introduction to Computer Networks. Today s Lecture. Page 1

Department of Computer and IT Engineering University of Kurdistan. Transport Layer. By: Dr. Alireza Abdollahpouri

Outline. TCP: Overview RFCs: 793, 1122, 1323, 2018, Development of reliable protocol Sliding window protocols

Lecture 14: Congestion Control"

Transcription:

Congestion Manager Nick Feamster M.I.T. Laboratory for Computer Science 6.829 Computer Networks October 24, 2001

Outline Motivation (problem CM solves?) Sharing info on concurrent flows Enable application adaptation CM Architecture The CM API (and tradeoffs) More about the CM Framwork... Implementation Limitations

Motivation End-systems supply much functionality Reliability In-order delivery Demultiplexing Message boundaries Connection abstraction Congestion control Of these, congestion control is the only functionality required by all communications applications!

Problem... "Multimedia Transmissions Drive Net Toward Gridlock" Sara Robinson, NYT, 8/23/99

Today s End-System Architecture TCP s AIMD solves the problem, right? Yesterday s Protocols HTTP Telephony Streaming Interactive Games.. Today s Internet Doesn t enable application adaptation Streaming (e.g., audio, video, etc.) Doesn t handle concurrent flows e.g., WWW any application that would benefit from shared information

Adaptation Application Transport Network Link Little information is transferred across layers to applications Increasing number of non-tcp applications CM exports a simple adaptation API

Concurrent Flows: Web of Troubles Web browsers perform concurrent downloads Simultaneous dowloading for embedded images Proxies can multiplex requests Aggressive downloading => Higher Throughput But... Why slow start each connection? Loss information is not shared between flows More connections = More bandwidth! (fair?) Concurrent streams are competing, should be cooperating! What can we do to ensure fair behavior and yet gain some of the benefits of concurrent downloads? CM abstracts all congestion-related information into one place.

The Big Picture Applications HTTP FTP RTP Video RTSP Audio TCP1 TCP2 UDP CM Protocol IP Transport Instances A P I Congestion Manager CM performs all congestion related tasks for macroflow. Applications adapt using the CM-exported API. Frees transport/app protocols from reimplementing CC.

Questions What to send? API When to send? Congestion controller Who should send? Scheduler What s the network state? Application feedback/cm Probing OR...can avoid modifying receiver stack if applications provide feedback.

CM Architecture Application Application Congestion Controller Scheduler Hints Dispatch Responder Prober SENDER Congestion Detector RECEIVER

CM Architecture Sender feedback Receiver API Congestion Controller Callbacks CM Scheduler Data Flow Integration Per Flow Scheduling Separate congestion management from transport. Multiple applications and protocols can share congestion info. Separate congestion control and scheduling.

Macroflows All streams on a "macroflow" share congestion state What is a "macroflow"? Streams grouped by: Destination address? Address and port? End host application? Let the application group flows into macroflows that share state Quickly detecting good macroflows...

Queries: cm_query() The CM API State Management cm_open() -- returns stream ID cm_close() -- closes session cm_mtu() -- get path MTU for flow Data transmission options Buffered send Request/callback Rate callback Application Notification cm_update() -- get new rate cm_notify() -- tell CM about any losses

Different applications, different needs Buffered Send Data-driven applications (send a single file and exit) Request/Callback TCP (retransmission decision) Asynchronous apps, last minute adaptation... Video streaming apps, last minute decisions, etc. Rate Callback Synchronous event-driven apps (rate-clocked) Buffering reduces application control, limits the application to do "last minute adaptation"...

Request/Callback API Standard TCP Application Socket TCP IP Connection Handling Retransmissions Flow Control Congestion Control TCP/CM Application Socket TCP IP Request Transmission Receive send callback Update with losses CM Calls cm_notify Application achieves TCP-like behavior, but has control over what to send.

Asynchronous Transmission for Everyone? Request API works for asynchronous sources -- asyncronous() { wait for (event) { get_data(); send(); } What about synchronous sources? (e.g., audio) do_every_10_ms () { get_data(); send(); }

Synchronous Transmission Asynchronous callbacks are not appropriate for applications that must transmit at a constant rate (e.g., audio servers) A more appropriate API: Register info on RTT, rate thresholds cmapp_update(newrate, new_rtt, new_rttdev) Application adjusts sending interval, packet size, etc.

Congestion Controller Obtains feedback about past transmissions Adjusts the aggregate transmission rate between sender and receiver Decides when a macroflow should send Modular: Congestion control algorithms on per-macroflow basis

Example: Layered Video MPEG Server RTSP MPEG Client loss rates/ RTTs callbacks data loss/rtt/requests Internet data loss/rtt/requests CM RTP/RTCP SR RTP RTP/RTCP Track loss rates and RTT using RTP/RTCP, report to CM Callbacks from CM control sending rates

Congestion Control Layered Video Goal: Smooth transmission rate => constant quality video

Scheduler Decides which flow on a macroflow should send Hints from application/receiver to prioritize flows Plug in other scheduling algorithms...

Feedback Required for stable end-to-end congestion control Probing Protocol optional, can use application feedback instead Application cm_update() no changes to receiver stack Frequency?

Probing Protocol Sender periodically sends out probes Receiver responds with Last received sequence number (i.e., this one) SN of last probe received Bytes in between Reordering...? Reverse window choices later. Lost probes...? Exponential aging Minimim RTT fpr half-life (why stable?)

Application Feedback 0 0123456789 1 2 01 234567890123456789 3 0 1 V P RC Payload Type=RR Length SSRC of packet sender (Receiver ID) SSRC_1 (SSRC of first source) fraction lost cumulative number of lost packets extended highest sequence number received Interarrival Jitter Timestamp Echo (LSR) Processing Time (DLSR) Window Size (kb) Padding ADU Sequence Number ADU Fragment Length (bytes) ADU Offet (bytes)

CM Implementation Stream requests, updates System calls (ioctl) App libcm cmapp_send() cmapp_update() User level library implements API Control socket for callbacks kernel API TCP Congestion Controller Scheduler cm_notify() UDP CC IP IP notifies CM about data transfer on output

Related Work: HTTP/TCP Interactions Connection Establishment 3-Way Handshake, Timeouts (what s the RTO?) "Stop and Reload"...manual SYN retransmit Persistent Connections Good: Can avoid slow-start, 3-way handshake, etc. Bad: What s the congestion window? Solutions: pacing, slowly decrease window, etc. Nagle s Algorithm: limits number of small packets sent Good: Interactive apps (e.g., ssh) send fewer small packets. Bad: HTTP response delayed if not aligned on packet boundaries.

Limitations? Buggy/malicious applications Incorrect loss, RTT reports Application "hogging" bandwidth of macroflow Aging of congestion information Detriment of low feedback frequency Macroflow granularity Current research is addressing this... Multicast applications

Conclusion Application Application Congestion Controller Scheduler Hints Dispatch Responder Prober SENDER Congestion Detector RECEIVER

Conclusion The Congestion Manager Architecture: Separates transport protocol from congestion control algorithms Gives application control over what data to send Callback-based architecture allows last minute adaptation by adaptation. Applications can benefit from sharing information about congestion. Buffering reduces application control, limits the application to do "last minute adaptation"...

Congestion Controller May want to use something besides TCP s AIMD What applications may be harmed by high oscillations? CM allows separation of congestion control algorithms from transport!

Why Sockets? What about other kernel to user communication: Signals Conflict with other applications Receiving a signal is expensive System Calls Requires threading support... Semaphores Most network apps use sockets instead (??)

Application-Specific Congestion Control w(t) AIMD SQRT t Applications can employ congestion control algorithms that are more amenable to the task....and can experiment with different types of algorithms with relative ease.