SlideShare a Scribd company logo
Jennifer Rexford
Fall 2016 (TTh 3:00-4:20 in CS 105)
COS 561: Advanced Computer Networks
http://www.cs.princeton.edu/courses/archive/fall16/cos561/
TCP Congestion Control
Holding the Internet Together
• Distributed cooperation for resource allocation
– BGP: what end-to-end paths to take (for ~50K ASes)
– TCP: what rate to send over each path (for ~3B hosts)
2
AS 1
AS 2
AS 3
AS 4
What Problem Does a Protocol Solve?
• BGP path selection
– Select a path that each AS on the path is willing to use
– Adapt path selection in the presence of failures
• TCP congestion control
– Prevent congestion collapse of the Internet
– Allocate bandwidth fairly and efficiently
• But, can we be more precise?
– Define mathematically what problem is being solved
– To understand the problem and analyze the protocol
– To predict the effects of changes in the system
– To design better protocols from first principles 3
Fairness
4
Fair and Efficient Use of a Resource
• Suppose n users share a single resource
–Like the bandwidth on a single link
–E.g., 3 users sharing a 30 Gbps link
• What is a fair allocation of bandwidth?
–Suppose user demand is “elastic” (i.e., unlimited)
–Allocate each a 1/n share (e.g., 10 Gbps each)
• But, “equality” is not enough
–Which allocation is best: [5, 5, 5] or [18, 6, 6]?
–[5, 5, 5] is more “fair”, but [18, 6, 6] more efficient
–What about [5, 5, 5] vs. [22, 4, 4]? 5
Fair Use of a Single Resource
• What if some users have inelastic demand?
– E.g., 3 users where 1 user only wants 6 Gbps
– And the total link capacity is 30 Gbps
• Should we still do an “equal” allocation?
– E.g., [6, 6, 6]
– But that leaves 12 Gbps unused
• Should we allocate in proportion to demand?
– E.g., 1 user wants 6 Gbps, and 2 each want 20 Gbps
– Allocate [4, 13, 13]?
• Or, give the least demanding user all he wants?
– E.g., allocate [6, 12, 12]?
6
Max-Min Fairness
• The allocation must be “feasible”
– Total allocation should not exceed link capacity
• Protect the less fortunate
– Any attempt to increase the allocation of one user
– … necessarily decreases the allocation of another user
with equal or lower allocation
• Fully utilize a “bottlenecked” resource
– If demand exceeds capacity, the link is fully used
• Progressive filling algorithm
– Grow all rates until some users stop having demand
– Continue increasing all remaining rates till link is full
7
Resource Allocation Over Paths
• Maximum throughput: [30, 30, 0]
– Total throughput of 60, but user C starves
• Max-min fairness: [15, 15, 15]
– Equal allocation, but throughput of just 45
• Proportional fairness: [20, 20, 10]
– Balance trade-off between throughput and equality
– Throughput of 50, and penalize C for using 2 busy links
8
Three users A, B, and C
Two 30 Gbps links
A B
C
Distributed Algorithm for
Achieving Fairness
9
Network Utility Maximization (NUM)
• Users (i)
– Rate allocation: xi
– Utility function: U(xi)
• Network links (l)
– Link capacity: cl
– Routes: Rli=1 if link l on path i,
Rli=0 otherwise
10
maximize Si U(xi)
subject to Si Rlixi  cl
variables xi ≥ 0
xi
U(xi)
Network Utility and Fairness
11
x
U(x)
concave
(diminishing returns)
Alpha-fair utility
– U(x) = x1-a/(1-a) for a ≠ 1
– U(x) = log(x) for a = 1
small a
(more elastic demand)
large a
(more fair)
∞
0 1
Max
throughput
Proportional
fairness
Max-min
fairness
Solving NUM Problems
• Convex optimization
– Maximizing a concave objective
– Subject to convex constraints
• Benefits
– Locally optimal solution is globally optimal
– Can be solved efficiently on a centralized computer
• “Decomposable” into many smaller problems
12
maximize Si U(xi)
subject to Si Rlixi  cl
variables xi ≥ 0
Move Constraints to Objective
13
max Si U(xi)
subject to Si Rlixi  cl
variables xi ≥ 0
max Si U(xi) + Sl pl (cl – Si in S(l) xi)
decoupled
across sessions
coupled across
sessions
max Si [U(xi) – (Sl in L(i) pl ) xi] + Sl pl cl
decoupled
across sessions
decoupled
across links
Decomposition
14
User i
Link l
path cost
qi = S pl
offered link load
yl = S Rlixi
max (U(xi) – qi)
xi
pl[t] = (pl[t-1]
- b (cl – yl))+
rates xi
prices pl
Link Prices and Implicit Feedback
• What are the link prices pl?
– Measure of congestion
– Amount of traffic in excess of capacity
– That is, the packet loss!
• What are the path costs qi?
– Sum of the link prices pl along the path
– If loss is low, sum of link loss is roughly path loss
• No need for explicit feedback!
– User i can observe the path loss qi on path i
– Link l can observe the offered load yl on link l
15
Coming Back to TCP
• Reverse engineering
– TCP Reno
 Utilities are arctan(x)
 Prices are end-to-end packet loss
