Sliding Window Protocol and TCP Congestion Control

Similar documents
First Midterm for ECE374 03/24/11 Solution!!

Transport Layer Protocols

TCP in Wireless Mobile Networks

TCP over Multi-hop Wireless Networks * Overview of Transmission Control Protocol / Internet Protocol (TCP/IP) Internet Protocol (IP)

First Midterm for ECE374 03/09/12 Solution!!

A Survey on Congestion Control Mechanisms for Performance Improvement of TCP

Lecture 15: Congestion Control. CSE 123: Computer Networks Stefan Savage

Chapter 6 Congestion Control and Resource Allocation

Data Networks Summer 2007 Homework #3

Improving the Performance of TCP Using Window Adjustment Procedure and Bandwidth Estimation

TCP over Wireless Networks

CSE331: Introduction to Networks and Security. Lecture 9 Fall 2006

Computer Networks - CS132/EECS148 - Spring

2 TCP-like Design. Answer

Lecture Objectives. Lecture 07 Mobile Networks: TCP in Wireless Networks. Agenda. TCP Flow Control. Flow Control Can Limit Throughput (1)

Analytic Models for the Latency and Steady-State Throughput of TCP Tahoe, Reno and SACK

Prefix AggregaNon. Company X and Company Y connect to the same ISP, and they are assigned the prefixes:

TCP/IP Optimization for Wide Area Storage Networks. Dr. Joseph L White Juniper Networks

Congestions and Control Mechanisms n Wired and Wireless Networks

Simulation-Based Comparisons of Solutions for TCP Packet Reordering in Wireless Network

This sequence diagram was generated with EventStudio System Designer (

Final for ECE374 05/06/13 Solution!!

15-441: Computer Networks Homework 2 Solution

CSE 473 Introduction to Computer Networks. Exam 2 Solutions. Your name: 10/31/2013

TCP Westwood for Wireless

TCP/IP Over Lossy Links - TCP SACK without Congestion Control

SJBIT, Bangalore, KARNATAKA

Outline. TCP connection setup/data transfer Computer Networking. TCP Reliability. Congestion sources and collapse. Congestion control basics

Computer Networks. Chapter 5 Transport Protocols

APPENDIX 1 USER LEVEL IMPLEMENTATION OF PPATPAN IN LINUX SYSTEM

A Survey: High Speed TCP Variants in Wireless Networks

A Study on TCP Performance over Mobile Ad Hoc Networks

TTC New Reno - Consistent Control of Packet Traffic

STUDY OF TCP VARIANTS OVER WIRELESS NETWORK

Parallel TCP Data Transfers: A Practical Model and its Application

Names & Addresses. Names & Addresses. Hop-by-Hop Packet Forwarding. Longest-Prefix-Match Forwarding. Longest-Prefix-Match Forwarding

Active Queue Management (AQM) based Internet Congestion Control

Application Level Congestion Control Enhancements in High BDP Networks. Anupama Sundaresan

Mobile Communications Chapter 9: Mobile Transport Layer

High Speed Internet Access Using Satellite-Based DVB Networks

Transport layer protocols for ad hoc networks

TCP, Active Queue Management and QoS

Analysis and Detection of a Denial-of-Service Attack Scenario generated by TCP Receivers to Edge Network

Low-rate TCP-targeted Denial of Service Attack Defense

TCP based Denial-of-Service Attacks to Edge Network: Analysis and Detection

TCP and Wireless Networks Classical Approaches Optimizations TCP for 2.5G/3G Systems. Lehrstuhl für Informatik 4 Kommunikation und verteilte Systeme

Ina Minei Reuven Cohen. The Technion. Haifa 32000, Israel. Abstract

Chapter 5. Transport layer protocols

La couche transport dans l'internet (la suite TCP/IP)

Visualizations and Correlations in Troubleshooting

Transport Layer and Data Center TCP

Performance evaluation of TCP connections in ideal and non-ideal network environments

COMP 3331/9331: Computer Networks and Applications. Lab Exercise 3: TCP and UDP (Solutions)

Midterm Exam CMPSCI 453: Computer Networks Fall 2011 Prof. Jim Kurose

A packet-reordering solution to wireless losses in transmission control protocol

Transport layer issues in ad hoc wireless networks Dmitrij Lagutin,

Higher Layer Protocols: UDP, TCP, ATM, MPLS

TCP for Wireless Networks

Optimization of Communication Systems Lecture 6: Internet TCP Congestion Control

TCP in Wireless Networks

B-2 Analyzing TCP/IP Networks with Wireshark. Ray Tompkins Founder of Gearbit

TCP Flow Control. TCP Receiver Window. Sliding Window. Computer Networks. Lecture 30: Flow Control, Reliable Delivery

Student, Haryana Engineering College, Haryana, India 2 H.O.D (CSE), Haryana Engineering College, Haryana, India

Stop And Wait. ACK received; transmit frame 2 CS 455 3

Chaoyang University of Technology, Taiwan, ROC. 2 Department of Computer Science and Information Engineering

1. The subnet must prevent additional packets from entering the congested region until those already present can be processed.

TCP PACKET CONTROL FOR WIRELESS NETWORKS

Linux 2.4 Implementation of Westwood+ TCP with rate-halving: A Performance Evaluation over the Internet

CS268 Exam Solutions. 1) End-to-End (20 pts)

