CSCI Topics: Internet Programming Fall 2008

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

Chapter 3 Transport Layer

Computer Networking Introduction

Chapter 3 Transport Layer

Chapter 3 Transport Layer

CSCI Topics: Internet Programming Fall 2008

Chapter III: Transport Layer

Mid Term Exam Results

CSC 4900 Computer Networks: TCP

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

CNT 6885 Network Review on Transport Layer

CC451 Computer Networks

Lecture 8. TCP/IP Transport Layer (2)

Lecture 11. Transport Layer (cont d) Transport Layer 1

Congestion Control. Principles of Congestion Control. Network-assisted Congestion Control: ATM. Congestion Control. Computer Networks 10/21/2009

Principles of congestion control

Flow and Congestion Control (Hosts)

Chapter 3 Transport Layer

CSCD 330 Network Programming Winter 2015

Lecture 15: Transport Layer Congestion Control

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

Chapter 3- parte B outline

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

Transport Layer Congestion Control

The Transport Layer Congestion control in TCP

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

CSC 8560 Computer Networks: TCP

Transport Layer PREPARED BY AHMED ABDEL-RAOUF

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

CS321: Computer Networks Congestion Control in TCP

Detecting half-open connections. Observed TCP problems

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

TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581

TCP congestion control:

CSCD 330 Network Programming Spring 2018 Lecture 11a Transport Layer

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

Chapter III: Transport Layer

Transmission Control Protocol. ITS 413 Internet Technologies and Applications

CSCI Topics: Internet Programming Fall 2008

Congestion Control in TCP

Go-Back-N. Pipelining: increased utilization. Pipelined protocols. GBN: sender extended FSM

Transport Protocols and TCP

Congestion Control in TCP

What is Congestion? Congestion: Moral of the Story. TCP Approach. Transport Layer: TCP Congestion Control & Buffer Management

Data Communications & Networks. Session 9 Main Theme Network Congestion Causes, Effects, Controls, and TCP Applications. Dr. Jean-Claude Franchitti

Good Ideas So Far Computer Networking. Outline. Sequence Numbers (reminder) TCP flow control. Congestion sources and collapse

The Transport Layer: TCP & Congestion Control

3.7 TCP congestion. reliable data transfer. sliding window. Lecture 4: Transport layer III: flow control and congestion control & Network layer I: IP

ECE 610: Homework 4 Problems are taken from Kurose and Ross.

TCP: Overview RFCs: 793,1122,1323, 2018, 2581

Application. Transport. Network. Link. Physical

Chapter 3 Transport Layer

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

Fall 2012: FCM 708 Bridge Foundation I

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

image 3.8 KB Figure 1.6: Example Web Page

Transport layer. UDP: User Datagram Protocol [RFC 768] Review principles: Instantiation in the Internet UDP TCP

Master Course Computer Networks IN2097

Transport layer. Review principles: Instantiation in the Internet UDP TCP. Reliable data transfer Flow control Congestion control

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

LECTURE 3 - TRANSPORT LAYER

By Ossi Mokryn, Based also on slides from: the Computer Networking: A Top Down Approach Featuring the Internet by Kurose and Ross

Congestion Control in TCP

Computer Networking: A Top Down Approach

Flow and Congestion Control Marcos Vieira

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

Congestion control in TCP

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

TCP Congestion Control

TCP Congestion Control

Chapter 6 Transport Layer

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

Chapter 3: Transport Layer

UNIT IV -- TRANSPORT LAYER

rdt3.0: channels with errors and loss

Congestion Control in TCP

Master Course Computer Networks IN2097

CS Transport. Outline. Window Flow Control. Window Flow Control

CSCE 463/612 Networks and Distributed Processing Spring 2017

Chapter 3 Transport Layer

Internet Applications and the Application Layer Material from Kurose and Ross, Chapter 2: The Application Layer

Congestion Control in TCP

CSCI-1680 Transport Layer II Data over TCP Rodrigo Fonseca

Wireless TCP Performance Issues

Our goals: understand d principles. behind transport layer protocols in the. Internet: layer services:

Congestion Control 3/16/09

Foundations of Telematics

Congestion Control. Queuing Discipline Reacting to Congestion Avoiding Congestion. Issues

Chapter 3 Transport Layer

Bandwidth Allocation & TCP

ADVANCED COMPUTER NETWORKS

Master Course Computer Networks IN2097

Transport Layer (Congestion Control)

CS 5520/ECE 5590NA: Network Architecture I Spring Lecture 13: UDP and TCP

CSC 401 Data and Computer Communications Networks

ECE697AA Lecture 3. Today s lecture

Congestion Collapse in the 1980s

Outline. CS5984 Mobile Computing

15-744: Computer Networking TCP

TCP Congestion Control

Transcription:

CSCI 491-01 Topics: Internet Programming Fall 2008 Transport Layer Derek Leonard Hendrix College October 20, 2008 Original slides copyright 1996-2007 J.F Kurose and K.W. Ross 1

Chapter 3: Roadmap 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles of reliable data transfer 3.5 Connection-oriented transport: TCP Segment structure Reliable data transfer Flow control Connection management 3.6 Principles of congestion control 3.7 TCP congestion control 2

Principles of Congestion Control Congestion: Informally: too many sources sending too much data too fast for the network to handle Different from flow control! Manifestations: Lost packets (buffer overflow at routers) Long delays (queueing in router buffers) Very important networking problem

Causes/costs of Congestion: Scenario 1 Two senders, two receivers One router, infinite buffers Host B Host A λin : original data unlimited shared output link buffers λ out No retransmission Cost 1: large network delays in congested routers

Causes/costs of Congestion: Scenario 2 One router, finite buffers (pkt loss is possible now) Sender retransmission of lost packet Host B Host A λ in : original data λ int : original data plus retransmitted data λ out finite shared output link buffers

Causes/costs of Congestion: Scenario 2 Always: λ out = λ in, which we call goodput C/2 Case A: pkts never lost while λ in < C/2 (not realistic) Case B: pkts are lost when λ in is sufficiently large, but timeouts are perfectly accurate (not realistic either) Case C: same as B, but timer is not perfect (duplicate packets are possible) C/2 pkt loss started C/2 pkt loss started λ out λ in T A. C/2 λ out λ in T B. C/2 λ out Cost 2: retransmission of lost packets and premature timeouts increase network load, but do nothing for the goodput C. λ in T C/2

Causes/costs of Congestion: Scenario 3 Four senders Multihop paths Timeout/retransmit Cost 3: congestion causes bandwidth waste at other routers severe congestion because flow C-A sends too much traffic Host A green flow D-B is affected by junk pkts that are lost at router R2 Host D R1 Host B R2 R3 finite shared output link buffers R4 Host C

How to Deal with Congestion? Suppose user A sends at rate C and a new user B joins to send at initial rate C/2 Can both users continue sending at the same rate? Assume that λ is their combined rate and both senders implement a reliable service (e.g., TCP) Step1: send λ > C pkts and lose x 1 = λ - C of them Step2: send λ pkts and x 1 retx ed pkts; observe that x 2 = λ + x 1 - C = 2(λ - C) = 2x 1 are lost Step3: send λ + x 2 and observe that loss is now 3x 1 pkts Eventually, almost all sent packets are retransmissions The only solution: reduce sending rate in response to congestion

Approaches Towards Congestion Control Two broad approaches towards congestion control: End-to-end: No explicit feedback from network Congestion inferred by end-systems from observed loss/delay Approach taken by TCP Network-assisted: Routers provide feedback to end systems Single bit indicating congestion (DECbit, TCP/IP ECN, ATM) Explicit rate senders should send at (ATM)

Chapter 3: Roadmap 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles of reliable data transfer 3.5 Connection-oriented transport: TCP Segment structure Reliable data transfer Flow control Connection management 3.6 Principles of congestion control 3.7 TCP congestion control

TCP Congestion Control TCP congestion control has a variety of algorithms developed over a number of years TCP Tahoe (1988) TCP Reno (1990) Behavior of TCP depends on what phase it is in and what events occur: Timeout W = 1 Slow start ACK received W = W + 1 Timeout W = 1 reach threshold or triple dup ACK Congestion avoidance ACK received W = W + 1/W Triple dup ACK W = W/2

TCP Congestion Control End-to-end control (no network assistance) Sender limits transmission: LastByteSent - LastByteAcked CongWin CongWin is a function of perceived network congestion The effective window is the minimum of CongWin and flow-control window carried in the ACKs How does sender perceive congestion? Loss event = timeout or 3 duplicate acks TCP sender reduces rate (CongWin) after loss event Three mechanisms: AIMD Slow start Conservative after timeout events

TCP AIMD (Additive Increase, Multiplicative Decrease) Additive increase: increase CongWin by 1 MSS every RTT in the absence of loss events: probing congestion window Multiplicative decrease: cut CongWin in half after loss event Peaks are different: # of flows changes or their RTT varies 24 Kbytes loss 16 Kbytes 8 Kbytes time

TCP Equations To better understand TCP, we next derive its AIMD equations (congestion avoidance) Assume that W is the window size in pkts and B = CongWin is the same in bytes (B = MSS * W) General form: Reasoning For each window of size W, we get exactly W acknowledgments in one RTT (assuming no loss!) This increases window size by roughly 1 packet per RTT (0.9 for W=2 and very close to 1 for large W)

TCP Equations What is the equation in terms of B? Equivalently, TCP increases B by MSS per RTT What is the rate of TCP given that its window size is B (or W)? Since TCP sends a full window of pkts per RTT, its ideal rate can be written as:

TCP Slow Start When connection begins, CongWin = 1 MSS Example: MSS = 500 bytes and RTT = 200 msec Q: initial rate? A: 20 kb/s Available bandwidth may be much larger than MSS/RTT Desirable to quickly ramp up to a respectable rate Solution: Slow Start (SS) When a connection begins, it increases rate exponentially fast until first loss event Term slow is used to distinguish this algorithm from earlier TCPs which directly jumped to some huge rate

TCP Slow Start (More) Slow start Double CongWin every RTT Done by incrementing CongWin for every ACK received: W = W+1 per ACK RTT Host A Host B one segment two segments four segments (B = B + MSS per ACK) Summary: initial rate is slow but ramps up exponentially fast time

Refinement Reno: triple ACK, Tahoe: timeout previous timeout Upon timeout: CongWin is set to 1 MSS Window then grows exponentially (slow start) to a threshold, then grows linearly (congestion avoidance) Introduced in TCP Tahoe After 3 dup ACKs: CongWin is cut in half Window then grows linearly Called Fast Recovery Introduced in TCP Reno window W in pkts Philosophy: Three dup ACKs indicate that network is capable of delivering some segments Timeout before 3 dup ACKs is more alarming