– TCP Vegas
 Utilities are log(x), i.e., proportional fairness
 Prices are end-to-end packet delays
• Forward engineering
– Use decomposition to design new variants of TCP
– E.g., TCP FAST
• Simplifications
– Fixed set of connections, focus on equilibrium behavior,
ignore feedback delays and queuing dynamics 16
TCP Congestion Control
17
Congestion in Drop-Tail FIFO Queue
• Access to the bandwidth: first-in first-out queue
– Packets transmitted in the order they arrive
✗
• Access to the buffer space: drop-tail queuing
– If the queue is full, drop the incoming packet
How it Looks to the End Host
• Delay: Packet experiences high delay
• Loss: Packet gets dropped along path
• How can TCP sender learn this?
– Delay: Round-trip time estimate
– Loss: Timeout and/or duplicate acknowledgments
– Mark: Packets marked by routers with large queues
✗
TCP Congestion Window
• Each sender maintains congestion window
–Max number of bytes to have in transit (not ACK’d)
• Adapting the congestion window
–Decrease upon losing a packet: backing off
–Increase upon success: optimistically exploring
–Always struggling to find right transfer rate
• Tradeoff
–Pro: avoids needing explicit network feedback
–Con: continually under- and over-shoots “right” rate
Additive Increase, Multiplicative Decrease
• How much to adapt?
– Additive increase: On success of last window of data,
increase window by 1 Max Segment Size (MSS)
– Multiplicative decrease: On loss of packet, divide
congestion window in half
• Much quicker to slow than speed up!
– Over-sized windows (causing loss) are much worse than
under-sized windows (causing lower throughput)
– AIMD: A necessary condition for stability of TCP
Leads to TCP Sawtooth Behavior
22
t
Congestion
Window
timeout
triple dup ACK
slow start
Receiver Window vs. Congestion Window
• Flow control
–Keep a fast sender from overwhelming slow receiver
• Congestion control
–Keep a set of senders from overloading the network
• Different concepts, but similar mechanisms
–TCP flow control: receiver window
–TCP congestion control: congestion window
–Sender TCP window =
min { congestion window, receiver window }
TCP Tahoe vs. TCP Reno
• Two similar versions of TCP
– TCP Tahoe (SIGCOMM’88 paper)
– TCP Reno (1990)
• TCP Tahoe
– Always repeat slow start after a loss
– Assign slow-start threshold to half of congestion window
• TCP Reno
– Repeat slow start after timeout-based loss
– Divide congestion window in half after triple dup ACK
24
Discussion
25
Ad

More Related Content

Similar to Tcp congestion control topic in high speed network (20)

Computer network (11)
Computer network (11)Computer network (11)
Computer network (11)
NYversity
 
05 ergeg mmergm maergergcongergeestion.ppt
05 ergeg mmergm maergergcongergeestion.ppt05 ergeg mmergm maergergcongergeestion.ppt
05 ergeg mmergm maergergcongergeestion.ppt
TLRTHR
 
05compuernetworkscongestioncontrolalgo.ppt
05compuernetworkscongestioncontrolalgo.ppt05compuernetworkscongestioncontrolalgo.ppt
05compuernetworkscongestioncontrolalgo.ppt
TLRTHR
 
AusNOG 2019: TCP and BBR
AusNOG 2019: TCP and BBRAusNOG 2019: TCP and BBR
AusNOG 2019: TCP and BBR
APNIC
 
lect10_interconnect.ppt
lect10_interconnect.pptlect10_interconnect.ppt
lect10_interconnect.ppt
p096309MuhammadIshaq
 
