Computer network (13)
description
Transcript of Computer network (13)
![Page 1: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/1.jpg)
Lecture 5: Congestion Control
![Page 2: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/2.jpg)
Overview
• Internet is a network of networks
• Narrow waist of IP: unreliable, best-effortdatagram delivery
• Packet forwarding: input port to output port
• Routing protocols: computing port mappings
• Transport: end-to-end, reliability, flow control, andcongestion control
![Page 3: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/3.jpg)
Transport
• Provides end-to-end communication betweenapplications
• UDP: unreliable datagram delivery (thin layer ontop of IP)
• TCP: reliable stream delivery
![Page 4: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/4.jpg)
TCP
• Connection establishment
• Connection teardown
• Retransmission timeout (RTT and variance)
• Flow control (receiver window)
• Congestion control (transmit window)
![Page 5: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/5.jpg)
TCP
• Connection establishment
• Connection teardown
• Retransmission timeout (RTT and variance)
• Flow control (receiver window)
• Congestion control (transmit window)
![Page 6: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/6.jpg)
A Bit of History
• 1974: 3-way handshake
• 1978: TCP and IP split into TCP/IP
• 1983: January 1, ARPAnet switches to TCP/IP
• 1986: Internet begins to suffer congestion collapses
• 1987-8: Van Jacobson fixes TCP, publishes seminalpaper (Tahoe)
• 1990: Fast recovery and fast retransmit added(Reno)
![Page 7: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/7.jpg)
Three questions
• Goal: maintain TCP goodput at equilibrium
• When does TCP retransmit packets?
• When does TCP transmit packets?
• When does TCP ack packets?
![Page 8: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/8.jpg)
Flow Control
• Part of TCP specification (pre-1988)
• Want to make sure we don’t send more than whatthe receiver can handle
• Sliding window protocol as described in lecture 3
• Use window header field to tell other side howmuch space you have
• Rule: Sent and unacknowledged bytes ≤ window
![Page 9: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/9.jpg)
TCP segment
0 1 2 3 4 5 6 7 8 90 1 2 3 4 5 6 7 8 90 1 2 3 4 5 6 7 8 9 0 10 1 2 3
source port destination port
sequence number
acknowledgment number
reservedUR
data
G
A P R S FCK
SH
ST
YN
IN
Windowdataoffset
checksum urgent pointer
options padding
![Page 10: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/10.jpg)
Send Timing
• Before Tahoe- On connection, nodes send full window of packets
- Retransmit packet immediately after its timer expires
• Result: window-sized bursts of packets in network
![Page 11: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/11.jpg)
Bursts of packets
![Page 12: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/12.jpg)
Retransmission
• TCP dynamically estimates round trip time
• If segment goes unacknowledged, must retransmit
• Use exponential backoff (in case loss fromcongestion)
• After ∼10 minutes, give up and reset connection
![Page 13: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/13.jpg)
Round Trip Time (RTT)
• We want to estimate RTT so we can know a packetwas likely lost, not just delayed
• The challenge is that RTTs for individual packetscan be highly variable, both on long-term andshort-term time scales
• Can increase significantly with load!
• Solution- Use exponentially weighted moving average (EWMA)
- Estimate deviation as well as expected value
- Assume packet is lost when time is well beyond reasonabledeviation
![Page 14: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/14.jpg)
RTT with EWMA
• EstRTT = (1− α) · EstRTT + α · SampleRTT
- Recommended α is 0.125
• DevRTT = (1−β) ·DevRTT +β · |SampleRTT −EstRTT |- Recommended β is 0.25
• Timeout is EstRTT + 4 ·DevRTT
![Page 15: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/15.jpg)
Old RTT estimation
![Page 16: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/16.jpg)
Tahoe RTT estimation
![Page 17: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/17.jpg)
Self-Clocking
• Goal is conservation of packets in steady state- A new packet isn’t put into the network until an old one
leaves
- Very effective in avoiding and controlling congestion
• Solution: send a data packet for each ack
![Page 18: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/18.jpg)
Self-Clocking, Continued
• Assuming good RTT estimation, self-clockingprevents congestion by making window limit thenumber of packets in the network
• Very simple to implement
• But how big should the window be?
![Page 19: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/19.jpg)
Slow start
• But how do you start?
• Introduce a congestion window to connection state,cwnd
• Rule: Sent and unacknowledged bytes ≤ cwnd
• On start or loss, set cwnd to one packet (or... moreon this later)
• On each data ack, increase cwnd by one packet
• Prevents bursts of packets
![Page 20: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/20.jpg)
With Slow Start
• Slow start allows connection to quickly reachequilibrium
• How do we maintain it?
![Page 21: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/21.jpg)
Two States
• TCP has two states: Slow Start (SS) andCongestion Avoidance (CA)
• A window size threshold governs the statetransition
- Window ≤ threshold: slow start
- Window > threshold: collision avoidance
• States differ in how they respond to new acks- Slow start: cwnd += MSS
- Congestion avoidance: cwnd += MSS2
cwnd (MSS every RTT)
![Page 22: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/22.jpg)
Congestion Control
• Two conflicting goals- Provider: high utilization
- User: fairness among users
• Want to converge to a state where everyone gets 1N
• Avoid congestion collapse
![Page 23: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/23.jpg)
Taming Congestion
• The optimal congestion window is thebandwidth/delay product
• Sender learns this by adapting window size
• Senders must slow down when there is congestion
• Absence of ACKs (timeout) implies seriouscongestion
• Duplicate ACKs imply some congestion
![Page 24: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/24.jpg)
Responding to Loss (TCP Tahoe)
• On triple duplicate ACK or timeout- Implies lost packet
- Set threshold to cwnd2
- Set cwnd to 1
- Enter slow start state
![Page 25: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/25.jpg)
TCP Reno [RFC 2581]
• Same as Tahoe on timeout
• On triple duplicate ACK- Set threshold to cwnd
2
- Set cwnd to cwnd2 (fast recovery)
- Retransmit missing segment (fast retransmit)
- Stays in congestion avoidance state
![Page 26: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/26.jpg)
TCP NewReno [RFC 3782]
• Same as Tahoe/Reno on timeout
• During fast recovery- Keep track of last unacknowledged packet on entering fast
recovery
- On every duplicate ACK, inflate congestion window byMSS
- When last packet is acknowledged, return to congestionavoidance, set cwnd back to original value
![Page 27: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/27.jpg)
Walk Through Three Examples
• TCP Tahoe (RTT estimation, congestion window)
• TCP Reno (Fast retransmit, fast recovery)
• TCP New Reno (cwnd inflation in fast recoverystate)
![Page 28: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/28.jpg)
2-minute stretch
![Page 29: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/29.jpg)
AIMD
• Additive increase, multiplicative decrease
• Behavior in congestion avoidance mode
• Why AIMD? Remember goals:- Link utilization
- Fairness
![Page 30: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/30.jpg)
AIMD in action
30
AIMD in Action
• Sender searches for correct window size• Figure thanks to Brad Karp
![Page 31: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/31.jpg)
Chiu Jain Phase Plots
Flow A rate (bps)
Flow B rate (bps)
![Page 32: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/32.jpg)
Chiu Jain Phase Plots
Flow A rate (bps)
Flow B rate (bps)
FairA=B
![Page 33: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/33.jpg)
Chiu Jain Phase Plots
Flow A rate (bps)
Flow B rate (bps)
FairA=B
EfficientA+B=C
![Page 34: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/34.jpg)
Chiu Jain Phase Plots
Flow A rate (bps)
Flow B rate (bps)
FairA=B
EfficientA+B=C
overload
underload
![Page 35: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/35.jpg)
Chiu Jain Phase Plots
Flow A rate (bps)
Flow B rate (bps)
FairA=B
EfficientA+B=C
overload
underload
![Page 36: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/36.jpg)
Chiu Jain Phase Plots
Flow A rate (bps)
Flow B rate (bps)
FairA=B
EfficientA+B=C
overload
underload
t1
t2
t3
t4
t5
t6
![Page 37: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/37.jpg)
Chiu Jain Phase Plots
Flow A rate (bps)
Flow B rate (bps)
FairA=B
EfficientA+B=C
overload
underload
α
β
![Page 38: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/38.jpg)
Three questions, revisited
• Goal: maintain TCP goodput at equilibrium
• When does TCP retransmit packets?
• When does TCP transmit packets?
• When does TCP ack packets?
![Page 39: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/39.jpg)
Sending acknowledgements
• An ACK must be sent for every other segment(RFC 2581)
• An ACK must be sent within 500ms (RFC 2581)
• Send duplicate acks aggressively
![Page 40: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/40.jpg)
Acknowledgement Issues
• Savage et al., CCR 1999
• ACKs are in terms of bytes
• Congestion control is in terms of segments
• What if you send multiple ACKs per segment?
![Page 41: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/41.jpg)
Multiplicative increase• Receiver can force multiplicative increase, for M ≤
segment length
• Can lead to 4GB cwnd in 4 RTTs!
![Page 42: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/42.jpg)
TCP Daytona!
![Page 43: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/43.jpg)
![Page 44: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/44.jpg)
TCP Daytona Lessons
• TCP implementations now symmetrically usebytes
• Protocol specification is difficult!
• Very subtle and simple design decisions can leadto undesired behavior
• IETF requires at least two interoperatingimplementations before moving to standards track
• Protocols evolve
![Page 45: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/45.jpg)
Future of TCP
• BitTorrent can lead to other apps performingpoorly
- BitTorrent (and other P2P applications) can open 10-100connections
- TCP provides per-flow, not per-application, fairness
• Low Extra Delay Background Transport (ledbat)- ”LEDBAT is a transport-area WG that will focus on broadly
applicable techniques that allow large amounts of data tobe consistently transmitted without substantially affectingthe delays experienced by other users and applications.”
![Page 46: Computer network (13)](https://reader033.fdocuments.us/reader033/viewer/2022052909/55992a9c1a28ab36298b47e9/html5/thumbnails/46.jpg)
Future of TCP, Continued
• High speed links/high bandwidth-delay product- Single packet loss cuts cwnd in half
- Can take a long time to grow
- Fast TCP, High-Speed TCP
• Wireless- Wireless exhibits many losses due to poor links, limits
throughput
- High-throughput TCP in wireless meshes does not yet exist
- More in lecture 13