transport layer v - irl.cs.tamu.eduirl.cs.tamu.edu/courses/463/3-20-18.pdf9 case study: atm abr...
TRANSCRIPT
![Page 1: Transport Layer V - irl.cs.tamu.eduirl.cs.tamu.edu/courses/463/3-20-18.pdf9 Case Study: ATM ABR Congestion Control. Case Study: ATM ABR Congestion Control • For network-assisted](https://reader034.vdocuments.us/reader034/viewer/2022051800/5ac8b1e57f8b9a42358c9912/html5/thumbnails/1.jpg)
1
CSCE 463/612 Networks and Distributed Processing Spring 2018
CSCECSCE 463/612463/612 Networks and Distributed ProcessingNetworks and Distributed Processing Spring 2018Spring 2018
Transport Layer VTransport Layer VDmitri LoguinovDmitri LoguinovTexas A&M UniversityTexas A&M University
March 20, 2018March 20, 2018
Original slides copyright Original slides copyright ©© 19961996--2004 J.F Kurose and K.W. Ross2004 J.F Kurose and K.W. Ross
![Page 2: Transport Layer V - irl.cs.tamu.eduirl.cs.tamu.edu/courses/463/3-20-18.pdf9 Case Study: ATM ABR Congestion Control. Case Study: ATM ABR Congestion Control • For network-assisted](https://reader034.vdocuments.us/reader034/viewer/2022051800/5ac8b1e57f8b9a42358c9912/html5/thumbnails/2.jpg)
2
Chapter 3: RoadmapChapter 3: RoadmapChapter 3: Roadmap
3.1 Transport-layer services3.2 Multiplexing and demultiplexing3.3 Connectionless transport: UDP3.4 Principles of reliable data transfer3.5 Connection-oriented transport: TCP
━
Segment structure━
Reliable data transfer━
Flow control━
Connection management3.6 Principles of congestion control3.7 TCP congestion control
![Page 3: Transport Layer V - irl.cs.tamu.eduirl.cs.tamu.edu/courses/463/3-20-18.pdf9 Case Study: ATM ABR Congestion Control. Case Study: ATM ABR Congestion Control • For network-assisted](https://reader034.vdocuments.us/reader034/viewer/2022051800/5ac8b1e57f8b9a42358c9912/html5/thumbnails/3.jpg)
3
Principles of Congestion ControlPrinciples of Congestion ControlPrinciples of Congestion Control
Congestion:• Informally: “too many sources
sending too much data too fast for the network to handle”
• Different from flow control!• Manifestations:
━
Lost packets (buffer overflows)━
Delays (queueing in routers)• Important networking problem
![Page 4: Transport Layer V - irl.cs.tamu.eduirl.cs.tamu.edu/courses/463/3-20-18.pdf9 Case Study: ATM ABR Congestion Control. Case Study: ATM ABR Congestion Control • For network-assisted](https://reader034.vdocuments.us/reader034/viewer/2022051800/5ac8b1e57f8b9a42358c9912/html5/thumbnails/4.jpg)
4
Causes/Costs of Congestion: Scenario 1 Causes/CostsCauses/Costs of Congestion: Scenario 1 of Congestion: Scenario 1
• Two senders, two receivers
• One router of capacity C, infinite buffers, no loss
• No retransmission
Cost 1: queuing delays in congested routers
unlimited shared output link buffers
Host A λin
: app rate
Host B
λout
![Page 5: Transport Layer V - irl.cs.tamu.eduirl.cs.tamu.edu/courses/463/3-20-18.pdf9 Case Study: ATM ABR Congestion Control. Case Study: ATM ABR Congestion Control • For network-assisted](https://reader034.vdocuments.us/reader034/viewer/2022051800/5ac8b1e57f8b9a42358c9912/html5/thumbnails/5.jpg)
5
Causes/Costs of Congestion: Scenario 2 Causes/CostsCauses/Costs of Congestion: Scenario 2 of Congestion: Scenario 2
• One router, finite buffers (pkt loss is possible now)• Sender retransmission of lost packet• During congestion 2λnet
= 2(λin
+ λretx
) = C
finite shared output link buffers
Host A λin
: app rate
Host B
λout
λnet
: network rate (original + retxed pkts)
![Page 6: Transport Layer V - irl.cs.tamu.eduirl.cs.tamu.edu/courses/463/3-20-18.pdf9 Case Study: ATM ABR Congestion Control. Case Study: ATM ABR Congestion Control • For network-assisted](https://reader034.vdocuments.us/reader034/viewer/2022051800/5ac8b1e57f8b9a42358c9912/html5/thumbnails/6.jpg)
6
Causes/Costs of Congestion: Scenario 2 Causes/CostsCauses/Costs of Congestion: Scenario 2 of Congestion: Scenario 2
• We call λin
= λout
goodput and λnet
throughput━
Case A: pkts never lost while λnet
< C/2
(not realistic)
━
Case B: pkts are lost when λnet
is “sufficiently large,” but timeouts are perfectly accurate (not realistic either)
━
Case C: same as B, but timer is not perfect (duplicate packets are possible)
C/2
C/2λnet
λout
A.
C/2
C/2
B.λnet
λout
pkt loss started
Cost 2: retransmission of lost packets and premature timeouts increase network load, reduce flow’s own goodput
C/2
C/2
C.λnet
λout
pkt loss started
![Page 7: Transport Layer V - irl.cs.tamu.eduirl.cs.tamu.edu/courses/463/3-20-18.pdf9 Case Study: ATM ABR Congestion Control. Case Study: ATM ABR Congestion Control • For network-assisted](https://reader034.vdocuments.us/reader034/viewer/2022051800/5ac8b1e57f8b9a42358c9912/html5/thumbnails/7.jpg)
7
Causes/Costs of Congestion: Scenario 3 Causes/CostsCauses/Costs of Congestion: Scenario 3 of Congestion: Scenario 3
• Multihop case━
Timeout/retransmit━
R2 = 50 Mbps, R1 = R3 = R4 = 100 Mbps━
Flow C-A: sends 90 Mbps
flow B-D suffers packet loss and
reduced goodput
finite shared output link buffers
Host A
Host B
Host C
Host D
R2
R1
R3
R4
green flow D-B is affected by “junk”
pkts that are lost at router R2
Cost 3: congestion causes goodput reduction for other flows
Cost 3: congestion causes goodput reduction for other flows
![Page 8: Transport Layer V - irl.cs.tamu.eduirl.cs.tamu.edu/courses/463/3-20-18.pdf9 Case Study: ATM ABR Congestion Control. Case Study: ATM ABR Congestion Control • For network-assisted](https://reader034.vdocuments.us/reader034/viewer/2022051800/5ac8b1e57f8b9a42358c9912/html5/thumbnails/8.jpg)
8
Approaches Towards Congestion ControlApproaches Towards Congestion ControlApproaches Towards Congestion Control
End-to-end:• No explicit feedback
from network• Congestion inferred
by end-systems from observed loss/delay━
Approach taken by TCP (relies on loss)
Network-assisted:• Routers provide
feedback to end systems━
Single bit indicating congestion (DECbit, TCP/IP ECN)
━
Two bits (ATM)━
Explicit rate senders should send at (ATM)
Two broad approaches towards congestion control:
ATM = Asynchronous Transfer Mode
![Page 9: Transport Layer V - irl.cs.tamu.eduirl.cs.tamu.edu/courses/463/3-20-18.pdf9 Case Study: ATM ABR Congestion Control. Case Study: ATM ABR Congestion Control • For network-assisted](https://reader034.vdocuments.us/reader034/viewer/2022051800/5ac8b1e57f8b9a42358c9912/html5/thumbnails/9.jpg)
9
Case Study: ATM ABR Congestion ControlCase Study: ATM ABR Congestion ControlCase Study: ATM ABR Congestion Control
• For network-assisted protocols, the logic can be binary:━
Path underloaded, increase rate
━
Path congested, reduce rate
• It can also be ternary━
Increase, decrease, hold steady
━
ATM ABR (Available Bit Rate) profile
RM (resource management) packets (cells):
• Sent by sender, interspersed with data cells
• Bits in RM cell set by switches/routers━
NI bit: no increase in rate (impending congestion)
━
CI bit: reduce rate (congestion in progress)
• RM cells returned to sender by receiver, with bits intact
![Page 10: Transport Layer V - irl.cs.tamu.eduirl.cs.tamu.edu/courses/463/3-20-18.pdf9 Case Study: ATM ABR Congestion Control. Case Study: ATM ABR Congestion Control • For network-assisted](https://reader034.vdocuments.us/reader034/viewer/2022051800/5ac8b1e57f8b9a42358c9912/html5/thumbnails/10.jpg)
10
Case Study: ATM ABR Congestion ControlCase Study: ATM ABR Congestion ControlCase Study: ATM ABR Congestion Control
• Additional approach is to use a two-byte ER (explicit rate) field in RM cell━
Congested switch may lower ER value━
Senders obtain the maximum supported rate on their path• Issues with network-assisted congestion control?
![Page 11: Transport Layer V - irl.cs.tamu.eduirl.cs.tamu.edu/courses/463/3-20-18.pdf9 Case Study: ATM ABR Congestion Control. Case Study: ATM ABR Congestion Control • For network-assisted](https://reader034.vdocuments.us/reader034/viewer/2022051800/5ac8b1e57f8b9a42358c9912/html5/thumbnails/11.jpg)
11
Chapter 3: RoadmapChapter 3: RoadmapChapter 3: Roadmap
3.1 Transport-layer services3.2 Multiplexing and demultiplexing3.3 Connectionless transport: UDP3.4 Principles of reliable data transfer3.5 Connection-oriented transport: TCP
━
Segment structure━
Reliable data transfer━
Flow control━
Connection management3.6 Principles of congestion control3.7 TCP congestion control
![Page 12: Transport Layer V - irl.cs.tamu.eduirl.cs.tamu.edu/courses/463/3-20-18.pdf9 Case Study: ATM ABR Congestion Control. Case Study: ATM ABR Congestion Control • For network-assisted](https://reader034.vdocuments.us/reader034/viewer/2022051800/5ac8b1e57f8b9a42358c9912/html5/thumbnails/12.jpg)
12
TCP Congestion ControlTCP Congestion ControlTCP Congestion Control
• TCP congestion control has a variety of algorithms developed over the years━
TCP Tahoe (1988), TCP Reno (1990), TCP SACK (1992)━
TCP Vegas (1994), TCP New Reno (1996)━
High-Speed TCP (2002), Scalable TCP (2002)━
FAST TCP (2004), TCP Illinois (2006)• Linux 2.6.8 and later: BIC TCP (2004)• Vista and later: Compound TCP (2005)• Many others: H-TCP, CUBIC TCP, L-TCP, TCP
Westwood, TCP Veno (Vegas + Reno), TCP Africa
![Page 13: Transport Layer V - irl.cs.tamu.eduirl.cs.tamu.edu/courses/463/3-20-18.pdf9 Case Study: ATM ABR Congestion Control. Case Study: ATM ABR Congestion Control • For network-assisted](https://reader034.vdocuments.us/reader034/viewer/2022051800/5ac8b1e57f8b9a42358c9912/html5/thumbnails/13.jpg)
13
TCP Congestion ControlTCP Congestion ControlTCP Congestion Control
• End-to-end control (no network assistance)
• Sender limits transmission:LastByteSent - LastByteAcked
CongWin
• CongWin is a function of perceived network congestion
• The effective window is the minimum of CongWin, flow-control window carried in the ACKs, and sender’s own buffer space
• How does sender perceive congestion?━
Loss event = timeout or 3 duplicate acks
• TCP sender reduces rate (CongWin) after loss event
• Three mechanisms:━
AIMD (congestion avoidance)
━
Slow start━
Conservative after timeout events
![Page 14: Transport Layer V - irl.cs.tamu.eduirl.cs.tamu.edu/courses/463/3-20-18.pdf9 Case Study: ATM ABR Congestion Control. Case Study: ATM ABR Congestion Control • For network-assisted](https://reader034.vdocuments.us/reader034/viewer/2022051800/5ac8b1e57f8b9a42358c9912/html5/thumbnails/14.jpg)
14
TCP AIMD (Additive Increase, Multiplicative Decrease) TCP AIMD (Additive Increase, TCP AIMD (Additive Increase, Multiplicative Decrease)Multiplicative Decrease)
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
Multiplicative decrease: cut CongWin in half after fast retransmit (3-dup ACKs)
Additive increase: increase CongWin by 1 MSS every RTT in the absence of loss events: probing
3-dup ACK (loss)
Peaks are different: # of flows or RTT changes
![Page 15: Transport Layer V - irl.cs.tamu.eduirl.cs.tamu.edu/courses/463/3-20-18.pdf9 Case Study: ATM ABR Congestion Control. Case Study: ATM ABR Congestion Control • For network-assisted](https://reader034.vdocuments.us/reader034/viewer/2022051800/5ac8b1e57f8b9a42358c9912/html5/thumbnails/15.jpg)
15
TCP EquationsTCP EquationsTCP Equations
• To better understand TCP, we next examine its AIMD equations (congestion avoidance)
• Assume that W is the window size in pkts and B
= CongWin is the same in bytes (B
= MSS *
W)
• General form (loss detected through 3-dup ACK):
• Reasoning━
For each window of size W, we get exactly W acknowledgments in one RTT (assuming no loss!)
━
This increases window size by “roughly” 1
packet per RTT
![Page 16: Transport Layer V - irl.cs.tamu.eduirl.cs.tamu.edu/courses/463/3-20-18.pdf9 Case Study: ATM ABR Congestion Control. Case Study: ATM ABR Congestion Control • For network-assisted](https://reader034.vdocuments.us/reader034/viewer/2022051800/5ac8b1e57f8b9a42358c9912/html5/thumbnails/16.jpg)
16
TCP EquationsTCP EquationsTCP Equations
• What is the equation in terms of B?
• Equivalently, TCP increases B
by MSS
per RTT• What is the rate of TCP given that its window size is B
(or W)?
• Since TCP sends a full window of pkts per RTT, its ideal rate can be written as:
![Page 17: Transport Layer V - irl.cs.tamu.eduirl.cs.tamu.edu/courses/463/3-20-18.pdf9 Case Study: ATM ABR Congestion Control. Case Study: ATM ABR Congestion Control • For network-assisted](https://reader034.vdocuments.us/reader034/viewer/2022051800/5ac8b1e57f8b9a42358c9912/html5/thumbnails/17.jpg)
17
TCP Slow StartTCP Slow StartTCP Slow Start
• When connection begins, CongWin = 1 MSS
━
Example: MSS = 500 bytes and RTT = 200 msec━
Q: initial rate?• A: 20 Kbits/s• Available bandwidth may be much larger than
MSS/RTT━
Desirable to quickly ramp up to a “respectable” rate• Solution: Slow Start (SS)
━
When a connection begins, it increases rate exponentially fast until first loss or receiver window is reached
━
Term “slow” is used to distinguish this algorithm from earlier TCPs which directly jumped to some huge rate
![Page 18: Transport Layer V - irl.cs.tamu.eduirl.cs.tamu.edu/courses/463/3-20-18.pdf9 Case Study: ATM ABR Congestion Control. Case Study: ATM ABR Congestion Control • For network-assisted](https://reader034.vdocuments.us/reader034/viewer/2022051800/5ac8b1e57f8b9a42358c9912/html5/thumbnails/18.jpg)
18
TCP Slow Start (More)TCP Slow Start (More)TCP Slow Start (More)
• Slow start━
Double CongWin every RTT
• Done by incrementing CongWin for every ACK received:━
W
= W+1
per ACK
(or B
= B
+ MSS)
• Summary: initial rate is slow but ramps up exponentially fast
Host A
one segment
RTT
Host B
time
two segments
four segments
![Page 19: Transport Layer V - irl.cs.tamu.eduirl.cs.tamu.edu/courses/463/3-20-18.pdf9 Case Study: ATM ABR Congestion Control. Case Study: ATM ABR Congestion Control • For network-assisted](https://reader034.vdocuments.us/reader034/viewer/2022051800/5ac8b1e57f8b9a42358c9912/html5/thumbnails/19.jpg)
19
win
dow
Win
pkt
s
RTT round
RefinementRefinementRefinement
• TCP Tahoe only responds to timeouts:━
Threshold = CongWin/2
━
CongWin is set to 1
MSS━
Slow start until threshold is reached; then move to AIMD congestion avoidance
• TCP Reno loss:━
Timeout: same as Tahoe━
3 dup ACKs: CongWin is cut in half, stay in AIMD congestion avoidance (method called fast recovery)
Three dup ACKs indicate that network is capable of delivering subsequent segments
Timeout before 3-dup ACK is “more alarming”
Fast Recovery Philosophy:
previous timeoutloss detected via triple dup ACK
![Page 20: Transport Layer V - irl.cs.tamu.eduirl.cs.tamu.edu/courses/463/3-20-18.pdf9 Case Study: ATM ABR Congestion Control. Case Study: ATM ABR Congestion Control • For network-assisted](https://reader034.vdocuments.us/reader034/viewer/2022051800/5ac8b1e57f8b9a42358c9912/html5/thumbnails/20.jpg)
20
Refinement (More)Refinement (More)Refinement (More)
• Initial slow start ends when either━
Loss occurs━
Initial threshold is reached• Initial threshold is usually set to the receiver’s
advertised window
Implementation:• Variable ssthresh is the “slow start threshold”• At loss events, ssthresh is set to CongWin/2
![Page 21: Transport Layer V - irl.cs.tamu.eduirl.cs.tamu.edu/courses/463/3-20-18.pdf9 Case Study: ATM ABR Congestion Control. Case Study: ATM ABR Congestion Control • For network-assisted](https://reader034.vdocuments.us/reader034/viewer/2022051800/5ac8b1e57f8b9a42358c9912/html5/thumbnails/21.jpg)
21
Summary: TCP Congestion ControlSummary: TCP Congestion ControlSummary: TCP Congestion Control
• In slow-start, CongWin is below ssthresh and window grows exponentially (both Reno and Tahoe)
• In congestion-avoidance, CongWin is above ssthresh and window grows linearly (both Reno and Tahoe)
• When a triple duplicate ACK occurs, CongWin is set to CongWin/2 (Reno only); state = AIMD
• When timeout occurs, ssthresh is set to CongWin/2 and CongWin is set to 1
MSS (both
Reno and Tahoe); state = slow start
![Page 22: Transport Layer V - irl.cs.tamu.eduirl.cs.tamu.edu/courses/463/3-20-18.pdf9 Case Study: ATM ABR Congestion Control. Case Study: ATM ABR Congestion Control • For network-assisted](https://reader034.vdocuments.us/reader034/viewer/2022051800/5ac8b1e57f8b9a42358c9912/html5/thumbnails/22.jpg)
22
TCP Reno Sender Congestion ControlTCP TCP Reno SenderReno Sender Congestion ControlCongestion Control
Event State TCP Sender Action CommentaryACK receipt for previously unacked data
Slow Start (SS)
CongWin += MSS, If (CongWin >= ssthresh) {
Set state to “Congestion Avoidance”
}
Results in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin += MSS2 / CongWin Additive increase, resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA ssthresh = max(CongWin/2, MSS) CongWin = ssthresh Set state to “Congestion Avoidance”
Fast recovery, implementing multiplicative decrease
Timeout SS or CA ssthresh = max(CongWin/2, MSS) CongWin = MSSSet state to “Slow Start”
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
![Page 23: Transport Layer V - irl.cs.tamu.eduirl.cs.tamu.edu/courses/463/3-20-18.pdf9 Case Study: ATM ABR Congestion Control. Case Study: ATM ABR Congestion Control • For network-assisted](https://reader034.vdocuments.us/reader034/viewer/2022051800/5ac8b1e57f8b9a42358c9912/html5/thumbnails/23.jpg)
23
TCP Congestion ControlTCP Congestion ControlTCP Congestion Control
• Summary of TCP Reno:
Congestion avoidance
Congestion avoidanceSlow startSlow start
Timeout W
= 1
Triple dup ACK W
= W/2reach threshold or triple
dup ACK
New ACK W
= W
+ 1/W
New ACK W
= W
+ 1
Timeout W
= 1