RIPE 76: TCP and BBR
RIPE 76: TCP and BBRRIPE 76: TCP and BBR
RIPE 76: TCP and BBR
APNIC
 
RIPE 80: Buffers and Protocols
RIPE 80: Buffers and ProtocolsRIPE 80: Buffers and Protocols
RIPE 80: Buffers and Protocols
APNIC
 
Routing algorithms
Routing algorithmsRouting algorithms
Routing algorithms
MoctardOLOULADE
 
Introduction to backwards learning algorithm
Introduction to backwards learning algorithmIntroduction to backwards learning algorithm
Introduction to backwards learning algorithm
Roshan Karunarathna
 
05Transport.ppt
05Transport.ppt05Transport.ppt
05Transport.ppt
McsaMcse1
 
Transport ppt for students examination.ppt
Transport ppt for students examination.pptTransport ppt for students examination.ppt
Transport ppt for students examination.ppt
Saini71
 
UDEC_Redes_Comp_diapo_U1_p2_rev1_2024.pptx
UDEC_Redes_Comp_diapo_U1_p2_rev1_2024.pptxUDEC_Redes_Comp_diapo_U1_p2_rev1_2024.pptx
UDEC_Redes_Comp_diapo_U1_p2_rev1_2024.pptx
hugarces1
 
Tcp(no ip) review part2
Tcp(no ip) review part2Tcp(no ip) review part2
Tcp(no ip) review part2
Diptanshu singh
 
High performance browser networking ch1,2,3
High performance browser networking ch1,2,3High performance browser networking ch1,2,3
High performance browser networking ch1,2,3
Seung-Bum Lee
 
L22.ppt
L22.pptL22.ppt
L22.ppt
raaed5
 
Lecture notes - Data Centers________.pptx
Lecture notes - Data Centers________.pptxLecture notes - Data Centers________.pptx
Lecture notes - Data Centers________.pptx
SandeepGupta229023
 
integrated and diffrentiated services
 integrated and diffrentiated services integrated and diffrentiated services
integrated and diffrentiated services
Rishabh Gupta
 
Qo s 09-integrated and red
Qo s 09-integrated and redQo s 09-integrated and red
Qo s 09-integrated and red
Abhishek Kesharwani
 
Computer Network notes Transport layer.pdf
Computer Network notes Transport layer.pdfComputer Network notes Transport layer.pdf
Computer Network notes Transport layer.pdf
workbdevraj
 
TLS in manet
TLS in manetTLS in manet
TLS in manet
Jay Patel
 
Computer network (11)
Computer network (11)Computer network (11)
Computer network (11)
NYversity
 
05 ergeg mmergm maergergcongergeestion.ppt
05 ergeg mmergm maergergcongergeestion.ppt05 ergeg mmergm maergergcongergeestion.ppt
05 ergeg mmergm maergergcongergeestion.ppt
TLRTHR
 
05compuernetworkscongestioncontrolalgo.ppt
05compuernetworkscongestioncontrolalgo.ppt05compuernetworkscongestioncontrolalgo.ppt
05compuernetworkscongestioncontrolalgo.ppt
TLRTHR
 
AusNOG 2019: TCP and BBR
AusNOG 2019: TCP and BBRAusNOG 2019: TCP and BBR
AusNOG 2019: TCP and BBR
APNIC
 
RIPE 76: TCP and BBR
RIPE 76: TCP and BBRRIPE 76: TCP and BBR
RIPE 76: TCP and BBR
APNIC
 
RIPE 80: Buffers and Protocols
RIPE 80: Buffers and ProtocolsRIPE 80: Buffers and Protocols
RIPE 80: Buffers and Protocols
APNIC
 
Introduction to backwards learning algorithm
Introduction to backwards learning algorithmIntroduction to backwards learning algorithm
Introduction to backwards learning algorithm
Roshan Karunarathna
 
05Transport.ppt
05Transport.ppt05Transport.ppt
05Transport.ppt
McsaMcse1
 
Transport ppt for students examination.ppt
Transport ppt for students examination.pptTransport ppt for students examination.ppt
Transport ppt for students examination.ppt
Saini71
 
UDEC_Redes_Comp_diapo_U1_p2_rev1_2024.pptx
UDEC_Redes_Comp_diapo_U1_p2_rev1_2024.pptxUDEC_Redes_Comp_diapo_U1_p2_rev1_2024.pptx
UDEC_Redes_Comp_diapo_U1_p2_rev1_2024.pptx
hugarces1
 
