1 sonia fahmypurdue university tcp congestion control sonia fahmy department of computer sciences...

14
1 Sonia Fahmy Purdue University TCP Congestion Control TCP Congestion Control Sonia Fahmy Department of Computer Sciences Purdue University [email protected] http://www.cs.purdue.edu/homes/fahmy/

Upload: winfred-spencer

Post on 17-Jan-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Sonia FahmyPurdue University TCP Congestion Control Sonia Fahmy Department of Computer Sciences Purdue University fahmy@cs.purdue.edu

1Sonia FahmyPurdue University

TCP Congestion ControlTCP Congestion Control

Sonia Fahmy

Department of Computer Sciences

Purdue University

[email protected]

http://www.cs.purdue.edu/homes/fahmy/

Page 2: 1 Sonia FahmyPurdue University TCP Congestion Control Sonia Fahmy Department of Computer Sciences Purdue University fahmy@cs.purdue.edu

2Sonia FahmyPurdue University

Current Internet Congestion control versus avoidance Slow start and congestion avoidance Timer estimation Fast retransmit and recovery NewReno, SACK, FACK TCP Vegas Link characteristics

OverviewOverview

Page 3: 1 Sonia FahmyPurdue University TCP Congestion Control Sonia Fahmy Department of Computer Sciences Purdue University fahmy@cs.purdue.edu

3Sonia FahmyPurdue University

Current InternetCurrent InternetIP traffic (in bytes)

95%

4%

1%

TCP

UDP

ICMP and others

Applications in TCP (in bytes)

75%

5%

5%

2%

1%

12% HTTP

FTP

SMTP

NNTP

Telnet

Others

TCP at popular web server

62%14%

12%11% 1% NewReno

TahoeNoFR

Reno

aggresiveReno

Tahoe

Page 4: 1 Sonia FahmyPurdue University TCP Congestion Control Sonia Fahmy Department of Computer Sciences Purdue University fahmy@cs.purdue.edu

4Sonia FahmyPurdue University

Congestion Control/AvoidanceCongestion Control/Avoidance Congestion control:

Recover from zero throughput and infinite delay Between knee and cliff

Congestion avoidance: Operate near high throughput, low delay point Operate at knee (maximum power) of curves

Page 5: 1 Sonia FahmyPurdue University TCP Congestion Control Sonia Fahmy Department of Computer Sciences Purdue University fahmy@cs.purdue.edu

5Sonia FahmyPurdue University

GoalsGoals Optimize throughput and delay Minimize loss probability Minimize control overhead Distributed control Minimize parameter dependence on network

characteristics Low parameter sensitivity

Page 6: 1 Sonia FahmyPurdue University TCP Congestion Control Sonia Fahmy Department of Computer Sciences Purdue University fahmy@cs.purdue.edu

6Sonia FahmyPurdue University

TCP Congestion ControlTCP Congestion Control

Slow Start (exponential)Congestion Avoidance

Packet Loss Detectednew ssthresh = cwnd / 2

Additive IncreaseMultiplicative Decrease

cwnd

time

ssthresh(estimate)

1, 2(or more)

Saw-tooth pattern

Go back NSelf clocking (ACKs)Delayed ACKs

Page 7: 1 Sonia FahmyPurdue University TCP Congestion Control Sonia Fahmy Department of Computer Sciences Purdue University fahmy@cs.purdue.edu

7Sonia FahmyPurdue University

RTT and TimeoutRTT and Timeout Smoothed RTT (SR) is estimated using a low pass

filter Assume M is latest RTT sample (non-retransmitted) V = abs(SR - M) + (1- )V = ¼ SR = M + (1-)SR = 1/8 RTO = SR + 4V Coarse granularity: 4V is rounded to 500ms

increment inefficiency Karn’s algorithm: Double RTO when timer expires

for retransmitted packet

Page 8: 1 Sonia FahmyPurdue University TCP Congestion Control Sonia Fahmy Department of Computer Sciences Purdue University fahmy@cs.purdue.edu

