Chapter 3 outline
description
Transcript of Chapter 3 outline
Transport Layer 3-1
Chapter 3 outline
31 Transport-layer services
32 Multiplexing and demultiplexing
33 Connectionless transport UDP
34 Principles of reliable data transfer
35 Connection-oriented transport TCP segment structure reliable data transfer flow control connection
management
36 Principles of congestion control
37 TCP congestion control
Transport Layer 3-2
Principles of Congestion Control
Congestion informally ldquotoo many sources sending too
much data too fast for network to handlerdquo different from flow control manifestations
lost packets (buffer overflow at routers) long delays (queueing in router buffers)
a top-10 problem
Transport Layer 3-3
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-4
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-5
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
ldquo costsrdquo 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-6
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 D
out
in original data plus retransmitted data
Host B
Host C
Transport Layer 3-7
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-8
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-9
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
Transport Layer 3-10
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-11
Chapter 3 outline
31 Transport-layer services
32 Multiplexing and demultiplexing
33 Connectionless transport UDP
34 Principles of reliable data transfer
35 Connection-oriented transport TCP segment structure reliable data transfer flow control connection
management
36 Principles of congestion control
37 TCP congestion control
Transport Layer 3-12
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
minCongWinRcvWindow Roughly
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-13
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
Long-lived TCP connection
Transport Layer 3-14
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-15
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-16
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-17
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
Con
gesti
on
W
ind
ow
(i
n s
eg
men
t)
Transport Layer 3-18
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-19
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-20
TCP throughput
Whatrsquos the average throughout at 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-21
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-22
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-23
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 connections 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-24
Chapter 3 Summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation and implementation in the Internet UDP TCP
Next leaving the network
ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
-
Transport Layer 3-2
Principles of Congestion Control
Congestion informally ldquotoo many sources sending too
much data too fast for network to handlerdquo different from flow control manifestations
lost packets (buffer overflow at routers) long delays (queueing in router buffers)
a top-10 problem
Transport Layer 3-3
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-4
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-5
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
ldquo costsrdquo 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-6
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 D
out
in original data plus retransmitted data
Host B
Host C
Transport Layer 3-7
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-8
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-9
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
Transport Layer 3-10
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-11
Chapter 3 outline
31 Transport-layer services
32 Multiplexing and demultiplexing
33 Connectionless transport UDP
34 Principles of reliable data transfer
35 Connection-oriented transport TCP segment structure reliable data transfer flow control connection
management
36 Principles of congestion control
37 TCP congestion control
Transport Layer 3-12
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
minCongWinRcvWindow Roughly
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-13
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
Long-lived TCP connection
Transport Layer 3-14
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-15
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-16
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-17
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
Con
gesti
on
W
ind
ow
(i
n s
eg
men
t)
Transport Layer 3-18
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-19
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-20
TCP throughput
Whatrsquos the average throughout at 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-21
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-22
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-23
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 connections 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-24
Chapter 3 Summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation and implementation in the Internet UDP TCP
Next leaving the network
ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
-
Transport Layer 3-3
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-4
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-5
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
ldquo costsrdquo 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-6
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 D
out
in original data plus retransmitted data
Host B
Host C
Transport Layer 3-7
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-8
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-9
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
Transport Layer 3-10
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-11
Chapter 3 outline
31 Transport-layer services
32 Multiplexing and demultiplexing
33 Connectionless transport UDP
34 Principles of reliable data transfer
35 Connection-oriented transport TCP segment structure reliable data transfer flow control connection
management
36 Principles of congestion control
37 TCP congestion control
Transport Layer 3-12
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
minCongWinRcvWindow Roughly
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-13
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
Long-lived TCP connection
Transport Layer 3-14
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-15
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-16
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-17
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
Con
gesti
on
W
ind
ow
(i
n s
eg
men
t)
Transport Layer 3-18
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-19
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-20
TCP throughput
Whatrsquos the average throughout at 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-21
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-22
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-23
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 connections 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-24
Chapter 3 Summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation and implementation in the Internet UDP TCP
Next leaving the network
ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
-
Transport Layer 3-4
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-5
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
ldquo costsrdquo 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-6
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 D
out
in original data plus retransmitted data
Host B
Host C
Transport Layer 3-7
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-8
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-9
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
Transport Layer 3-10
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-11
Chapter 3 outline
31 Transport-layer services
32 Multiplexing and demultiplexing
33 Connectionless transport UDP
34 Principles of reliable data transfer
35 Connection-oriented transport TCP segment structure reliable data transfer flow control connection
management
36 Principles of congestion control
37 TCP congestion control
Transport Layer 3-12
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
minCongWinRcvWindow Roughly
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-13
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
Long-lived TCP connection
Transport Layer 3-14
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-15
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-16
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-17
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
Con
gesti
on
W
ind
ow
(i
n s
eg
men
t)
Transport Layer 3-18
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-19
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-20
TCP throughput
Whatrsquos the average throughout at 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-21
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-22
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-23
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 connections 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-24
Chapter 3 Summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation and implementation in the Internet UDP TCP
Next leaving the network
ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
-
Transport Layer 3-5
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
ldquo costsrdquo 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-6
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 D
out
in original data plus retransmitted data
Host B
Host C
Transport Layer 3-7
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-8
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-9
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
Transport Layer 3-10
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-11
Chapter 3 outline
31 Transport-layer services
32 Multiplexing and demultiplexing
33 Connectionless transport UDP
34 Principles of reliable data transfer
35 Connection-oriented transport TCP segment structure reliable data transfer flow control connection
management
36 Principles of congestion control
37 TCP congestion control
Transport Layer 3-12
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
minCongWinRcvWindow Roughly
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-13
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
Long-lived TCP connection
Transport Layer 3-14
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-15
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-16
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-17
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
Con
gesti
on
W
ind
ow
(i
n s
eg
men
t)
Transport Layer 3-18
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-19
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-20
TCP throughput
Whatrsquos the average throughout at 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-21
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-22
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-23
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 connections 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-24
Chapter 3 Summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation and implementation in the Internet UDP TCP
Next leaving the network
ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
-
Transport Layer 3-6
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 D
out
in original data plus retransmitted data
Host B
Host C
Transport Layer 3-7
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-8
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-9
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
Transport Layer 3-10
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-11
Chapter 3 outline
31 Transport-layer services
32 Multiplexing and demultiplexing
33 Connectionless transport UDP
34 Principles of reliable data transfer
35 Connection-oriented transport TCP segment structure reliable data transfer flow control connection
management
36 Principles of congestion control
37 TCP congestion control
Transport Layer 3-12
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
minCongWinRcvWindow Roughly
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-13
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
Long-lived TCP connection
Transport Layer 3-14
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-15
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-16
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-17
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
Con
gesti
on
W
ind
ow
(i
n s
eg
men
t)
Transport Layer 3-18
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-19
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-20
TCP throughput
Whatrsquos the average throughout at 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-21
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-22
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-23
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 connections 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-24
Chapter 3 Summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation and implementation in the Internet UDP TCP
Next leaving the network
ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
-
Transport Layer 3-7
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-8
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-9
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
Transport Layer 3-10
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-11
Chapter 3 outline
31 Transport-layer services
32 Multiplexing and demultiplexing
33 Connectionless transport UDP
34 Principles of reliable data transfer
35 Connection-oriented transport TCP segment structure reliable data transfer flow control connection
management
36 Principles of congestion control
37 TCP congestion control
Transport Layer 3-12
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
minCongWinRcvWindow Roughly
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-13
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
Long-lived TCP connection
Transport Layer 3-14
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-15
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-16
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-17
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
Con
gesti
on
W
ind
ow
(i
n s
eg
men
t)
Transport Layer 3-18
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-19
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-20
TCP throughput
Whatrsquos the average throughout at 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-21
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-22
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-23
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 connections 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-24
Chapter 3 Summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation and implementation in the Internet UDP TCP
Next leaving the network
ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
-
Transport Layer 3-8
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-9
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
Transport Layer 3-10
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-11
Chapter 3 outline
31 Transport-layer services
32 Multiplexing and demultiplexing
33 Connectionless transport UDP
34 Principles of reliable data transfer
35 Connection-oriented transport TCP segment structure reliable data transfer flow control connection
management
36 Principles of congestion control
37 TCP congestion control
Transport Layer 3-12
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
minCongWinRcvWindow Roughly
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-13
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
Long-lived TCP connection
Transport Layer 3-14
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-15
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-16
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-17
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
Con
gesti
on
W
ind
ow
(i
n s
eg
men
t)
Transport Layer 3-18
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-19
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-20
TCP throughput
Whatrsquos the average throughout at 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-21
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-22
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-23
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 connections 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-24
Chapter 3 Summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation and implementation in the Internet UDP TCP
Next leaving the network
ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
-
Transport Layer 3-9
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
Transport Layer 3-10
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-11
Chapter 3 outline
31 Transport-layer services
32 Multiplexing and demultiplexing
33 Connectionless transport UDP
34 Principles of reliable data transfer
35 Connection-oriented transport TCP segment structure reliable data transfer flow control connection
management
36 Principles of congestion control
37 TCP congestion control
Transport Layer 3-12
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
minCongWinRcvWindow Roughly
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-13
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
Long-lived TCP connection
Transport Layer 3-14
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-15
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-16
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-17
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
Con
gesti
on
W
ind
ow
(i
n s
eg
men
t)
Transport Layer 3-18
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-19
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-20
TCP throughput
Whatrsquos the average throughout at 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-21
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-22
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-23
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 connections 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-24
Chapter 3 Summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation and implementation in the Internet UDP TCP
Next leaving the network
ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
-
Transport Layer 3-10
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-11
Chapter 3 outline
31 Transport-layer services
32 Multiplexing and demultiplexing
33 Connectionless transport UDP
34 Principles of reliable data transfer
35 Connection-oriented transport TCP segment structure reliable data transfer flow control connection
management
36 Principles of congestion control
37 TCP congestion control
Transport Layer 3-12
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
minCongWinRcvWindow Roughly
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-13
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
Long-lived TCP connection
Transport Layer 3-14
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-15
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-16
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-17
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
Con
gesti
on
W
ind
ow
(i
n s
eg
men
t)
Transport Layer 3-18
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-19
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-20
TCP throughput
Whatrsquos the average throughout at 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-21
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-22
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-23
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 connections 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-24
Chapter 3 Summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation and implementation in the Internet UDP TCP
Next leaving the network
ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
-
Transport Layer 3-11
Chapter 3 outline
31 Transport-layer services
32 Multiplexing and demultiplexing
33 Connectionless transport UDP
34 Principles of reliable data transfer
35 Connection-oriented transport TCP segment structure reliable data transfer flow control connection
management
36 Principles of congestion control
37 TCP congestion control
Transport Layer 3-12
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
minCongWinRcvWindow Roughly
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-13
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
Long-lived TCP connection
Transport Layer 3-14
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-15
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-16
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-17
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
Con
gesti
on
W
ind
ow
(i
n s
eg
men
t)
Transport Layer 3-18
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-19
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-20
TCP throughput
Whatrsquos the average throughout at 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-21
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-22
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-23
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 connections 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-24
Chapter 3 Summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation and implementation in the Internet UDP TCP
Next leaving the network
ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
-
Transport Layer 3-12
TCP Congestion Control
end-end control (no network assistance)
sender limits transmission LastByteSent-LastByteAcked
minCongWinRcvWindow Roughly
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-13
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
Long-lived TCP connection
Transport Layer 3-14
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-15
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-16
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-17
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
Con
gesti
on
W
ind
ow
(i
n s
eg
men
t)
Transport Layer 3-18
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-19
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-20
TCP throughput
Whatrsquos the average throughout at 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-21
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-22
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-23
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 connections 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-24
Chapter 3 Summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation and implementation in the Internet UDP TCP
Next leaving the network
ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
-
Transport Layer 3-13
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
Long-lived TCP connection
Transport Layer 3-14
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-15
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-16
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-17
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
Con
gesti
on
W
ind
ow
(i
n s
eg
men
t)
Transport Layer 3-18
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-19
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-20
TCP throughput
Whatrsquos the average throughout at 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-21
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-22
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-23
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 connections 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-24
Chapter 3 Summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation and implementation in the Internet UDP TCP
Next leaving the network
ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
-
Transport Layer 3-14
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-15
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-16
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-17
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
Con
gesti
on
W
ind
ow
(i
n s
eg
men
t)
Transport Layer 3-18
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-19
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-20
TCP throughput
Whatrsquos the average throughout at 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-21
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-22
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-23
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 connections 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-24
Chapter 3 Summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation and implementation in the Internet UDP TCP
Next leaving the network
ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
-
Transport Layer 3-15
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-16
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-17
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
Con
gesti
on
W
ind
ow
(i
n s
eg
men
t)
Transport Layer 3-18
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-19
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-20
TCP throughput
Whatrsquos the average throughout at 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-21
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-22
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-23
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 connections 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-24
Chapter 3 Summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation and implementation in the Internet UDP TCP
Next leaving the network
ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
-
Transport Layer 3-16
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-17
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
Con
gesti
on
W
ind
ow
(i
n s
eg
men
t)
Transport Layer 3-18
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-19
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-20
TCP throughput
Whatrsquos the average throughout at 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-21
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-22
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-23
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 connections 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-24
Chapter 3 Summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation and implementation in the Internet UDP TCP
Next leaving the network
ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
-
Transport Layer 3-17
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
Con
gesti
on
W
ind
ow
(i
n s
eg
men
t)
Transport Layer 3-18
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-19
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-20
TCP throughput
Whatrsquos the average throughout at 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-21
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-22
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-23
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 connections 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-24
Chapter 3 Summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation and implementation in the Internet UDP TCP
Next leaving the network
ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
-
Transport Layer 3-18
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-19
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-20
TCP throughput
Whatrsquos the average throughout at 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-21
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-22
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-23
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 connections 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-24
Chapter 3 Summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation and implementation in the Internet UDP TCP
Next leaving the network
ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
-
Transport Layer 3-19
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-20
TCP throughput
Whatrsquos the average throughout at 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-21
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-22
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-23
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 connections 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-24
Chapter 3 Summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation and implementation in the Internet UDP TCP
Next leaving the network
ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
-
Transport Layer 3-20
TCP throughput
Whatrsquos the average throughout at 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-21
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-22
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-23
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 connections 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-24
Chapter 3 Summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation and implementation in the Internet UDP TCP
Next leaving the network
ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
-
Transport Layer 3-21
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-22
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-23
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 connections 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-24
Chapter 3 Summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation and implementation in the Internet UDP TCP
Next leaving the network
ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
-
Transport Layer 3-22
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-23
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 connections 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-24
Chapter 3 Summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation and implementation in the Internet UDP TCP
Next leaving the network
ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
-
Transport Layer 3-23
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 connections 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-24
Chapter 3 Summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation and implementation in the Internet UDP TCP
Next leaving the network
ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
-
Transport Layer 3-24
Chapter 3 Summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation and implementation in the Internet UDP TCP
Next leaving the network
ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
-