High performance browser networking ch1,2,3
High performance browser networking ch1,2,3High performance browser networking ch1,2,3
High performance browser networking ch1,2,3
Seung-Bum Lee
 
L22.ppt
L22.pptL22.ppt
L22.ppt
raaed5
 
Lecture notes - Data Centers________.pptx
Lecture notes - Data Centers________.pptxLecture notes - Data Centers________.pptx
Lecture notes - Data Centers________.pptx
SandeepGupta229023
 
integrated and diffrentiated services
 integrated and diffrentiated services integrated and diffrentiated services
integrated and diffrentiated services
Rishabh Gupta
 
Computer Network notes Transport layer.pdf
Computer Network notes Transport layer.pdfComputer Network notes Transport layer.pdf
Computer Network notes Transport layer.pdf
workbdevraj
 
TLS in manet
TLS in manetTLS in manet
TLS in manet
Jay Patel
 

More from GOKULKANNANMMECLECTC (6)

GAME THEORY AND MONTE CARLO SEARCH SPACE TREE
GAME THEORY AND MONTE CARLO SEARCH SPACE TREEGAME THEORY AND MONTE CARLO SEARCH SPACE TREE
GAME THEORY AND MONTE CARLO SEARCH SPACE TREE
GOKULKANNANMMECLECTC
 
INTRODUCTION TO ARTIFICIAL INTELLIGENCE BASIC
INTRODUCTION TO ARTIFICIAL INTELLIGENCE BASICINTRODUCTION TO ARTIFICIAL INTELLIGENCE BASIC
INTRODUCTION TO ARTIFICIAL INTELLIGENCE BASIC
GOKULKANNANMMECLECTC
 
tcpflowcontrolanurag-150513130509-lva1-app6892 (1).pptx
tcpflowcontrolanurag-150513130509-lva1-app6892 (1).pptxtcpflowcontrolanurag-150513130509-lva1-app6892 (1).pptx
tcpflowcontrolanurag-150513130509-lva1-app6892 (1).pptx
GOKULKANNANMMECLECTC
 
KandR_TCP (1).ppt notes for congestion control
KandR_TCP (1).ppt    notes for congestion controlKandR_TCP (1).ppt    notes for congestion control
KandR_TCP (1).ppt notes for congestion control
GOKULKANNANMMECLECTC
 
INTRODUCTION TO C PROGRAMMING in basic c language
INTRODUCTION TO C PROGRAMMING in basic c languageINTRODUCTION TO C PROGRAMMING in basic c language
INTRODUCTION TO C PROGRAMMING in basic c language
GOKULKANNANMMECLECTC
 
Arrays and function basic c programming notes
Arrays and function basic c programming notesArrays and function basic c programming notes
Arrays and function basic c programming notes
GOKULKANNANMMECLECTC
 
GAME THEORY AND MONTE CARLO SEARCH SPACE TREE
GAME THEORY AND MONTE CARLO SEARCH SPACE TREEGAME THEORY AND MONTE CARLO SEARCH SPACE TREE
GAME THEORY AND MONTE CARLO SEARCH SPACE TREE
GOKULKANNANMMECLECTC
 
INTRODUCTION TO ARTIFICIAL INTELLIGENCE BASIC
INTRODUCTION TO ARTIFICIAL INTELLIGENCE BASICINTRODUCTION TO ARTIFICIAL INTELLIGENCE BASIC
INTRODUCTION TO ARTIFICIAL INTELLIGENCE BASIC
GOKULKANNANMMECLECTC
 
tcpflowcontrolanurag-150513130509-lva1-app6892 (1).pptx
tcpflowcontrolanurag-150513130509-lva1-app6892 (1).pptxtcpflowcontrolanurag-150513130509-lva1-app6892 (1).pptx
tcpflowcontrolanurag-150513130509-lva1-app6892 (1).pptx
GOKULKANNANMMECLECTC
 
KandR_TCP (1).ppt notes for congestion control
KandR_TCP (1).ppt    notes for congestion controlKandR_TCP (1).ppt    notes for congestion control
KandR_TCP (1).ppt notes for congestion control
GOKULKANNANMMECLECTC
 
