What is TCP? Connection-oriented reliable transfer Stream paradigm

Slides:



Advertisements
Similar presentations
TCP Variants.
Advertisements

Introduction 1 Lecture 13 Transport Layer (Transmission Control Protocol) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer.
Simulation-based Comparison of Tahoe, Reno, and SACK TCP Kevin Fall & Sally Floyd Presented: Heather Heiman September 10, 2002.
Different TCP Flavors CSCI 780, Fall TCP Congestion Control Slow-start Congestion Avoidance Congestion Recovery Tahoe, Reno, New-Reno SACK.
24-1 Chapter 24. Congestion Control and Quality of Service (part 1) 23.1 Data Traffic 23.2 Congestion 23.3 Congestion Control 23.4 Two Examples.
Transport Layer 3-1 Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and demultiplexing 3.3 connectionless transport: UDP 3.4 principles.
1 Comnet 2010 Communication Networks Recitation 9 Fairness & TCP Congestion Control.
TCP: Transmission Control Protocol Overview Connection set-up and termination Interactive Bulk transfer Timers Improvements.
Congestion Control Created by M Bateman, A Ruddle & C Allison As part of the TCP View project.
EE 122: Congestion Control The Sequel October 1, 2003.
School of Information Technologies TCP Congestion Control NETS3303/3603 Week 9.
Transport Layer 3-1 outline r TCP m segment structure m reliable data transfer m flow control m congestion control.
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.
TCP Variations Naveen Manicka CISC 856 – Fall 2005 Computer & Information Sciences University of Delaware Nov 10, 2005 Most slides are borrowed from J.
TDC365 Spring 2001John Kristoff - DePaul University1 Internetworking Technologies Transmission Control Protocol (TCP)
Transport Layer3-1 Congestion Control. Transport Layer3-2 Principles of Congestion Control Congestion: r informally: “too many sources sending too much.
Transport Layer 3-1 Outline r TCP m Congestion control m Flow control.
Computer Networks : TCP Congestion Control1 TCP Congestion Control.
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)
Congestion Avoidance and Control CSCI 780, Fall 2005.
Networks : TCP Congestion Control1 TCP Congestion Control.
Networks : TCP Congestion Control1 TCP Congestion Control Presented by Bob Kinicki.
TCP in Heterogeneous Network Md. Ehtesamul Haque # P.
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,
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley Chapter3_3.
1 Transport Protocols (continued) Relates to Lab 5. UDP and TCP.
TCP CS 168 Discussion Week 6 Many thanks to past EE 122 GSIs.
Transmission Control Protocol TCP Part 2 University of Glamorgan Networked & Distributed Systems.
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009.
1 TCP - Part II Relates to Lab 5. This is an extended module that covers TCP data transport, and flow control, congestion control, and error control in.
Lecture 9 – More TCP & Congestion Control
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.
CS 6401 Congestion Control in TCP Outline Overview of RENO TCP Reacting to Congestion SS/AIMD example.
TCP Congestion Control 컴퓨터공학과 인공지능 연구실 서 영우. TCP congestion control2 Contents 1. Introduction 2. Slow-start 3. Congestion avoidance 4. Fast retransmit.
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.
Peer-to-Peer Networks 13 Internet – The Underlay Network
Transmission Control Protocol (TCP) TCP Flow Control and Congestion Control CS 60008: Internet Architecture and Protocols Department of CSE, IIT Kharagpur.
@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.
CSEN 404 Transport Layer II Amr El Mougy Lamia AlBadrawy.
@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.
Other Methods of Dealing with Congestion
Window Control Adjust transmission rate by changing Window Size
TCP - Part II Relates to Lab 5. This is an extended module that covers TCP flow control, congestion control, and error control in TCP.
Transport Layer CS 381 3/7/2017.
Chapter 3 outline 3.1 transport-layer services
Chapter 6 TCP Congestion Control
Introduction to Networks
Introduction to Congestion Control
Transmission Control Protocol (TCP)
TCP - Part II Relates to Lab 5. This is an extended module that covers TCP flow control, congestion control, and error control in TCP.
Lecture 19 – TCP Performance
Other Methods of Dealing with Congestion
Chapter 6 TCP Congestion Control
CS640: Introduction to Computer Networks
CS4470 Computer Networking Protocols
TCP Overview.
EE 122: Lecture 10 (Congestion Control)
Transport Layer: Congestion Control
TCP flow and congestion control
TCP: Transmission Control Protocol Part II : Protocol Mechanisms
Presentation transcript:

What is TCP? Connection-oriented reliable transfer Stream paradigm No packet loss. How? Uses acknowledgments, retransmission, and TO. Stream paradigm Allows sender to generate a stream of bytes; then divide stream into small segments; and then sends each segment in IP datagram. Flow control Receiver advertises window that specifies how many additional bytes it can accept.

What is TCP? TCP connection establishment TCP versus UDP Send SYN seq=x Receive SYN seq=x Send SYN seq=y, Ack x+1 Receive SYN, Ack Send Ack y+1 Receive Ack TCP versus UDP UDP TCP Datagrams, unreliable Connectionless (identified by port) No flow control No congestion control Multimedia applications Segments, reliable Connection-oriented (socket API binding) Flow control Congestion control All the others

TCP Congestion Control Question: How does TCP control network congestion? Specifically, when does TCP increase or decrease its sending rate and how much? Here, we will study how TCP supports network congestion control.

Early TCP Early TCP runs like go-back-n. What if … sender receiver 1. Send up to a window of data 2. Ack for each packet sender receiver 3. If TO, resend from the oldest unacked What if … 1. Packet arrives faster than output link sender router 2. Queue grows and packet drops 3. TO and resend … increase network traffic! Throughput becomes so low Congestion collapse!

Avoid Congestion Collapse? How can we address the congestion collapse problem? Can we adopt self-clocking mechanism in TCP? Self-clocking A new packet is not put into network until the old packet leaves. It is called connection in equilibrium.

Initial Start Goal: Reach equilibrium by opening up the window quickly. 0R 1 1 RTT 1R 2 3 2R 4 6 5 7 3R 8 12 9 13 10 14 11 15 Sender sets cwnd to 1. As Ack arrives, cwnd is increased by one segment. Slow start: exponential increase of cwnd.

Congestion Avoidance After slow start, what happens? ssthresh Slow Start TCP cwnd We want to ensure that cwnd does not increase exponentially forever. In congestion avoidance, cwnd is increased by 1/cwnd segments (approx. 1 segment per RTT) for one Ack received (additive increase).

Congestion Avoidance What if TO occurs? It indicates network congestion. Update ssthresh = max(2, min(cwnd/2, rwnd)) segments This is multiplicative decrease! cwnd = 1 System goes back to slow start. That’s why CA is called AIMD (Additive Increase Multiplicative Decrease). AIMD in CA is known to be stable, i.e., converges to a fair share condition.

Can We Do Better? TCP Tahoe (SS, CA, FR) Usually TO takes long and degrades TCP performance. Is there a way to learn network congestion earlier than TO? 1. Send segments 0 to 5 Segment 2 gets lost 2. dupAcks(2) sender receiver 3. Fast retransmit after 3 dupAcks and go back to SS TCP Tahoe (SS, CA, FR)

Even Better? In TCP Tahoe, should we go back to SS after fast retransmit? Why? In addition to packet loss, doesn’t dupAck also indicate that a segment has left the network ? 3 dupAcks sender receiver Retransmits lost segment Reduces ssthresh by half Reduces cwnd by half Inflates cwnd by one segment for each dupAck (self-clocking) Comes out of this Fast Recovery when it receives ack for lost segment. TCP Reno (SS, CA, Fast Recovery) Reno tries to keep track of the number of dupAcks to estimate the amount of outstanding data in the net. What if there are multiple segment losses?

TCP Congestion Control Slow-Start Congestion Avoidance cwnd Additive Increase Multiplicative Decrease (AIMD) ssthresh 1 TCP-Reno 3 DupAck Timeout time new ssthresh = cwnd / 2

Vegas Dream? So far, all the schemes use Acks to infer packet losses to detect network congestion and devise self-clocking. Can we estimate expected throughput of a connection and use it for cwnd increase or decrease? Congestion avoidance Expected throughput = current cwnd / min RTT Actual throughput = bytes xmitted / measured RTT Diff = expected throughput - actual throughput If Diff < alpha, linear increase of cwnd (good condition) Else if Diff > beta, linear decrease of cwnd (congestion)

TCP Vegas Slow start Retransmission Exponential increase cwnd every other RTT. Calculate Diff using the other RTT. Transition from SS to CA occurs when actual throughput is lower than expected throughput by gamma. Retransmission A segment is retransmitted after one dupAck. This will be helpful when cwnd small or multiple segment losses. TCP Vegas was popular due to its more accurate estimation. It was, however, never widely deployed. Why?