Computer Networks UDP and TCP

Mobile Computing/ Mobile Networks

TCP Adaptation for MPI on Long-and-Fat Networks

AN IMPROVED SNOOP FOR TCP RENO AND TCP SACK IN WIRED-CUM- WIRELESS NETWORKS

Energy Efficient Congestion Control Operation in WSNs Adel Gaafar A. Elrahim Electrical Engineering Dept. Red Sea University, Port Sudan, Sudan

First Midterm for ECE374 02/25/15 Solution!!

An enhanced TCP mechanism Fast-TCP in IP networks with wireless links

The Effect of Packet Reordering in a Backbone Link on Application Throughput Michael Laor and Lior Gendel, Cisco Systems, Inc.

ICOM : Computer Networks Chapter 6: The Transport Layer. By Dr Yi Qian Department of Electronic and Computer Engineering Fall 2006 UPRM

THE Internet provides a convenient and cost-effective

Access Control: Firewalls (1)

Data Communications & Networks. Session 6 Main Theme Reliable Data Transfer. Dr. Jean-Claude Franchitti

A Transport Protocol for Multimedia Wireless Sensor Networks

TCP Fast Recovery Strategies: Analysis and Improvements

Applications. Network Application Performance Analysis. Laboratory. Objective. Overview

An Improved TCP Congestion Control Algorithm for Wireless Networks

High-Speed TCP Performance Characterization under Various Operating Systems

Packet Queueing Delay

A Passive Method for Estimating End-to-End TCP Packet Loss

Master Course Computer Networks IN2097

Computer Networks. Data Link Layer

Why Congestion Control. Congestion Control and Active Queue Management. Max-Min Fairness. Fairness

Pig Laboratory. Additional documentation for the laboratory. Exercises and Rules. Tstat Data

La couche transport dans l'internet (la suite TCP/IP)

Ethernet Services Transport Protocol with Configurable-QoS Attributes for Carrier Ethernet

Advanced Computer Networks Project 2: File Transfer Application

A Study of Internet Packet Reordering

Protagonist International Journal of Management And Technology (PIJMT) Online ISSN Vol 2 No 3 (May-2015) Active Queue Management

Research of TCP ssthresh Dynamical Adjustment Algorithm Based on Available Bandwidth in Mixed Networks

International Journal of Scientific & Engineering Research, Volume 6, Issue 7, July ISSN

Digital Audio and Video Data

Transcription:

Sliding Window Protocol and TCP Congestion Control Simon S. Lam Department of Computer Science The University it of Texas at Austin TCP Congestion Control (Simon S. Lam) 1 1

2 Reliable data transfer important in app., transport, link layers characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt) TCP Congestion Control (Simon S. Lam) 2

Channel Abstractions Lossy FIFO channel delivers a subsequence in FIFO order example: delivery service provided by a physical link Lossy, reordering, duplicative i (LRD) channel example: delivery service provided d by IP or by UDP protocol TCP Congestion Control (Simon S. Lam) 3 3

4 Sliding Window Protocol Consider an infinite array, Source, at the sender, and an infinite array, Sink, at the receiver. P1 Sender Source: send window 0 1 2 a 1 a s 1 s acknowledged unacknowledged P2 Receiver Sink: 0 1 2 r delivered next expected received receive window SW send window size (s - a SW) RW receive window size r + RW 1 TCP Congestion Control (Simon S. Lam) 4

5 Sliding Windows in Action Data unit r has just been received by P2 Receive window slides forward P2 sends cumulative ack with sequence number it expects to receive next (r+3) P1 Sender Source: send window 0 1 2 a 1 a s 1 s acknowledged unacknowledged r+3 P2 Receiver Sink: 0 1 2 r next expected r + RW 1 delivered receive window TCP Congestion Control (Simon S. Lam) 5

