Download - Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004
Transport Layer 3-1
Data Communication and Networks
Lecture 8
Congestion Control
October 28 2004
Transport Layer 3-2
What Is Congestion
Congestion occurs when the number of packets being transmitted through the network approaches the packet handling capacity of the network
Congestion control aims to keep number of packets below level at which performance falls off dramatically
Data network is a network of queues Generally 80 utilization is critical Finite queues mean data may be lost A top-10 problem
Transport Layer 3-3
Queues at a Node
Transport Layer 3-4
Effects of Congestion
Packets arriving are stored at input buffers Routing decision made Packet moves to output buffer Packets queued for output transmitted as fast
as possible Statistical time division multiplexing
If packets arrive to fast to be routed or to be output buffers will fill
Can discard packets Can use flow control
Can propagate congestion through network
Transport Layer 3-5
Interaction of Queues
Transport Layer 3-6
Causescosts of congestion scenario 1
two senders two receivers
one router infinite buffers
no retransmission
large delays when congested
maximum achievable throughput
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-7
Causescosts of congestion scenario 2
one router finite buffers sender retransmission of lost packet
finite shared output link buffers
Host A in original data
Host B
out
in original data plus retransmitted data
Transport Layer 3-8
Causescosts of congestion scenario 2 always (goodput)
ldquoperfectrdquo retransmission only when loss
retransmission of delayed (not lost) packet makes
larger (than perfect case) for same
in
out
=
in
out
gt
in
out
ldquocostsrdquo of congestion more work (retrans) for given ldquogoodputrdquo unneeded retransmissions link carries multiple copies of pkt
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-9
Causescosts of congestion scenario 3 four senders multihop paths timeoutretransmit
in
Q what happens as and increase
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
Transport Layer 3-10
Causescosts of congestion scenario 3
Another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission capacity
used for that packet was wasted
Host A
Host B
o
u
t
Transport Layer 3-11
Practical Performance
Ideal assumes infinite buffers and no overhead
Buffers are finite Overheads occur in exchanging
congestion control messages
Transport Layer 3-12
Approaches towards congestion control
End-end congestion control
no explicit feedback from network
congestion inferred from end-system observed loss delay
approach taken by TCP
Network-assisted congestion control
routers provide feedback to end systems single bit indicating
congestion (SNA DECbit TCPIP ECN ATM)
explicit rate sender should send at
Two broad approaches towards congestion control
Transport Layer 3-13
Mechanisms for Congestion Control
Transport Layer 3-14
Backpressure
If node becomes congested it can slow down or halt flow of packets from other nodes
May mean that other nodes have to apply control on incoming packet rates
Propagates back to source Can restrict to logical connections generating
most traffic Used in connection oriented that allow hop by
hop congestion control (eg X25) Not used in ATM
Transport Layer 3-15
Choke Packet
Control packet Generated at congested node Sent to source node eg ICMP source quench
bull From router or destinationbull Source cuts back until no more source quench
messagebull Sent for every discarded packet or anticipated
Rather crude mechanism
Transport Layer 3-16
Implicit Congestion Signaling
Transmission delay may increase with congestion
Packet may be discarded Source can detect these as implicit
indications of congestion Useful on connectionless (datagram)
networks eg IP based Used in frame relay LAPF
Transport Layer 3-17
Explicit Congestion Signaling
Network alerts end systems of increasing congestion
End systems take steps to reduce offered load
Backwards Congestion avoidance in opposite direction
to packet required Forwards
Congestion avoidance in same direction as packet required
Used in ATM by ABR Service
Transport Layer 3-18
Traffic Shaping
Smooth out traffic flow and reduce cell clumping
Token bucket
Transport Layer 3-19
Token Bucket for Traffic Shaping
Transport Layer 3-20
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should use
available bandwidth if senderrsquos path
congested sender throttled to
minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-21
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on
path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI
bit in returned RM cell
Transport Layer 3-22
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
CongWin Roughly
CongWin is dynamic function of perceived network congestion
How does sender perceive congestion
loss event = timeout or 3 duplicate acks
TCP sender reduces rate (CongWin) after loss event
three mechanisms AIMD slow start conservative after
timeout events
rate = CongWin
RTT Bytessec
Transport Layer 3-23
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
multiplicative decrease cut CongWin in half after loss event
additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing
Long-lived TCP connection
Transport Layer 3-24
TCP Slow Start
When connection begins CongWin = 1 MSS Example MSS = 500
bytes amp RTT = 200 msec
initial rate = 20 kbps
available bandwidth may be gtgt MSSRTT desirable to quickly
ramp up to respectable rate
When connection begins increase rate exponentially fast until first loss event
Transport Layer 3-25
TCP Slow Start (more)
When connection begins increase rate exponentially until first loss event double CongWin every
RTT done by incrementing CongWin for every ACK received
Summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RTT
Host B
time
two segments
four segments
Transport Layer 3-26
Refinement After 3 dup ACKs
CongWin is cut in half window then grows linearly
But after timeout event CongWin instead set to 1 MSS window then grows
exponentially to a threshold then grows
linearly
bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo
Philosophy
Transport Layer 3-27
Refinement (more)Q When should the
exponential increase switch to linear
A When CongWin gets to 12 of its value before timeout
Implementation Variable Threshold At loss event Threshold
is set to 12 of CongWin just before loss event
Transport Layer 3-28
Summary TCP Congestion Control
When CongWin is below Threshold sender in slow-start phase window grows exponentially
When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly
When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold
When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS
Transport Layer 3-29
TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt for previously unacked data
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo
Resulting in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Additive increase resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo
Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS
Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-2
What Is Congestion
Congestion occurs when the number of packets being transmitted through the network approaches the packet handling capacity of the network
Congestion control aims to keep number of packets below level at which performance falls off dramatically
Data network is a network of queues Generally 80 utilization is critical Finite queues mean data may be lost A top-10 problem
Transport Layer 3-3
Queues at a Node
Transport Layer 3-4
Effects of Congestion
Packets arriving are stored at input buffers Routing decision made Packet moves to output buffer Packets queued for output transmitted as fast
as possible Statistical time division multiplexing
If packets arrive to fast to be routed or to be output buffers will fill
Can discard packets Can use flow control
Can propagate congestion through network
Transport Layer 3-5
Interaction of Queues
Transport Layer 3-6
Causescosts of congestion scenario 1
two senders two receivers
one router infinite buffers
no retransmission
large delays when congested
maximum achievable throughput
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-7
Causescosts of congestion scenario 2
one router finite buffers sender retransmission of lost packet
finite shared output link buffers
Host A in original data
Host B
out
in original data plus retransmitted data
Transport Layer 3-8
Causescosts of congestion scenario 2 always (goodput)
ldquoperfectrdquo retransmission only when loss
retransmission of delayed (not lost) packet makes
larger (than perfect case) for same
in
out
=
in
out
gt
in
out
ldquocostsrdquo of congestion more work (retrans) for given ldquogoodputrdquo unneeded retransmissions link carries multiple copies of pkt
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-9
Causescosts of congestion scenario 3 four senders multihop paths timeoutretransmit
in
Q what happens as and increase
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
Transport Layer 3-10
Causescosts of congestion scenario 3
Another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission capacity
used for that packet was wasted
Host A
Host B
o
u
t
Transport Layer 3-11
Practical Performance
Ideal assumes infinite buffers and no overhead
Buffers are finite Overheads occur in exchanging
congestion control messages
Transport Layer 3-12
Approaches towards congestion control
End-end congestion control
no explicit feedback from network
congestion inferred from end-system observed loss delay
approach taken by TCP
Network-assisted congestion control
routers provide feedback to end systems single bit indicating
congestion (SNA DECbit TCPIP ECN ATM)
explicit rate sender should send at
Two broad approaches towards congestion control
Transport Layer 3-13
Mechanisms for Congestion Control
Transport Layer 3-14
Backpressure
If node becomes congested it can slow down or halt flow of packets from other nodes
May mean that other nodes have to apply control on incoming packet rates
Propagates back to source Can restrict to logical connections generating
most traffic Used in connection oriented that allow hop by
hop congestion control (eg X25) Not used in ATM
Transport Layer 3-15
Choke Packet
Control packet Generated at congested node Sent to source node eg ICMP source quench
bull From router or destinationbull Source cuts back until no more source quench
messagebull Sent for every discarded packet or anticipated
Rather crude mechanism
Transport Layer 3-16
Implicit Congestion Signaling
Transmission delay may increase with congestion
Packet may be discarded Source can detect these as implicit
indications of congestion Useful on connectionless (datagram)
networks eg IP based Used in frame relay LAPF
Transport Layer 3-17
Explicit Congestion Signaling
Network alerts end systems of increasing congestion
End systems take steps to reduce offered load
Backwards Congestion avoidance in opposite direction
to packet required Forwards
Congestion avoidance in same direction as packet required
Used in ATM by ABR Service
Transport Layer 3-18
Traffic Shaping
Smooth out traffic flow and reduce cell clumping
Token bucket
Transport Layer 3-19
Token Bucket for Traffic Shaping
Transport Layer 3-20
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should use
available bandwidth if senderrsquos path
congested sender throttled to
minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-21
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on
path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI
bit in returned RM cell
Transport Layer 3-22
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
CongWin Roughly
CongWin is dynamic function of perceived network congestion
How does sender perceive congestion
loss event = timeout or 3 duplicate acks
TCP sender reduces rate (CongWin) after loss event
three mechanisms AIMD slow start conservative after
timeout events
rate = CongWin
RTT Bytessec
Transport Layer 3-23
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
multiplicative decrease cut CongWin in half after loss event
additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing
Long-lived TCP connection
Transport Layer 3-24
TCP Slow Start
When connection begins CongWin = 1 MSS Example MSS = 500
bytes amp RTT = 200 msec
initial rate = 20 kbps
available bandwidth may be gtgt MSSRTT desirable to quickly
ramp up to respectable rate
When connection begins increase rate exponentially fast until first loss event
Transport Layer 3-25
TCP Slow Start (more)
When connection begins increase rate exponentially until first loss event double CongWin every
RTT done by incrementing CongWin for every ACK received
Summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RTT
Host B
time
two segments
four segments
Transport Layer 3-26
Refinement After 3 dup ACKs
CongWin is cut in half window then grows linearly
But after timeout event CongWin instead set to 1 MSS window then grows
exponentially to a threshold then grows
linearly
bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo
Philosophy
Transport Layer 3-27
Refinement (more)Q When should the
exponential increase switch to linear
A When CongWin gets to 12 of its value before timeout
Implementation Variable Threshold At loss event Threshold
is set to 12 of CongWin just before loss event
Transport Layer 3-28
Summary TCP Congestion Control
When CongWin is below Threshold sender in slow-start phase window grows exponentially
When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly
When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold
When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS
Transport Layer 3-29
TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt for previously unacked data
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo
Resulting in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Additive increase resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo
Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS
Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-3
Queues at a Node
Transport Layer 3-4
Effects of Congestion
Packets arriving are stored at input buffers Routing decision made Packet moves to output buffer Packets queued for output transmitted as fast
as possible Statistical time division multiplexing
If packets arrive to fast to be routed or to be output buffers will fill
Can discard packets Can use flow control
Can propagate congestion through network
Transport Layer 3-5
Interaction of Queues
Transport Layer 3-6
Causescosts of congestion scenario 1
two senders two receivers
one router infinite buffers
no retransmission
large delays when congested
maximum achievable throughput
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-7
Causescosts of congestion scenario 2
one router finite buffers sender retransmission of lost packet
finite shared output link buffers
Host A in original data
Host B
out
in original data plus retransmitted data
Transport Layer 3-8
Causescosts of congestion scenario 2 always (goodput)
ldquoperfectrdquo retransmission only when loss
retransmission of delayed (not lost) packet makes
larger (than perfect case) for same
in
out
=
in
out
gt
in
out
ldquocostsrdquo of congestion more work (retrans) for given ldquogoodputrdquo unneeded retransmissions link carries multiple copies of pkt
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-9
Causescosts of congestion scenario 3 four senders multihop paths timeoutretransmit
in
Q what happens as and increase
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
Transport Layer 3-10
Causescosts of congestion scenario 3
Another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission capacity
used for that packet was wasted
Host A
Host B
o
u
t
Transport Layer 3-11
Practical Performance
Ideal assumes infinite buffers and no overhead
Buffers are finite Overheads occur in exchanging
congestion control messages
Transport Layer 3-12
Approaches towards congestion control
End-end congestion control
no explicit feedback from network
congestion inferred from end-system observed loss delay
approach taken by TCP
Network-assisted congestion control
routers provide feedback to end systems single bit indicating
congestion (SNA DECbit TCPIP ECN ATM)
explicit rate sender should send at
Two broad approaches towards congestion control
Transport Layer 3-13
Mechanisms for Congestion Control
Transport Layer 3-14
Backpressure
If node becomes congested it can slow down or halt flow of packets from other nodes
May mean that other nodes have to apply control on incoming packet rates
Propagates back to source Can restrict to logical connections generating
most traffic Used in connection oriented that allow hop by
hop congestion control (eg X25) Not used in ATM
Transport Layer 3-15
Choke Packet
Control packet Generated at congested node Sent to source node eg ICMP source quench
bull From router or destinationbull Source cuts back until no more source quench
messagebull Sent for every discarded packet or anticipated
Rather crude mechanism
Transport Layer 3-16
Implicit Congestion Signaling
Transmission delay may increase with congestion
Packet may be discarded Source can detect these as implicit
indications of congestion Useful on connectionless (datagram)
networks eg IP based Used in frame relay LAPF
Transport Layer 3-17
Explicit Congestion Signaling
Network alerts end systems of increasing congestion
End systems take steps to reduce offered load
Backwards Congestion avoidance in opposite direction
to packet required Forwards
Congestion avoidance in same direction as packet required
Used in ATM by ABR Service
Transport Layer 3-18
Traffic Shaping
Smooth out traffic flow and reduce cell clumping
Token bucket
Transport Layer 3-19
Token Bucket for Traffic Shaping
Transport Layer 3-20
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should use
available bandwidth if senderrsquos path
congested sender throttled to
minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-21
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on
path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI
bit in returned RM cell
Transport Layer 3-22
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
CongWin Roughly
CongWin is dynamic function of perceived network congestion
How does sender perceive congestion
loss event = timeout or 3 duplicate acks
TCP sender reduces rate (CongWin) after loss event
three mechanisms AIMD slow start conservative after
timeout events
rate = CongWin
RTT Bytessec
Transport Layer 3-23
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
multiplicative decrease cut CongWin in half after loss event
additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing
Long-lived TCP connection
Transport Layer 3-24
TCP Slow Start
When connection begins CongWin = 1 MSS Example MSS = 500
bytes amp RTT = 200 msec
initial rate = 20 kbps
available bandwidth may be gtgt MSSRTT desirable to quickly
ramp up to respectable rate
When connection begins increase rate exponentially fast until first loss event
Transport Layer 3-25
TCP Slow Start (more)
When connection begins increase rate exponentially until first loss event double CongWin every
RTT done by incrementing CongWin for every ACK received
Summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RTT
Host B
time
two segments
four segments
Transport Layer 3-26
Refinement After 3 dup ACKs
CongWin is cut in half window then grows linearly
But after timeout event CongWin instead set to 1 MSS window then grows
exponentially to a threshold then grows
linearly
bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo
Philosophy
Transport Layer 3-27
Refinement (more)Q When should the
exponential increase switch to linear
A When CongWin gets to 12 of its value before timeout
Implementation Variable Threshold At loss event Threshold
is set to 12 of CongWin just before loss event
Transport Layer 3-28
Summary TCP Congestion Control
When CongWin is below Threshold sender in slow-start phase window grows exponentially
When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly
When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold
When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS
Transport Layer 3-29
TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt for previously unacked data
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo
Resulting in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Additive increase resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo
Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS
Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-4
Effects of Congestion
Packets arriving are stored at input buffers Routing decision made Packet moves to output buffer Packets queued for output transmitted as fast
as possible Statistical time division multiplexing
If packets arrive to fast to be routed or to be output buffers will fill
Can discard packets Can use flow control
Can propagate congestion through network
Transport Layer 3-5
Interaction of Queues
Transport Layer 3-6
Causescosts of congestion scenario 1
two senders two receivers
one router infinite buffers
no retransmission
large delays when congested
maximum achievable throughput
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-7
Causescosts of congestion scenario 2
one router finite buffers sender retransmission of lost packet
finite shared output link buffers
Host A in original data
Host B
out
in original data plus retransmitted data
Transport Layer 3-8
Causescosts of congestion scenario 2 always (goodput)
ldquoperfectrdquo retransmission only when loss
retransmission of delayed (not lost) packet makes
larger (than perfect case) for same
in
out
=
in
out
gt
in
out
ldquocostsrdquo of congestion more work (retrans) for given ldquogoodputrdquo unneeded retransmissions link carries multiple copies of pkt
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-9
Causescosts of congestion scenario 3 four senders multihop paths timeoutretransmit
in
Q what happens as and increase
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
Transport Layer 3-10
Causescosts of congestion scenario 3
Another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission capacity
used for that packet was wasted
Host A
Host B
o
u
t
Transport Layer 3-11
Practical Performance
Ideal assumes infinite buffers and no overhead
Buffers are finite Overheads occur in exchanging
congestion control messages
Transport Layer 3-12
Approaches towards congestion control
End-end congestion control
no explicit feedback from network
congestion inferred from end-system observed loss delay
approach taken by TCP
Network-assisted congestion control
routers provide feedback to end systems single bit indicating
congestion (SNA DECbit TCPIP ECN ATM)
explicit rate sender should send at
Two broad approaches towards congestion control
Transport Layer 3-13
Mechanisms for Congestion Control
Transport Layer 3-14
Backpressure
If node becomes congested it can slow down or halt flow of packets from other nodes
May mean that other nodes have to apply control on incoming packet rates
Propagates back to source Can restrict to logical connections generating
most traffic Used in connection oriented that allow hop by
hop congestion control (eg X25) Not used in ATM
Transport Layer 3-15
Choke Packet
Control packet Generated at congested node Sent to source node eg ICMP source quench
bull From router or destinationbull Source cuts back until no more source quench
messagebull Sent for every discarded packet or anticipated
Rather crude mechanism
Transport Layer 3-16
Implicit Congestion Signaling
Transmission delay may increase with congestion
Packet may be discarded Source can detect these as implicit
indications of congestion Useful on connectionless (datagram)
networks eg IP based Used in frame relay LAPF
Transport Layer 3-17
Explicit Congestion Signaling
Network alerts end systems of increasing congestion
End systems take steps to reduce offered load
Backwards Congestion avoidance in opposite direction
to packet required Forwards
Congestion avoidance in same direction as packet required
Used in ATM by ABR Service
Transport Layer 3-18
Traffic Shaping
Smooth out traffic flow and reduce cell clumping
Token bucket
Transport Layer 3-19
Token Bucket for Traffic Shaping
Transport Layer 3-20
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should use
available bandwidth if senderrsquos path
congested sender throttled to
minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-21
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on
path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI
bit in returned RM cell
Transport Layer 3-22
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
CongWin Roughly
CongWin is dynamic function of perceived network congestion
How does sender perceive congestion
loss event = timeout or 3 duplicate acks
TCP sender reduces rate (CongWin) after loss event
three mechanisms AIMD slow start conservative after
timeout events
rate = CongWin
RTT Bytessec
Transport Layer 3-23
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
multiplicative decrease cut CongWin in half after loss event
additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing
Long-lived TCP connection
Transport Layer 3-24
TCP Slow Start
When connection begins CongWin = 1 MSS Example MSS = 500
bytes amp RTT = 200 msec
initial rate = 20 kbps
available bandwidth may be gtgt MSSRTT desirable to quickly
ramp up to respectable rate
When connection begins increase rate exponentially fast until first loss event
Transport Layer 3-25
TCP Slow Start (more)
When connection begins increase rate exponentially until first loss event double CongWin every
RTT done by incrementing CongWin for every ACK received
Summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RTT
Host B
time
two segments
four segments
Transport Layer 3-26
Refinement After 3 dup ACKs
CongWin is cut in half window then grows linearly
But after timeout event CongWin instead set to 1 MSS window then grows
exponentially to a threshold then grows
linearly
bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo
Philosophy
Transport Layer 3-27
Refinement (more)Q When should the
exponential increase switch to linear
A When CongWin gets to 12 of its value before timeout
Implementation Variable Threshold At loss event Threshold
is set to 12 of CongWin just before loss event
Transport Layer 3-28
Summary TCP Congestion Control
When CongWin is below Threshold sender in slow-start phase window grows exponentially
When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly
When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold
When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS
Transport Layer 3-29
TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt for previously unacked data
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo
Resulting in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Additive increase resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo
Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS
Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-5
Interaction of Queues
Transport Layer 3-6
Causescosts of congestion scenario 1
two senders two receivers
one router infinite buffers
no retransmission
large delays when congested
maximum achievable throughput
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-7
Causescosts of congestion scenario 2
one router finite buffers sender retransmission of lost packet
finite shared output link buffers
Host A in original data
Host B
out
in original data plus retransmitted data
Transport Layer 3-8
Causescosts of congestion scenario 2 always (goodput)
ldquoperfectrdquo retransmission only when loss
retransmission of delayed (not lost) packet makes
larger (than perfect case) for same
in
out
=
in
out
gt
in
out
ldquocostsrdquo of congestion more work (retrans) for given ldquogoodputrdquo unneeded retransmissions link carries multiple copies of pkt
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-9
Causescosts of congestion scenario 3 four senders multihop paths timeoutretransmit
in
Q what happens as and increase
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
Transport Layer 3-10
Causescosts of congestion scenario 3
Another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission capacity
used for that packet was wasted
Host A
Host B
o
u
t
Transport Layer 3-11
Practical Performance
Ideal assumes infinite buffers and no overhead
Buffers are finite Overheads occur in exchanging
congestion control messages
Transport Layer 3-12
Approaches towards congestion control
End-end congestion control
no explicit feedback from network
congestion inferred from end-system observed loss delay
approach taken by TCP
Network-assisted congestion control
routers provide feedback to end systems single bit indicating
congestion (SNA DECbit TCPIP ECN ATM)
explicit rate sender should send at
Two broad approaches towards congestion control
Transport Layer 3-13
Mechanisms for Congestion Control
Transport Layer 3-14
Backpressure
If node becomes congested it can slow down or halt flow of packets from other nodes
May mean that other nodes have to apply control on incoming packet rates
Propagates back to source Can restrict to logical connections generating
most traffic Used in connection oriented that allow hop by
hop congestion control (eg X25) Not used in ATM
Transport Layer 3-15
Choke Packet
Control packet Generated at congested node Sent to source node eg ICMP source quench
bull From router or destinationbull Source cuts back until no more source quench
messagebull Sent for every discarded packet or anticipated
Rather crude mechanism
Transport Layer 3-16
Implicit Congestion Signaling
Transmission delay may increase with congestion
Packet may be discarded Source can detect these as implicit
indications of congestion Useful on connectionless (datagram)
networks eg IP based Used in frame relay LAPF
Transport Layer 3-17
Explicit Congestion Signaling
Network alerts end systems of increasing congestion
End systems take steps to reduce offered load
Backwards Congestion avoidance in opposite direction
to packet required Forwards
Congestion avoidance in same direction as packet required
Used in ATM by ABR Service
Transport Layer 3-18
Traffic Shaping
Smooth out traffic flow and reduce cell clumping
Token bucket
Transport Layer 3-19
Token Bucket for Traffic Shaping
Transport Layer 3-20
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should use
available bandwidth if senderrsquos path
congested sender throttled to
minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-21
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on
path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI
bit in returned RM cell
Transport Layer 3-22
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
CongWin Roughly
CongWin is dynamic function of perceived network congestion
How does sender perceive congestion
loss event = timeout or 3 duplicate acks
TCP sender reduces rate (CongWin) after loss event
three mechanisms AIMD slow start conservative after
timeout events
rate = CongWin
RTT Bytessec
Transport Layer 3-23
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
multiplicative decrease cut CongWin in half after loss event
additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing
Long-lived TCP connection
Transport Layer 3-24
TCP Slow Start
When connection begins CongWin = 1 MSS Example MSS = 500
bytes amp RTT = 200 msec
initial rate = 20 kbps
available bandwidth may be gtgt MSSRTT desirable to quickly
ramp up to respectable rate
When connection begins increase rate exponentially fast until first loss event
Transport Layer 3-25
TCP Slow Start (more)
When connection begins increase rate exponentially until first loss event double CongWin every
RTT done by incrementing CongWin for every ACK received
Summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RTT
Host B
time
two segments
four segments
Transport Layer 3-26
Refinement After 3 dup ACKs
CongWin is cut in half window then grows linearly
But after timeout event CongWin instead set to 1 MSS window then grows
exponentially to a threshold then grows
linearly
bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo
Philosophy
Transport Layer 3-27
Refinement (more)Q When should the
exponential increase switch to linear
A When CongWin gets to 12 of its value before timeout
Implementation Variable Threshold At loss event Threshold
is set to 12 of CongWin just before loss event
Transport Layer 3-28
Summary TCP Congestion Control
When CongWin is below Threshold sender in slow-start phase window grows exponentially
When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly
When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold
When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS
Transport Layer 3-29
TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt for previously unacked data
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo
Resulting in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Additive increase resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo
Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS
Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-6
Causescosts of congestion scenario 1
two senders two receivers
one router infinite buffers
no retransmission
large delays when congested
maximum achievable throughput
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-7
Causescosts of congestion scenario 2
one router finite buffers sender retransmission of lost packet
finite shared output link buffers
Host A in original data
Host B
out
in original data plus retransmitted data
Transport Layer 3-8
Causescosts of congestion scenario 2 always (goodput)
ldquoperfectrdquo retransmission only when loss
retransmission of delayed (not lost) packet makes
larger (than perfect case) for same
in
out
=
in
out
gt
in
out
ldquocostsrdquo of congestion more work (retrans) for given ldquogoodputrdquo unneeded retransmissions link carries multiple copies of pkt
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-9
Causescosts of congestion scenario 3 four senders multihop paths timeoutretransmit
in
Q what happens as and increase
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
Transport Layer 3-10
Causescosts of congestion scenario 3
Another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission capacity
used for that packet was wasted
Host A
Host B
o
u
t
Transport Layer 3-11
Practical Performance
Ideal assumes infinite buffers and no overhead
Buffers are finite Overheads occur in exchanging
congestion control messages
Transport Layer 3-12
Approaches towards congestion control
End-end congestion control
no explicit feedback from network
congestion inferred from end-system observed loss delay
approach taken by TCP
Network-assisted congestion control
routers provide feedback to end systems single bit indicating
congestion (SNA DECbit TCPIP ECN ATM)
explicit rate sender should send at
Two broad approaches towards congestion control
Transport Layer 3-13
Mechanisms for Congestion Control
Transport Layer 3-14
Backpressure
If node becomes congested it can slow down or halt flow of packets from other nodes
May mean that other nodes have to apply control on incoming packet rates
Propagates back to source Can restrict to logical connections generating
most traffic Used in connection oriented that allow hop by
hop congestion control (eg X25) Not used in ATM
Transport Layer 3-15
Choke Packet
Control packet Generated at congested node Sent to source node eg ICMP source quench
bull From router or destinationbull Source cuts back until no more source quench
messagebull Sent for every discarded packet or anticipated
Rather crude mechanism
Transport Layer 3-16
Implicit Congestion Signaling
Transmission delay may increase with congestion
Packet may be discarded Source can detect these as implicit
indications of congestion Useful on connectionless (datagram)
networks eg IP based Used in frame relay LAPF
Transport Layer 3-17
Explicit Congestion Signaling
Network alerts end systems of increasing congestion
End systems take steps to reduce offered load
Backwards Congestion avoidance in opposite direction
to packet required Forwards
Congestion avoidance in same direction as packet required
Used in ATM by ABR Service
Transport Layer 3-18
Traffic Shaping
Smooth out traffic flow and reduce cell clumping
Token bucket
Transport Layer 3-19
Token Bucket for Traffic Shaping
Transport Layer 3-20
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should use
available bandwidth if senderrsquos path
congested sender throttled to
minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-21
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on
path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI
bit in returned RM cell
Transport Layer 3-22
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
CongWin Roughly
CongWin is dynamic function of perceived network congestion
How does sender perceive congestion
loss event = timeout or 3 duplicate acks
TCP sender reduces rate (CongWin) after loss event
three mechanisms AIMD slow start conservative after
timeout events
rate = CongWin
RTT Bytessec
Transport Layer 3-23
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
multiplicative decrease cut CongWin in half after loss event
additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing
Long-lived TCP connection
Transport Layer 3-24
TCP Slow Start
When connection begins CongWin = 1 MSS Example MSS = 500
bytes amp RTT = 200 msec
initial rate = 20 kbps
available bandwidth may be gtgt MSSRTT desirable to quickly
ramp up to respectable rate
When connection begins increase rate exponentially fast until first loss event
Transport Layer 3-25
TCP Slow Start (more)
When connection begins increase rate exponentially until first loss event double CongWin every
RTT done by incrementing CongWin for every ACK received
Summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RTT
Host B
time
two segments
four segments
Transport Layer 3-26
Refinement After 3 dup ACKs
CongWin is cut in half window then grows linearly
But after timeout event CongWin instead set to 1 MSS window then grows
exponentially to a threshold then grows
linearly
bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo
Philosophy
Transport Layer 3-27
Refinement (more)Q When should the
exponential increase switch to linear
A When CongWin gets to 12 of its value before timeout
Implementation Variable Threshold At loss event Threshold
is set to 12 of CongWin just before loss event
Transport Layer 3-28
Summary TCP Congestion Control
When CongWin is below Threshold sender in slow-start phase window grows exponentially
When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly
When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold
When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS
Transport Layer 3-29
TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt for previously unacked data
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo
Resulting in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Additive increase resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo
Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS
Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-7
Causescosts of congestion scenario 2
one router finite buffers sender retransmission of lost packet
finite shared output link buffers
Host A in original data
Host B
out
in original data plus retransmitted data
Transport Layer 3-8
Causescosts of congestion scenario 2 always (goodput)
ldquoperfectrdquo retransmission only when loss
retransmission of delayed (not lost) packet makes
larger (than perfect case) for same
in
out
=
in
out
gt
in
out
ldquocostsrdquo of congestion more work (retrans) for given ldquogoodputrdquo unneeded retransmissions link carries multiple copies of pkt
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-9
Causescosts of congestion scenario 3 four senders multihop paths timeoutretransmit
in
Q what happens as and increase
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
Transport Layer 3-10
Causescosts of congestion scenario 3
Another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission capacity
used for that packet was wasted
Host A
Host B
o
u
t
Transport Layer 3-11
Practical Performance
Ideal assumes infinite buffers and no overhead
Buffers are finite Overheads occur in exchanging
congestion control messages
Transport Layer 3-12
Approaches towards congestion control
End-end congestion control
no explicit feedback from network
congestion inferred from end-system observed loss delay
approach taken by TCP
Network-assisted congestion control
routers provide feedback to end systems single bit indicating
congestion (SNA DECbit TCPIP ECN ATM)
explicit rate sender should send at
Two broad approaches towards congestion control
Transport Layer 3-13
Mechanisms for Congestion Control
Transport Layer 3-14
Backpressure
If node becomes congested it can slow down or halt flow of packets from other nodes
May mean that other nodes have to apply control on incoming packet rates
Propagates back to source Can restrict to logical connections generating
most traffic Used in connection oriented that allow hop by
hop congestion control (eg X25) Not used in ATM
Transport Layer 3-15
Choke Packet
Control packet Generated at congested node Sent to source node eg ICMP source quench
bull From router or destinationbull Source cuts back until no more source quench
messagebull Sent for every discarded packet or anticipated
Rather crude mechanism
Transport Layer 3-16
Implicit Congestion Signaling
Transmission delay may increase with congestion
Packet may be discarded Source can detect these as implicit
indications of congestion Useful on connectionless (datagram)
networks eg IP based Used in frame relay LAPF
Transport Layer 3-17
Explicit Congestion Signaling
Network alerts end systems of increasing congestion
End systems take steps to reduce offered load
Backwards Congestion avoidance in opposite direction
to packet required Forwards
Congestion avoidance in same direction as packet required
Used in ATM by ABR Service
Transport Layer 3-18
Traffic Shaping
Smooth out traffic flow and reduce cell clumping
Token bucket
Transport Layer 3-19
Token Bucket for Traffic Shaping
Transport Layer 3-20
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should use
available bandwidth if senderrsquos path
congested sender throttled to
minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-21
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on
path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI
bit in returned RM cell
Transport Layer 3-22
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
CongWin Roughly
CongWin is dynamic function of perceived network congestion
How does sender perceive congestion
loss event = timeout or 3 duplicate acks
TCP sender reduces rate (CongWin) after loss event
three mechanisms AIMD slow start conservative after
timeout events
rate = CongWin
RTT Bytessec
Transport Layer 3-23
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
multiplicative decrease cut CongWin in half after loss event
additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing
Long-lived TCP connection
Transport Layer 3-24
TCP Slow Start
When connection begins CongWin = 1 MSS Example MSS = 500
bytes amp RTT = 200 msec
initial rate = 20 kbps
available bandwidth may be gtgt MSSRTT desirable to quickly
ramp up to respectable rate
When connection begins increase rate exponentially fast until first loss event
Transport Layer 3-25
TCP Slow Start (more)
When connection begins increase rate exponentially until first loss event double CongWin every
RTT done by incrementing CongWin for every ACK received
Summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RTT
Host B
time
two segments
four segments
Transport Layer 3-26
Refinement After 3 dup ACKs
CongWin is cut in half window then grows linearly
But after timeout event CongWin instead set to 1 MSS window then grows
exponentially to a threshold then grows
linearly
bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo
Philosophy
Transport Layer 3-27
Refinement (more)Q When should the
exponential increase switch to linear
A When CongWin gets to 12 of its value before timeout
Implementation Variable Threshold At loss event Threshold
is set to 12 of CongWin just before loss event
Transport Layer 3-28
Summary TCP Congestion Control
When CongWin is below Threshold sender in slow-start phase window grows exponentially
When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly
When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold
When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS
Transport Layer 3-29
TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt for previously unacked data
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo
Resulting in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Additive increase resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo
Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS
Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-8
Causescosts of congestion scenario 2 always (goodput)
ldquoperfectrdquo retransmission only when loss
retransmission of delayed (not lost) packet makes
larger (than perfect case) for same
in
out
=
in
out
gt
in
out
ldquocostsrdquo of congestion more work (retrans) for given ldquogoodputrdquo unneeded retransmissions link carries multiple copies of pkt
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-9
Causescosts of congestion scenario 3 four senders multihop paths timeoutretransmit
in
Q what happens as and increase
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
Transport Layer 3-10
Causescosts of congestion scenario 3
Another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission capacity
used for that packet was wasted
Host A
Host B
o
u
t
Transport Layer 3-11
Practical Performance
Ideal assumes infinite buffers and no overhead
Buffers are finite Overheads occur in exchanging
congestion control messages
Transport Layer 3-12
Approaches towards congestion control
End-end congestion control
no explicit feedback from network
congestion inferred from end-system observed loss delay
approach taken by TCP
Network-assisted congestion control
routers provide feedback to end systems single bit indicating
congestion (SNA DECbit TCPIP ECN ATM)
explicit rate sender should send at
Two broad approaches towards congestion control
Transport Layer 3-13
Mechanisms for Congestion Control
Transport Layer 3-14
Backpressure
If node becomes congested it can slow down or halt flow of packets from other nodes
May mean that other nodes have to apply control on incoming packet rates
Propagates back to source Can restrict to logical connections generating
most traffic Used in connection oriented that allow hop by
hop congestion control (eg X25) Not used in ATM
Transport Layer 3-15
Choke Packet
Control packet Generated at congested node Sent to source node eg ICMP source quench
bull From router or destinationbull Source cuts back until no more source quench
messagebull Sent for every discarded packet or anticipated
Rather crude mechanism
Transport Layer 3-16
Implicit Congestion Signaling
Transmission delay may increase with congestion
Packet may be discarded Source can detect these as implicit
indications of congestion Useful on connectionless (datagram)
networks eg IP based Used in frame relay LAPF
Transport Layer 3-17
Explicit Congestion Signaling
Network alerts end systems of increasing congestion
End systems take steps to reduce offered load
Backwards Congestion avoidance in opposite direction
to packet required Forwards
Congestion avoidance in same direction as packet required
Used in ATM by ABR Service
Transport Layer 3-18
Traffic Shaping
Smooth out traffic flow and reduce cell clumping
Token bucket
Transport Layer 3-19
Token Bucket for Traffic Shaping
Transport Layer 3-20
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should use
available bandwidth if senderrsquos path
congested sender throttled to
minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-21
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on
path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI
bit in returned RM cell
Transport Layer 3-22
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
CongWin Roughly
CongWin is dynamic function of perceived network congestion
How does sender perceive congestion
loss event = timeout or 3 duplicate acks
TCP sender reduces rate (CongWin) after loss event
three mechanisms AIMD slow start conservative after
timeout events
rate = CongWin
RTT Bytessec
Transport Layer 3-23
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
multiplicative decrease cut CongWin in half after loss event
additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing
Long-lived TCP connection
Transport Layer 3-24
TCP Slow Start
When connection begins CongWin = 1 MSS Example MSS = 500
bytes amp RTT = 200 msec
initial rate = 20 kbps
available bandwidth may be gtgt MSSRTT desirable to quickly
ramp up to respectable rate
When connection begins increase rate exponentially fast until first loss event
Transport Layer 3-25
TCP Slow Start (more)
When connection begins increase rate exponentially until first loss event double CongWin every
RTT done by incrementing CongWin for every ACK received
Summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RTT
Host B
time
two segments
four segments
Transport Layer 3-26
Refinement After 3 dup ACKs
CongWin is cut in half window then grows linearly
But after timeout event CongWin instead set to 1 MSS window then grows
exponentially to a threshold then grows
linearly
bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo
Philosophy
Transport Layer 3-27
Refinement (more)Q When should the
exponential increase switch to linear
A When CongWin gets to 12 of its value before timeout
Implementation Variable Threshold At loss event Threshold
is set to 12 of CongWin just before loss event
Transport Layer 3-28
Summary TCP Congestion Control
When CongWin is below Threshold sender in slow-start phase window grows exponentially
When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly
When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold
When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS
Transport Layer 3-29
TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt for previously unacked data
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo
Resulting in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Additive increase resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo
Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS
Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-9
Causescosts of congestion scenario 3 four senders multihop paths timeoutretransmit
in
Q what happens as and increase
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
Transport Layer 3-10
Causescosts of congestion scenario 3
Another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission capacity
used for that packet was wasted
Host A
Host B
o
u
t
Transport Layer 3-11
Practical Performance
Ideal assumes infinite buffers and no overhead
Buffers are finite Overheads occur in exchanging
congestion control messages
Transport Layer 3-12
Approaches towards congestion control
End-end congestion control
no explicit feedback from network
congestion inferred from end-system observed loss delay
approach taken by TCP
Network-assisted congestion control
routers provide feedback to end systems single bit indicating
congestion (SNA DECbit TCPIP ECN ATM)
explicit rate sender should send at
Two broad approaches towards congestion control
Transport Layer 3-13
Mechanisms for Congestion Control
Transport Layer 3-14
Backpressure
If node becomes congested it can slow down or halt flow of packets from other nodes
May mean that other nodes have to apply control on incoming packet rates
Propagates back to source Can restrict to logical connections generating
most traffic Used in connection oriented that allow hop by
hop congestion control (eg X25) Not used in ATM
Transport Layer 3-15
Choke Packet
Control packet Generated at congested node Sent to source node eg ICMP source quench
bull From router or destinationbull Source cuts back until no more source quench
messagebull Sent for every discarded packet or anticipated
Rather crude mechanism
Transport Layer 3-16
Implicit Congestion Signaling
Transmission delay may increase with congestion
Packet may be discarded Source can detect these as implicit
indications of congestion Useful on connectionless (datagram)
networks eg IP based Used in frame relay LAPF
Transport Layer 3-17
Explicit Congestion Signaling
Network alerts end systems of increasing congestion
End systems take steps to reduce offered load
Backwards Congestion avoidance in opposite direction
to packet required Forwards
Congestion avoidance in same direction as packet required
Used in ATM by ABR Service
Transport Layer 3-18
Traffic Shaping
Smooth out traffic flow and reduce cell clumping
Token bucket
Transport Layer 3-19
Token Bucket for Traffic Shaping
Transport Layer 3-20
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should use
available bandwidth if senderrsquos path
congested sender throttled to
minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-21
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on
path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI
bit in returned RM cell
Transport Layer 3-22
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
CongWin Roughly
CongWin is dynamic function of perceived network congestion
How does sender perceive congestion
loss event = timeout or 3 duplicate acks
TCP sender reduces rate (CongWin) after loss event
three mechanisms AIMD slow start conservative after
timeout events
rate = CongWin
RTT Bytessec
Transport Layer 3-23
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
multiplicative decrease cut CongWin in half after loss event
additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing
Long-lived TCP connection
Transport Layer 3-24
TCP Slow Start
When connection begins CongWin = 1 MSS Example MSS = 500
bytes amp RTT = 200 msec
initial rate = 20 kbps
available bandwidth may be gtgt MSSRTT desirable to quickly
ramp up to respectable rate
When connection begins increase rate exponentially fast until first loss event
Transport Layer 3-25
TCP Slow Start (more)
When connection begins increase rate exponentially until first loss event double CongWin every
RTT done by incrementing CongWin for every ACK received
Summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RTT
Host B
time
two segments
four segments
Transport Layer 3-26
Refinement After 3 dup ACKs
CongWin is cut in half window then grows linearly
But after timeout event CongWin instead set to 1 MSS window then grows
exponentially to a threshold then grows
linearly
bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo
Philosophy
Transport Layer 3-27
Refinement (more)Q When should the
exponential increase switch to linear
A When CongWin gets to 12 of its value before timeout
Implementation Variable Threshold At loss event Threshold
is set to 12 of CongWin just before loss event
Transport Layer 3-28
Summary TCP Congestion Control
When CongWin is below Threshold sender in slow-start phase window grows exponentially
When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly
When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold
When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS
Transport Layer 3-29
TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt for previously unacked data
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo
Resulting in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Additive increase resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo
Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS
Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-10
Causescosts of congestion scenario 3
Another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission capacity
used for that packet was wasted
Host A
Host B
o
u
t
Transport Layer 3-11
Practical Performance
Ideal assumes infinite buffers and no overhead
Buffers are finite Overheads occur in exchanging
congestion control messages
Transport Layer 3-12
Approaches towards congestion control
End-end congestion control
no explicit feedback from network
congestion inferred from end-system observed loss delay
approach taken by TCP
Network-assisted congestion control
routers provide feedback to end systems single bit indicating
congestion (SNA DECbit TCPIP ECN ATM)
explicit rate sender should send at
Two broad approaches towards congestion control
Transport Layer 3-13
Mechanisms for Congestion Control
Transport Layer 3-14
Backpressure
If node becomes congested it can slow down or halt flow of packets from other nodes
May mean that other nodes have to apply control on incoming packet rates
Propagates back to source Can restrict to logical connections generating
most traffic Used in connection oriented that allow hop by
hop congestion control (eg X25) Not used in ATM
Transport Layer 3-15
Choke Packet
Control packet Generated at congested node Sent to source node eg ICMP source quench
bull From router or destinationbull Source cuts back until no more source quench
messagebull Sent for every discarded packet or anticipated
Rather crude mechanism
Transport Layer 3-16
Implicit Congestion Signaling
Transmission delay may increase with congestion
Packet may be discarded Source can detect these as implicit
indications of congestion Useful on connectionless (datagram)
networks eg IP based Used in frame relay LAPF
Transport Layer 3-17
Explicit Congestion Signaling
Network alerts end systems of increasing congestion
End systems take steps to reduce offered load
Backwards Congestion avoidance in opposite direction
to packet required Forwards
Congestion avoidance in same direction as packet required
Used in ATM by ABR Service
Transport Layer 3-18
Traffic Shaping
Smooth out traffic flow and reduce cell clumping
Token bucket
Transport Layer 3-19
Token Bucket for Traffic Shaping
Transport Layer 3-20
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should use
available bandwidth if senderrsquos path
congested sender throttled to
minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-21
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on
path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI
bit in returned RM cell
Transport Layer 3-22
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
CongWin Roughly
CongWin is dynamic function of perceived network congestion
How does sender perceive congestion
loss event = timeout or 3 duplicate acks
TCP sender reduces rate (CongWin) after loss event
three mechanisms AIMD slow start conservative after
timeout events
rate = CongWin
RTT Bytessec
Transport Layer 3-23
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
multiplicative decrease cut CongWin in half after loss event
additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing
Long-lived TCP connection
Transport Layer 3-24
TCP Slow Start
When connection begins CongWin = 1 MSS Example MSS = 500
bytes amp RTT = 200 msec
initial rate = 20 kbps
available bandwidth may be gtgt MSSRTT desirable to quickly
ramp up to respectable rate
When connection begins increase rate exponentially fast until first loss event
Transport Layer 3-25
TCP Slow Start (more)
When connection begins increase rate exponentially until first loss event double CongWin every
RTT done by incrementing CongWin for every ACK received
Summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RTT
Host B
time
two segments
four segments
Transport Layer 3-26
Refinement After 3 dup ACKs
CongWin is cut in half window then grows linearly
But after timeout event CongWin instead set to 1 MSS window then grows
exponentially to a threshold then grows
linearly
bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo
Philosophy
Transport Layer 3-27
Refinement (more)Q When should the
exponential increase switch to linear
A When CongWin gets to 12 of its value before timeout
Implementation Variable Threshold At loss event Threshold
is set to 12 of CongWin just before loss event
Transport Layer 3-28
Summary TCP Congestion Control
When CongWin is below Threshold sender in slow-start phase window grows exponentially
When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly
When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold
When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS
Transport Layer 3-29
TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt for previously unacked data
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo
Resulting in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Additive increase resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo
Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS
Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-11
Practical Performance
Ideal assumes infinite buffers and no overhead
Buffers are finite Overheads occur in exchanging
congestion control messages
Transport Layer 3-12
Approaches towards congestion control
End-end congestion control
no explicit feedback from network
congestion inferred from end-system observed loss delay
approach taken by TCP
Network-assisted congestion control
routers provide feedback to end systems single bit indicating
congestion (SNA DECbit TCPIP ECN ATM)
explicit rate sender should send at
Two broad approaches towards congestion control
Transport Layer 3-13
Mechanisms for Congestion Control
Transport Layer 3-14
Backpressure
If node becomes congested it can slow down or halt flow of packets from other nodes
May mean that other nodes have to apply control on incoming packet rates
Propagates back to source Can restrict to logical connections generating
most traffic Used in connection oriented that allow hop by
hop congestion control (eg X25) Not used in ATM
Transport Layer 3-15
Choke Packet
Control packet Generated at congested node Sent to source node eg ICMP source quench
bull From router or destinationbull Source cuts back until no more source quench
messagebull Sent for every discarded packet or anticipated
Rather crude mechanism
Transport Layer 3-16
Implicit Congestion Signaling
Transmission delay may increase with congestion
Packet may be discarded Source can detect these as implicit
indications of congestion Useful on connectionless (datagram)
networks eg IP based Used in frame relay LAPF
Transport Layer 3-17
Explicit Congestion Signaling
Network alerts end systems of increasing congestion
End systems take steps to reduce offered load
Backwards Congestion avoidance in opposite direction
to packet required Forwards
Congestion avoidance in same direction as packet required
Used in ATM by ABR Service
Transport Layer 3-18
Traffic Shaping
Smooth out traffic flow and reduce cell clumping
Token bucket
Transport Layer 3-19
Token Bucket for Traffic Shaping
Transport Layer 3-20
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should use
available bandwidth if senderrsquos path
congested sender throttled to
minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-21
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on
path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI
bit in returned RM cell
Transport Layer 3-22
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
CongWin Roughly
CongWin is dynamic function of perceived network congestion
How does sender perceive congestion
loss event = timeout or 3 duplicate acks
TCP sender reduces rate (CongWin) after loss event
three mechanisms AIMD slow start conservative after
timeout events
rate = CongWin
RTT Bytessec
Transport Layer 3-23
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
multiplicative decrease cut CongWin in half after loss event
additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing
Long-lived TCP connection
Transport Layer 3-24
TCP Slow Start
When connection begins CongWin = 1 MSS Example MSS = 500
bytes amp RTT = 200 msec
initial rate = 20 kbps
available bandwidth may be gtgt MSSRTT desirable to quickly
ramp up to respectable rate
When connection begins increase rate exponentially fast until first loss event
Transport Layer 3-25
TCP Slow Start (more)
When connection begins increase rate exponentially until first loss event double CongWin every
RTT done by incrementing CongWin for every ACK received
Summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RTT
Host B
time
two segments
four segments
Transport Layer 3-26
Refinement After 3 dup ACKs
CongWin is cut in half window then grows linearly
But after timeout event CongWin instead set to 1 MSS window then grows
exponentially to a threshold then grows
linearly
bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo
Philosophy
Transport Layer 3-27
Refinement (more)Q When should the
exponential increase switch to linear
A When CongWin gets to 12 of its value before timeout
Implementation Variable Threshold At loss event Threshold
is set to 12 of CongWin just before loss event
Transport Layer 3-28
Summary TCP Congestion Control
When CongWin is below Threshold sender in slow-start phase window grows exponentially
When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly
When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold
When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS
Transport Layer 3-29
TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt for previously unacked data
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo
Resulting in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Additive increase resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo
Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS
Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-12
Approaches towards congestion control
End-end congestion control
no explicit feedback from network
congestion inferred from end-system observed loss delay
approach taken by TCP
Network-assisted congestion control
routers provide feedback to end systems single bit indicating
congestion (SNA DECbit TCPIP ECN ATM)
explicit rate sender should send at
Two broad approaches towards congestion control
Transport Layer 3-13
Mechanisms for Congestion Control
Transport Layer 3-14
Backpressure
If node becomes congested it can slow down or halt flow of packets from other nodes
May mean that other nodes have to apply control on incoming packet rates
Propagates back to source Can restrict to logical connections generating
most traffic Used in connection oriented that allow hop by
hop congestion control (eg X25) Not used in ATM
Transport Layer 3-15
Choke Packet
Control packet Generated at congested node Sent to source node eg ICMP source quench
bull From router or destinationbull Source cuts back until no more source quench
messagebull Sent for every discarded packet or anticipated
Rather crude mechanism
Transport Layer 3-16
Implicit Congestion Signaling
Transmission delay may increase with congestion
Packet may be discarded Source can detect these as implicit
indications of congestion Useful on connectionless (datagram)
networks eg IP based Used in frame relay LAPF
Transport Layer 3-17
Explicit Congestion Signaling
Network alerts end systems of increasing congestion
End systems take steps to reduce offered load
Backwards Congestion avoidance in opposite direction
to packet required Forwards
Congestion avoidance in same direction as packet required
Used in ATM by ABR Service
Transport Layer 3-18
Traffic Shaping
Smooth out traffic flow and reduce cell clumping
Token bucket
Transport Layer 3-19
Token Bucket for Traffic Shaping
Transport Layer 3-20
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should use
available bandwidth if senderrsquos path
congested sender throttled to
minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-21
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on
path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI
bit in returned RM cell
Transport Layer 3-22
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
CongWin Roughly
CongWin is dynamic function of perceived network congestion
How does sender perceive congestion
loss event = timeout or 3 duplicate acks
TCP sender reduces rate (CongWin) after loss event
three mechanisms AIMD slow start conservative after
timeout events
rate = CongWin
RTT Bytessec
Transport Layer 3-23
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
multiplicative decrease cut CongWin in half after loss event
additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing
Long-lived TCP connection
Transport Layer 3-24
TCP Slow Start
When connection begins CongWin = 1 MSS Example MSS = 500
bytes amp RTT = 200 msec
initial rate = 20 kbps
available bandwidth may be gtgt MSSRTT desirable to quickly
ramp up to respectable rate
When connection begins increase rate exponentially fast until first loss event
Transport Layer 3-25
TCP Slow Start (more)
When connection begins increase rate exponentially until first loss event double CongWin every
RTT done by incrementing CongWin for every ACK received
Summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RTT
Host B
time
two segments
four segments
Transport Layer 3-26
Refinement After 3 dup ACKs
CongWin is cut in half window then grows linearly
But after timeout event CongWin instead set to 1 MSS window then grows
exponentially to a threshold then grows
linearly
bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo
Philosophy
Transport Layer 3-27
Refinement (more)Q When should the
exponential increase switch to linear
A When CongWin gets to 12 of its value before timeout
Implementation Variable Threshold At loss event Threshold
is set to 12 of CongWin just before loss event
Transport Layer 3-28
Summary TCP Congestion Control
When CongWin is below Threshold sender in slow-start phase window grows exponentially
When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly
When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold
When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS
Transport Layer 3-29
TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt for previously unacked data
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo
Resulting in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Additive increase resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo
Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS
Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-13
Mechanisms for Congestion Control
Transport Layer 3-14
Backpressure
If node becomes congested it can slow down or halt flow of packets from other nodes
May mean that other nodes have to apply control on incoming packet rates
Propagates back to source Can restrict to logical connections generating
most traffic Used in connection oriented that allow hop by
hop congestion control (eg X25) Not used in ATM
Transport Layer 3-15
Choke Packet
Control packet Generated at congested node Sent to source node eg ICMP source quench
bull From router or destinationbull Source cuts back until no more source quench
messagebull Sent for every discarded packet or anticipated
Rather crude mechanism
Transport Layer 3-16
Implicit Congestion Signaling
Transmission delay may increase with congestion
Packet may be discarded Source can detect these as implicit
indications of congestion Useful on connectionless (datagram)
networks eg IP based Used in frame relay LAPF
Transport Layer 3-17
Explicit Congestion Signaling
Network alerts end systems of increasing congestion
End systems take steps to reduce offered load
Backwards Congestion avoidance in opposite direction
to packet required Forwards
Congestion avoidance in same direction as packet required
Used in ATM by ABR Service
Transport Layer 3-18
Traffic Shaping
Smooth out traffic flow and reduce cell clumping
Token bucket
Transport Layer 3-19
Token Bucket for Traffic Shaping
Transport Layer 3-20
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should use
available bandwidth if senderrsquos path
congested sender throttled to
minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-21
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on
path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI
bit in returned RM cell
Transport Layer 3-22
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
CongWin Roughly
CongWin is dynamic function of perceived network congestion
How does sender perceive congestion
loss event = timeout or 3 duplicate acks
TCP sender reduces rate (CongWin) after loss event
three mechanisms AIMD slow start conservative after
timeout events
rate = CongWin
RTT Bytessec
Transport Layer 3-23
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
multiplicative decrease cut CongWin in half after loss event
additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing
Long-lived TCP connection
Transport Layer 3-24
TCP Slow Start
When connection begins CongWin = 1 MSS Example MSS = 500
bytes amp RTT = 200 msec
initial rate = 20 kbps
available bandwidth may be gtgt MSSRTT desirable to quickly
ramp up to respectable rate
When connection begins increase rate exponentially fast until first loss event
Transport Layer 3-25
TCP Slow Start (more)
When connection begins increase rate exponentially until first loss event double CongWin every
RTT done by incrementing CongWin for every ACK received
Summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RTT
Host B
time
two segments
four segments
Transport Layer 3-26
Refinement After 3 dup ACKs
CongWin is cut in half window then grows linearly
But after timeout event CongWin instead set to 1 MSS window then grows
exponentially to a threshold then grows
linearly
bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo
Philosophy
Transport Layer 3-27
Refinement (more)Q When should the
exponential increase switch to linear
A When CongWin gets to 12 of its value before timeout
Implementation Variable Threshold At loss event Threshold
is set to 12 of CongWin just before loss event
Transport Layer 3-28
Summary TCP Congestion Control
When CongWin is below Threshold sender in slow-start phase window grows exponentially
When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly
When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold
When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS
Transport Layer 3-29
TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt for previously unacked data
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo
Resulting in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Additive increase resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo
Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS
Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-14
Backpressure
If node becomes congested it can slow down or halt flow of packets from other nodes
May mean that other nodes have to apply control on incoming packet rates
Propagates back to source Can restrict to logical connections generating
most traffic Used in connection oriented that allow hop by
hop congestion control (eg X25) Not used in ATM
Transport Layer 3-15
Choke Packet
Control packet Generated at congested node Sent to source node eg ICMP source quench
bull From router or destinationbull Source cuts back until no more source quench
messagebull Sent for every discarded packet or anticipated
Rather crude mechanism
Transport Layer 3-16
Implicit Congestion Signaling
Transmission delay may increase with congestion
Packet may be discarded Source can detect these as implicit
indications of congestion Useful on connectionless (datagram)
networks eg IP based Used in frame relay LAPF
Transport Layer 3-17
Explicit Congestion Signaling
Network alerts end systems of increasing congestion
End systems take steps to reduce offered load
Backwards Congestion avoidance in opposite direction
to packet required Forwards
Congestion avoidance in same direction as packet required
Used in ATM by ABR Service
Transport Layer 3-18
Traffic Shaping
Smooth out traffic flow and reduce cell clumping
Token bucket
Transport Layer 3-19
Token Bucket for Traffic Shaping
Transport Layer 3-20
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should use
available bandwidth if senderrsquos path
congested sender throttled to
minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-21
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on
path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI
bit in returned RM cell
Transport Layer 3-22
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
CongWin Roughly
CongWin is dynamic function of perceived network congestion
How does sender perceive congestion
loss event = timeout or 3 duplicate acks
TCP sender reduces rate (CongWin) after loss event
three mechanisms AIMD slow start conservative after
timeout events
rate = CongWin
RTT Bytessec
Transport Layer 3-23
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
multiplicative decrease cut CongWin in half after loss event
additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing
Long-lived TCP connection
Transport Layer 3-24
TCP Slow Start
When connection begins CongWin = 1 MSS Example MSS = 500
bytes amp RTT = 200 msec
initial rate = 20 kbps
available bandwidth may be gtgt MSSRTT desirable to quickly
ramp up to respectable rate
When connection begins increase rate exponentially fast until first loss event
Transport Layer 3-25
TCP Slow Start (more)
When connection begins increase rate exponentially until first loss event double CongWin every
RTT done by incrementing CongWin for every ACK received
Summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RTT
Host B
time
two segments
four segments
Transport Layer 3-26
Refinement After 3 dup ACKs
CongWin is cut in half window then grows linearly
But after timeout event CongWin instead set to 1 MSS window then grows
exponentially to a threshold then grows
linearly
bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo
Philosophy
Transport Layer 3-27
Refinement (more)Q When should the
exponential increase switch to linear
A When CongWin gets to 12 of its value before timeout
Implementation Variable Threshold At loss event Threshold
is set to 12 of CongWin just before loss event
Transport Layer 3-28
Summary TCP Congestion Control
When CongWin is below Threshold sender in slow-start phase window grows exponentially
When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly
When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold
When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS
Transport Layer 3-29
TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt for previously unacked data
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo
Resulting in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Additive increase resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo
Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS
Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-15
Choke Packet
Control packet Generated at congested node Sent to source node eg ICMP source quench
bull From router or destinationbull Source cuts back until no more source quench
messagebull Sent for every discarded packet or anticipated
Rather crude mechanism
Transport Layer 3-16
Implicit Congestion Signaling
Transmission delay may increase with congestion
Packet may be discarded Source can detect these as implicit
indications of congestion Useful on connectionless (datagram)
networks eg IP based Used in frame relay LAPF
Transport Layer 3-17
Explicit Congestion Signaling
Network alerts end systems of increasing congestion
End systems take steps to reduce offered load
Backwards Congestion avoidance in opposite direction
to packet required Forwards
Congestion avoidance in same direction as packet required
Used in ATM by ABR Service
Transport Layer 3-18
Traffic Shaping
Smooth out traffic flow and reduce cell clumping
Token bucket
Transport Layer 3-19
Token Bucket for Traffic Shaping
Transport Layer 3-20
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should use
available bandwidth if senderrsquos path
congested sender throttled to
minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-21
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on
path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI
bit in returned RM cell
Transport Layer 3-22
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
CongWin Roughly
CongWin is dynamic function of perceived network congestion
How does sender perceive congestion
loss event = timeout or 3 duplicate acks
TCP sender reduces rate (CongWin) after loss event
three mechanisms AIMD slow start conservative after
timeout events
rate = CongWin
RTT Bytessec
Transport Layer 3-23
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
multiplicative decrease cut CongWin in half after loss event
additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing
Long-lived TCP connection
Transport Layer 3-24
TCP Slow Start
When connection begins CongWin = 1 MSS Example MSS = 500
bytes amp RTT = 200 msec
initial rate = 20 kbps
available bandwidth may be gtgt MSSRTT desirable to quickly
ramp up to respectable rate
When connection begins increase rate exponentially fast until first loss event
Transport Layer 3-25
TCP Slow Start (more)
When connection begins increase rate exponentially until first loss event double CongWin every
RTT done by incrementing CongWin for every ACK received
Summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RTT
Host B
time
two segments
four segments
Transport Layer 3-26
Refinement After 3 dup ACKs
CongWin is cut in half window then grows linearly
But after timeout event CongWin instead set to 1 MSS window then grows
exponentially to a threshold then grows
linearly
bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo
Philosophy
Transport Layer 3-27
Refinement (more)Q When should the
exponential increase switch to linear
A When CongWin gets to 12 of its value before timeout
Implementation Variable Threshold At loss event Threshold
is set to 12 of CongWin just before loss event
Transport Layer 3-28
Summary TCP Congestion Control
When CongWin is below Threshold sender in slow-start phase window grows exponentially
When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly
When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold
When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS
Transport Layer 3-29
TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt for previously unacked data
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo
Resulting in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Additive increase resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo
Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS
Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-16
Implicit Congestion Signaling
Transmission delay may increase with congestion
Packet may be discarded Source can detect these as implicit
indications of congestion Useful on connectionless (datagram)
networks eg IP based Used in frame relay LAPF
Transport Layer 3-17
Explicit Congestion Signaling
Network alerts end systems of increasing congestion
End systems take steps to reduce offered load
Backwards Congestion avoidance in opposite direction
to packet required Forwards
Congestion avoidance in same direction as packet required
Used in ATM by ABR Service
Transport Layer 3-18
Traffic Shaping
Smooth out traffic flow and reduce cell clumping
Token bucket
Transport Layer 3-19
Token Bucket for Traffic Shaping
Transport Layer 3-20
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should use
available bandwidth if senderrsquos path
congested sender throttled to
minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-21
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on
path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI
bit in returned RM cell
Transport Layer 3-22
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
CongWin Roughly
CongWin is dynamic function of perceived network congestion
How does sender perceive congestion
loss event = timeout or 3 duplicate acks
TCP sender reduces rate (CongWin) after loss event
three mechanisms AIMD slow start conservative after
timeout events
rate = CongWin
RTT Bytessec
Transport Layer 3-23
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
multiplicative decrease cut CongWin in half after loss event
additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing
Long-lived TCP connection
Transport Layer 3-24
TCP Slow Start
When connection begins CongWin = 1 MSS Example MSS = 500
bytes amp RTT = 200 msec
initial rate = 20 kbps
available bandwidth may be gtgt MSSRTT desirable to quickly
ramp up to respectable rate
When connection begins increase rate exponentially fast until first loss event
Transport Layer 3-25
TCP Slow Start (more)
When connection begins increase rate exponentially until first loss event double CongWin every
RTT done by incrementing CongWin for every ACK received
Summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RTT
Host B
time
two segments
four segments
Transport Layer 3-26
Refinement After 3 dup ACKs
CongWin is cut in half window then grows linearly
But after timeout event CongWin instead set to 1 MSS window then grows
exponentially to a threshold then grows
linearly
bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo
Philosophy
Transport Layer 3-27
Refinement (more)Q When should the
exponential increase switch to linear
A When CongWin gets to 12 of its value before timeout
Implementation Variable Threshold At loss event Threshold
is set to 12 of CongWin just before loss event
Transport Layer 3-28
Summary TCP Congestion Control
When CongWin is below Threshold sender in slow-start phase window grows exponentially
When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly
When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold
When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS
Transport Layer 3-29
TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt for previously unacked data
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo
Resulting in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Additive increase resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo
Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS
Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-17
Explicit Congestion Signaling
Network alerts end systems of increasing congestion
End systems take steps to reduce offered load
Backwards Congestion avoidance in opposite direction
to packet required Forwards
Congestion avoidance in same direction as packet required
Used in ATM by ABR Service
Transport Layer 3-18
Traffic Shaping
Smooth out traffic flow and reduce cell clumping
Token bucket
Transport Layer 3-19
Token Bucket for Traffic Shaping
Transport Layer 3-20
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should use
available bandwidth if senderrsquos path
congested sender throttled to
minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-21
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on
path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI
bit in returned RM cell
Transport Layer 3-22
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
CongWin Roughly
CongWin is dynamic function of perceived network congestion
How does sender perceive congestion
loss event = timeout or 3 duplicate acks
TCP sender reduces rate (CongWin) after loss event
three mechanisms AIMD slow start conservative after
timeout events
rate = CongWin
RTT Bytessec
Transport Layer 3-23
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
multiplicative decrease cut CongWin in half after loss event
additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing
Long-lived TCP connection
Transport Layer 3-24
TCP Slow Start
When connection begins CongWin = 1 MSS Example MSS = 500
bytes amp RTT = 200 msec
initial rate = 20 kbps
available bandwidth may be gtgt MSSRTT desirable to quickly
ramp up to respectable rate
When connection begins increase rate exponentially fast until first loss event
Transport Layer 3-25
TCP Slow Start (more)
When connection begins increase rate exponentially until first loss event double CongWin every
RTT done by incrementing CongWin for every ACK received
Summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RTT
Host B
time
two segments
four segments
Transport Layer 3-26
Refinement After 3 dup ACKs
CongWin is cut in half window then grows linearly
But after timeout event CongWin instead set to 1 MSS window then grows
exponentially to a threshold then grows
linearly
bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo
Philosophy
Transport Layer 3-27
Refinement (more)Q When should the
exponential increase switch to linear
A When CongWin gets to 12 of its value before timeout
Implementation Variable Threshold At loss event Threshold
is set to 12 of CongWin just before loss event
Transport Layer 3-28
Summary TCP Congestion Control
When CongWin is below Threshold sender in slow-start phase window grows exponentially
When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly
When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold
When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS
Transport Layer 3-29
TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt for previously unacked data
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo
Resulting in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Additive increase resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo
Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS
Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-18
Traffic Shaping
Smooth out traffic flow and reduce cell clumping
Token bucket
Transport Layer 3-19
Token Bucket for Traffic Shaping
Transport Layer 3-20
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should use
available bandwidth if senderrsquos path
congested sender throttled to
minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-21
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on
path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI
bit in returned RM cell
Transport Layer 3-22
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
CongWin Roughly
CongWin is dynamic function of perceived network congestion
How does sender perceive congestion
loss event = timeout or 3 duplicate acks
TCP sender reduces rate (CongWin) after loss event
three mechanisms AIMD slow start conservative after
timeout events
rate = CongWin
RTT Bytessec
Transport Layer 3-23
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
multiplicative decrease cut CongWin in half after loss event
additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing
Long-lived TCP connection
Transport Layer 3-24
TCP Slow Start
When connection begins CongWin = 1 MSS Example MSS = 500
bytes amp RTT = 200 msec
initial rate = 20 kbps
available bandwidth may be gtgt MSSRTT desirable to quickly
ramp up to respectable rate
When connection begins increase rate exponentially fast until first loss event
Transport Layer 3-25
TCP Slow Start (more)
When connection begins increase rate exponentially until first loss event double CongWin every
RTT done by incrementing CongWin for every ACK received
Summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RTT
Host B
time
two segments
four segments
Transport Layer 3-26
Refinement After 3 dup ACKs
CongWin is cut in half window then grows linearly
But after timeout event CongWin instead set to 1 MSS window then grows
exponentially to a threshold then grows
linearly
bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo
Philosophy
Transport Layer 3-27
Refinement (more)Q When should the
exponential increase switch to linear
A When CongWin gets to 12 of its value before timeout
Implementation Variable Threshold At loss event Threshold
is set to 12 of CongWin just before loss event
Transport Layer 3-28
Summary TCP Congestion Control
When CongWin is below Threshold sender in slow-start phase window grows exponentially
When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly
When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold
When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS
Transport Layer 3-29
TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt for previously unacked data
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo
Resulting in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Additive increase resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo
Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS
Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-19
Token Bucket for Traffic Shaping
Transport Layer 3-20
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should use
available bandwidth if senderrsquos path
congested sender throttled to
minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-21
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on
path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI
bit in returned RM cell
Transport Layer 3-22
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
CongWin Roughly
CongWin is dynamic function of perceived network congestion
How does sender perceive congestion
loss event = timeout or 3 duplicate acks
TCP sender reduces rate (CongWin) after loss event
three mechanisms AIMD slow start conservative after
timeout events
rate = CongWin
RTT Bytessec
Transport Layer 3-23
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
multiplicative decrease cut CongWin in half after loss event
additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing
Long-lived TCP connection
Transport Layer 3-24
TCP Slow Start
When connection begins CongWin = 1 MSS Example MSS = 500
bytes amp RTT = 200 msec
initial rate = 20 kbps
available bandwidth may be gtgt MSSRTT desirable to quickly
ramp up to respectable rate
When connection begins increase rate exponentially fast until first loss event
Transport Layer 3-25
TCP Slow Start (more)
When connection begins increase rate exponentially until first loss event double CongWin every
RTT done by incrementing CongWin for every ACK received
Summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RTT
Host B
time
two segments
four segments
Transport Layer 3-26
Refinement After 3 dup ACKs
CongWin is cut in half window then grows linearly
But after timeout event CongWin instead set to 1 MSS window then grows
exponentially to a threshold then grows
linearly
bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo
Philosophy
Transport Layer 3-27
Refinement (more)Q When should the
exponential increase switch to linear
A When CongWin gets to 12 of its value before timeout
Implementation Variable Threshold At loss event Threshold
is set to 12 of CongWin just before loss event
Transport Layer 3-28
Summary TCP Congestion Control
When CongWin is below Threshold sender in slow-start phase window grows exponentially
When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly
When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold
When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS
Transport Layer 3-29
TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt for previously unacked data
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo
Resulting in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Additive increase resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo
Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS
Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-20
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should use
available bandwidth if senderrsquos path
congested sender throttled to
minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-21
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on
path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI
bit in returned RM cell
Transport Layer 3-22
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
CongWin Roughly
CongWin is dynamic function of perceived network congestion
How does sender perceive congestion
loss event = timeout or 3 duplicate acks
TCP sender reduces rate (CongWin) after loss event
three mechanisms AIMD slow start conservative after
timeout events
rate = CongWin
RTT Bytessec
Transport Layer 3-23
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
multiplicative decrease cut CongWin in half after loss event
additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing
Long-lived TCP connection
Transport Layer 3-24
TCP Slow Start
When connection begins CongWin = 1 MSS Example MSS = 500
bytes amp RTT = 200 msec
initial rate = 20 kbps
available bandwidth may be gtgt MSSRTT desirable to quickly
ramp up to respectable rate
When connection begins increase rate exponentially fast until first loss event
Transport Layer 3-25
TCP Slow Start (more)
When connection begins increase rate exponentially until first loss event double CongWin every
RTT done by incrementing CongWin for every ACK received
Summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RTT
Host B
time
two segments
four segments
Transport Layer 3-26
Refinement After 3 dup ACKs
CongWin is cut in half window then grows linearly
But after timeout event CongWin instead set to 1 MSS window then grows
exponentially to a threshold then grows
linearly
bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo
Philosophy
Transport Layer 3-27
Refinement (more)Q When should the
exponential increase switch to linear
A When CongWin gets to 12 of its value before timeout
Implementation Variable Threshold At loss event Threshold
is set to 12 of CongWin just before loss event
Transport Layer 3-28
Summary TCP Congestion Control
When CongWin is below Threshold sender in slow-start phase window grows exponentially
When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly
When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold
When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS
Transport Layer 3-29
TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt for previously unacked data
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo
Resulting in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Additive increase resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo
Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS
Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-21
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on
path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI
bit in returned RM cell
Transport Layer 3-22
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
CongWin Roughly
CongWin is dynamic function of perceived network congestion
How does sender perceive congestion
loss event = timeout or 3 duplicate acks
TCP sender reduces rate (CongWin) after loss event
three mechanisms AIMD slow start conservative after
timeout events
rate = CongWin
RTT Bytessec
Transport Layer 3-23
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
multiplicative decrease cut CongWin in half after loss event
additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing
Long-lived TCP connection
Transport Layer 3-24
TCP Slow Start
When connection begins CongWin = 1 MSS Example MSS = 500
bytes amp RTT = 200 msec
initial rate = 20 kbps
available bandwidth may be gtgt MSSRTT desirable to quickly
ramp up to respectable rate
When connection begins increase rate exponentially fast until first loss event
Transport Layer 3-25
TCP Slow Start (more)
When connection begins increase rate exponentially until first loss event double CongWin every
RTT done by incrementing CongWin for every ACK received
Summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RTT
Host B
time
two segments
four segments
Transport Layer 3-26
Refinement After 3 dup ACKs
CongWin is cut in half window then grows linearly
But after timeout event CongWin instead set to 1 MSS window then grows
exponentially to a threshold then grows
linearly
bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo
Philosophy
Transport Layer 3-27
Refinement (more)Q When should the
exponential increase switch to linear
A When CongWin gets to 12 of its value before timeout
Implementation Variable Threshold At loss event Threshold
is set to 12 of CongWin just before loss event
Transport Layer 3-28
Summary TCP Congestion Control
When CongWin is below Threshold sender in slow-start phase window grows exponentially
When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly
When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold
When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS
Transport Layer 3-29
TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt for previously unacked data
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo
Resulting in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Additive increase resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo
Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS
Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-22
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
CongWin Roughly
CongWin is dynamic function of perceived network congestion
How does sender perceive congestion
loss event = timeout or 3 duplicate acks
TCP sender reduces rate (CongWin) after loss event
three mechanisms AIMD slow start conservative after
timeout events
rate = CongWin
RTT Bytessec
Transport Layer 3-23
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
multiplicative decrease cut CongWin in half after loss event
additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing
Long-lived TCP connection
Transport Layer 3-24
TCP Slow Start
When connection begins CongWin = 1 MSS Example MSS = 500
bytes amp RTT = 200 msec
initial rate = 20 kbps
available bandwidth may be gtgt MSSRTT desirable to quickly
ramp up to respectable rate
When connection begins increase rate exponentially fast until first loss event
Transport Layer 3-25
TCP Slow Start (more)
When connection begins increase rate exponentially until first loss event double CongWin every
RTT done by incrementing CongWin for every ACK received
Summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RTT
Host B
time
two segments
four segments
Transport Layer 3-26
Refinement After 3 dup ACKs
CongWin is cut in half window then grows linearly
But after timeout event CongWin instead set to 1 MSS window then grows
exponentially to a threshold then grows
linearly
bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo
Philosophy
Transport Layer 3-27
Refinement (more)Q When should the
exponential increase switch to linear
A When CongWin gets to 12 of its value before timeout
Implementation Variable Threshold At loss event Threshold
is set to 12 of CongWin just before loss event
Transport Layer 3-28
Summary TCP Congestion Control
When CongWin is below Threshold sender in slow-start phase window grows exponentially
When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly
When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold
When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS
Transport Layer 3-29
TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt for previously unacked data
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo
Resulting in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Additive increase resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo
Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS
Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-23
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
multiplicative decrease cut CongWin in half after loss event
additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing
Long-lived TCP connection
Transport Layer 3-24
TCP Slow Start
When connection begins CongWin = 1 MSS Example MSS = 500
bytes amp RTT = 200 msec
initial rate = 20 kbps
available bandwidth may be gtgt MSSRTT desirable to quickly
ramp up to respectable rate
When connection begins increase rate exponentially fast until first loss event
Transport Layer 3-25
TCP Slow Start (more)
When connection begins increase rate exponentially until first loss event double CongWin every
RTT done by incrementing CongWin for every ACK received
Summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RTT
Host B
time
two segments
four segments
Transport Layer 3-26
Refinement After 3 dup ACKs
CongWin is cut in half window then grows linearly
But after timeout event CongWin instead set to 1 MSS window then grows
exponentially to a threshold then grows
linearly
bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo
Philosophy
Transport Layer 3-27
Refinement (more)Q When should the
exponential increase switch to linear
A When CongWin gets to 12 of its value before timeout
Implementation Variable Threshold At loss event Threshold
is set to 12 of CongWin just before loss event
Transport Layer 3-28
Summary TCP Congestion Control
When CongWin is below Threshold sender in slow-start phase window grows exponentially
When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly
When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold
When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS
Transport Layer 3-29
TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt for previously unacked data
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo
Resulting in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Additive increase resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo
Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS
Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-24
TCP Slow Start
When connection begins CongWin = 1 MSS Example MSS = 500
bytes amp RTT = 200 msec
initial rate = 20 kbps
available bandwidth may be gtgt MSSRTT desirable to quickly
ramp up to respectable rate
When connection begins increase rate exponentially fast until first loss event
Transport Layer 3-25
TCP Slow Start (more)
When connection begins increase rate exponentially until first loss event double CongWin every
RTT done by incrementing CongWin for every ACK received
Summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RTT
Host B
time
two segments
four segments
Transport Layer 3-26
Refinement After 3 dup ACKs
CongWin is cut in half window then grows linearly
But after timeout event CongWin instead set to 1 MSS window then grows
exponentially to a threshold then grows
linearly
bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo
Philosophy
Transport Layer 3-27
Refinement (more)Q When should the
exponential increase switch to linear
A When CongWin gets to 12 of its value before timeout
Implementation Variable Threshold At loss event Threshold
is set to 12 of CongWin just before loss event
Transport Layer 3-28
Summary TCP Congestion Control
When CongWin is below Threshold sender in slow-start phase window grows exponentially
When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly
When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold
When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS
Transport Layer 3-29
TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt for previously unacked data
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo
Resulting in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Additive increase resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo
Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS
Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-25
TCP Slow Start (more)
When connection begins increase rate exponentially until first loss event double CongWin every
RTT done by incrementing CongWin for every ACK received
Summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RTT
Host B
time
two segments
four segments
Transport Layer 3-26
Refinement After 3 dup ACKs
CongWin is cut in half window then grows linearly
But after timeout event CongWin instead set to 1 MSS window then grows
exponentially to a threshold then grows
linearly
bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo
Philosophy
Transport Layer 3-27
Refinement (more)Q When should the
exponential increase switch to linear
A When CongWin gets to 12 of its value before timeout
Implementation Variable Threshold At loss event Threshold
is set to 12 of CongWin just before loss event
Transport Layer 3-28
Summary TCP Congestion Control
When CongWin is below Threshold sender in slow-start phase window grows exponentially
When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly
When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold
When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS
Transport Layer 3-29
TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt for previously unacked data
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo
Resulting in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Additive increase resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo
Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS
Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-26
Refinement After 3 dup ACKs
CongWin is cut in half window then grows linearly
But after timeout event CongWin instead set to 1 MSS window then grows
exponentially to a threshold then grows
linearly
bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo
Philosophy
Transport Layer 3-27
Refinement (more)Q When should the
exponential increase switch to linear
A When CongWin gets to 12 of its value before timeout
Implementation Variable Threshold At loss event Threshold
is set to 12 of CongWin just before loss event
Transport Layer 3-28
Summary TCP Congestion Control
When CongWin is below Threshold sender in slow-start phase window grows exponentially
When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly
When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold
When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS
Transport Layer 3-29
TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt for previously unacked data
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo
Resulting in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Additive increase resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo
Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS
Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-27
Refinement (more)Q When should the
exponential increase switch to linear
A When CongWin gets to 12 of its value before timeout
Implementation Variable Threshold At loss event Threshold
is set to 12 of CongWin just before loss event
Transport Layer 3-28
Summary TCP Congestion Control
When CongWin is below Threshold sender in slow-start phase window grows exponentially
When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly
When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold
When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS
Transport Layer 3-29
TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt for previously unacked data
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo
Resulting in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Additive increase resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo
Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS
Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-28
Summary TCP Congestion Control
When CongWin is below Threshold sender in slow-start phase window grows exponentially
When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly
When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold
When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS
Transport Layer 3-29
TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt for previously unacked data
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo
Resulting in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Additive increase resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo
Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS
Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-29
TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt for previously unacked data
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo
Resulting in a doubling of CongWin every RTT
ACK receipt for previously unacked data
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Additive increase resulting in increase of CongWin by 1 MSS every RTT
Loss event detected by triple duplicate ACK
SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo
Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS
Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo
Enter slow start
Duplicate ACK
SS or CA Increment duplicate ACK count for segment being acked
CongWin and Threshold not changed
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-30
TCP throughput
Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start
Let W be the window size when loss occurs
When window is W throughput is WRTT Just after loss window drops to W2
throughput to W2RTT Average throughout 75 WRTT
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-31
TCP Futures
Example 1500 byte segments 100ms RTT want 10 Gbps throughput
Requires window size W = 83333 in-flight segments
Throughput in terms of loss rate
L = 210-10 Wow New versions of TCP for high-speed needed
LRTT
MSS221
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-32
Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckrouter
capacity R
TCP connection 2
TCP Fairness
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-33
Why is TCP fair
Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-34
Fairness (more)
Fairness and UDP Multimedia apps
often do not use TCP do not want rate
throttled by congestion control
Instead use UDP pump audiovideo at
constant rate tolerate packet loss
Research area TCP friendly
Fairness and parallel TCP connections
nothing prevents app from opening parallel cnctions between 2 hosts
Web browsers do this Example link of rate R
supporting 9 cnctions new app asks for 1 TCP
gets rate R10 new app asks for 11 TCPs
gets R2
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-35
Delay modeling
Q How long does it take to receive an object from a Web server after sending a request
Ignoring congestion delay is influenced by
TCP connection establishment
data transmission delay slow start
Notation assumptions Assume one link between
client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss
no corruption)
Window size First assume fixed
congestion window W segments
Then dynamic window modeling slow start
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-36
Fixed congestion window (1)
First caseWSR gt RTT + SR ACK for
first segment in window returns before windowrsquos worth of data sent
delay = 2RTT + OR
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-37
Fixed congestion window (2)
Second case WSR lt RTT + SR wait
for ACK after sending windowrsquos worth of data sent
delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-38
TCP Delay Modeling Slow Start (1)
Now suppose window grows according to slow start
Will show that the delay for one object is
R
S
R
SRTTP
R
ORTTLatency P )12(2
where P is the number of times TCP idles at server
1min KQP
- where Q is the number of times the server idles if the object were of infinite size
- and K is the number of windows that cover the object
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-39
TCP Delay Modeling Slow Start (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Server idles P=2 times
Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start
Server idles P = minK-1Q times
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-40
TCP Delay Modeling (3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver whenfrom time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-
Transport Layer 3-41
TCP Delay Modeling (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Calculation of Q number of idles for infinite-size objectis similar (see HW)
Recall K = number of windows that cover object
How do we calculate K
- Data Communication and Networks
- What Is Congestion
- Queues at a Node
- Effects of Congestion
- Interaction of Queues
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 8
- Causescosts of congestion scenario 3
- Slide 10
- Practical Performance
- Approaches towards congestion control
- Mechanisms for Congestion Control
- Backpressure
- Choke Packet
- Implicit Congestion Signaling
- Explicit Congestion Signaling
- Traffic Shaping
- Token Bucket for Traffic Shaping
- Case study ATM ABR congestion control
- Slide 21
- TCP Congestion Control
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (more)
- Refinement
- Refinement (more)
- Summary TCP Congestion Control
- TCP sender congestion control
- TCP throughput
- TCP Futures
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Delay modeling
- Fixed congestion window (1)
- Fixed congestion window (2)
- TCP Delay Modeling Slow Start (1)
- TCP Delay Modeling Slow Start (2)
- TCP Delay Modeling (3)
- TCP Delay Modeling (4)
-