SharkFest'17 US. Understanding Throughput & TCP Windows. A Walk-Through of the Factors that can limit TCP Throughput Performance

Similar documents
Transport Layer PREPARED BY AHMED ABDEL-RAOUF

TCP Congestion Control

TCP Congestion Control

SharkFest 17 Europe. My TCP ain t your TCP. Simon Lindermann. Stack behavior back then and today. Miele & Cie KG.

Computer Networking Introduction

Section #6 Handout. B has processed this packet and updated its position of its sliding window. Everything is in terms of bytes.

Transmission Control Protocol. ITS 413 Internet Technologies and Applications

Topics. TCP sliding window protocol TCP PUSH flag TCP slow start Bulk data throughput

TCP Congestion Control 65KB W

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

TCP congestion control:

Internet Networking recitation #10 TCP New Reno Vs. Reno

CSCI Topics: Internet Programming Fall 2008

Chapter III: Transport Layer

Chapter 3 Transport Layer

Lecture 15: Transport Layer Congestion Control

CS321: Computer Networks Congestion Control in TCP

TCP based Receiver Assistant Congestion Control

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

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

Mid Term Exam Results

Computer Communication Networks Midterm Review

ECE 461 Internetworking. Problem Sheet 6

TCP Review. Carey Williamson Department of Computer Science University of Calgary Winter 2018

image 3.8 KB Figure 1.6: Example Web Page

8. TCP Congestion Control

An Issue in NewReno After Fast Recovery. Yoshifumi Nishida

Congestion Control in TCP

Outline. User Datagram Protocol (UDP) Transmission Control Protocol (TCP) Transport layer (cont.) Transport layer. Background UDP.

Overview. TCP congestion control Computer Networking. TCP modern loss recovery. TCP modeling. TCP Congestion Control AIMD

Q23-5 In a network, the size of the receive window is 1 packet. Which of the follow-ing protocols is being used by the network?

TCP conges+on control

cs/ee 143 Communication Networks

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

Congestion Control in TCP

Congestion Control End Hosts. CSE 561 Lecture 7, Spring David Wetherall. How fast should the sender transmit data?

TCP Congestion Control in Wired and Wireless Networks

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

CSC 4900 Computer Networks: TCP

ECE 435 Network Engineering Lecture 10

Page 1. Review: Internet Protocol Stack. Transport Layer Services. Design Issue EEC173B/ECS152C. Review: TCP

OPNET M-TCP model. Modupe Omueti

Advanced Computer Networks

EE122 MIDTERM EXAM: Scott Shenker, Ion Stoica

Introduc)on to Transport Protocols

Chapter 6. What happens at the Transport Layer? Services provided Transport protocols UDP TCP Flow control Congestion control

Chapter 3- parte B outline

Chapter 3 Transport Layer

Why Your Application only Uses 10Mbps Even the Link is 1Gbps?

Fast Retransmit. Problem: coarsegrain. timeouts lead to idle periods Fast retransmit: use duplicate ACKs to trigger retransmission

Congestion Control In The Internet Part 2: How it is implemented in TCP. JY Le Boudec 2014

Intro to LAN/WAN. Transport Layer

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

Performance Analysis of TCP Variants

Page 1. Review: Internet Protocol Stack. Transport Layer Services EEC173B/ECS152C. Review: TCP. Transport Layer: Connectionless Service

The Transport Layer Congestion control in TCP

TCP Congestion Control in Wired and Wireless networks

Congestion Control In The Internet Part 2: How it is implemented in TCP. JY Le Boudec 2014

ECE4110, Internetwork Programming, QUIZ 2 - PRACTICE Spring 2006

Networked Systems and Services, Fall 2018 Chapter 3

Outline. CS5984 Mobile Computing

CSCI-1680 Transport Layer III Congestion Control Strikes Back Rodrigo Fonseca

Networked Systems and Services, Fall 2017 Reliability with TCP

TCP Performance. EE 122: Intro to Communication Networks. Fall 2006 (MW 4-5:30 in Donner 155) Vern Paxson TAs: Dilip Antony Joseph and Sukun Kim

CSC 8560 Computer Networks: TCP

Report on Transport Protocols over Mismatched-rate Layer-1 Circuits with 802.3x Flow Control

Congestion Control. Principles of Congestion Control. Network assisted congestion. Asynchronous Transfer Mode. Computer Networks 10/23/2013

Flow and Congestion Control Marcos Vieira

TRANSMISSION CONTROL PROTOCOL

Lecture 15: TCP over wireless networks. Mythili Vutukuru CS 653 Spring 2014 March 13, Thursday

Chapter 3 Transport Layer

Advanced Congestion Control (Hosts)

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

Fall 2012: FCM 708 Bridge Foundation I

Congestion Control In The Internet Part 2: How it is implemented in TCP. JY Le Boudec 2015

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

TCP Congestion Control

The Transport Layer: TCP & Congestion Control

Transport Layer. -UDP (User Datagram Protocol) -TCP (Transport Control Protocol)

CSCD 330 Network Programming Winter 2015

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

Flow and Congestion Control (Hosts)

TCP Sendbuffer Advertising. Costin Raiciu University Politehnica of Bucharest

Reliable Transport II: TCP and Congestion Control

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

Reliable Transport II: TCP and Congestion Control

CNT 6885 Network Review on Transport Layer

Computer Networks and Data Systems

COMP/ELEC 429/556 Introduction to Computer Networks

Congestion / Flow Control in TCP

The Transport Layer: Review

Wireless TCP Performance Issues

Correcting mistakes. TCP: Overview RFCs: 793, 1122, 1323, 2018, TCP seq. # s and ACKs. GBN in action. TCP segment structure

CSE 123A Computer Networks

TCP. CSU CS557, Spring 2018 Instructor: Lorenzo De Carli (Slides by Christos Papadopoulos, remixed by Lorenzo De Carli)

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

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

Advanced Computer Networks

CMPE 257: Wireless and Mobile Networking

Transcription:

SharkFest'17 US Understanding Throughput & TCP Windows A Walk-Through of the Factors that can limit TCP Throughput Performance Kary Rogers Director, Staff Engineering Riverbed Technology

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 Who owns it? of the Protocol Stack

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

Contact kary@packetbomb.com @packetbomb Packetbomb.com