INTRODUCTION TO C PROGRAMMING in basic c language
INTRODUCTION TO C PROGRAMMING in basic c languageINTRODUCTION TO C PROGRAMMING in basic c language
INTRODUCTION TO C PROGRAMMING in basic c language
GOKULKANNANMMECLECTC
 
Arrays and function basic c programming notes
Arrays and function basic c programming notesArrays and function basic c programming notes
Arrays and function basic c programming notes
GOKULKANNANMMECLECTC
 
Ad

Recently uploaded (20)

Lecture - 7 Canals of the topic of the civil engineering
Lecture - 7  Canals of the topic of the civil engineeringLecture - 7  Canals of the topic of the civil engineering
Lecture - 7 Canals of the topic of the civil engineering
MJawadkhan1
 
introduction technology technology tec.pptx
introduction technology technology tec.pptxintroduction technology technology tec.pptx
introduction technology technology tec.pptx
Iftikhar70
 
Modeling the Influence of Environmental Factors on Concrete Evaporation Rate
Modeling the Influence of Environmental Factors on Concrete Evaporation RateModeling the Influence of Environmental Factors on Concrete Evaporation Rate
Modeling the Influence of Environmental Factors on Concrete Evaporation Rate
Journal of Soft Computing in Civil Engineering
 
How to Build a Desktop Weather Station Using ESP32 and E-ink Display
How to Build a Desktop Weather Station Using ESP32 and E-ink DisplayHow to Build a Desktop Weather Station Using ESP32 and E-ink Display
How to Build a Desktop Weather Station Using ESP32 and E-ink Display
CircuitDigest
 
twin tower attack 2001 new york city
twin  tower  attack  2001 new  york citytwin  tower  attack  2001 new  york city
twin tower attack 2001 new york city
harishreemavs
 
sss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptx
sss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptx
sss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptx
ajayrm685
 
SICPA: Fabien Keller - background introduction
SICPA: Fabien Keller - background introductionSICPA: Fabien Keller - background introduction
SICPA: Fabien Keller - background introduction
fabienklr
 
Personal Protective Efsgfgsffquipment.ppt
Personal Protective Efsgfgsffquipment.pptPersonal Protective Efsgfgsffquipment.ppt
Personal Protective Efsgfgsffquipment.ppt
ganjangbegu579
 
Applications of Centroid in Structural Engineering
Applications of Centroid in Structural EngineeringApplications of Centroid in Structural Engineering
Applications of Centroid in Structural Engineering
suvrojyotihalder2006
 
Design of Variable Depth Single-Span Post.pdf
Design of Variable Depth Single-Span Post.pdfDesign of Variable Depth Single-Span Post.pdf
Design of Variable Depth Single-Span Post.pdf
Kamel Farid
 
seninarppt.pptx1bhjiikjhggghjykoirgjuyhhhjj
seninarppt.pptx1bhjiikjhggghjykoirgjuyhhhjjseninarppt.pptx1bhjiikjhggghjykoirgjuyhhhjj
seninarppt.pptx1bhjiikjhggghjykoirgjuyhhhjj
AjijahamadKhaji
 
Smart City is the Future EN - 2024 Thailand Modify V1.0.pdf
Smart City is the Future EN - 2024 Thailand Modify V1.0.pdfSmart City is the Future EN - 2024 Thailand Modify V1.0.pdf
Smart City is the Future EN - 2024 Thailand Modify V1.0.pdf
PawachMetharattanara
 
Transport modelling at SBB, presentation at EPFL in 2025
Transport modelling at SBB, presentation at EPFL in 2025Transport modelling at SBB, presentation at EPFL in 2025
Transport modelling at SBB, presentation at EPFL in 2025
Antonin Danalet
 
Slide share PPT of SOx control technologies.pptx
Slide share PPT of SOx control technologies.pptxSlide share PPT of SOx control technologies.pptx
Slide share PPT of SOx control technologies.pptx
vvsasane
 
2.3 Genetically Modified Organisms (1).ppt
2.3 Genetically Modified Organisms (1).ppt2.3 Genetically Modified Organisms (1).ppt
2.3 Genetically Modified Organisms (1).ppt
rakshaiya16
 
hypermedia_system_revisit_roy_fielding .
hypermedia_system_revisit_roy_fielding .hypermedia_system_revisit_roy_fielding .
hypermedia_system_revisit_roy_fielding .
NABLAS株式会社
 
