Network Transport Layer: TCP/Reno Analysis, TCP Cubic, TCP/Vegas

Slides:



Advertisements
Similar presentations
CSCI-1680 Transport Layer II Based partly on lecture notes by David Mazières, Phil Levis, John Jannotti Rodrigo Fonseca.
Advertisements

TCP Variants.
1 TCP Congestion Control. 2 TCP Segment Structure source port # dest port # 32 bits application data (variable length) sequence number acknowledgement.
Lecturer: Namratha Vedire
TCP Congestion Control Dina Katabi & Sam Madden nms.csail.mit.edu/~dina 6.033, Spring 2014.
1 End to End Bandwidth Estimation in TCP to improve Wireless Link Utilization S. Mascolo, A.Grieco, G.Pau, M.Gerla, C.Casetti Presented by Abhijit Pandey.
Ahmed El-Hassany CISC856: CISC 856 TCP/IP and Upper Layer Protocols Slides adopted from: Injong Rhee, Lisong Xu.
School of Information Technologies TCP Congestion Control NETS3303/3603 Week 9.
Transport Layer 3-1 Fast Retransmit r time-out period often relatively long: m long delay before resending lost packet r detect lost segments via duplicate.
Transport Layer3-1 Congestion Control. Transport Layer3-2 Principles of Congestion Control Congestion: r informally: “too many sources sending too much.
1 Chapter 3 Transport Layer. 2 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4.
Transport: TCP Manpreet Singh (Slides borrowed from various sources on the web)
TCP Congestion Control
Introduction 1 Lecture 14 Transport Layer (Congestion Control) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer Science.
1 EE 122: Advanced TCP Ion Stoica TAs: Junda Liu, DK Moon, David Zats (Materials with thanks to Vern Paxson,
Lecture 17 Congestion Control; AIMD; TCP Reno 10/31/2013
Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles.
Principles of Congestion Control Congestion: informally: “too many sources sending too much data too fast for network to handle” different from flow control!
EE 122: Congestion Control and Avoidance Kevin Lai October 23, 2002.
Lecture 9 – More TCP & Congestion Control
What is TCP? Connection-oriented reliable transfer Stream paradigm
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March
CS640: Introduction to Computer Networks Aditya Akella Lecture 15 TCP – III Reliability and Implementation Issues.
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:
CS640: Introduction to Computer Networks Aditya Akella Lecture 15 TCP – III Reliability and Implementation Issues.
Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles.
1 Computer Networks Congestion Avoidance. 2 Recall TCP Sliding Window Operation.
Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles.
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Congestion Control 0.
CS 268: Lecture 5 (TCP Congestion Control) Ion Stoica February 4, 2004.
@Yuan Xue A special acknowledge goes to J.F Kurose and K.W. Ross Some of the slides used in this lecture are adapted from their.
1 Transport Bandwidth Allocation 3/29/2012. Admin. r Exam 1 m Max: 65 m Avg: 52 r Any questions on programming assignment 2 2.
1 Network Transport Layer: TCP Analysis and BW Allocation Framework Y. Richard Yang 3/30/2016.
@Yuan Xue A special acknowledge goes to J.F Kurose and K.W. Ross Some of the slides used in this lecture are adapted from their.
TCP over Wireless PROF. MICHAEL TSAI 2016/6/3. TCP Congestion Control (TCP Tahoe) Only ACK correctly received packets Congestion Window Size: Maximum.
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.
CS450 – Introduction to Networking Lecture 19 – Congestion Control (2)
Chapter 3 outline 3.1 transport-layer services
CUBIC Marcos Vieira.
Chapter 6 TCP Congestion Control
Introduction to Congestion Control
EECS 122: Introduction to Computer Networks Congestion Control
Chapter 3 outline 3.1 Transport-layer services
Network Transport Layer: Congestion Control
TCP - Part II Relates to Lab 5. This is an extended module that covers TCP flow control, congestion control, and error control in TCP.
TCP.
Lecture 19 – TCP Performance
So far, On the networking side, we looked at mechanisms to links hosts using direct linked networks and then forming a network of these networks. We introduced.
TCP Cubic CS577 Brett Levasseur 10/1/2013.
CS 268: Lecture 4 (TCP Congestion Control)
Chapter 6 TCP Congestion Control
COMP/ELEC 429/556 Introduction to Computer Networks
CS640: Introduction to Computer Networks
October 1st, 2013 CS-1652 Jack Lange University of Pittsburgh
TCP Congestion Control
EE 122: Lecture 10 (Congestion Control)
CSE 4213: Computer Networks II
Acknowledgement: slides include content from Hedera and MP-TCP authors
CS-1652 Congestion Control Jack Lange University of Pittsburgh
Transport Layer: Congestion Control
Chapter 3 outline 3.1 Transport-layer services
Network Transport Layer: TCP Reliability; Transport Congestion Control; TCP/Reno CC Y. Richard Yang 11/8/2018.
TCP flow and congestion control
Chapter 3 Transport Layer
TCP: Transmission Control Protocol Part II : Protocol Mechanisms
October 4th, 2011 CS-1652 Jack Lange University of Pittsburgh
Review of Internet Protocols Transport Layer
Presentation transcript:

Network Transport Layer: TCP/Reno Analysis, TCP Cubic, TCP/Vegas Y. Richard Yang http://zoo.cs.yale.edu/classes/cs433/ 11/13/2018

Admin. Programming assignment 4 updated deadlines Part 1: Discussion with instructor or TF checkpoint: Nov. 13; Code checkpoint: 11:55 pm, Nov. 15, 2018 Part 2: Design discussion with instructor or TF checkpoint: Nov. 27; Complete code and report due: 1:30 pm, Nov. 29, 2018.

Recap: Transport Reliability Design Basic structure of reliability protocol: sliding window protocols, connection management Basic analytical technique: execution traces; joint sender/receiver/channel state machine; state invariants TCP as an example implementation Hybrid of GBN and SR Full duplex transport Multiple optimizations/adaptation mechanisms Fast retransmit Adaptive RTO mean + variation Adaptive window size (Congestion control)

Recap: Transport Congestion Control Design What is congestion control Too high rate can lead to unnecessary long delays, collapse due to waste of resources (e.g., large number of retranssmions, zombie packets) Desired properties of congestion control alg distributed algorithm to achieve fairness and efficiency Linear control model and requirement

efficiency: distributed linear rule congestion efficiency: distributed linear rule x0 x0 efficiency fairness x0 intersection x0

efficiency: distributed linear rule no-congestion efficiency: distributed linear rule x0 x0 efficiency fairness x0 convergence x0

Recap: Why AIMD Works by Considering State Transition Trace x2 fairness line: x1=x2 efficiency line: x1+x2=C overload underload x0 x1

Intuition: Another Look Consider the difference or ratio of the rates of two flows AIAD MIMD MIAD AIMD AIAD: difference does not change MIMD: ratio does not change MIAD: difference becomes bigger AIMD: difference does not change

Recap: Realizing A(M)IMD: TCP/Reno Initially: cwnd = 1; ssthresh = infinite (e.g., 64K); For each newly ACKed segment: if (cwnd < ssthresh) // slow start: MI cwnd = cwnd + 1; else // congestion avoidance; AI cwnd += 1/cwnd; Triple-duplicate ACKs: // MD cwnd = ssthresh = cwnd/2; Timeout: ssthresh = cwnd/2; // reset (if already timed out, double timeout value; this is called exponential backoff)

Recap: TCP/Reno: Big Picture cwnd TD TD TD TO ssthresh ssthresh ssthresh ssthresh Time slow start (MI) congestion avoidance (AIMD) congestion avoidance congestion avoidance slow start congestion avoidance TD: Triple duplicate acknowledgements TO: Timeout

Outline Admin and recap Transport congestion control/resource allocation what is congestion (cost of congestion) basic congestion control alg. TCP/reno congestion control design analysis

Objective To understand the throughput of TCP/Reno as a function of RTT (RTT), loss rate (p) and packet size To better understand system dynamics We will analyze TCP/Reno under two different setups

TCP/Reno Throughput Analysis mean packet loss rate: p; mean round-trip time: RTT, packet size: S Consider only the congestion avoidance mode (long flows such as large files) Assume no timeout Assume mean window size is Wm segments, each with S bytes sent in one RTT: Throughput = Wm * S RTT bytes/sec

Outline Admin and recap Transport congestion control/resource allocation what is congestion (cost of congestion) basic congestion control alg. TCP/reno congestion control design analysis small fish in a big pond: loss rate given from the environment

TCP/Reno Throughput Modeling => => This is called the TCP throughput sqrt of loss rate law.

Exercise: Application of Analysis State of art network link can reach 100 Gbps. Assume packet size 1250 bytes, RTT 100 ms, what is the highest packet loss rate to still reach 100 Gbps? tcp-reno-tput.xlsx

Outline Admin and recap Transport congestion control/resource allocation what is congestion (cost of congestion) basic congestion control alg. TCP/reno congestion control design analysis small fish in a big pond: loss rate given from the environment big fish in small pond: growth causes losses

TCP/Reno Throughput Modeling: Relating W with Loss Rate p cwnd TD W ssthresh W/2 Time congestion avoidance Total packets sent per cycle = (W/2 + W)/2 * W/2 = 3W2/8 Assume one loss per cycle => p = 1/(3W2/8) = 8/(3W2) =>

A Puzzle: cwnd and Rate of a TCP Session Question: cwnd fluctuates widely (i.e., cut to half); how can the sending rate stay relatively smooth?

TCP/Reno Queueing Dynamics cwnd filling buffer TD bottleneck bandwidth ssthresh draining buffer Time congestion avoidance If the buffer at the bottleneck is large enough, the buffer is never empty (not idle), during the cut-to-half to “grow-back” process. Offline Exercise: How big should the buffer be to achieve full utilization?

Discussion If the buffer size at the bottleneck link is very small, what is the link utilization? cwnd TD bottleneck bandwidth ssthresh Time congestion avoidance

Exercise: Small Buffer Assume BW: 10 G RTT: 100 ms Packet: 1250 bytes BDP (full window size): 100,000 packets A loss can cut window size from 100,000 to 50,000 packets To fully grow back Need 50,000 RTTs => 5000 seconds, 1.4 hours

Discussion Assume a generic AIMD alg: reduce to βW after each loss event. What is the avg link utilization when buffer is small? If the objective is to maximize link utilization, pick large or small β? Why not pick β maximizing utilization? cwnd TD W bottleneck bandwidth ssthresh βW Time

Outline Admin and recap Transport congestion control/resource allocation what is congestion (cost of congestion) basic congestion control alg. TCP/Reno congestion control TCP Cubic

TCP Cubic Designed in 2008 by Rhee’ group Default for Linux Most sockets in MAC appear to use cubic as well sysctl -a If you want to see some TCP parameters by a real OS (grep inet.tcp) grep reno cubic

TCP Cubic Goals Improve TCP efficiency over fast, long-distance links with limited buffer TCP friendliness: Follows TCP if TCP gives higher rate

Basic Idea I Minimize waste/effective ratio to increase efficiency W cwnd TD W bottleneck bandwidth ssthresh βW Time Not too small beta to yield for new competition/fairness

Cubic Window Function convex region: fast probing slow down concave region: fast recover where C is a scaling factor, t is the elapsed time from the last window reduction, and β is a constant multiplication decrease factor

Basic Idea II: TCP Friendly Rate with Generic β cwnd TD W Wm ssthresh βW Time Packets per cycle: Assume one loss per cycle: TCP friendly:

Cubic High-Level Structure If (received ACK && state == cong avoid) Compute Wcubic(t) Compute WTCP(t) (form?) Pick the larger one

Outline Admin and recap Transport congestion control/resource allocation what is congestion (cost of congestion) basic congestion control alg. TCP/Reno congestion control TCP Cubic TCP/Vegas

TCP/Vegas (Brakmo & Peterson 1994) SS time window CA Idea: try to detect congestion by delay before loss Objective: not to overflow the buffer; instead, try to maintain a constant number of packets in the bottleneck queue

TCP/Vegas: Key Question How to estimate the number of packets queued in the bottleneck queue(s)? SS time window CA

Recall: Little’s Law For any system with no or (low) loss. Assume mean arrival rate X, mean service time T, and mean number of requests in the system W Then relationship between W, X, and T: T, W X Proof of Little’s Law:

Estimating Number of Packets in the Queue

TCP/Vegas CA algorithm T = Tprop + Tqueueing Applying Little’s Law: xvegas T = xvegas Tprop + xvegas Tqueueing, where xvegas = W / T is the sending rate Then number of packets in the queue is xvegas Tqueueing = xvegas T - xvegas Tprop = W – W/T Tprop (value?)

TCP/Vegas CA algorithm window maintain a constant number of packets in the bottleneck buffer time SS CA for every RTT { if W – W/RTT RTTmin < a then W ++ if W – W/RTT RTTmin > a then W -- } for every loss W := W/2 queue size

Discussions If two flows, one TCP Vegas and one TCP reno run together, how may bandwidth partitioned be among them? What are some other key challenges for TCP/Vegas?