Sliding Windows in Action P1 has just received cumulative ack with r+3 as next expected sequence number Send window slides forward Source: send window P1 Sender 0 1 2 a 1 a s 1 s acknowledged P2 Receiver Sink: 0 1 2 r next expected r + RW 1 delivered receive window TCP Congestion Control (Simon S. Lam) 6 6

7 Sliding Window protocol Functions provided error control (reliable delivery) in-order delivery flow and congestion control (by varying send window size) TCP uses cumulative acks (needed for correctness) Other kinds of acks (to improve performance) selective nack selective ack (TCP SACK) bit-vector representing entire state of receive window (in addition to first sequence number of window) TCP Congestion Control (Simon S. Lam) 7

8 P1 Sender Sliding Windows for Lossy FIFO Channels A small number of bits in packet header for sequence number Necessary and sufficient condition for correct operation: SW + RW MaxSeqNum Necessity: Source: 0 1 2 a 1 a acknowledged send window unacknowledged RW receive window size SW send window size P2 Receiver Sink: 0 1 2 delivered next expected receive window TCP Congestion Control (Simon S. Lam) 8

9 Sliding Windows for Lossy FIFO Channels Sufficiency can only be demonstrated by using a formal method to prove that the protocol provides reliable inorder delivery. See Shankar and Lam, ACM TOPLAS, Vol. 14, No. 3, July 1992. Interesting special cases SW = RW = 1 alternating-bit protocol SW = 7, RW = 1 out-of-order of order arrivals not accepted, e.g., HDLC SW = RW TCP Congestion Control (Simon S. Lam) 9

10 Sliding Windows for LRD Channels Assumption: Packetshavebounded lifetime L Be careful how fast sequence numbers are consumed (i.e., by arrival of data to be sent into network) (send rate) L < MaxSeqNum TCP 32-bit sequence numbers counts bytes assumes that datagrams will be discarded by IP if too old TCP Congestion Control (Simon S. Lam) 10

11 Window Size Controls Sending Rate RTT Source 1 2 W 1 2 W time data ACKs Destination 1 2 W 1 2 W time ~ W packets per RTT when no loss TCP Congestion Control (Simon S. Lam) 11

12 Throughput Limit the number of unacked transmitted packets in the network to window size W W Max. throughput h t packets/sec R TT W MSS RTT = bytes/sec (assuming no loss, MSS denotes maximum segment size) Where did we apply Little s Law? Answer : Consider the TCP send buffer TCP Congestion Control (Simon S. Lam) 12

13 Throughput or send rate? Previous formula actually provides an upper bound Average number in the send buffer is less than W unless packet arrival rate to send buffer is infinite If a packet is lost in the network with probability p, then g ff p RTT + p T Since T O > RTT, actual throughput is smaller. the average time in send buffer is (1 ) O The throughput hp t of a host st ss TCP send buffer is the host s send rate into the network (including original transmissions and retransmissions) TCP Congestion Control (Simon S. Lam) 13

14 Fast Retransmit Time-out period often relatively long: long delay before resending lost packet Detect lost segments via duplicate ACKs Sender often sends many segments back-toback If segment is lost, there will likely l be many duplicate ACKs. If sender receives 3 duplicate ACKs for the same data, it supposes that segment after ACKed data was lost: fast retransmit: resend segment before timer expires TCP Congestion Control (Simon S. Lam) 14

15 Host A Host B time eout for 2 nd se egment time X Resending a segment after triple duplicate ACK without waiting for timeout TCP Congestion Control (Simon S. Lam) 15

16 TCP Flow Control flow control sender won t overrun receiver s buffers by transmitting too much, too fast receiver: explicitly informs sender of (dynamically y changing) amount of free buffer space RcvWindow field in TCP segment header sender: keeps amount of transmitted, unacked data less than most recently received RcvWindow value buffer at receive side of a TCP connection TCP Congestion Control (Simon S. Lam) 16

17 Causes/costs of congestion: scenario four senders multi-hop paths Timeout & retransmit Host A λ in Q: what happens as and increase at many senders? λ in : original data λ' in : original data plus retransmitted data finite shared output link buffers λ' in positive feedback instability Host B λ out TCP Congestion Control (Simon S. Lam) 17

Effect of Congestion W too big for many flows -> congestion Packet loss -> transmissions on links a packet has traversed prior to loss are wasted Congestion collapse due to too many retransmissions and too much wasted transmission capacity October 1986, Internet had its first congestion collapse goodput upper bound desired collapse load (aggregate send rate) TCP Congestion Control (Simon S. Lam) 18 18