Design Optimization of Reinforced Concrete Waffle Slab Using Genetic Algorithm
Design Optimization of Reinforced Concrete Waffle Slab Using Genetic AlgorithmDesign Optimization of Reinforced Concrete Waffle Slab Using Genetic Algorithm
Design Optimization of Reinforced Concrete Waffle Slab Using Genetic Algorithm
Journal of Soft Computing in Civil Engineering
 
01.คุณลักษณะเฉพาะของอุปกรณ์_pagenumber.pdf
01.คุณลักษณะเฉพาะของอุปกรณ์_pagenumber.pdf01.คุณลักษณะเฉพาะของอุปกรณ์_pagenumber.pdf
01.คุณลักษณะเฉพาะของอุปกรณ์_pagenumber.pdf
PawachMetharattanara
 
Autodesk Fusion 2025 Tutorial: User Interface
Autodesk Fusion 2025 Tutorial: User InterfaceAutodesk Fusion 2025 Tutorial: User Interface
Autodesk Fusion 2025 Tutorial: User Interface
Atif Razi
 
Modelling of Concrete Compressive Strength Admixed with GGBFS Using Gene Expr...
Modelling of Concrete Compressive Strength Admixed with GGBFS Using Gene Expr...Modelling of Concrete Compressive Strength Admixed with GGBFS Using Gene Expr...
Modelling of Concrete Compressive Strength Admixed with GGBFS Using Gene Expr...
Journal of Soft Computing in Civil Engineering
 
Lecture - 7 Canals of the topic of the civil engineering
Lecture - 7  Canals of the topic of the civil engineeringLecture - 7  Canals of the topic of the civil engineering
Lecture - 7 Canals of the topic of the civil engineering
MJawadkhan1
 
introduction technology technology tec.pptx
introduction technology technology tec.pptxintroduction technology technology tec.pptx
introduction technology technology tec.pptx
Iftikhar70
 
How to Build a Desktop Weather Station Using ESP32 and E-ink Display
How to Build a Desktop Weather Station Using ESP32 and E-ink DisplayHow to Build a Desktop Weather Station Using ESP32 and E-ink Display
How to Build a Desktop Weather Station Using ESP32 and E-ink Display
CircuitDigest
 
twin tower attack 2001 new york city
twin  tower  attack  2001 new  york citytwin  tower  attack  2001 new  york city
twin tower attack 2001 new york city
harishreemavs
 
sss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptx
sss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptx
sss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptx
ajayrm685
 
SICPA: Fabien Keller - background introduction
SICPA: Fabien Keller - background introductionSICPA: Fabien Keller - background introduction
SICPA: Fabien Keller - background introduction
fabienklr
 
Personal Protective Efsgfgsffquipment.ppt
Personal Protective Efsgfgsffquipment.pptPersonal Protective Efsgfgsffquipment.ppt
Personal Protective Efsgfgsffquipment.ppt
ganjangbegu579
 
Applications of Centroid in Structural Engineering
Applications of Centroid in Structural EngineeringApplications of Centroid in Structural Engineering
Applications of Centroid in Structural Engineering
suvrojyotihalder2006
 
Design of Variable Depth Single-Span Post.pdf
Design of Variable Depth Single-Span Post.pdfDesign of Variable Depth Single-Span Post.pdf
Design of Variable Depth Single-Span Post.pdf
Kamel Farid
 
seninarppt.pptx1bhjiikjhggghjykoirgjuyhhhjj
seninarppt.pptx1bhjiikjhggghjykoirgjuyhhhjjseninarppt.pptx1bhjiikjhggghjykoirgjuyhhhjj
seninarppt.pptx1bhjiikjhggghjykoirgjuyhhhjj
AjijahamadKhaji
 
Smart City is the Future EN - 2024 Thailand Modify V1.0.pdf
Smart City is the Future EN - 2024 Thailand Modify V1.0.pdfSmart City is the Future EN - 2024 Thailand Modify V1.0.pdf
Smart City is the Future EN - 2024 Thailand Modify V1.0.pdf
PawachMetharattanara
 
Transport modelling at SBB, presentation at EPFL in 2025
Transport modelling at SBB, presentation at EPFL in 2025Transport modelling at SBB, presentation at EPFL in 2025
Transport modelling at SBB, presentation at EPFL in 2025
Antonin Danalet
 
