TCP Friendly Rate Control (TFRC): Protocol Specification RFC3448bis draft-ietf-dccp-rfc3448bis-03.txt S. Floyd, M. Handley, J. Padhye, and J. Widmer Testing.

Slides:



Advertisements
Similar presentations
ELECTRONICS RESEARCH GROUP DEPARTMENT OF ENGINEERING IETF-68, March 19-23, 2007 Quick-Start for DCCP draft-fairhurst-tsvwg-dccp-qs-00 (Individual Submission)
Advertisements

Simulation-based Comparison of Tahoe, Reno, and SACK TCP Kevin Fall & Sally Floyd Presented: Heather Heiman September 10, 2002.
1 Profile for DCCP Congestion Control ID 4: the Small-Packet Variant of TFRC CC. Sally Floyd and Eddie Kohler draft-ietf-dccp-ccid4-03.txt March 2009 DCCP.
Equation-Based Congestion Control for Unicast Applications Sally Floyd, Mark Handley, Jitendra Padhye and Jörg Widmer Presented by Ankur Upadhyaya for.
Congestion Control Created by M Bateman, A Ruddle & C Allison As part of the TCP View project.
CS 268: Lecture 7 (Beyond TCP Congestion Control) Ion Stoica Computer Science Division Department of Electrical Engineering and Computer Sciences University.
Session Announcement Protocol Colin Perkins University College London.
TFRC for Voice: the VoIP Variant Sally Floyd, Eddie Kohler. March 2005, presentation to AVT draft-ietf-dccp-tfrc-voip-01.txt.
School of Information Technologies TCP Congestion Control NETS3303/3603 Week 9.
1 Equation-Based Congestion Control for Unicast Applications Sally Floyd, Mark Handley, Jitendra Padhye & Jorg Widmer August 2000, ACM SIGCOMM Computer.
CSCE 515: Computer Network Programming Chin-Tser Huang University of South Carolina.
1 Internet Networking Spring 2002 Tutorial 10 TCP NewReno.
CSCE 515: Computer Network Programming Chin-Tser Huang University of South Carolina.
Transport Layer Congestion control. Transport Layer 3-2 Approaches towards congestion control End-to-end congestion control: r no explicit feedback.
1 Internet Networking Spring 2004 Tutorial 10 TCP NewReno.
Medium Start in TCP-Friendly Rate Control Protocol CS 217 Class Project Spring 04 Peter Leong & Michael Welch.
CPSC 538A1 Dynamic Behavior of Slowly- Responsive Congestion Control Algorithms Deepak Bansal, Hari BalaKrishna, Sally Floyd and Scott Shenker Presented.
TCP: flow and congestion control. Flow Control Flow Control is a technique for speed-matching of transmitter and receiver. Flow control ensures that a.
Congestion control for multimedia Henning Schulzrinne Dept. of Computer Science Columbia University Fall 2003.
Congestion models for bursty TCP traffic Damon Wischik + Mark Handley University College London DARPA grant W911NF
Changes in CCID 2 and CCID 3 Sally Floyd August 2004 IETF.
TCP Friendly Rate Control (TFRC): Protocol Specification RFC3448bis draft-ietf-dccp-rfc3448bis-02.txt S. Floyd, M. Handley, J. Padhye, and J. Widmer Testing.
TFRC: TCP Friendly Rate Control using TCP Equation Based Congestion Model CS 218 W 2003 Oct 29, 2003.
TCP Vegas Kulan Kao 2006/3/25.
Adding Explicit Congestion Notification (ECN) Capability to TCP's SYN/ACK Packets A. Kuzmanovic, A. Mondal, S. Floyd, and K.K. Ramakrishnan draft-ietf-tcpm-ecnsyn-03.txt.
CSE 461 University of Washington1 Topic How TCP implements AIMD, part 1 – “Slow start” is a component of the AI portion of AIMD Slow-start.
Datagram Congestion Control Protocol
MaxNet NetLab Presentation Hailey Lam Outline MaxNet as an alternative to TCP Linux implementation of MaxNet Demonstration of fairness, quick.
TFRC for Voice: the VoIP Variant Sally Floyd, Eddie Kohler. August 2005 draft-ietf-dccp-tfrc-voip-02.txt Slides:
Quick-Start for TCP and IP draft-ietf-tsvwg-quickstart-01.txt A.Jain, S. Floyd, M. Allman, and P. Sarolahti TSVWG, November 2005 This and earlier presentations::
Requirements for Simulation and Modeling Tools Sally Floyd NSF Workshop August 2005.
Congestion Control for High Bandwidth-Delay Product Networks D. Katabi (MIT), M. Handley (UCL), C. Rohrs (MIT) – SIGCOMM’02 Presented by Cheng.
Quick-Start for TCP and IP Draft-amit-quick-start-03.txt A.Jain, S. Floyd, M. Allman, and P. Sarolahti ICIR, December
Datagram Congestion Control Protocol (DCCP) CISC TCP/IP and Upper Layer Protocols Presentation by Xiaofeng Han Thanks for Kireeti.
DCCP: Issues From the Mailing List Sally Floyd, Eddie Kohler, Mark Handley, et al. DCCP WG March 4, 2004.
TFRC for Voice: the VoIP Variant Sally Floyd, Eddie Kohler. March draft-ietf-dccp-tfrc-voip-01.txt
Computer Networking Lecture 18 – More TCP & Congestion Control.
TCP: Transmission Control Protocol Part II : Protocol Mechanisms Computer Network System Sirak Kaewjamnong Semester 1st, 2004.
1 CS 4396 Computer Networks Lab TCP – Part II. 2 Flow Control Congestion Control Retransmission Timeout TCP:
1 TCP Timeout And Retransmission Chapter 21 TCP sets a timeout when it sends data and if data is not acknowledged before timeout expires it retransmits.
Thoughts on the Evolution of TCP in the Internet (version 2) Sally Floyd ICIR Wednesday Lunch March 17,
1 Computer Networks Congestion Avoidance. 2 Recall TCP Sliding Window Operation.
Last Call comments and changes for CCID 2 Sally Floyd DCCP WG, November 2004.
TCP Congestion Control 컴퓨터공학과 인공지능 연구실 서 영우. TCP congestion control2 Contents 1. Introduction 2. Slow-start 3. Congestion avoidance 4. Fast retransmit.
Fall 2004FSU CIS 5930 Internet Protocols1 TCP – Data Exchange Reading: Section 24.4.
Richard Scheffenegger (Editor) David Borman Bob Braden Van Jacobson RFC1323bis – TCP Extensions for High Performance 1 84 th IETF, Vancouver, Canada.
TFRC for Voice: the VoIP Variant Sally Floyd, Eddie Kohler. November 2006 draft-ietf-dccp-tfrc-voip-06.txt DCCP Working Group, IETF Slides:
TFRC for Voice: the VoIP Variant Sally Floyd, Eddie Kohler. November 2005 draft-ietf-dccp-tfrc-voip-05.txt Slides:
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
Adding Explicit Congestion Notification (ECN) Capability to TCP's SYN/ACK Packets A. Kuzmanovic, A. Mondal, S. Floyd, and K.K. Ramakrishnan draft-ietf-tcpm-ecnsyn-02.txt.
TCP - Part II.
TCP - Part II Relates to Lab 5. This is an extended module that covers TCP flow control, congestion control, and error control in TCP.
RFC 2861 authors: Mark Handley, Jitendra Padhye, and Sally Floyd
Adding ECN Capability to TCP’s SYN/ACK Packets
TFRC for Voice: VoIP Variant and Faster Restart.
Faster Restart for TCP Friendly Rate Control (TFRC)
TCP - Part II Relates to Lab 5. This is an extended module that covers TCP flow control, congestion control, and error control in TCP.
Internet Congestion Control Research Group
ECE 599: Multimedia Networking Thinh Nguyen
draft-floyd-dccp-ccid2slow-00b.txt S. Floyd, March 2007,
Quick-Start for TCP and IP
Faster Restart for TCP Friendly Rate Control (TFRC)‏
TCP Friendly Rate Control (TFRC): Protocol Specification RFC3448bis
TCP Friendly Rate Control (TFRC): Protocol Specification RFC3448bis
Quick-Start for TCP and IP
Sally Floyd and Eddie Kohler draft-floyd-ccid4-00.txt November 2006
Sally Floyd and Eddie Kohler draft-floyd-ccid4-01.txt July 2007
TCP Friendly Rate Control (TFRC): Protocol Specification RFC3448bis
TCP: Transmission Control Protocol Part II : Protocol Mechanisms
DCCP: Issues From the Mailing List
Presentation transcript:

TCP Friendly Rate Control (TFRC): Protocol Specification RFC3448bis draft-ietf-dccp-rfc3448bis-03.txt S. Floyd, M. Handley, J. Padhye, and J. Widmer Testing and simulations from A. Sathiaseelan December 2007, DCCP Working Group

Changes from draft-ietf-dccp-rfc3448bis-02 reported last time: Added a line to the pseudocode for reducing the sending rate during idle periods during initial slow-start. –This fixes a problem when the sender is in initial slow- start, has an allowed sending rate less than twice the initial sending rate, and has been idle since the nofeedback timer was set. Step (1) of Section 4.4. Problem reported by Arjuna. Added a fix so that when datalimited and p = 0, the sender doesn't double the allowed sending rate after each feedback packet. Step (4) of Section 4.3. Problem reported by Arjuna.

Other changes from draft-ietf-dccp-rfc3448bis-02.txt: In a data-limited period, instead of setting the receive rate to Infinity, set it to the maximum of (X_recv, values in X_recv_set). Step (4) of Section 4.3. Added one line to the pseudocode in Section 4.4 on "Expiration of Nofeedback Timer" so that when the nofeedback timer expires and the sender does not have an RTT sample and has not yet received feedback from the receiver, we also look at whether the sender has been idle during the entire nofeedback interval.

Editing changes from draft-ietf-dccp-rfc3448bis-02: General editing from feedback from Colin Perkins. General editing from feedback from Gerrit Renker. This includes the following: - Added a subsection to Section 8 on implementation issues about "Sender Behavior When a Feedback Packet is Received". - Moved Section on "Sending Packets Before their Nominal Send Time" to Section 8 on "Implementation Issues". Added a subsection on "Evaluating TFRC's Response to Idle Periods" to the Appendix, encouraging future work on TFRC's responses to idle and data-limited periods.

Data-limited simulation results: Simulations for the change in setting the receive rate after a data-limited period. (Thanks for Arjuna.) No more problems with data-limited senders. The specific problem of increasing the allowed sending rate during data-limited intervals during slow-start is also solved.

Data-limited Simulation Results

Future Work: Do we need Congestion-Window-Validation type behaviour during data-limited periods? –Or save that for a separate document?

To implement Congestion Window Validation (modified for TFRC): To reduce the allowed sending rate during data-limited periods: –In Section 4.3, step (4): If (data-limited over entire interval) { Multiple old entries in X_recv_set by Maximize X_recv_set; } This would decay the receive rate to: – 85% of its old value after one RTT. – 50% of its old value after four RTTs.

Ready for Working Group Last Call?

Slides from last time:

Reported in previous IETFs: Changes from RFC 3448, in draft-ietf-dccp- rfc3448bis-00.txt Changes in draft-ietf-dccp-rfc3448bis-01.txt Reported for me in March 2007: –Changes in draft-ietf-dccp-rfc3448bis-02b.txt, (never submitted). –A slide on “things that could be done”.

Changes from draft-ietf-dccp-rfc3448bis-01.txt: The initial feedback packet after an idle period. –The mechanism for dealing with this has changed. Response to idle and data-limited periods. –The sender is not limited by the receive rate if the sender has been idle or data-limited for an entire feedback interval. Use of unused send credits: –The sender may keep unused sent credits up to one RTT. Many clarifications and some small changes, listed in the draft.

The initial feedback packet after an idle period: The mechanism for dealing with this has changed. The new mechanism: –Keep X_recv_set, with X_recv from the last two RTTs. –If (the entire interval covered by the feedback packet was a data-limited interval) Replace X_recv_set contents by Infinity; Older mechanisms in older revisions: –If (not the first feedback packet, and not the first feedback packet after a nofeedback timer) –If (feedback packet reports Limited Receive Rate or sender has been data-limited over period covered by the last feedback packet)

Response to Idle and Data-Limited Periods: Protocol Long idle periods Long data-limited periods Standard TCP: Window -> initial. No change in window. TCP with CWV: Halve window Reduce window half way (not below initial cwnd). to used window. Standard TFRC: Halve rate Rate limited to (not below 1 pkt/64 sec). twice receive rate. Revised TFRC: Halve rate Rate not limited to (not below initial rate). twice receive rate.

Response to Idle Periods: The initial version of RFC3448bis: –After a long idle period, the sender doesn’t reduce the allowed rate below the initial rate. –From RFC4342. This is still true. –But the mechanisms have changed.

Response to Idle Periods: Current pseudocode: –If (X_recv < recover_rate, and sender has been idle ever since nofeedback timer was set) Don’t use X_recv to reduce sending rate. Initial versions of the draft (-00 and -01): –The code for dealing with idle or data-limited periods was in response to feedback packets, not in response to the nofeedback timer. –If (sender has been idle or data-limited) Later versions of the draft (-02c): –The code for dealing with idle or data-limited periods was moved to be in response to the nofeedback timer (as it is now). –If (X_recv < 4 packets per round-trip time, and sender has been idle since nofeedback timer was set) Don’t use X_recv to reduce sending rate.

Response to Data-Limited Periods: This draft: –Follow Standard TCP, and don’t be limited by receive rate during data-limited periods. –If (the entire interval covered by the feedback packet was a data-limited interval) { Replace X_recv_set contents by Infinity; Earlier -00, -01, and -02c revisions: –During idle or data-limited periods, do be limited by receive rate, but not below the initial sending rate. –If (sender has been idle or data-limited within last two round- trip times) min_rate = max(2*X_recv, W_init/R);

Unused send credits: Specified that the sender may maintain unused sent credits up to one RTT. –This gives behavior similar to TCP. –A TFRC implementation MAY limit bursts to less than one RTT, if desired. This was not explicitly addressed in RFC 3448, or in earlier revisions of this draft.

Basic Simulation Results - I Long idle period behaviour. Sending rate never reduces below recover_rate Low receiver rate after idle period and initial startup rectified.

Basic Simulation Results - II Long idle period behaviour. With loss, the sending rate is limited by the throughput equation after the idle period.

Datalimited behaviour Low receiver rate problem rectified bis now good for bursty traffic : gives high perceived quality. Basic Simulation Results - III

Change #1 from -02 : For reducing sending rate during idle periods during initial slow-start. Old: Else if (X_recv < recover_rate, and sender has been idle ever since nofeedback timer was set) Timer_limit is not updated; New: Else if (((p>0 && X_recv < recover_rate) or (p==0 && X < 2 * recover_rate)), and sender has been idle ever since nofeedback timer was set) Timer_limit is not updated; Problem reported by Arjuna,

Change #2 from -02: When datalimited and p = 0, the sender still doubles the allowed sending rate after each feedback packet. Old code, for when (p==0): Else if (t_now - tld >= R) // initial slow-start X = max(min(2*X, recv_limit), initial_rate); tld = t_now; New code, for when (p==0): Else if (t_now - tld >= R) and (sender was not data-limited over entire feedback interval) // initial slow-start X = max(min(2*X, recv_limit), initial_rate); tld = t_now; Problem reported by Arjuna. (Fix not yet tested.)

Future work (in a separate document): “Future work could explore alternate responses to using the receive rate during a data-limited period.” –E.g., more like TCP with Congestion Window Validation. At a minimum, we could have more limits on *increasing* the allowed sending rate during a data-limited period.