8Sonia FahmyPurdue University

Fast Restransmit and RecoveryFast Restransmit and Recovery

Slow Start/Fast Recovery

Congestion Avoidance

Packet Loss Detected(fast retransmit)

new ssthresh = cwnd / 2

cwnd

time

ssthresh

1, 2(or more)

Saw-tooth pattern

Duplicate ACKs start fast retransmit and recoveryFast recovery terminates with a partial or full ACK

Page 9: 1 Sonia FahmyPurdue University TCP Congestion Control Sonia Fahmy Department of Computer Sciences Purdue University fahmy@cs.purdue.edu

9Sonia FahmyPurdue University

NewReno, SACK, FACKNewReno, SACK, FACK NewReno:

Only a full ACK or timeout terminates fast recovery; partial ACKs deflate window

SACK: Sender retransmits “holes” only. Sends when

pipe (outstanding data) < cwnd FACK:

Keep track of forward-most data ACKed and retransmitted data outstanding

Keep outstanding data within 1 of cwnd

Page 10: 1 Sonia FahmyPurdue University TCP Congestion Control Sonia Fahmy Department of Computer Sciences Purdue University fahmy@cs.purdue.edu

10Sonia FahmyPurdue University

TCP VegasTCP Vegas Expected throughput = window size/base (min) RTT Diff = Actual throughput – expected throughput IF Diff < (2), linear increase in next RTT If Diff > (4), linear decrease in next RTT Slow start increases every other RTT Go to congestion avoidance when actual throughput

is lower (by ) than expected throughput Retransmit after one dupack if large RTT. Same for

non dupack after retransmission

Page 11: 1 Sonia FahmyPurdue University TCP Congestion Control Sonia Fahmy Department of Computer Sciences Purdue University fahmy@cs.purdue.edu

11Sonia FahmyPurdue University

Wireless/Satellite LinksWireless/Satellite Links Loss may not be due to congestion PILC:

Asymmetry High error rate Low speed links

TCPSAT High bandwidth-delay product

Solutions: MTU discovery, FEC, T/TCP, large IW, delayed ACK, ssthresh estimation, rwnd, byte counting, ELN, ECN, multiple connections, segment pacing, header/payload compression, persistent connections, ACK: CC, filtering, compaction, scheduling, backpressure

Page 12: 1 Sonia FahmyPurdue University TCP Congestion Control Sonia Fahmy Department of Computer Sciences Purdue University fahmy@cs.purdue.edu

12Sonia FahmyPurdue University

TCP Flavors SummaryTCP Flavors Summary Tahoe (slow start, congestion avoidance, RTT) Problem: inefficiency waiting for a timeout, reducing

CWND to 1 Fast retransmit (3 duplicate acks): RFC 2581 (some Tahoe) Fast recovery (go to ssthresh, do congestion avoidance) New Reno (SIGCOMM 96, RFC 2582) better recovery

from multiple losses Vegas (better congestion avoidance) JSAC 95 SACK (retransmit only lost segments) RFC 2018, CCR 7/96 FACK (SACK+better fast recovery)

Page 13: 1 Sonia FahmyPurdue University TCP Congestion Control Sonia Fahmy Department of Computer Sciences Purdue University fahmy@cs.purdue.edu

13Sonia FahmyPurdue University

Key PointsKey Points Congestion control is a very active and important

research area Lots of work on fine tuning, e.g., initial window. Idle

periods, limited transmit, SACK, etc. Work on RED, ECN and equation-based TFCC Work on sharing info across sessions See RFCs 2018, 2309, 2414, 2415, 2416, 2481, 2488,

2525, 2581, 2582, 2760, internet drafts, papers on Mark Allman’s web page (design and evaluation) and Ramakrishnan and Zhang tutorials

Page 14: 1 Sonia FahmyPurdue University TCP Congestion Control Sonia Fahmy Department of Computer Sciences Purdue University fahmy@cs.purdue.edu

14Sonia FahmyPurdue University

Thank You!Thank You!

Questions?Questions?