19 TCP Window Control Receiver flow control Avoid overloading receiver rcvwindow: receiver s advertised window (also rwnd) Receiver sends rcvwindow to sender Network congestion control Sender tries to avoid overloading network It infers network congestion from loss indications congwin: congestion window (also cwnd) Sender sets W = min (congwin, rcvwindow) TCP Congestion Control (Simon S. Lam) 19

20 TCP Congestion Control end-to-end control (no network assistance) sender limits transmission: LastByteSent-LastByteAcked CongWin Roughly, the send buffer s throughput h CongWin RTT bytes/sec where CongWin is in bytes How does sender determine CongWin? loss event = timeout or 3 duplicate acks TCP sender reduces CongWin after a loss event three mechanisms: slow start reduce to 1 segment after timeout event AIMD (additive i increase multiplicative decrease) Note: For now consider RcvWindow to be very large such that the send window size is equal lto CongWin. TCP Congestion Control (Simon S. Lam) 20

TCP Slow Start Probing for usable bandwidth When connection begins, CongWin =1MSS Example: MSS = 500 bytes & RTT = 200 msec initial rate = 2500 bytes/sec = 20 kbps available bandwidth may be >> MSS/RTT desirable to quickly ramp up to a higher rate TCP Congestion Control (Simon S. Lam) 21 21

22 TCP Slow Start (more) When connection begins, increase rate exponentially until first loss event or threshold double CongWin every RTT done by incrementing CongWin by 1 MSS for every ACK received Summary: initial rate is slow but ramps up exponentially fast RTT Host A Host B time TCP Congestion Control (Simon S. Lam) 22

