Understanding Throughput & TCP Windows

Slides:



Advertisements
Similar presentations
CS144 Review Session 4 April 25, 2008 Ben Nham
Advertisements

TCP Variants.
LOGO Transmission Control Protocol 12 (TCP) Data Flow.
Simulation-based Comparison of Tahoe, Reno, and SACK TCP Kevin Fall & Sally Floyd Presented: Heather Heiman September 10, 2002.
3/2/2001Hanoch Levy, CS, TAU1 TCP Behavior and Performance Workshop on QoS Hanoch Levy April 2004.
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.
TCP: Transmission Control Protocol Overview Connection set-up and termination Interactive Bulk transfer Timers Improvements.
1 TCP - Part II. 2 What is Flow/Congestion/Error Control ? Flow Control: Algorithms to prevent that the sender overruns the receiver with information.
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.
Transport Layer 3-1 Outline r TCP m Congestion control m Flow control.
CSCE 515: Computer Network Programming Chin-Tser Huang University of South Carolina.
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #7 TCP New Reno Vs. Reno.
1 Internet Networking Spring 2002 Tutorial 10 TCP NewReno.
CSCE 515: Computer Network Programming Chin-Tser Huang University of South Carolina.
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.
1 Internet Networking Spring 2004 Tutorial 10 TCP NewReno.
TCP: flow and congestion control. Flow Control Flow Control is a technique for speed-matching of transmitter and receiver. Flow control ensures that a.
COMT 4291 Communications Protocols and TCP/IP COMT 429.
TCP: Transmission Control Protocol Overview Connection set-up and termination Interactive Bulk transfer Timers Improvements.
2000 년 11 월 20 일 전북대학교 분산처리실험실 TCP Flow Control (nagle’s algorithm) 오 남 호 분산 처리 실험실
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.
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
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.
1 TCP - Part II. 2 What is Flow/Congestion/Error Control ? Flow Control: Algorithms to prevent that the sender overruns the receiver with information.
Advance Computer Networks Lecture#09 & 10 Instructor: Engr. Muhammad Mateen Yaqoob.
TCP OVER ADHOC NETWORK. TCP Basics TCP (Transmission Control Protocol) was designed to provide reliable end-to-end delivery of data over unreliable networks.
Internet Networking recitation #11
ECE 4110 – Internetwork Programming
CS 6401 Congestion Control in TCP Outline Overview of RENO TCP Reacting to Congestion SS/AIMD example.
Fall 2004FSU CIS 5930 Internet Protocols1 TCP – Data Exchange Reading: Section 24.4.
Peer-to-Peer Networks 13 Internet – The Underlay Network
Increasing TCP's CWND based on Throughput draft-you-iccrg-throughput-based-cwnd-increasing-00 Jianjie You IETF92 Dallas.
Transmission Control Protocol (TCP) TCP Flow Control and Congestion Control CS 60008: Internet Architecture and Protocols Department of CSE, IIT Kharagpur.
DMET 602: Networks and Media Lab Amr El Mougy Yasmeen EssamAlaa Tarek.
Window Control Adjust transmission rate by changing Window Size
TCP - Part II.
DMET 602: Networks and Media Lab
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)
Approaches towards congestion control
Chapter 3 outline 3.1 transport-layer services
The Transport Layer (TCP)
Chapter 6 TCP Congestion Control
CS-1652 Jack Lange University of Pittsburgh
Introduction to Networks
Introduction to Congestion Control
5. End-to-end protocols (part 1)
Chapter 17 and 18: TCP is connection oriented
Transport Protocols over Circuits/VCs
Hojun Lee TCP enhancements Hojun Lee 11/8/2018.
Precept 2: TCP Congestion Control Review
Chapter 5 TCP Transmission 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
TCP - Part II Suman Banerjee CS 640, UW-Madison
PUSH Flag A notification from the sender to the receiver to pass all the data the receiver has to the receiving application. Some implementations of TCP.
Chapter 6 TCP Congestion Control
If both sources send full windows, we may get congestion collapse
CS4470 Computer Networking Protocols
TCP Congestion Control
Transport Layer: Congestion Control
TCP flow and congestion control
Chapter 3 Transport Layer
TCP: Transmission Control Protocol Part II : Protocol Mechanisms
Review of Internet Protocols Transport Layer
Presentation transcript:

Understanding Throughput & TCP Windows A Walk-Through of the Factors That Can Limit TCP Tput Performance

Agenda TCP ownership Level set terms Receiver side factors Sender side factors Other factors Checklist

Why Do We Care About TCP? TCP: The Red Headed Step Child of the Protocol Stack Who owns it?

What is Bandwidth?

What is Throughput?

What is the Difference? Bandwidth is the total, raw capacity Throughput is what you‘re actually getting We will focus on throughput of a single connection

What is BDP? The amount of data TCP should have within the transmission path at any one time in order to fully utilize the available capacity i.e. golf balls in a PVC pipe

How Much Data Can We Send? BDP

The Setup

What are the factors? Amount of data the receiver says it can receive Amount of data the sender thinks it can send

Receiver Receive window - RWIN, RWND, SO_RCVBUF Amount of free space in the receiver‘s socket buffer The application reads data from the buffer to free space Advertised in every packet in the TCP header

Receiver 16 bit integer – 64k max Window scaling allows up to 1G – RFC 1323 Must be supported by both hosts

Receiver

How Much Data Can We Send? MIN (RWIN, BDP)

Receiver To the PCAP!

Sender Bytes in flight Congestion window - CWND Send buffer

Sender – Bytes in Flight Sender side of RWIN Amount of data that has been sent on the wire but not yet acknowleged i.e. in flight

Sender – Bytes in Flight

Sender – Bytes in Flight To the PCAP!

Sender – CWND Sender side flow control based on network conditions and capacity A state variable – not in the TCP header Referred to in multiples of MSS Starts small – 2, 4, 10 Increases exponentially during slow start Increases linearly after slow start (cwnd > ssthresh) Increases until RWIN or packet loss

Sender – CWND

Sender – CWND Sender is bound by CWND even if RWIN is large Growth of CWND in recovery depends on algorithm Windows client uses New Reno Windows server uses DCTCP or CTCP Linux uses CUBIC CWND visibility TCP Analyzer tool on Windows ss tool on Linux

Sender – CWND

How Much Data Can We Send? MIN (CWND, RWIN, BDP)

Sender – CWND To the PCAP!

Sender – Send Buffer Size of socket buffer application is writing to OS default or set by application Optimal size depends on BDP Send buffer limit determines how much data is kept outstanding in TCP for one blocking or non-blocking send request More info on MSDN in the Remarks sections

Sender – Send Buffer

How Much Data Can We Send? MIN (SNDBUF, CWND, RWIN, BDP)

Sender – Send Buffer To the PCAP!

Throughput Checklist What is the BDP? Bandwidth x Latency What is the advertised window of the receiver? Are bytes in flight (cwnd) increasing and reaching BDP or RWIN? No? Does the sender stop and wait for ACKs after sending the same amount of data over and over? - send buffer Is there packet loss (retransmissions, dup ACKs) preventing cwnd from growing? - congestion Yes? – Great!

Throughput Checklist What are we missing? Delayed ACKs Nagle Hansang‘s video

Throughput Checklist What if there‘s no unacknowleged data but a delay? Application delay User interaction delay

Catch me or any other presenter Questions? Catch me or any other presenter also ask.wireshark.org

Contact Fill out the session survey! kary@packetbomb.com @packetbomb