Slide share PPT of SOx control technologies.pptx
Slide share PPT of SOx control technologies.pptxSlide share PPT of SOx control technologies.pptx
Slide share PPT of SOx control technologies.pptx
vvsasane
 
2.3 Genetically Modified Organisms (1).ppt
2.3 Genetically Modified Organisms (1).ppt2.3 Genetically Modified Organisms (1).ppt
2.3 Genetically Modified Organisms (1).ppt
rakshaiya16
 
hypermedia_system_revisit_roy_fielding .
hypermedia_system_revisit_roy_fielding .hypermedia_system_revisit_roy_fielding .
hypermedia_system_revisit_roy_fielding .
NABLAS株式会社
 
01.คุณลักษณะเฉพาะของอุปกรณ์_pagenumber.pdf
01.คุณลักษณะเฉพาะของอุปกรณ์_pagenumber.pdf01.คุณลักษณะเฉพาะของอุปกรณ์_pagenumber.pdf
01.คุณลักษณะเฉพาะของอุปกรณ์_pagenumber.pdf
PawachMetharattanara
 
Autodesk Fusion 2025 Tutorial: User Interface
Autodesk Fusion 2025 Tutorial: User InterfaceAutodesk Fusion 2025 Tutorial: User Interface
Autodesk Fusion 2025 Tutorial: User Interface
Atif Razi
 
Ad