23 Congestion avoidance state & responses to loss events Q: If no loss, when should 14 the exponential increase 12 switch to linear? A: When CongWin gets to 10 current value of 8 threshold 6 Implementation: For initial slow start, threshold h is set to a large value (e.g., 64 Kbytes) Subsequently, threshold is variable At a loss event, threshold is set to 1/2 of CongWin just before loss event w size n window egments) ngestion (se co 4 2 0 TCP Tahoe threshold 3 dup ACKs TCP Reno 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Transmission round Tahoe Reno Note: For simplicity, CongWin is in number of segments in the above graph. TCP Congestion Control (Simon S. Lam) 23

24 Rationale for Reno s Fast Recovery After 3 dup ACKs: CongWin is cut in half (multiplicative decrease) 3 dup ACKs indicate g f network capable of delivering some segments timeout occurring before 3 dup ACKs is more alarming window then grows linearly (additive t increase) But after timeout event: CongWin is set to 1 MSS instead; window then grows exponentially to threshold, then grows linearly Additive Increase Multiplicative Decrease (AIMD) TCP Congestion Control (Simon S. Lam) 24

25 TCP Reno (example scenario) CongWin Timeout 3 dupacks halved Initial slow start In this example, 3 dupacks during slow start before reaching initial threshold threshold reached during slow start t TCP Congestion Control (Simon S. Lam) 24

26 Example: FR/FR entry and exit S 1 2 3 4 5 6 7 8 1 9 10 11 1 1 1 1 1 1 1 9 loss R Exit FR/FR time time cwnd 8 7 9 11 4 deflate cwnd ssthresh 4 4 4 4 Above scenario: Packet 1 is lost, packets 2, 3, and 4 are received; 3 dupacks with seq. no. 1 returned Fast retransmit Retransmit packet 1 upon 3 dupacks Fast recovery y( (in steps) Inflate cwnd with #dupacks such that new packets 9, 10, and 11 can be sent while repairing loss TCP Congestion Control (Simon S. Lam) 26

FR/FR (in more detail) Enter FR/FR after 3 dupacks Set ssthresh max(flightsize/2, 2) Retransmit lost packet Set cwnd ssthresh + #dupacks (window inflation) Wait till W=min(rwnd, cwnd) is large enough; transmit new packet(s) On non-dup ACK (1 RTT later), set cwnd ssthreshsh (window deflation) Enter Congestion Avoidance TCP Congestion Control (Simon S. Lam) 27 27

28 Summary: TCP Congestion Control (Reno) When CongWin is below Threshold, sender in slow-start phase, window grows exponentially (until loss event or exceeding threshold). When CongWin is above Threshold, senderisin in congestion-avoidance phase, window grows linearly. When a triple duplicate ACK occurs, Threshold set to CongWin/2 and CongWin set to Threshold (also fast retransmit) When timeout occurs, Threshold set to CongWin/2 and CongWin is set to 1 MSS. TCP Congestion Control (Simon S. Lam) 28

29 Successive Timeouts When there is another timeout, double the timeout value Keep doing so for each additional loss-retransmission Exponential backoff up to max timeout value equal to 64 times initial timeout value (There are other variations.) Note: red line in figure denotes first timeout TCP Congestion Control (Simon S. Lam) 29

30 AIMD in steady state (when no timeout) additive increase: multiplicative decrease: increase CongWin by cut CongWin in half 1 MSS every RTT in after loss event (3 dup the absence of any acks) loss event: probing congestion window What limits the average 24 Kbytes window size (or throughput)? 16 Kbytes 8 Kbytes Long-lived TCP connection time TCP Congestion Control (Simon S. Lam) 30

31 Ave. First approximation M. Mathis, et al., The Macroscopic Behavior of the TCP Congestion Avoidance Algorithm, ACM Computer Communicatons Review, 27(3), 1997. No slow-start, no timeout, long-lived TCP connection cti n Independent identically distributed periods Three dupacks are received in a round with probability p # of RTTs TCP Congestion Control (Simon S. Lam) 31

32 Geometric Distribution Independent d trials - a trial lfails with probability b p Ave. no. of transmissions to get first failure i 1 n = ib i = i(1 p) p i= 1 i= 1 i 1 = p i (1 p ) i= 1 d i d = p (1 p) = p (1 p) dp i= 1 dp i= 0 d 1 1 = p = p 2 dp 1 1 + p p = 1/ p i Ave. no. of trials to get first success is 1/(1-p) TCP Congestion Control (Simon S. Lam) 32

33 First approximation on (cont.) Average number of packets delivered in one period (area under one saw-tooth) 2 2 W 1 W 3 + = W 2 2 2 8 Average number of packets sent per period is 1/p Equate the two and solve for W, we get 8 W = 3p 2 send rate (in packets/sec) 3 2 W no. of packets/period = = 8 time per period W RTT 2 1/ p 1 3 = = 2 RTT 2 p RTT 3p TCP Congestion Control (Simon S. Lam) 33

34 TCP ACK generation [RFC 1122, RFC 2581] Event at Receiver Arrival of in-order segment with expected seq #. All data up to expected seq # already ACKed Arrival of in-order segment with expected seq #. One other segment has ACK pending Arrival of out-of-order segment higher-than-expect expect seq. #. Gap detected Arrival of segment that partially or completely l fills gap TCP Receiver action Delayed ACK. Wait up to 500ms for next segment. If no next segment, send ACK Immediately send single cumulative ACK, ACKing both in-order segments Immediately send duplicate ACK, indicating seq. # of next expected byte Immediate send ACK, provided that segment starts t at lower end of gap TCP Congestion Control (Simon S. Lam) 34

35 Receiver implements m Delayed ACKs Receiver sends one ACK for every two packets received -> each saw-tooth is WxRTT wide -> area under a saw-tooth is 2 Send rate is 3W 1 = 4 p 1/ p 1/ p 1 3 = = RTT W RTT 4/(3 p) RTT 4 p One ACK for every b packets received -> send rate is 1 3 RTT 2bp TCP Congestion Control (Simon S. Lam) 35

36 Challenges in the future TCP average throughput (approximate) in terms of loss rate, p 1.22 MSS RTT p for b = 1 Example: 1500-byte segments, 100ms RTT, to get 10 Gbps throughput, loss rate needs to be very low p = 2x10-10 New versions of TCP needed for connections with large delay-bandwidth product E.g., data center networks (local, global) TCP Congestion Control (Simon S. Lam) 36

A more detailed model Reference: J. Padhye, V. Firoiu, D. Towsley, and J. Kurose, Modeling TCP Throughput: h A Simple Model and its Empirical i Validation, Proceedings ACM SIGCOMM, 1998. TCP Congestion Control (Simon S. Lam) 37 37

38 Motivation on Previous formulas not so accurate when loss rates are high TCP traces show that there are more loss indications due to timeouts (TO) than due to triple dupacks (TD) TCP Congestion Control (Simon S. Lam) 38

39 AIMD with Timeouts triple dup acks No slow start b = 1 (no delayed ack) TCP Congestion Control (Simon S. Lam) 39

40 Problem 3 in HW #2 Simplified: no triple duplicate Acks packet loss (timeout) with probability p timeout interval fixed at T 0 after each loss First success in next cycle TCP Congestion Control (Simon S. Lam) 40

41 The End TCP Congestion Control (Simon S. Lam) 41