![Page 1: 1 Sonia FahmyPurdue University TCP Congestion Control Sonia Fahmy Department of Computer Sciences Purdue University fahmy@cs.purdue.edu](https://reader036.vdocument.in/reader036/viewer/2022082613/5697bfa51a28abf838c97fc2/html5/thumbnails/1.jpg)
1Sonia FahmyPurdue University
TCP Congestion ControlTCP Congestion Control
Sonia Fahmy
Department of Computer Sciences
Purdue University
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](https://reader036.vdocument.in/reader036/viewer/2022082613/5697bfa51a28abf838c97fc2/html5/thumbnails/2.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022082613/5697bfa51a28abf838c97fc2/html5/thumbnails/3.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022082613/5697bfa51a28abf838c97fc2/html5/thumbnails/4.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022082613/5697bfa51a28abf838c97fc2/html5/thumbnails/5.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022082613/5697bfa51a28abf838c97fc2/html5/thumbnails/6.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022082613/5697bfa51a28abf838c97fc2/html5/thumbnails/7.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022082613/5697bfa51a28abf838c97fc2/html5/thumbnails/8.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022082613/5697bfa51a28abf838c97fc2/html5/thumbnails/9.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022082613/5697bfa51a28abf838c97fc2/html5/thumbnails/10.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022082613/5697bfa51a28abf838c97fc2/html5/thumbnails/11.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022082613/5697bfa51a28abf838c97fc2/html5/thumbnails/12.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022082613/5697bfa51a28abf838c97fc2/html5/thumbnails/13.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022082613/5697bfa51a28abf838c97fc2/html5/thumbnails/14.jpg)
14Sonia FahmyPurdue University
Thank You!Thank You!
Questions?Questions?