Tcp congestion control topic in high speed network

  • 1. Jennifer Rexford Fall 2016 (TTh 3:00-4:20 in CS 105) COS 561: Advanced Computer Networks http://www.cs.princeton.edu/courses/archive/fall16/cos561/ TCP Congestion Control
  • 2. Holding the Internet Together • Distributed cooperation for resource allocation – BGP: what end-to-end paths to take (for ~50K ASes) – TCP: what rate to send over each path (for ~3B hosts) 2 AS 1 AS 2 AS 3 AS 4
  • 3. What Problem Does a Protocol Solve? • BGP path selection – Select a path that each AS on the path is willing to use – Adapt path selection in the presence of failures • TCP congestion control – Prevent congestion collapse of the Internet – Allocate bandwidth fairly and efficiently • But, can we be more precise? – Define mathematically what problem is being solved – To understand the problem and analyze the protocol – To predict the effects of changes in the system – To design better protocols from first principles 3
  • 5. Fair and Efficient Use of a Resource • Suppose n users share a single resource –Like the bandwidth on a single link –E.g., 3 users sharing a 30 Gbps link • What is a fair allocation of bandwidth? –Suppose user demand is “elastic” (i.e., unlimited) –Allocate each a 1/n share (e.g., 10 Gbps each) • But, “equality” is not enough –Which allocation is best: [5, 5, 5] or [18, 6, 6]? –[5, 5, 5] is more “fair”, but [18, 6, 6] more efficient –What about [5, 5, 5] vs. [22, 4, 4]? 5
  • 6. Fair Use of a Single Resource • What if some users have inelastic demand? – E.g., 3 users where 1 user only wants 6 Gbps – And the total link capacity is 30 Gbps • Should we still do an “equal” allocation? – E.g., [6, 6, 6] – But that leaves 12 Gbps unused • Should we allocate in proportion to demand? – E.g., 1 user wants 6 Gbps, and 2 each want 20 Gbps – Allocate [4, 13, 13]? • Or, give the least demanding user all he wants? – E.g., allocate [6, 12, 12]? 6
  • 7. Max-Min Fairness • The allocation must be “feasible” – Total allocation should not exceed link capacity • Protect the less fortunate – Any attempt to increase the allocation of one user – … necessarily decreases the allocation of another user with equal or lower allocation • Fully utilize a “bottlenecked” resource – If demand exceeds capacity, the link is fully used • Progressive filling algorithm – Grow all rates until some users stop having demand – Continue increasing all remaining rates till link is full 7
  • 8. Resource Allocation Over Paths • Maximum throughput: [30, 30, 0] – Total throughput of 60, but user C starves • Max-min fairness: [15, 15, 15] – Equal allocation, but throughput of just 45 • Proportional fairness: [20, 20, 10] – Balance trade-off between throughput and equality – Throughput of 50, and penalize C for using 2 busy links 8 Three users A, B, and C Two 30 Gbps links A B C
  • 10. Network Utility Maximization (NUM) • Users (i) – Rate allocation: xi – Utility function: U(xi) • Network links (l) – Link capacity: cl – Routes: Rli=1 if link l on path i, Rli=0 otherwise 10 maximize Si U(xi) subject to Si Rlixi  cl variables xi ≥ 0 xi U(xi)
  • 11. Network Utility and Fairness 11 x U(x) concave (diminishing returns) Alpha-fair utility – U(x) = x1-a/(1-a) for a ≠ 1 – U(x) = log(x) for a = 1 small a (more elastic demand) large a (more fair) ∞ 0 1 Max throughput Proportional fairness Max-min fairness
  • 12. Solving NUM Problems • Convex optimization – Maximizing a concave objective – Subject to convex constraints • Benefits – Locally optimal solution is globally optimal – Can be solved efficiently on a centralized computer • “Decomposable” into many smaller problems 12 maximize Si U(xi) subject to Si Rlixi  cl variables xi ≥ 0
  • 13. Move Constraints to Objective 13 max Si U(xi) subject to Si Rlixi  cl variables xi ≥ 0 max Si U(xi) + Sl pl (cl – Si in S(l) xi) decoupled across sessions coupled across sessions max Si [U(xi) – (Sl in L(i) pl ) xi] + Sl pl cl decoupled across sessions decoupled across links
  • 14. Decomposition 14 User i Link l path cost qi = S pl offered link load yl = S Rlixi max (U(xi) – qi) xi pl[t] = (pl[t-1] - b (cl – yl))+ rates xi prices pl
  • 15. Link Prices and Implicit Feedback • What are the link prices pl? – Measure of congestion – Amount of traffic in excess of capacity – That is, the packet loss! • What are the path costs qi? – Sum of the link prices pl along the path – If loss is low, sum of link loss is roughly path loss • No need for explicit feedback! – User i can observe the path loss qi on path i – Link l can observe the offered load yl on link l 15
  • 16. Coming Back to TCP • Reverse engineering – TCP Reno  Utilities are arctan(x)  Prices are end-to-end packet loss – TCP Vegas  Utilities are log(x), i.e., proportional fairness  Prices are end-to-end packet delays • Forward engineering – Use decomposition to design new variants of TCP – E.g., TCP FAST • Simplifications – Fixed set of connections, focus on equilibrium behavior, ignore feedback delays and queuing dynamics 16
  • 18. Congestion in Drop-Tail FIFO Queue • Access to the bandwidth: first-in first-out queue – Packets transmitted in the order they arrive ✗ • Access to the buffer space: drop-tail queuing – If the queue is full, drop the incoming packet
  • 19. How it Looks to the End Host • Delay: Packet experiences high delay • Loss: Packet gets dropped along path • How can TCP sender learn this? – Delay: Round-trip time estimate – Loss: Timeout and/or duplicate acknowledgments – Mark: Packets marked by routers with large queues ✗
  • 20. TCP Congestion Window • Each sender maintains congestion window –Max number of bytes to have in transit (not ACK’d) • Adapting the congestion window –Decrease upon losing a packet: backing off –Increase upon success: optimistically exploring –Always struggling to find right transfer rate • Tradeoff –Pro: avoids needing explicit network feedback –Con: continually under- and over-shoots “right” rate
  • 21. Additive Increase, Multiplicative Decrease • How much to adapt? – Additive increase: On success of last window of data, increase window by 1 Max Segment Size (MSS) – Multiplicative decrease: On loss of packet, divide congestion window in half • Much quicker to slow than speed up! – Over-sized windows (causing loss) are much worse than under-sized windows (causing lower throughput) – AIMD: A necessary condition for stability of TCP
  • 22. Leads to TCP Sawtooth Behavior 22 t Congestion Window timeout triple dup ACK slow start
  • 23. Receiver Window vs. Congestion Window • Flow control –Keep a fast sender from overwhelming slow receiver • Congestion control –Keep a set of senders from overloading the network • Different concepts, but similar mechanisms –TCP flow control: receiver window –TCP congestion control: congestion window –Sender TCP window = min { congestion window, receiver window }
  • 24. TCP Tahoe vs. TCP Reno • Two similar versions of TCP – TCP Tahoe (SIGCOMM’88 paper) – TCP Reno (1990) • TCP Tahoe – Always repeat slow start after a loss – Assign slow-start threshold to half of congestion window • TCP Reno – Repeat slow start after timeout-based loss – Divide congestion window in half after triple dup ACK 24
  翻译: