Networked Systems and Services, Fall 2017 Reliability with TCP
|
|
- Darcy Greene
- 5 years ago
- Views:
Transcription
1 Networked Systems and Services, Fall 2017 Reliability with TCP Jussi Kangasharju Markku Kojo Lea Kutvonen
2 4. Transmission Control Protocol (TCP) RFC more than hundred other RFCs TCP Loss Recovery mechanisms (not exhaustive): Timer (RTO) Recovery & TCP Reno [RFC 5681] TCP NewReno [RFC 3782, RFC 6582] Limited Transmit [RFC 3042] TCP SACK-based Loss Recovery [ based Loss Recovery [RFC 2018, RFC 6675] 2
3 Remember the Protocol Stack? End-to-end Argument? User Application Transport Network What is the right place to implement reliability? Transport is lowest level end-to-end protocol(in theory) Network User Application Transport Network Link Link Link Physical Physical Physical
4 Transport Layer Application Presentation Session Transport Network Data Link Physical Function: Demultiplexing (port numbers) Optional functions (TCP provides): Creating long lived connections Reliable, in-order packet delivery Error detection Flow and congestion control Key challenges: Efficient data delivery in the presence of losses Detecting and responding to congestion Balancing fairness against high utilization 4
5 TCP Transport Service to Applications Connections, 3 Phases of communication Connection establishment, data transfer, connection termination Bidirectional byte stream TCP does not provide messages ==> Applications have to take care of message boundaries! (cf., Unix pipes) Reliable transport No data loss or corruption, data delivered in order, no duplication of data Flow control Congestion control (with approximate fairness) 5
6 TCP Segment Format Source port Destination port TCP header length Reserved Checksum Checksum Sequence number Acknowledgement number U A PRSF RCS S Y I G K H T N N Window Urgent pointer Options (0 or more 32 bit words) (padding) Payload (optional) 6
7 TCP Options Options field for optional features Option space limited - TCP header length field (= 4 bits) indicates the length of the header in 32-bit words => Header max length 15*4 bytes = 60 bytes - 20 bytes for the fixed header => max. 40 bytes for options Option type Option length Option value 1 byte 1 byte length - 2 bytes 7
8 Connection Setup Why do we need connection setup? To establish state on both hosts Most important state: sequence numbers - Count the number of bytes that have been sent&received - Initial value chosen at random - Why? Client Server isn = initial sequence number 8
9 Data Transfer & Sequence Number Space TCP uses a byte stream abstraction Each byte in each stream is (implicitly) numbered 32-bit value, wraps around Initial, random values selected during setup Byte stream broken down into segments (packets) Size limited by the Maximum Segment Size (MSS) MSS set to limit IP fragmentation MSS is based on the local link MTU size and the Receiver MSS negotiated during the connection setup (MSS Option) OR using Path MTU Discovery Each segment has a sequence number Segment 8 Segment 9 Segment 10 9
10 TCP Connection Termination Client Server Close Close Timed wait 2*MSL Closed Time Time Closed 10
11 How are TCP Acks Generated? Acknowledgement number indicates the sequence number that receiver expects to receive next Highest Sequence number received in order + 1 Acknowledgements are cumulative ACK number k implies ACKs all sequences numbers < k Delayed ACKs Receiver does not need to acknowledge each segment separately At least every second (full-sized) segment should be acknowledged Sending ACK is delayed at most 500 msec, if the next segment in order has not arrived - Many implementations use delayed ACK timer value of 200 msec Out-of-order order segments are acknowledged immediately! Send ACK for the highest sequence number received in order 11
12 TCP Congestion Control TCP congestion control is one of the most important functions to ensure the operation of the Internet When routers become congested, they have to drop packets Congestion control is intertwined with the loss recovery and thereby with TCP performance Congestion window,cwnd, controls how much unacknowledged data can be in flight in the network (FlightSize) Largest allowed sequence number when sending = highest acknowledged sequence number + cwnd 12
13 TCP self-clocking (ack-clocking) clocking) TCP sender network TCP receiver Data segments Next to send cwnd ACKs first unacknowledged ACK arrives ==> a data segment has left the network, so TCP sender can send more data (the same amount that left the network) Acknowledgements control the transmission rate (ack clocking) and direct how cwnd is updated 13
14 Slow Start Slow Start is used, when the network state is considered unknown At the beginning of the TCP connection (Initial Slow Start) After retransmission timer expires (in RTO Recovery) When there has not been anything to send for a while (Restart After Idle) Purpose of the Slow Start Start ACK clocking Determine the available network capacity Basic idea Increasecwndcwnd until segment loss is detected = network becomes congested ORcwnd reaches Slow Start Threshold (ssthresh) cwnd is increased at most by one MSS per arriving new acknowledgement (an ACK that acknowledges new data) -cwnd gets roughly doubled per each Round-Trip Time (RTT) * exponential growth as function of RTT 14
15 cwnd starts from 1 MSS Slow Start Cwnd can be larger for Initial Slow Start and Restart After Idle Sender cwnd = 1 SMSS 1. RTT Receiver Data segment cwnd = 2 SMSS 2. RTT ACK cwnd = cwnd = 3 SMSS 4 SMSS 3. RTT Slow Start also effectively diverts RTO Recovery away from go-back back-n 15
16 Retransmission Timeout (RTO) Recovery Retransmission timer is set when data segment is sent When retransmission timer expires, it starts the RTO loss recovery with congestion control actions: cwnd = 1 MSS; ssthresh = max (FlightSize/2, 2*SMSS) (*) Retransmit first unacknowledged segment Continue (re)transmission in Slow Start until cwnd > ssthresh after which enter Congestion Avoidance Each new ACK indicates next sequence number (segment) to retransmit When there are no more segments to retransmit, continue by transmitting new data (*) FlightSize= the amount of unacknowledged data a TCP sender has in fligh ssthresh (Slow-Start Start Threshold) is used to indicate previously observed safe sending rate 16
17 RTO Recovery For simplicity: MSS = 1 B (byte) Sender Receiver Assume TCP cwnd = 4 MSS Ack =2 RTO Ack =2 Ack=2 Timer expires, enter RTO loss recovery! ssthresh= 2; cwnd = 1 cwnd = 2 Recovery Done... Time... Time 17
18 Retransmission timer [RFC 6298] Retransmission timer runs for the first unacknowledged segment Important to find a proper value for the retransmission timer: Too big timer value: start of the loss recovery is delayed - Slows down the start of loss recovery Too small timer value: timer expires spuriously - Results in unnecessary retransmissions, in the worst case full window of data is unnecessarily retransmitted! - Results also in unnecessary congestion response (transmission rate decreased) Initial RTO value >= 1 sec (recently changed from 3 to 1 sec) - After this, a proper value is estimated (computed) dynamically from the measured Round-Trip Time (RTT) 18
19 Calculating RTO timer value RTT is measured continuously when ACKs arrive TCP sender calculates weighted moving average, to be used as the smoothed RTT:SRTT SRTT is updated each time an RTT sample is measured (at least once per window, i.e., once per RTT) SRTT = (1- )*SRTT + *RTTsample where = 1/8 = Calculates also RTT variation,rttvar RTTvar =(1- )* )*RTTvar + * RTTsample-SRTT where = 1/4 = 0.25 Timer value: RTO = SRTT + 4*RTTvar 19
20 RTT Sample Ambiguity RTO Sample RTO Sample? What is RTT of a retransmitted segment? 20
21 Accurate measurement of RTO Solution to acknowledgement ambiguity: Karn s algorithm Don t update the RTT estimate for retransmitted segments After RTO, use Exponential backoff to increase the timeout Keep this increased RTO value until an acknowledgement for a new data segment arrives, allowing new valid RTT sample How often RTT samples are measured? Some implementations take only one sample per window (= one per RTT) - RFC 6298 requires at least once per RTT Many newer implementations, e.g., Linux, measures RTT for each valid segment In practice only one retransmission timer is running at a time For the first unacknowledged segment Timer is restarted each time when an ACK that acknowledges new data arrives ==> effective timer value = RTO + 1 RTT 21
22 Fast Retransmit Duplicate ACK (dupack dupack) When an out-of-order order data segment arrives at a TCP receiver, the TCP receiver acknowledges immediately with a pure ACK the highest sequence number received in order (i.e., the same acknowledgement number as in the ACK that acknowledged the last segment received in order) Receiving dupacks indicates that Segments are leaving the network Ack clocking works A segment has been received out-of-order order and what is the expected sequence number After receiving 3 consecutive dupacks, TCP sender Fast Retransmits the first unacknowledged segment Sets cwnd & ssthresh (see steps 1&2 on next slide) After the Fast Retransmit, the sender continues in Fast Recovery 22
23 NewReno [RFC 6582, (old: RFC 3782 * )] Fast Recovery (Reno) first implemented 1990 Improved Solution: NewReno Allows recovering more than one lost segment in the same window of data * See RFC 3782 for possibly easier to understand description 23
24 Fast Recovery (NewReno) recover variable is used to determine when recovery is over (and to avoid multiple false Fast Retransmits) Fast Retransmit & Fast Recovery (NewReno) triggered by 3 rd DupACK: 1. Set recover = highest sequence number transmitted so far" Set ssthresh = max (FlightSize / 2, 2*MSS) ) and 2. Retransmit the first unacknowledged segment and set cwnd = ssthresh + 3*MSS 3. For each additional duplicate ACK received while in Fast Recovery, increment cwnd by one SMSS 4. Transmit a new segment, if allowed by the new value of cwnd (andrwnd) 5. When an ACK arrives that acknowledges new data, a) If this ACK acknowledges all of the data up to and including "recover", then recovery is completed; b) Otherwise, acknowledgement is a Partial ACK and recovery should continue (see next slide) Step 3 allows transmitting new data also during loss recovery 24
25 NewReno/Step 5 b): Partial ACK On each Partial ACK Retransmit first unacknowledged segment Deflatecwnd by the amount of new data acknowledged by the Partial ACK. If the partial ACK acknowledges at least one SMSS of new data, then add back SMSS bytes tocwnd Transmit a new segment, if allowed by the new value of cwnd Continue Fast Recovery - Repeat steps 3&4 on arrival of dupack - Repeat step 5 on arrival of an ACK that acknowledges new data 25
26 Fast Retransmit&Fast Recovery (NewReno) Sender Receiver For simplicity: MSS = 1B cwnd = 6 ssthresh=3; cwnd = 3+3 = 6; Recover =7 cwnd = = 5 FlightSize = 5 cwnd = = 4 FlightSize = 4 cwnd = 4+1 = 5 Recovery Done cwnd = 3 Time... Time 26
27 Problem: Limited Transmit [RFC 3042] If cwnd is small (cwnd < 4 ), OR several segments are dropped in a single window ==> It is possible that TCP sender cannot receive three dupacks ==> TCP sender has to wait for retransmission timeout and recover using Slow Start (with drasticcwndcwnd reduction) This delays the start of a recovery and is inefficient Solution: Limited Transmit Transmit a new data segment on each of the first two dupacks Transmitting new data segments can be allowed as a dupack indicates that a segment has left the network New data segments trigger more dupacks 27
28 Limited Transmit For simplicity: MSS = 1B Sender Receiver cwnd = 3 Ack =2 Ack =3 No need to wait for RTO, as three dupacks arrive RTO Fast Retransmit Time Time 28
29 TCP Selective Acknowledgements [RFC 2018, RFC 6675] Duplicate ACKs indicate only one missing segment (next expected) Similarly each cumulative ACK during recovery (i.e., NewReno partial ack) indicates only one missing segment (next expected) ==> NewReno Fast Recovery can recover only one segment per RTT ==> In RTO recovery several segments are often unnecessarily retransmitted Selective Acknowledgement (SACK) option allows identifying several missing segments with a single dupack 29
30 SACK option (RFC 2018) TCP SACK-permitted option type =4 length=2 1 byte 1 byte Used in connection establishment (with SYN segments) to negotiate the use of SACK option TCP SACK option Carries information about sequence number ranges that have arrived successfully, but out-of-order, order, at the receiver (stored in the receive buffer) 30
31 TCP SACK option type =5 length=n Beginning of the 1 st block (seq.no) End of the 1st block (seq.no+1) Beginning of the 2 nd block (seq.no) End of the 2 nd block (seq.no+1) Beginning of the 3 rd block (seq.no) End of the 3 rd block (seq.no+1) One TCP segment may carry max 4 SACK blocks, as max 40 bytes have been reserved for TCP options (use of other TCP options reduces this). 31
32 Sending SACK option Always, when acknowledging an out-of-order order segment (i.e., always, when acknowledging other than the highest sequence number that has arrived) SACK option includes as many latest sequence number ranges as possible Each arrived segment (block) becomes reported several times (i.e., repeated with the later ACKs) First block in the SACK option includes the segment that triggered the acknowledgement SACK information is only informative for the TCP sender TCP sender must not remove a segment from its send buffer until a cumulative ACK acknowledging it arrives 32
33 SACK-based Recovery [RFC 6675] With help of the SACK option a TCP sender may recover more than one lost segment within one RTT (cf. NewReno) TCP sender maintains scoreboard data structure with the retransmission queue (updated on arrival of an ACK and after transmitting a segment) SACKed: information whether a SACK block corresponding to the segment has been received HighACK: : sequence number of the highest byte of data that has been cumulatively ACKed HighRxt: : highest sequence number that has been retransmitted during the current loss recovery phase HighData: : highest sequence number transmitted pipe: an estimate of the number of bytes (segments) outstanding in the network cwnd limits transmission of segments during loss recovery; Ifcwnd pipe >= 1 SMSS,, sender can transmit segments If there are segments that are considered lost, retransmit as many lost segments as cwnd allows - a segment is considered lost, if at least 3 discontinuous SACKed sequences have arrived above the segment or more than 2 * SMSS bytes with sequence numbers above the segment have been SACKed If there are not enough lost segments to transmit, transmit as many new data segments ascwnd allows If no lost nor new segments to transmit, follow the rules in Steps (3) & (4) of NextSeg() in RFC 6675 to retransmit one data segment not considered lost 33
34 SACK Fast Retransmit (RFC 6675) If at least 3 segments above HighAck+1 has been SACKed (*): 1. SetRecoveryPoint = HighData; 2. Set ssthresh = cwnd = FlightSize / 2 3. Retransmit the first unacknowledged segment and HighRxt = highest sequence number in the retransmitted segment 4. Recalculate a new value for pipe: Includes all data (segments) that have been sent but not ACKed (either cumulatively or SACKed), but not segments that are considered lost ( = at least 3 later segments after the segment have reached the receiver and have been SACKed) Includes all retransmitted data (segments) (HighACK < seqno <=HighRxt) 5. Ifcwnd pipe >= 1 SMSS,, sender can transmit segments In the first place retransmit lost segments then transmit new data set As many as allowed bycwnd If no lost segments nor new data, send one segment as per Steps (3) & (4) of NextSeg() After transmitting, update HighRxt,HighData andpipe (*) On each ACK with SACKed data, use Limited Transmit to send at most one SMSS of new data ( ifcwnd pipe >= 1 SMSS ) 34
35 SACK Fast Recovery (cont d) On each arriving ACK: A. If cumulative ACK number >RecoveryPoint Recovery completed, exit FastRecovery B. If cumulative ACK number <=RecoveryPoint Update scoreboard with SACK information Update pipe (like in step 4 above) C. Ifcwnd pipe >= 1 SMSS,, sender can transmit segments In the first place retransmit lost segments then transmit new data As many as allowed bycwnd If no lost segments nor new data, send one segment as per Steps (3) & (4) of NextSeg() After transmitting, update HighRxt,HighData andpipe 35
36 segments_sent = sent but not cumulatively acknowledged Scoreboard X = segment dropped by net S = SACKed (SACK-block received for the segment) Seqno: S X S S S S lost X S S X lost HighData RecoveryPoint HighRxt HighAck cwnd = 6; an ACK with SACK for segment 10 arrives: pipe = segments_sent SACKed lost + retransmitted = = 5 -> Send new data segment (13) Update pipe -> pipe = 6; update HighData->13 36
37 Fast Retransmit & Fast Recovery (SACK) Sender Receiver ack=2 For simplicity: MSS = 1B ack=2; SACK 3 cwnd = 6 ack=2; SACK 3, 5 ack=2; SACK 3, 5, 7 RecoveryPoint=7; ssthresh=3 cwnd = 3; pipe =2 pipe =3 ack=4; SACK 5, 7 cwnd = 3; pipe = 2 pipe = 3 ack=4; SACK 5, 7-8 Recovery Done pipe = 1 pipe = 2 pipe = 3 pipe = 2 pipe = 3 pipe = 1 pipe = 2 pipe = 3 pipe = 2 Time ack=6, SACK 7-8 ack=6, SACK 7-9 ack=6, SACK 7-10 ack=11 ack=12 Time 37
38 THE END 38
Networked Systems and Services, Fall 2018 Chapter 3
Networked Systems and Services, Fall 2018 Chapter 3 Jussi Kangasharju Markku Kojo Lea Kutvonen 4. Transport Layer Reliability with TCP Transmission Control Protocol (TCP) RFC 793 + more than hundred other
More informationInternet Networking recitation #10 TCP New Reno Vs. Reno
recitation #0 TCP New Reno Vs. Reno Spring Semester 200, Dept. of Computer Science, Technion 2 Introduction Packet Loss Management TCP Reno (RFC 258) can manage a loss of at most one packet from a single
More information8. TCP Congestion Control
8. TCP Congestion Control 1 TCP Congestion Control Slow-start increase Multiplicative decrease Congestion avoidance Measurement of variation Exponential timer backoff 2002 Yanghee Choi 2 Congestion Control
More informationCongestion / Flow Control in TCP
Congestion and Flow Control in 1 Flow Control and Congestion Control Flow control Sender avoids overflow of receiver buffer Congestion control All senders avoid overflow of intermediate network buffers
More informationTransmission Control Protocol. ITS 413 Internet Technologies and Applications
Transmission Control Protocol ITS 413 Internet Technologies and Applications Contents Overview of TCP (Review) TCP and Congestion Control The Causes of Congestion Approaches to Congestion Control TCP Congestion
More informationTCP 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
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 http://inst.eecs.berkeley.edu/~ee122/ Materials with thanks
More informationCOMP/ELEC 429/556 Introduction to Computer Networks
COMP/ELEC 429/556 Introduction to Computer Networks The TCP Protocol Some slides used with permissions from Edward W. Knightly, T. S. Eugene Ng, Ion Stoica, Hui Zhang T. S. Eugene Ng eugeneng at cs.rice.edu
More informationCS 356: Introduction to Computer Networks. Lecture 16: Transmission Control Protocol (TCP) Chap. 5.2, 6.3. Xiaowei Yang
CS 356: Introduction to Computer Networks Lecture 16: Transmission Control Protocol (TCP) Chap. 5.2, 6.3 Xiaowei Yang xwy@cs.duke.edu Overview TCP Connection management Flow control When to transmit a
More informationTCP/IP Networking. Part 4: Network and Transport Layer Protocols
TCP/IP Networking Part 4: Network and Transport Layer Protocols Orientation Application Application protocol Application TCP TCP protocol TCP IP IP protocol IP IP protocol IP IP protocol IP Network Access
More informationimage 3.8 KB Figure 1.6: Example Web Page
image. KB image 1 KB Figure 1.: Example Web Page and is buffered at a router, it must wait for all previously queued packets to be transmitted first. The longer the queue (i.e., the more packets in the
More informationFast Retransmit. Problem: coarsegrain. timeouts lead to idle periods Fast retransmit: use duplicate ACKs to trigger retransmission
Fast Retransmit Problem: coarsegrain TCP timeouts lead to idle periods Fast retransmit: use duplicate ACKs to trigger retransmission Packet 1 Packet 2 Packet 3 Packet 4 Packet 5 Packet 6 Sender Receiver
More informationTCP and Congestion Control (Day 1) Yoshifumi Nishida Sony Computer Science Labs, Inc. Today's Lecture
TCP and Congestion Control (Day 1) Yoshifumi Nishida nishida@csl.sony.co.jp Sony Computer Science Labs, Inc 1 Today's Lecture Part1: TCP concept Part2: TCP detailed mechanisms Part3: Tools for TCP 2 1
More informationTCP. CSU CS557, Spring 2018 Instructor: Lorenzo De Carli (Slides by Christos Papadopoulos, remixed by Lorenzo De Carli)
TCP CSU CS557, Spring 2018 Instructor: Lorenzo De Carli (Slides by Christos Papadopoulos, remixed by Lorenzo De Carli) 1 Sources Fall and Stevens, TCP/IP Illustrated Vol. 1, 2nd edition Congestion Avoidance
More informationOutline. CS5984 Mobile Computing
CS5984 Mobile Computing Dr. Ayman Abdel-Hamid Computer Science Department Virginia Tech Outline Review Transmission Control Protocol (TCP) Based on Behrouz Forouzan, Data Communications and Networking,
More informationUser Datagram Protocol (UDP):
SFWR 4C03: Computer Networks and Computer Security Feb 2-5 2004 Lecturer: Kartik Krishnan Lectures 13-15 User Datagram Protocol (UDP): UDP is a connectionless transport layer protocol: each output operation
More informationTransport Protocols & TCP TCP
Transport Protocols & TCP CSE 3213 Fall 2007 13 November 2007 1 TCP Services Flow control Connection establishment and termination Congestion control 2 1 TCP Services Transmission Control Protocol (RFC
More informationTCP congestion control:
TCP congestion control: Probing for usable bandwidth: Ideally: transmit as fast as possible (cwnd as large as possible) without loss Increase cwnd until loss (congestion) Loss: decrease cwnd, then begin
More informationGuide To TCP/IP, Second Edition UDP Header Source Port Number (16 bits) IP HEADER Protocol Field = 17 Destination Port Number (16 bit) 15 16
Guide To TCP/IP, Second Edition Chapter 5 Transport Layer TCP/IP Protocols Objectives Understand the key features and functions of the User Datagram Protocol (UDP) Explain the mechanisms that drive segmentation,
More informationOverview. TCP congestion control Computer Networking. TCP modern loss recovery. TCP modeling. TCP Congestion Control AIMD
Overview 15-441 Computer Networking Lecture 9 More TCP & Congestion Control TCP congestion control TCP modern loss recovery TCP modeling Lecture 9: 09-25-2002 2 TCP Congestion Control Changes to TCP motivated
More informationChapter 24. Transport-Layer Protocols
Chapter 24. Transport-Layer Protocols 23.1 Introduction 23.2 User Datagram Protocol 23.3 Transmission Control Protocol 23.4 SCTP Computer Networks 24-1 Position of Transport-Layer Protocols UDP is an unreliable
More informationcs/ee 143 Communication Networks
cs/ee 143 Communication Networks Chapter 4 Transport Text: Walrand & Parakh, 2010 Steven Low CMS, EE, Caltech Recap: Internet overview Some basic mechanisms n Packet switching n Addressing n Routing o
More informationTransport Protocols and TCP: Review
Transport Protocols and TCP: Review CSE 6590 Fall 2010 Department of Computer Science & Engineering York University 1 19 September 2010 1 Connection Establishment and Termination 2 2 1 Connection Establishment
More informationFlow and Congestion Control Marcos Vieira
Flow and Congestion Control 2014 Marcos Vieira Flow Control Part of TCP specification (even before 1988) Goal: not send more data than the receiver can handle Sliding window protocol Receiver uses window
More informationTransport Protocols. Raj Jain. Washington University in St. Louis
Transport Protocols Raj Jain Washington University Saint Louis, MO 63131 Jain@cse.wustl.edu These slides are available on-line at: http://www.cse.wustl.edu/~jain/cse473-05/ 16-1 Overview q TCP q Key features
More informationUNIT IV -- TRANSPORT LAYER
UNIT IV -- TRANSPORT LAYER TABLE OF CONTENTS 4.1. Transport layer. 02 4.2. Reliable delivery service. 03 4.3. Congestion control. 05 4.4. Connection establishment.. 07 4.5. Flow control 09 4.6. Transmission
More informationTCP Service Model. Today s Lecture. TCP Support for Reliable Delivery. EE 122:TCP, Connection Setup, Reliability
Today s Lecture How does TCP achieve correct operation? EE 122:TCP, Connection Setup, Reliability Ion Stoica TAs: Junda Liu, DK Moon, David Zats Reliability in the face of IP s best effort service 3-way
More informationLecture 4: Congestion Control
Lecture 4: Congestion Control Overview Internet is a network of networks Narrow waist of IP: unreliable, best-effort datagram delivery Packet forwarding: input port to output port Routing protocols: computing
More informationOutline Computer Networking. TCP slow start. TCP modeling. TCP details AIMD. Congestion Avoidance. Lecture 18 TCP Performance Peter Steenkiste
Outline 15-441 Computer Networking Lecture 18 TCP Performance Peter Steenkiste Fall 2010 www.cs.cmu.edu/~prs/15-441-f10 TCP congestion avoidance TCP slow start TCP modeling TCP details 2 AIMD Distributed,
More informationTransport Layer. -UDP (User Datagram Protocol) -TCP (Transport Control Protocol)
Transport Layer -UDP (User Datagram Protocol) -TCP (Transport Control Protocol) 1 Transport Services The transport layer has the duty to set up logical connections between two applications running on remote
More informationCSCD 330 Network Programming
CSCD 330 Network Programming Lecture 10 Transport Layer Continued Spring 2018 Reading: Chapter 3 Some Material in these slides from J.F Kurose and K.W. Ross All material copyright 1996-2007 1 Last Time.
More informationChapter 6. What happens at the Transport Layer? Services provided Transport protocols UDP TCP Flow control Congestion control
Chapter 6 What happens at the Transport Layer? Services provided Transport protocols UDP TCP Flow control Congestion control OSI Model Hybrid Model Software outside the operating system Software inside
More informationTransport Layer. Application / Transport Interface. Transport Layer Services. Transport Layer Connections
Application / Transport Interface Application requests service from transport layer Transport Layer Application Layer Prepare Transport service requirements Data for transport Local endpoint node address
More informationfile:///c:/users/hpguo/dropbox/website/teaching/fall 2017/CS4470/H...
1 of 9 11/26/2017, 11:28 AM Homework 3 solutions 1. A window holds bytes 2001 to 5000. The next byte to be sent is 3001. Draw a figure to show the situation of the window after the following two events:
More informationTCP: Flow and Error Control
1 TCP: Flow and Error Control Required reading: Kurose 3.5.3, 3.5.4, 3.5.5 CSE 4213, Fall 2006 Instructor: N. Vlajic TCP Stream Delivery 2 TCP Stream Delivery unlike UDP, TCP is a stream-oriented protocol
More informationTCP Basics : Computer Networking. Overview. What s Different From Link Layers? Introduction to TCP. TCP reliability Assigned reading
TCP Basics 15-744: Computer Networking TCP reliability Assigned reading [FF96] Simulation-based Comparisons of Tahoe, Reno, and SACK TCP L-9 TCP Basics 2 Key Things You Should Know Already Port numbers
More informationLecture 5: Flow Control. CSE 123: Computer Networks Alex C. Snoeren
Lecture 5: Flow Control CSE 123: Computer Networks Alex C. Snoeren Pipelined Transmission Sender Receiver Sender Receiver Ignored! Keep multiple packets in flight Allows sender to make efficient use of
More informationAn Issue in NewReno After Fast Recovery. Yoshifumi Nishida
An Issue in NewReno After Fast Recovery Yoshifumi Nishida nishida@dyyno.com RFC3782 Definition Definition of Fast Retransmit and Fast Recovery Algorithm (Step 5 of fast retransmit fast recovery) When a
More informationAdvanced Computer Networks
Advanced Computer Networks Congestion control in TCP Contents Principles TCP congestion control states Congestion Fast Recovery TCP friendly applications Prof. Andrzej Duda duda@imag.fr http://duda.imag.fr
More informationChapter 3 outline. 3.5 Connection-oriented transport: TCP. 3.6 Principles of congestion control 3.7 TCP congestion control
Chapter 3 outline 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
More informationLecture 3: The Transport Layer: UDP and TCP
Lecture 3: The Transport Layer: UDP and TCP Prof. Shervin Shirmohammadi SITE, University of Ottawa Prof. Shervin Shirmohammadi CEG 4395 3-1 The Transport Layer Provides efficient and robust end-to-end
More information7. TCP 최양희서울대학교컴퓨터공학부
7. TCP 최양희서울대학교컴퓨터공학부 1 TCP Basics Connection-oriented (virtual circuit) Reliable Transfer Buffered Transfer Unstructured Stream Full Duplex Point-to-point Connection End-to-end service 2009 Yanghee Choi
More informationCS457 Transport Protocols. CS 457 Fall 2014
CS457 Transport Protocols CS 457 Fall 2014 Topics Principles underlying transport-layer services Demultiplexing Detecting corruption Reliable delivery Flow control Transport-layer protocols User Datagram
More informationF-RTO: An Enhanced Recovery Algorithm for TCP Retransmission Timeouts
F-RTO: An Enhanced Recovery Algorithm for TCP Retransmission Timeouts Pasi Sarolahti Nokia Research Center pasi.sarolahti@nokia.com Markku Kojo, Kimmo Raatikainen University of Helsinki Department of Computer
More informationTransport layer. UDP: User Datagram Protocol [RFC 768] Review principles: Instantiation in the Internet UDP TCP
Transport layer Review principles: Reliable data transfer Flow control Congestion control Instantiation in the Internet UDP TCP 1 UDP: User Datagram Protocol [RFC 768] No frills, bare bones Internet transport
More informationTransport layer. Review principles: Instantiation in the Internet UDP TCP. Reliable data transfer Flow control Congestion control
Transport layer Review principles: Reliable data transfer Flow control Congestion control Instantiation in the Internet UDP TCP 1 UDP: User Datagram Protocol [RFC 768] No frills, bare bones Internet transport
More informationAnnouncements Computer Networking. Outline. Transport Protocols. Transport introduction. Error recovery & flow control. Mid-semester grades
Announcements 15-441 Computer Networking Lecture 16 Transport Protocols Mid-semester grades Based on project1 + midterm + HW1 + HW2 42.5% of class If you got a D+,D, D- or F! must meet with Dave or me
More informationTCP Congestion Control 65KB W
TCP Congestion Control 65KB W TO 3DA 3DA TO 0.5 0.5 0.5 0.5 3 3 1 SS SS CA SS CA TCP s Congestion Window Maintenance TCP maintains a congestion window (cwnd), based on packets Sender s window is limited
More informationTCP Enhancements in Linux. Pasi Sarolahti. Berkeley Summer School Outline
TCP Enhancements in Linux Pasi Sarolahti Berkeley Summer School 6.6.2002 Outline TCP details per IETF RFC s Pitfalls in the specifications Linux TCP congestion control engine Features Discussion on performance
More informationAdvanced Computer Networks
Advanced Computer Networks Congestion control in TCP Prof. Andrzej Duda duda@imag.fr http://duda.imag.fr 1 Contents Principles TCP congestion control states Slow Start Congestion Avoidance Fast Recovery
More informationFall 2012: FCM 708 Bridge Foundation I
Fall 2012: FCM 708 Bridge Foundation I Prof. Shamik Sengupta Instructor s Website: http://jjcweb.jjay.cuny.edu/ssengupta/ Blackboard Website: https://bbhosted.cuny.edu/ Intro to Computer Networking Transport
More informationTransport Layer Marcos Vieira
Transport Layer 2014 Marcos Vieira Transport Layer Transport protocols sit on top of network layer and provide Application-level multiplexing ( ports ) Error detection, reliability, etc. UDP User Datagram
More informationENRICHMENT OF SACK TCP PERFORMANCE BY DELAYING FAST RECOVERY Mr. R. D. Mehta 1, Dr. C. H. Vithalani 2, Dr. N. N. Jani 3
Research Article ENRICHMENT OF SACK TCP PERFORMANCE BY DELAYING FAST RECOVERY Mr. R. D. Mehta 1, Dr. C. H. Vithalani 2, Dr. N. N. Jani 3 Address for Correspondence 1 Asst. Professor, Department of Electronics
More informationCPSC 441 COMPUTER COMMUNICATIONS MIDTERM EXAM SOLUTION
CPSC 441 COMPUTER COMMUNICATIONS MIDTERM EXAM SOLUTION Department of Computer Science University of Calgary Professor: Carey Williamson March 8, 2013 This is a CLOSED BOOK exam. Textbooks, notes, laptops,
More informationECE697AA Lecture 3. Today s lecture
ECE697AA Lecture 3 Transport Layer: TCP and UDP Tilman Wolf Department of Electrical and Computer Engineering 09/09/08 Today s lecture Transport layer User datagram protocol (UDP) Reliable data transfer
More informationTopics. TCP sliding window protocol TCP PUSH flag TCP slow start Bulk data throughput
Topics TCP sliding window protocol TCP PUSH flag TCP slow start Bulk data throughput 2 Introduction In this chapter we will discuss TCP s form of flow control called a sliding window protocol It allows
More informationRecap. TCP connection setup/teardown Sliding window, flow control Retransmission timeouts Fairness, max-min fairness AIMD achieves max-min fairness
Recap TCP connection setup/teardown Sliding window, flow control Retransmission timeouts Fairness, max-min fairness AIMD achieves max-min fairness 81 Feedback Signals Several possible signals, with different
More informationOutline. User Datagram Protocol (UDP) Transmission Control Protocol (TCP) Transport layer (cont.) Transport layer. Background UDP.
Outline User Datagram Protocol (UDP) Transmission Control Protocol (TCP) Matti Siekkinen 22.09.2009 Background UDP Role and Functioning TCP Basics Error control Flow control Congestion control Transport
More informationConnection-oriented (virtual circuit) Reliable Transfer Buffered Transfer Unstructured Stream Full Duplex Point-to-point Connection End-to-end service
최양희서울대학교컴퓨터공학부 Connection-oriented (virtual circuit) Reliable Transfer Buffered Transfer Unstructured Stream Full Duplex Point-to-point Connection End-to-end service 1 2004 Yanghee Choi 2 Addressing: application
More informationProblem 7. Problem 8. Problem 9
Problem 7 To best answer this question, consider why we needed sequence numbers in the first place. We saw that the sender needs sequence numbers so that the receiver can tell if a data packet is a duplicate
More informationCS321: Computer Networks Congestion Control in TCP
CS321: Computer Networks Congestion Control in TCP Dr. Manas Khatua Assistant Professor Dept. of CSE IIT Jodhpur E-mail: manaskhatua@iitj.ac.in Causes and Cost of Congestion Scenario-1: Two Senders, a
More informationReliable Transport I: Concepts and TCP Protocol
Reliable Transport I: Concepts and TCP Protocol Stefano Vissicchio UCL Computer Science COMP0023 Today Transport Concepts Layering context Transport goals Transport mechanisms and design choices TCP Protocol
More informationReliable Transport II: TCP and Congestion Control
Reliable Transport II: TCP and Congestion Control Stefano Vissicchio UCL Computer Science COMP0023 Recap: Last Lecture Transport Concepts Layering context Transport goals Transport mechanisms and design
More informationCongestion Control in TCP
Congestion Control in TCP Outline Overview of RENO TCP Reacting to Congestion SS/AIMD example CS 640 1 TCP Congestion Control The idea of TCP congestion control is for each source to determine how much
More informationTransport Over IP. CSCI 690 Michael Hutt New York Institute of Technology
Transport Over IP CSCI 690 Michael Hutt New York Institute of Technology Transport Over IP What is a transport protocol? Choosing to use a transport protocol Ports and Addresses Datagrams UDP What is a
More informationDepartment of Informatics Networks and Distributed Systems (ND) group TCP "TEB" (Timer-based Exponential Backoff): Code and Rationale
Department of Informatics Networks and Distributed Systems (ND) group TCP "TEB" (Timer-based Exponential Backoff): Code and Rationale Michael Welzl Net Group, University of Rome Tor Vergata 28. 11. 2017
More informationTransport Layer PREPARED BY AHMED ABDEL-RAOUF
Transport Layer PREPARED BY AHMED ABDEL-RAOUF TCP Flow Control TCP Flow Control 32 bits source port # dest port # head len sequence number acknowledgement number not used U A P R S F checksum Receive window
More informationTCP/IP Performance ITL
TCP/IP Performance ITL Protocol Overview E-Mail HTTP (WWW) Remote Login File Transfer TCP UDP IP ICMP ARP RARP (Auxiliary Services) Ethernet, X.25, HDLC etc. ATM 4/30/2002 Hans Kruse & Shawn Ostermann,
More informationComputer Communication Networks Midterm Review
Computer Communication Networks Midterm Review ICEN/ICSI 416 Fall 2018 Prof. Aveek Dutta 1 Instructions The exam is closed book, notes, computers, phones. You can use calculator, but not one from your
More information05 Transmission Control Protocol (TCP)
SE 4C03 Winter 2003 05 Transmission Control Protocol (TCP) Instructor: W. M. Farmer Revised: 06 February 2003 1 Interprocess Communication Problem: How can a process on one host access a service provided
More informationTransport Protocols and TCP
Transport Protocols and TCP Functions Connection establishment and termination Breaking message into packets Error recovery ARQ Flow control Multiplexing, de-multiplexing Transport service is end to end
More informationTCP based Receiver Assistant Congestion Control
International Conference on Multidisciplinary Research & Practice P a g e 219 TCP based Receiver Assistant Congestion Control Hardik K. Molia Master of Computer Engineering, Department of Computer Engineering
More informationCE693 Advanced Computer Networks
CE693 Advanced Computer Networks Review 2 Transport Protocols Acknowledgments: Lecture slides are from the graduate level Computer Networks course thought by Srinivasan Seshan at CMU. When slides are obtained
More informationImproved Selective Acknowledgment Scheme for TCP
Improved Selective Acknowledgment Scheme for TCP Rajkumar Kettimuthu and William Allcock Argonne National Laboratory, Globus Alliance Argonne, IL 60439, USA kettimut, allcock @mcs.anl.gov Abstract A selective
More informationComputer Networking Introduction
Computer Networking Introduction Halgurd S. Maghdid Software Engineering Department Koya University-Koya, Kurdistan-Iraq Lecture No.11 Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and
More informationOutline Computer Networking. Functionality Split. Transport Protocols
Outline 15-441 15 441 Computer Networking 15-641 Lecture 10: Transport Protocols Justine Sherry Peter Steenkiste Fall 2017 www.cs.cmu.edu/~prs/15 441 F17 Transport introduction TCP connection establishment
More informationLecture 7: Flow Control"
Lecture 7: Flow Control" CSE 123: Computer Networks Alex C. Snoeren No class Monday! Lecture 7 Overview" Flow control Go-back-N Sliding window 2 Stop-and-Wait Performance" Lousy performance if xmit 1 pkt
More informationLecture 20 Overview. Last Lecture. This Lecture. Next Lecture. Transport Control Protocol (1) Transport Control Protocol (2) Source: chapters 23, 24
Lecture 20 Overview Last Lecture Transport Control Protocol (1) This Lecture Transport Control Protocol (2) Source: chapters 23, 24 Next Lecture Internet Applications Source: chapter 26 COSC244 & TELE202
More informationSSFNET TCP Simulation Analysis by tcpanaly
SSFNET TCP Simulation Analysis by tcpanaly Hongbo Liu hongbol@winlabrutgersedu Apr 16, 2000 Abstract SSFNET is a collection of SSF-based models for simulating Internet protocols and networks It is designed
More informationTCP Review. Carey Williamson Department of Computer Science University of Calgary Winter 2018
TCP Review Carey Williamson Department of Computer Science University of Calgary Winter 2018 Credit: Much of this content came courtesy of Erich Nahum (IBM Research) The TCP Protocol Connection-oriented,
More informationMultiple unconnected networks
TCP/IP Life in the Early 1970s Multiple unconnected networks ARPAnet Data-over-cable Packet satellite (Aloha) Packet radio ARPAnet satellite net Differences Across Packet-Switched Networks Addressing Maximum
More informationCS419: Computer Networks. Lecture 10, Part 3: Apr 13, 2005 Transport: TCP performance
: Computer Networks Lecture 10, Part 3: Apr 13, 2005 Transport: TCP performance TCP performance We ve seen how TCP the protocol works But there are a lot of tricks required to make it work well Indeed,
More informationCommunication Networks
Communication Networks Spring 2018 Laurent Vanbever nsg.ee.ethz.ch ETH Zürich (D-ITET) April 30 2018 Materials inspired from Scott Shenker & Jennifer Rexford Last week on Communication Networks We started
More informationComputer Networks and Data Systems
Computer Networks and Data Systems Transport Layer TDC463 Winter 2011/12 John Kristoff - DePaul University 1 Why a transport layer? IP gives us end-to-end connectivity doesn't it? Why, or why not, more
More informationIntroduction to Networking. Operating Systems In Depth XXVII 1 Copyright 2017 Thomas W. Doeppner. All rights reserved.
Introduction to Networking Operating Systems In Depth XXVII 1 Copyright 2017 Thomas W. Doeppner. All rights reserved. Distributed File Systems Operating Systems In Depth XXVII 2 Copyright 2017 Thomas W.
More informationCMSC 417. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala. October 25, 2018
CMSC 417 Computer Networks Prof. Ashok K Agrawala 2018 Ashok Agrawala Message, Segment, Packet, and Frame host host HTTP HTTP message HTTP TCP TCP segment TCP router router IP IP packet IP IP packet IP
More informationReliable Transport I: Concepts and TCP Protocol
Reliable Transport I: Concepts and TCP Protocol Brad Karp UCL Computer Science CS 3035/GZ01 29 th October 2013 Part I: Transport Concepts Layering context Transport goals Transport mechanisms 2 Context:
More informationCS4700/CS5700 Fundamentals of Computer Networks
CS4700/CS5700 Fundamentals of Computer Networks Lecture 14: TCP Slides used with permissions from Edward W. Knightly, T. S. Eugene Ng, Ion Stoica, Hui Zhang Alan Mislove amislove at ccs.neu.edu Northeastern
More informationNetwork Protocols. Transmission Control Protocol (TCP) TDC375 Autumn 2009/10 John Kristoff DePaul University 1
Network Protocols Transmission Control Protocol (TCP) TDC375 Autumn 2009/10 John Kristoff DePaul University 1 IP review IP provides just enough connected ness Global addressing Hop by hop routing IP over
More informationTransport Protocols Reading: Sections 2.5, 5.1, and 5.2. Goals for Todayʼs Lecture. Role of Transport Layer
Transport Protocols Reading: Sections 2.5, 5.1, and 5.2 CS 375: Computer Networks Thomas C. Bressoud 1 Goals for Todayʼs Lecture Principles underlying transport-layer services (De)multiplexing Detecting
More informationTransport Layer Protocols. Internet Transport Layer. Agenda. TCP Fundamentals
Transport Layer Protocols Application SMTP HTTP FTP Telnet DNS BootP DHCP ( M I M E ) Presentation Session SNMP TFTP Internet Transport Layer TCP Fundamentals, TCP Performance Aspects, UDP (User Datagram
More informationTransport Protocols Reading: Sections 2.5, 5.1, and 5.2
Transport Protocols Reading: Sections 2.5, 5.1, and 5.2 CE443 - Fall 1390 Acknowledgments: Lecture slides are from Computer networks course thought by Jennifer Rexford at Princeton University. When slides
More informationInternet Transport Protocols UDP and TCP
Outline Internet Transport Protocols UDP and TCP Transport Layer Review UDP Protocol UDP Characteristics UDP Functionalities TCP Protocol TCP Characteristics Connection Management TCP Flow and Congestion
More informationIS370 Data Communications and Computer Networks. Chapter 5 : Transport Layer
IS370 Data Communications and Computer Networks Chapter 5 : Transport Layer Instructor : Mr Mourad Benchikh Introduction Transport layer is responsible on process-to-process delivery of the entire message.
More informationDepartment of Computer and IT Engineering University of Kurdistan. Transport Layer. By: Dr. Alireza Abdollahpouri
Department of Computer and IT Engineering University of Kurdistan Transport Layer By: Dr. Alireza Abdollahpouri TCP/IP protocol suite 2 Transport Layer The transport layer is responsible for process-to-process
More informationCSCI-1680 Transport Layer II Data over TCP Rodrigo Fonseca
CSCI-1680 Transport Layer II Data over TCP Rodrigo Fonseca Based partly on lecture notes by David Mazières, Phil Levis, John Janno< Last Class CLOSED Passive open Close Close LISTEN Introduction to TCP
More informationImpact of transmission errors on TCP performance. Outline. Random Errors
Impact of transmission errors on TCP performance 1 Outline Impact of transmission errors on TCP performance Approaches to improve TCP performance Classification Discussion of selected approaches 2 Random
More informationTransmission Control Protocol (TCP)
Transmission Control Protocol (TCP) Antonio Carzaniga Faculty of Informatics University of Lugano May 3, 2005 Outline Intro to TCP Sequence numbers and acknowledgment numbers Timeouts and RTT estimation
More informationECE 435 Network Engineering Lecture 10
ECE 435 Network Engineering Lecture 10 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 28 September 2017 Announcements HW#4 was due HW#5 will be posted. midterm/fall break You
More informationCMPE 257: Wireless and Mobile Networking
CMPE 257: Wireless and Mobile Networking Katia Obraczka Computer Engineering UCSC Baskin Engineering Lecture 10 CMPE 257 Spring'15 1 Student Presentations Schedule May 21: Sam and Anuj May 26: Larissa
More informationTCP Strategies. Keepalive Timer. implementations do not have it as it is occasionally regarded as controversial. between source and destination
Keepalive Timer! Yet another timer in TCP is the keepalive! This one is not required, and some implementations do not have it as it is occasionally regarded as controversial! When a TCP connection is idle
More information