1 john magee 20 february 2014 cs 280: transport layer: congestion control concepts, tcp congestion...
TRANSCRIPT
1
John Magee20 February 2014
CS 280Transport Layer
Congestion Control ConceptsTCP Congestion Control
Most slides adapted from Kurose and Ross Computer Networking 6e Source material copyright 1996-2012
JF Kurose and KW Ross
Transport Layer 3-2
Chapter 3 Transport Layerour goals understand
principles behind transport layer services multiplexing
demultiplexing reliable data
transfer flow control congestion
control
learn about Internet transport layer protocols UDP connectionless
transport TCP connection-
oriented reliable transport
TCP congestion control
Transport Layer 3-3
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
management36 principles of
congestion control37 TCP congestion
control
Transport Layer 3-4
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
Principles of congestion control
Transport Layer 3-5
Causescosts of congestion scenario 1
two senders two receivers
one router infinite buffers
output link capacity R
no retransmission
maximum per-connection throughput R2
unlimited shared output link buffers
Host A
original data in
Host B
throughputout
R2
R2
out
in R2d
ela
yin
large delays as arrival rate in approaches capacity
Transport Layer 3-6
one router finite buffers sender retransmission of timed-out packet
application-layer input = application-layer outputin
= out
transport-layer input includes retransmissions in in
finite shared output link buffers
Host A
in original data
Host B
outin original data plus
retransmitted data
lsquo
Causescosts of congestion scenario 2
Transport Layer 3-7
idealization perfect knowledge
sender sends only when router buffers available
finite shared output link buffers
in original dataoutin original data plus
retransmitted data
copy
free buffer space
R2
R2
out
in
Causescosts of congestion scenario 2
Host B
A
Transport Layer 3-8
in original dataoutin original data plus
retransmitted data
copy
no buffer space
Idealization known loss packets can be lost dropped at router due to full buffers
sender only resends if packet known to be lost
Causescosts of congestion scenario 2
A
Host B
Transport Layer 3-9
in original dataoutin original data plus
retransmitted data
free buffer space
Causescosts of congestion scenario 2
Idealization known loss packets can be lost dropped at router due to full buffers
sender only resends if packet known to be lost
R2
R2in
out
when sending at R2 some packets are retransmissions but asymptotic goodput is still R2 (why)
A
Host B
Transport Layer 3-10
A
in outincopy
free buffer space
timeout
R2
R2in
out
when sending at R2 some packets are retransmissions including duplicated that are delivered
Host B
Realistic duplicates packets can be lost
dropped at router due to full buffers
sender times out prematurely sending two copies both of which are delivered
Causescosts of congestion scenario 2
Transport Layer 3-11
R2
out
when sending at R2 some packets are retransmissions including duplicated that are delivered
ldquocostsrdquo of congestion more work (retrans) for given ldquogoodputrdquo unneeded retransmissions link carries multiple copies of pkt
decreasing goodput
R2in
Causescosts of congestion scenario 2 Realistic duplicates packets can be lost
dropped at router due to full buffers
sender times out prematurely sending two copies both of which are delivered
Transport Layer 3-12
four senders multihop paths timeoutretransmit
Q what happens as in and in
rsquo increase
finite shared output link buffers
Host A out
Causescosts of congestion scenario 3
Host B
Host C
Host D
in original data
in original data plus
retransmitted data
A as red inrsquo increases all arriving
blue pkts at upper queue are dropped blue throughput 0
Transport Layer 3-13
another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission
capacity used for that packet was wasted
Causescosts of congestion scenario 3
C2
C2
ou
t
inrsquo
Transport Layer 3-14
Approaches towards congestion controltwo broad approaches towards congestion
controlend-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 systemssingle bit indicating congestion (SNA DECbit TCPIP ECN ATM)
explicit rate for sender to send at
Transport Layer 3-15
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should
use available bandwidth
if senderrsquos path congested sender throttled
to minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-16
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell sendersrsquo send rate thus max supportable rate on path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set receiver
sets CI bit in returned RM cell
RM cell data cell
Transport Layer 3-17
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
management36 principles of
congestion control37 TCP congestion
control
Transport Layer 3-18
TCP congestion control additive increase multiplicative decrease
approach sender increases transmission rate (window size) probing for usable bandwidth until loss occurs additive increase increase cwnd by 1
MSS every RTT until loss detected multiplicative decrease cut cwnd in half
after loss
cwnd
TC
P s
ende
r co
nges
tion
win
dow
siz
e
AIMD saw toothbehavior probing
for bandwidth
additively increase window size helliphellip until loss occurs (then cut window in half)
time
Transport Layer 3-19
TCP Congestion Control details
sender limits transmission
cwnd is dynamic function of perceived network congestion
TCP sending rate roughly send
cwnd bytes wait RTT for ACKS then send more bytes
last byteACKed sent not-
yet ACKed(ldquoin-flightrdquo)
last byte sent
cwnd
LastByteSent-LastByteAcked
lt cwnd
sender sequence number space
rate~~cwnd
RTTbytessec
Transport Layer 3-20
TCP Slow Start when connection
begins increase rate exponentially until first loss event initially cwnd = 1 MSS double cwnd every
RTT done by incrementing cwnd for every ACK received
summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RT
T
Host B
time
two segments
four segments
Transport Layer 3-21
TCP detecting reacting to loss
loss indicated by timeout cwnd set to 1 MSS window then grows exponentially (as in slow start) to threshold
then grows linearly loss indicated by 3 duplicate ACKs TCP RENO
dup ACKs indicate network capable of delivering some segments cwnd is cut in half window then grows linearly
TCP Tahoe always sets cwnd to 1 (timeout or 3 duplicate acks)
Transport Layer 3-22
Q when should the exponential increase switch to linear
A when cwnd gets to 12 of its value before timeout
Implementation variable ssthresh on loss event ssthresh is set to 12 of cwnd just before loss event
TCP switching from slow start to CA
Transport Layer 3-23
Summary TCP Congestion Control
timeoutssthresh = cwnd2cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd gt ssthresh
congestionavoidance
cwnd = cwnd + MSS (MSScwnd)dupACKcount = 0transmit new segment(s) as allowed
new ACK
dupACKcount++
duplicate ACK
fastrecovery
cwnd = cwnd + MSStransmit new segment(s) as allowed
duplicate ACK
ssthresh= cwnd2cwnd = ssthresh + 3
retransmit missing segment
dupACKcount == 3
timeoutssthresh = cwnd2cwnd = 1 dupACKcount = 0retransmit missing segment
ssthresh= cwnd2cwnd = ssthresh + 3retransmit missing segment
dupACKcount == 3cwnd = ssthreshdupACKcount = 0
New ACK
slow start
timeoutssthresh = cwnd2 cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd = cwnd+MSSdupACKcount = 0transmit new segment(s) as allowed
new ACKdupACKcount++
duplicate ACK
cwnd = 1 MSSssthresh = 64 KBdupACKcount = 0
NewACK
NewACK
NewACK
Transport Layer 3-24
TCP throughput avg TCP thruput as function of window
size RTT ignore slow start assume always data to send
W window size (measured in bytes) where loss occurs avg window size ( in-flight bytes) is frac34 W avg thruput is 34W per RTT
W
W2
avg TCP thruput = 34W
RTTbytessec
Transport Layer 3-25
TCP Futures TCP over ldquolong fat pipesrdquo example 1500 byte segments 100ms
RTT want 10 Gbps throughput requires W = 83333 in-flight segments throughput in terms of segment loss
probability L [Mathis 1997]
to achieve 10 Gbps throughput need a loss rate of L = 210-10 ndash a very small loss rate
new versions of TCP for high-speed
TCP throughput = 122 MSSRTT L
Transport Layer 3-26
fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckroutercapacity R
TCP Fairness
TCP connection 2
Transport Layer 3-27
Why is TCP fairtwo competing sessions additive increase gives slope of 1 as throughout
increases multiplicative decrease decreases throughput
proportionally R
R
equal bandwidth share
Connection 1 throughput
Con
nect
ion
2 th
roug
h pu t
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-28
Fairness (more)Fairness and UDP multimedia apps
often do not use TCP do not want rate
throttled by congestion control
instead use UDP send audiovideo
at constant rate tolerate packet loss
Fairness parallel TCP connections
application can open multiple parallel connections between two hosts
web browsers do this eg link of rate R with 9
existing connections new app asks for 1 TCP gets
rate R10 new app asks for 11 TCPs gets
R2
Transport Layer 3-29
Chapter 3 summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation implementation in the Internet UDP TCP
next leaving the
network ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- John Magee 20 February 2014
- Chapter 3 Transport Layer
- Chapter 3 outline
- Principles of congestion control
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Causescosts of congestion scenario 3
- Slide 13
- Approaches towards congestion control
- Case study ATM ABR congestion control
- Slide 16
- Slide 17
- TCP congestion control additive increase multiplicative decrease
- TCP Congestion Control details
- TCP Slow Start
- TCP detecting reacting to loss
- TCP switching from slow start to CA
- Summary TCP Congestion Control
- TCP throughput
- TCP Futures TCP over ldquolong fat pipesrdquo
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Chapter 3 summary
-
Transport Layer 3-2
Chapter 3 Transport Layerour goals understand
principles behind transport layer services multiplexing
demultiplexing reliable data
transfer flow control congestion
control
learn about Internet transport layer protocols UDP connectionless
transport TCP connection-
oriented reliable transport
TCP congestion control
Transport Layer 3-3
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
management36 principles of
congestion control37 TCP congestion
control
Transport Layer 3-4
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
Principles of congestion control
Transport Layer 3-5
Causescosts of congestion scenario 1
two senders two receivers
one router infinite buffers
output link capacity R
no retransmission
maximum per-connection throughput R2
unlimited shared output link buffers
Host A
original data in
Host B
throughputout
R2
R2
out
in R2d
ela
yin
large delays as arrival rate in approaches capacity
Transport Layer 3-6
one router finite buffers sender retransmission of timed-out packet
application-layer input = application-layer outputin
= out
transport-layer input includes retransmissions in in
finite shared output link buffers
Host A
in original data
Host B
outin original data plus
retransmitted data
lsquo
Causescosts of congestion scenario 2
Transport Layer 3-7
idealization perfect knowledge
sender sends only when router buffers available
finite shared output link buffers
in original dataoutin original data plus
retransmitted data
copy
free buffer space
R2
R2
out
in
Causescosts of congestion scenario 2
Host B
A
Transport Layer 3-8
in original dataoutin original data plus
retransmitted data
copy
no buffer space
Idealization known loss packets can be lost dropped at router due to full buffers
sender only resends if packet known to be lost
Causescosts of congestion scenario 2
A
Host B
Transport Layer 3-9
in original dataoutin original data plus
retransmitted data
free buffer space
Causescosts of congestion scenario 2
Idealization known loss packets can be lost dropped at router due to full buffers
sender only resends if packet known to be lost
R2
R2in
out
when sending at R2 some packets are retransmissions but asymptotic goodput is still R2 (why)
A
Host B
Transport Layer 3-10
A
in outincopy
free buffer space
timeout
R2
R2in
out
when sending at R2 some packets are retransmissions including duplicated that are delivered
Host B
Realistic duplicates packets can be lost
dropped at router due to full buffers
sender times out prematurely sending two copies both of which are delivered
Causescosts of congestion scenario 2
Transport Layer 3-11
R2
out
when sending at R2 some packets are retransmissions including duplicated that are delivered
ldquocostsrdquo of congestion more work (retrans) for given ldquogoodputrdquo unneeded retransmissions link carries multiple copies of pkt
decreasing goodput
R2in
Causescosts of congestion scenario 2 Realistic duplicates packets can be lost
dropped at router due to full buffers
sender times out prematurely sending two copies both of which are delivered
Transport Layer 3-12
four senders multihop paths timeoutretransmit
Q what happens as in and in
rsquo increase
finite shared output link buffers
Host A out
Causescosts of congestion scenario 3
Host B
Host C
Host D
in original data
in original data plus
retransmitted data
A as red inrsquo increases all arriving
blue pkts at upper queue are dropped blue throughput 0
Transport Layer 3-13
another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission
capacity used for that packet was wasted
Causescosts of congestion scenario 3
C2
C2
ou
t
inrsquo
Transport Layer 3-14
Approaches towards congestion controltwo broad approaches towards congestion
controlend-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 systemssingle bit indicating congestion (SNA DECbit TCPIP ECN ATM)
explicit rate for sender to send at
Transport Layer 3-15
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should
use available bandwidth
if senderrsquos path congested sender throttled
to minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-16
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell sendersrsquo send rate thus max supportable rate on path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set receiver
sets CI bit in returned RM cell
RM cell data cell
Transport Layer 3-17
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
management36 principles of
congestion control37 TCP congestion
control
Transport Layer 3-18
TCP congestion control additive increase multiplicative decrease
approach sender increases transmission rate (window size) probing for usable bandwidth until loss occurs additive increase increase cwnd by 1
MSS every RTT until loss detected multiplicative decrease cut cwnd in half
after loss
cwnd
TC
P s
ende
r co
nges
tion
win
dow
siz
e
AIMD saw toothbehavior probing
for bandwidth
additively increase window size helliphellip until loss occurs (then cut window in half)
time
Transport Layer 3-19
TCP Congestion Control details
sender limits transmission
cwnd is dynamic function of perceived network congestion
TCP sending rate roughly send
cwnd bytes wait RTT for ACKS then send more bytes
last byteACKed sent not-
yet ACKed(ldquoin-flightrdquo)
last byte sent
cwnd
LastByteSent-LastByteAcked
lt cwnd
sender sequence number space
rate~~cwnd
RTTbytessec
Transport Layer 3-20
TCP Slow Start when connection
begins increase rate exponentially until first loss event initially cwnd = 1 MSS double cwnd every
RTT done by incrementing cwnd for every ACK received
summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RT
T
Host B
time
two segments
four segments
Transport Layer 3-21
TCP detecting reacting to loss
loss indicated by timeout cwnd set to 1 MSS window then grows exponentially (as in slow start) to threshold
then grows linearly loss indicated by 3 duplicate ACKs TCP RENO
dup ACKs indicate network capable of delivering some segments cwnd is cut in half window then grows linearly
TCP Tahoe always sets cwnd to 1 (timeout or 3 duplicate acks)
Transport Layer 3-22
Q when should the exponential increase switch to linear
A when cwnd gets to 12 of its value before timeout
Implementation variable ssthresh on loss event ssthresh is set to 12 of cwnd just before loss event
TCP switching from slow start to CA
Transport Layer 3-23
Summary TCP Congestion Control
timeoutssthresh = cwnd2cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd gt ssthresh
congestionavoidance
cwnd = cwnd + MSS (MSScwnd)dupACKcount = 0transmit new segment(s) as allowed
new ACK
dupACKcount++
duplicate ACK
fastrecovery
cwnd = cwnd + MSStransmit new segment(s) as allowed
duplicate ACK
ssthresh= cwnd2cwnd = ssthresh + 3
retransmit missing segment
dupACKcount == 3
timeoutssthresh = cwnd2cwnd = 1 dupACKcount = 0retransmit missing segment
ssthresh= cwnd2cwnd = ssthresh + 3retransmit missing segment
dupACKcount == 3cwnd = ssthreshdupACKcount = 0
New ACK
slow start
timeoutssthresh = cwnd2 cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd = cwnd+MSSdupACKcount = 0transmit new segment(s) as allowed
new ACKdupACKcount++
duplicate ACK
cwnd = 1 MSSssthresh = 64 KBdupACKcount = 0
NewACK
NewACK
NewACK
Transport Layer 3-24
TCP throughput avg TCP thruput as function of window
size RTT ignore slow start assume always data to send
W window size (measured in bytes) where loss occurs avg window size ( in-flight bytes) is frac34 W avg thruput is 34W per RTT
W
W2
avg TCP thruput = 34W
RTTbytessec
Transport Layer 3-25
TCP Futures TCP over ldquolong fat pipesrdquo example 1500 byte segments 100ms
RTT want 10 Gbps throughput requires W = 83333 in-flight segments throughput in terms of segment loss
probability L [Mathis 1997]
to achieve 10 Gbps throughput need a loss rate of L = 210-10 ndash a very small loss rate
new versions of TCP for high-speed
TCP throughput = 122 MSSRTT L
Transport Layer 3-26
fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckroutercapacity R
TCP Fairness
TCP connection 2
Transport Layer 3-27
Why is TCP fairtwo competing sessions additive increase gives slope of 1 as throughout
increases multiplicative decrease decreases throughput
proportionally R
R
equal bandwidth share
Connection 1 throughput
Con
nect
ion
2 th
roug
h pu t
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-28
Fairness (more)Fairness and UDP multimedia apps
often do not use TCP do not want rate
throttled by congestion control
instead use UDP send audiovideo
at constant rate tolerate packet loss
Fairness parallel TCP connections
application can open multiple parallel connections between two hosts
web browsers do this eg link of rate R with 9
existing connections new app asks for 1 TCP gets
rate R10 new app asks for 11 TCPs gets
R2
Transport Layer 3-29
Chapter 3 summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation implementation in the Internet UDP TCP
next leaving the
network ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- John Magee 20 February 2014
- Chapter 3 Transport Layer
- Chapter 3 outline
- Principles of congestion control
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Causescosts of congestion scenario 3
- Slide 13
- Approaches towards congestion control
- Case study ATM ABR congestion control
- Slide 16
- Slide 17
- TCP congestion control additive increase multiplicative decrease
- TCP Congestion Control details
- TCP Slow Start
- TCP detecting reacting to loss
- TCP switching from slow start to CA
- Summary TCP Congestion Control
- TCP throughput
- TCP Futures TCP over ldquolong fat pipesrdquo
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Chapter 3 summary
-
Transport Layer 3-3
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
management36 principles of
congestion control37 TCP congestion
control
Transport Layer 3-4
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
Principles of congestion control
Transport Layer 3-5
Causescosts of congestion scenario 1
two senders two receivers
one router infinite buffers
output link capacity R
no retransmission
maximum per-connection throughput R2
unlimited shared output link buffers
Host A
original data in
Host B
throughputout
R2
R2
out
in R2d
ela
yin
large delays as arrival rate in approaches capacity
Transport Layer 3-6
one router finite buffers sender retransmission of timed-out packet
application-layer input = application-layer outputin
= out
transport-layer input includes retransmissions in in
finite shared output link buffers
Host A
in original data
Host B
outin original data plus
retransmitted data
lsquo
Causescosts of congestion scenario 2
Transport Layer 3-7
idealization perfect knowledge
sender sends only when router buffers available
finite shared output link buffers
in original dataoutin original data plus
retransmitted data
copy
free buffer space
R2
R2
out
in
Causescosts of congestion scenario 2
Host B
A
Transport Layer 3-8
in original dataoutin original data plus
retransmitted data
copy
no buffer space
Idealization known loss packets can be lost dropped at router due to full buffers
sender only resends if packet known to be lost
Causescosts of congestion scenario 2
A
Host B
Transport Layer 3-9
in original dataoutin original data plus
retransmitted data
free buffer space
Causescosts of congestion scenario 2
Idealization known loss packets can be lost dropped at router due to full buffers
sender only resends if packet known to be lost
R2
R2in
out
when sending at R2 some packets are retransmissions but asymptotic goodput is still R2 (why)
A
Host B
Transport Layer 3-10
A
in outincopy
free buffer space
timeout
R2
R2in
out
when sending at R2 some packets are retransmissions including duplicated that are delivered
Host B
Realistic duplicates packets can be lost
dropped at router due to full buffers
sender times out prematurely sending two copies both of which are delivered
Causescosts of congestion scenario 2
Transport Layer 3-11
R2
out
when sending at R2 some packets are retransmissions including duplicated that are delivered
ldquocostsrdquo of congestion more work (retrans) for given ldquogoodputrdquo unneeded retransmissions link carries multiple copies of pkt
decreasing goodput
R2in
Causescosts of congestion scenario 2 Realistic duplicates packets can be lost
dropped at router due to full buffers
sender times out prematurely sending two copies both of which are delivered
Transport Layer 3-12
four senders multihop paths timeoutretransmit
Q what happens as in and in
rsquo increase
finite shared output link buffers
Host A out
Causescosts of congestion scenario 3
Host B
Host C
Host D
in original data
in original data plus
retransmitted data
A as red inrsquo increases all arriving
blue pkts at upper queue are dropped blue throughput 0
Transport Layer 3-13
another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission
capacity used for that packet was wasted
Causescosts of congestion scenario 3
C2
C2
ou
t
inrsquo
Transport Layer 3-14
Approaches towards congestion controltwo broad approaches towards congestion
controlend-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 systemssingle bit indicating congestion (SNA DECbit TCPIP ECN ATM)
explicit rate for sender to send at
Transport Layer 3-15
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should
use available bandwidth
if senderrsquos path congested sender throttled
to minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-16
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell sendersrsquo send rate thus max supportable rate on path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set receiver
sets CI bit in returned RM cell
RM cell data cell
Transport Layer 3-17
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
management36 principles of
congestion control37 TCP congestion
control
Transport Layer 3-18
TCP congestion control additive increase multiplicative decrease
approach sender increases transmission rate (window size) probing for usable bandwidth until loss occurs additive increase increase cwnd by 1
MSS every RTT until loss detected multiplicative decrease cut cwnd in half
after loss
cwnd
TC
P s
ende
r co
nges
tion
win
dow
siz
e
AIMD saw toothbehavior probing
for bandwidth
additively increase window size helliphellip until loss occurs (then cut window in half)
time
Transport Layer 3-19
TCP Congestion Control details
sender limits transmission
cwnd is dynamic function of perceived network congestion
TCP sending rate roughly send
cwnd bytes wait RTT for ACKS then send more bytes
last byteACKed sent not-
yet ACKed(ldquoin-flightrdquo)
last byte sent
cwnd
LastByteSent-LastByteAcked
lt cwnd
sender sequence number space
rate~~cwnd
RTTbytessec
Transport Layer 3-20
TCP Slow Start when connection
begins increase rate exponentially until first loss event initially cwnd = 1 MSS double cwnd every
RTT done by incrementing cwnd for every ACK received
summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RT
T
Host B
time
two segments
four segments
Transport Layer 3-21
TCP detecting reacting to loss
loss indicated by timeout cwnd set to 1 MSS window then grows exponentially (as in slow start) to threshold
then grows linearly loss indicated by 3 duplicate ACKs TCP RENO
dup ACKs indicate network capable of delivering some segments cwnd is cut in half window then grows linearly
TCP Tahoe always sets cwnd to 1 (timeout or 3 duplicate acks)
Transport Layer 3-22
Q when should the exponential increase switch to linear
A when cwnd gets to 12 of its value before timeout
Implementation variable ssthresh on loss event ssthresh is set to 12 of cwnd just before loss event
TCP switching from slow start to CA
Transport Layer 3-23
Summary TCP Congestion Control
timeoutssthresh = cwnd2cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd gt ssthresh
congestionavoidance
cwnd = cwnd + MSS (MSScwnd)dupACKcount = 0transmit new segment(s) as allowed
new ACK
dupACKcount++
duplicate ACK
fastrecovery
cwnd = cwnd + MSStransmit new segment(s) as allowed
duplicate ACK
ssthresh= cwnd2cwnd = ssthresh + 3
retransmit missing segment
dupACKcount == 3
timeoutssthresh = cwnd2cwnd = 1 dupACKcount = 0retransmit missing segment
ssthresh= cwnd2cwnd = ssthresh + 3retransmit missing segment
dupACKcount == 3cwnd = ssthreshdupACKcount = 0
New ACK
slow start
timeoutssthresh = cwnd2 cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd = cwnd+MSSdupACKcount = 0transmit new segment(s) as allowed
new ACKdupACKcount++
duplicate ACK
cwnd = 1 MSSssthresh = 64 KBdupACKcount = 0
NewACK
NewACK
NewACK
Transport Layer 3-24
TCP throughput avg TCP thruput as function of window
size RTT ignore slow start assume always data to send
W window size (measured in bytes) where loss occurs avg window size ( in-flight bytes) is frac34 W avg thruput is 34W per RTT
W
W2
avg TCP thruput = 34W
RTTbytessec
Transport Layer 3-25
TCP Futures TCP over ldquolong fat pipesrdquo example 1500 byte segments 100ms
RTT want 10 Gbps throughput requires W = 83333 in-flight segments throughput in terms of segment loss
probability L [Mathis 1997]
to achieve 10 Gbps throughput need a loss rate of L = 210-10 ndash a very small loss rate
new versions of TCP for high-speed
TCP throughput = 122 MSSRTT L
Transport Layer 3-26
fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckroutercapacity R
TCP Fairness
TCP connection 2
Transport Layer 3-27
Why is TCP fairtwo competing sessions additive increase gives slope of 1 as throughout
increases multiplicative decrease decreases throughput
proportionally R
R
equal bandwidth share
Connection 1 throughput
Con
nect
ion
2 th
roug
h pu t
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-28
Fairness (more)Fairness and UDP multimedia apps
often do not use TCP do not want rate
throttled by congestion control
instead use UDP send audiovideo
at constant rate tolerate packet loss
Fairness parallel TCP connections
application can open multiple parallel connections between two hosts
web browsers do this eg link of rate R with 9
existing connections new app asks for 1 TCP gets
rate R10 new app asks for 11 TCPs gets
R2
Transport Layer 3-29
Chapter 3 summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation implementation in the Internet UDP TCP
next leaving the
network ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- John Magee 20 February 2014
- Chapter 3 Transport Layer
- Chapter 3 outline
- Principles of congestion control
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Causescosts of congestion scenario 3
- Slide 13
- Approaches towards congestion control
- Case study ATM ABR congestion control
- Slide 16
- Slide 17
- TCP congestion control additive increase multiplicative decrease
- TCP Congestion Control details
- TCP Slow Start
- TCP detecting reacting to loss
- TCP switching from slow start to CA
- Summary TCP Congestion Control
- TCP throughput
- TCP Futures TCP over ldquolong fat pipesrdquo
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Chapter 3 summary
-
Transport Layer 3-4
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
Principles of congestion control
Transport Layer 3-5
Causescosts of congestion scenario 1
two senders two receivers
one router infinite buffers
output link capacity R
no retransmission
maximum per-connection throughput R2
unlimited shared output link buffers
Host A
original data in
Host B
throughputout
R2
R2
out
in R2d
ela
yin
large delays as arrival rate in approaches capacity
Transport Layer 3-6
one router finite buffers sender retransmission of timed-out packet
application-layer input = application-layer outputin
= out
transport-layer input includes retransmissions in in
finite shared output link buffers
Host A
in original data
Host B
outin original data plus
retransmitted data
lsquo
Causescosts of congestion scenario 2
Transport Layer 3-7
idealization perfect knowledge
sender sends only when router buffers available
finite shared output link buffers
in original dataoutin original data plus
retransmitted data
copy
free buffer space
R2
R2
out
in
Causescosts of congestion scenario 2
Host B
A
Transport Layer 3-8
in original dataoutin original data plus
retransmitted data
copy
no buffer space
Idealization known loss packets can be lost dropped at router due to full buffers
sender only resends if packet known to be lost
Causescosts of congestion scenario 2
A
Host B
Transport Layer 3-9
in original dataoutin original data plus
retransmitted data
free buffer space
Causescosts of congestion scenario 2
Idealization known loss packets can be lost dropped at router due to full buffers
sender only resends if packet known to be lost
R2
R2in
out
when sending at R2 some packets are retransmissions but asymptotic goodput is still R2 (why)
A
Host B
Transport Layer 3-10
A
in outincopy
free buffer space
timeout
R2
R2in
out
when sending at R2 some packets are retransmissions including duplicated that are delivered
Host B
Realistic duplicates packets can be lost
dropped at router due to full buffers
sender times out prematurely sending two copies both of which are delivered
Causescosts of congestion scenario 2
Transport Layer 3-11
R2
out
when sending at R2 some packets are retransmissions including duplicated that are delivered
ldquocostsrdquo of congestion more work (retrans) for given ldquogoodputrdquo unneeded retransmissions link carries multiple copies of pkt
decreasing goodput
R2in
Causescosts of congestion scenario 2 Realistic duplicates packets can be lost
dropped at router due to full buffers
sender times out prematurely sending two copies both of which are delivered
Transport Layer 3-12
four senders multihop paths timeoutretransmit
Q what happens as in and in
rsquo increase
finite shared output link buffers
Host A out
Causescosts of congestion scenario 3
Host B
Host C
Host D
in original data
in original data plus
retransmitted data
A as red inrsquo increases all arriving
blue pkts at upper queue are dropped blue throughput 0
Transport Layer 3-13
another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission
capacity used for that packet was wasted
Causescosts of congestion scenario 3
C2
C2
ou
t
inrsquo
Transport Layer 3-14
Approaches towards congestion controltwo broad approaches towards congestion
controlend-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 systemssingle bit indicating congestion (SNA DECbit TCPIP ECN ATM)
explicit rate for sender to send at
Transport Layer 3-15
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should
use available bandwidth
if senderrsquos path congested sender throttled
to minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-16
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell sendersrsquo send rate thus max supportable rate on path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set receiver
sets CI bit in returned RM cell
RM cell data cell
Transport Layer 3-17
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
management36 principles of
congestion control37 TCP congestion
control
Transport Layer 3-18
TCP congestion control additive increase multiplicative decrease
approach sender increases transmission rate (window size) probing for usable bandwidth until loss occurs additive increase increase cwnd by 1
MSS every RTT until loss detected multiplicative decrease cut cwnd in half
after loss
cwnd
TC
P s
ende
r co
nges
tion
win
dow
siz
e
AIMD saw toothbehavior probing
for bandwidth
additively increase window size helliphellip until loss occurs (then cut window in half)
time
Transport Layer 3-19
TCP Congestion Control details
sender limits transmission
cwnd is dynamic function of perceived network congestion
TCP sending rate roughly send
cwnd bytes wait RTT for ACKS then send more bytes
last byteACKed sent not-
yet ACKed(ldquoin-flightrdquo)
last byte sent
cwnd
LastByteSent-LastByteAcked
lt cwnd
sender sequence number space
rate~~cwnd
RTTbytessec
Transport Layer 3-20
TCP Slow Start when connection
begins increase rate exponentially until first loss event initially cwnd = 1 MSS double cwnd every
RTT done by incrementing cwnd for every ACK received
summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RT
T
Host B
time
two segments
four segments
Transport Layer 3-21
TCP detecting reacting to loss
loss indicated by timeout cwnd set to 1 MSS window then grows exponentially (as in slow start) to threshold
then grows linearly loss indicated by 3 duplicate ACKs TCP RENO
dup ACKs indicate network capable of delivering some segments cwnd is cut in half window then grows linearly
TCP Tahoe always sets cwnd to 1 (timeout or 3 duplicate acks)
Transport Layer 3-22
Q when should the exponential increase switch to linear
A when cwnd gets to 12 of its value before timeout
Implementation variable ssthresh on loss event ssthresh is set to 12 of cwnd just before loss event
TCP switching from slow start to CA
Transport Layer 3-23
Summary TCP Congestion Control
timeoutssthresh = cwnd2cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd gt ssthresh
congestionavoidance
cwnd = cwnd + MSS (MSScwnd)dupACKcount = 0transmit new segment(s) as allowed
new ACK
dupACKcount++
duplicate ACK
fastrecovery
cwnd = cwnd + MSStransmit new segment(s) as allowed
duplicate ACK
ssthresh= cwnd2cwnd = ssthresh + 3
retransmit missing segment
dupACKcount == 3
timeoutssthresh = cwnd2cwnd = 1 dupACKcount = 0retransmit missing segment
ssthresh= cwnd2cwnd = ssthresh + 3retransmit missing segment
dupACKcount == 3cwnd = ssthreshdupACKcount = 0
New ACK
slow start
timeoutssthresh = cwnd2 cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd = cwnd+MSSdupACKcount = 0transmit new segment(s) as allowed
new ACKdupACKcount++
duplicate ACK
cwnd = 1 MSSssthresh = 64 KBdupACKcount = 0
NewACK
NewACK
NewACK
Transport Layer 3-24
TCP throughput avg TCP thruput as function of window
size RTT ignore slow start assume always data to send
W window size (measured in bytes) where loss occurs avg window size ( in-flight bytes) is frac34 W avg thruput is 34W per RTT
W
W2
avg TCP thruput = 34W
RTTbytessec
Transport Layer 3-25
TCP Futures TCP over ldquolong fat pipesrdquo example 1500 byte segments 100ms
RTT want 10 Gbps throughput requires W = 83333 in-flight segments throughput in terms of segment loss
probability L [Mathis 1997]
to achieve 10 Gbps throughput need a loss rate of L = 210-10 ndash a very small loss rate
new versions of TCP for high-speed
TCP throughput = 122 MSSRTT L
Transport Layer 3-26
fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckroutercapacity R
TCP Fairness
TCP connection 2
Transport Layer 3-27
Why is TCP fairtwo competing sessions additive increase gives slope of 1 as throughout
increases multiplicative decrease decreases throughput
proportionally R
R
equal bandwidth share
Connection 1 throughput
Con
nect
ion
2 th
roug
h pu t
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-28
Fairness (more)Fairness and UDP multimedia apps
often do not use TCP do not want rate
throttled by congestion control
instead use UDP send audiovideo
at constant rate tolerate packet loss
Fairness parallel TCP connections
application can open multiple parallel connections between two hosts
web browsers do this eg link of rate R with 9
existing connections new app asks for 1 TCP gets
rate R10 new app asks for 11 TCPs gets
R2
Transport Layer 3-29
Chapter 3 summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation implementation in the Internet UDP TCP
next leaving the
network ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- John Magee 20 February 2014
- Chapter 3 Transport Layer
- Chapter 3 outline
- Principles of congestion control
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Causescosts of congestion scenario 3
- Slide 13
- Approaches towards congestion control
- Case study ATM ABR congestion control
- Slide 16
- Slide 17
- TCP congestion control additive increase multiplicative decrease
- TCP Congestion Control details
- TCP Slow Start
- TCP detecting reacting to loss
- TCP switching from slow start to CA
- Summary TCP Congestion Control
- TCP throughput
- TCP Futures TCP over ldquolong fat pipesrdquo
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Chapter 3 summary
-
Transport Layer 3-5
Causescosts of congestion scenario 1
two senders two receivers
one router infinite buffers
output link capacity R
no retransmission
maximum per-connection throughput R2
unlimited shared output link buffers
Host A
original data in
Host B
throughputout
R2
R2
out
in R2d
ela
yin
large delays as arrival rate in approaches capacity
Transport Layer 3-6
one router finite buffers sender retransmission of timed-out packet
application-layer input = application-layer outputin
= out
transport-layer input includes retransmissions in in
finite shared output link buffers
Host A
in original data
Host B
outin original data plus
retransmitted data
lsquo
Causescosts of congestion scenario 2
Transport Layer 3-7
idealization perfect knowledge
sender sends only when router buffers available
finite shared output link buffers
in original dataoutin original data plus
retransmitted data
copy
free buffer space
R2
R2
out
in
Causescosts of congestion scenario 2
Host B
A
Transport Layer 3-8
in original dataoutin original data plus
retransmitted data
copy
no buffer space
Idealization known loss packets can be lost dropped at router due to full buffers
sender only resends if packet known to be lost
Causescosts of congestion scenario 2
A
Host B
Transport Layer 3-9
in original dataoutin original data plus
retransmitted data
free buffer space
Causescosts of congestion scenario 2
Idealization known loss packets can be lost dropped at router due to full buffers
sender only resends if packet known to be lost
R2
R2in
out
when sending at R2 some packets are retransmissions but asymptotic goodput is still R2 (why)
A
Host B
Transport Layer 3-10
A
in outincopy
free buffer space
timeout
R2
R2in
out
when sending at R2 some packets are retransmissions including duplicated that are delivered
Host B
Realistic duplicates packets can be lost
dropped at router due to full buffers
sender times out prematurely sending two copies both of which are delivered
Causescosts of congestion scenario 2
Transport Layer 3-11
R2
out
when sending at R2 some packets are retransmissions including duplicated that are delivered
ldquocostsrdquo of congestion more work (retrans) for given ldquogoodputrdquo unneeded retransmissions link carries multiple copies of pkt
decreasing goodput
R2in
Causescosts of congestion scenario 2 Realistic duplicates packets can be lost
dropped at router due to full buffers
sender times out prematurely sending two copies both of which are delivered
Transport Layer 3-12
four senders multihop paths timeoutretransmit
Q what happens as in and in
rsquo increase
finite shared output link buffers
Host A out
Causescosts of congestion scenario 3
Host B
Host C
Host D
in original data
in original data plus
retransmitted data
A as red inrsquo increases all arriving
blue pkts at upper queue are dropped blue throughput 0
Transport Layer 3-13
another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission
capacity used for that packet was wasted
Causescosts of congestion scenario 3
C2
C2
ou
t
inrsquo
Transport Layer 3-14
Approaches towards congestion controltwo broad approaches towards congestion
controlend-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 systemssingle bit indicating congestion (SNA DECbit TCPIP ECN ATM)
explicit rate for sender to send at
Transport Layer 3-15
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should
use available bandwidth
if senderrsquos path congested sender throttled
to minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-16
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell sendersrsquo send rate thus max supportable rate on path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set receiver
sets CI bit in returned RM cell
RM cell data cell
Transport Layer 3-17
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
management36 principles of
congestion control37 TCP congestion
control
Transport Layer 3-18
TCP congestion control additive increase multiplicative decrease
approach sender increases transmission rate (window size) probing for usable bandwidth until loss occurs additive increase increase cwnd by 1
MSS every RTT until loss detected multiplicative decrease cut cwnd in half
after loss
cwnd
TC
P s
ende
r co
nges
tion
win
dow
siz
e
AIMD saw toothbehavior probing
for bandwidth
additively increase window size helliphellip until loss occurs (then cut window in half)
time
Transport Layer 3-19
TCP Congestion Control details
sender limits transmission
cwnd is dynamic function of perceived network congestion
TCP sending rate roughly send
cwnd bytes wait RTT for ACKS then send more bytes
last byteACKed sent not-
yet ACKed(ldquoin-flightrdquo)
last byte sent
cwnd
LastByteSent-LastByteAcked
lt cwnd
sender sequence number space
rate~~cwnd
RTTbytessec
Transport Layer 3-20
TCP Slow Start when connection
begins increase rate exponentially until first loss event initially cwnd = 1 MSS double cwnd every
RTT done by incrementing cwnd for every ACK received
summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RT
T
Host B
time
two segments
four segments
Transport Layer 3-21
TCP detecting reacting to loss
loss indicated by timeout cwnd set to 1 MSS window then grows exponentially (as in slow start) to threshold
then grows linearly loss indicated by 3 duplicate ACKs TCP RENO
dup ACKs indicate network capable of delivering some segments cwnd is cut in half window then grows linearly
TCP Tahoe always sets cwnd to 1 (timeout or 3 duplicate acks)
Transport Layer 3-22
Q when should the exponential increase switch to linear
A when cwnd gets to 12 of its value before timeout
Implementation variable ssthresh on loss event ssthresh is set to 12 of cwnd just before loss event
TCP switching from slow start to CA
Transport Layer 3-23
Summary TCP Congestion Control
timeoutssthresh = cwnd2cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd gt ssthresh
congestionavoidance
cwnd = cwnd + MSS (MSScwnd)dupACKcount = 0transmit new segment(s) as allowed
new ACK
dupACKcount++
duplicate ACK
fastrecovery
cwnd = cwnd + MSStransmit new segment(s) as allowed
duplicate ACK
ssthresh= cwnd2cwnd = ssthresh + 3
retransmit missing segment
dupACKcount == 3
timeoutssthresh = cwnd2cwnd = 1 dupACKcount = 0retransmit missing segment
ssthresh= cwnd2cwnd = ssthresh + 3retransmit missing segment
dupACKcount == 3cwnd = ssthreshdupACKcount = 0
New ACK
slow start
timeoutssthresh = cwnd2 cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd = cwnd+MSSdupACKcount = 0transmit new segment(s) as allowed
new ACKdupACKcount++
duplicate ACK
cwnd = 1 MSSssthresh = 64 KBdupACKcount = 0
NewACK
NewACK
NewACK
Transport Layer 3-24
TCP throughput avg TCP thruput as function of window
size RTT ignore slow start assume always data to send
W window size (measured in bytes) where loss occurs avg window size ( in-flight bytes) is frac34 W avg thruput is 34W per RTT
W
W2
avg TCP thruput = 34W
RTTbytessec
Transport Layer 3-25
TCP Futures TCP over ldquolong fat pipesrdquo example 1500 byte segments 100ms
RTT want 10 Gbps throughput requires W = 83333 in-flight segments throughput in terms of segment loss
probability L [Mathis 1997]
to achieve 10 Gbps throughput need a loss rate of L = 210-10 ndash a very small loss rate
new versions of TCP for high-speed
TCP throughput = 122 MSSRTT L
Transport Layer 3-26
fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckroutercapacity R
TCP Fairness
TCP connection 2
Transport Layer 3-27
Why is TCP fairtwo competing sessions additive increase gives slope of 1 as throughout
increases multiplicative decrease decreases throughput
proportionally R
R
equal bandwidth share
Connection 1 throughput
Con
nect
ion
2 th
roug
h pu t
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-28
Fairness (more)Fairness and UDP multimedia apps
often do not use TCP do not want rate
throttled by congestion control
instead use UDP send audiovideo
at constant rate tolerate packet loss
Fairness parallel TCP connections
application can open multiple parallel connections between two hosts
web browsers do this eg link of rate R with 9
existing connections new app asks for 1 TCP gets
rate R10 new app asks for 11 TCPs gets
R2
Transport Layer 3-29
Chapter 3 summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation implementation in the Internet UDP TCP
next leaving the
network ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- John Magee 20 February 2014
- Chapter 3 Transport Layer
- Chapter 3 outline
- Principles of congestion control
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Causescosts of congestion scenario 3
- Slide 13
- Approaches towards congestion control
- Case study ATM ABR congestion control
- Slide 16
- Slide 17
- TCP congestion control additive increase multiplicative decrease
- TCP Congestion Control details
- TCP Slow Start
- TCP detecting reacting to loss
- TCP switching from slow start to CA
- Summary TCP Congestion Control
- TCP throughput
- TCP Futures TCP over ldquolong fat pipesrdquo
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Chapter 3 summary
-
Transport Layer 3-6
one router finite buffers sender retransmission of timed-out packet
application-layer input = application-layer outputin
= out
transport-layer input includes retransmissions in in
finite shared output link buffers
Host A
in original data
Host B
outin original data plus
retransmitted data
lsquo
Causescosts of congestion scenario 2
Transport Layer 3-7
idealization perfect knowledge
sender sends only when router buffers available
finite shared output link buffers
in original dataoutin original data plus
retransmitted data
copy
free buffer space
R2
R2
out
in
Causescosts of congestion scenario 2
Host B
A
Transport Layer 3-8
in original dataoutin original data plus
retransmitted data
copy
no buffer space
Idealization known loss packets can be lost dropped at router due to full buffers
sender only resends if packet known to be lost
Causescosts of congestion scenario 2
A
Host B
Transport Layer 3-9
in original dataoutin original data plus
retransmitted data
free buffer space
Causescosts of congestion scenario 2
Idealization known loss packets can be lost dropped at router due to full buffers
sender only resends if packet known to be lost
R2
R2in
out
when sending at R2 some packets are retransmissions but asymptotic goodput is still R2 (why)
A
Host B
Transport Layer 3-10
A
in outincopy
free buffer space
timeout
R2
R2in
out
when sending at R2 some packets are retransmissions including duplicated that are delivered
Host B
Realistic duplicates packets can be lost
dropped at router due to full buffers
sender times out prematurely sending two copies both of which are delivered
Causescosts of congestion scenario 2
Transport Layer 3-11
R2
out
when sending at R2 some packets are retransmissions including duplicated that are delivered
ldquocostsrdquo of congestion more work (retrans) for given ldquogoodputrdquo unneeded retransmissions link carries multiple copies of pkt
decreasing goodput
R2in
Causescosts of congestion scenario 2 Realistic duplicates packets can be lost
dropped at router due to full buffers
sender times out prematurely sending two copies both of which are delivered
Transport Layer 3-12
four senders multihop paths timeoutretransmit
Q what happens as in and in
rsquo increase
finite shared output link buffers
Host A out
Causescosts of congestion scenario 3
Host B
Host C
Host D
in original data
in original data plus
retransmitted data
A as red inrsquo increases all arriving
blue pkts at upper queue are dropped blue throughput 0
Transport Layer 3-13
another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission
capacity used for that packet was wasted
Causescosts of congestion scenario 3
C2
C2
ou
t
inrsquo
Transport Layer 3-14
Approaches towards congestion controltwo broad approaches towards congestion
controlend-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 systemssingle bit indicating congestion (SNA DECbit TCPIP ECN ATM)
explicit rate for sender to send at
Transport Layer 3-15
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should
use available bandwidth
if senderrsquos path congested sender throttled
to minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-16
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell sendersrsquo send rate thus max supportable rate on path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set receiver
sets CI bit in returned RM cell
RM cell data cell
Transport Layer 3-17
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
management36 principles of
congestion control37 TCP congestion
control
Transport Layer 3-18
TCP congestion control additive increase multiplicative decrease
approach sender increases transmission rate (window size) probing for usable bandwidth until loss occurs additive increase increase cwnd by 1
MSS every RTT until loss detected multiplicative decrease cut cwnd in half
after loss
cwnd
TC
P s
ende
r co
nges
tion
win
dow
siz
e
AIMD saw toothbehavior probing
for bandwidth
additively increase window size helliphellip until loss occurs (then cut window in half)
time
Transport Layer 3-19
TCP Congestion Control details
sender limits transmission
cwnd is dynamic function of perceived network congestion
TCP sending rate roughly send
cwnd bytes wait RTT for ACKS then send more bytes
last byteACKed sent not-
yet ACKed(ldquoin-flightrdquo)
last byte sent
cwnd
LastByteSent-LastByteAcked
lt cwnd
sender sequence number space
rate~~cwnd
RTTbytessec
Transport Layer 3-20
TCP Slow Start when connection
begins increase rate exponentially until first loss event initially cwnd = 1 MSS double cwnd every
RTT done by incrementing cwnd for every ACK received
summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RT
T
Host B
time
two segments
four segments
Transport Layer 3-21
TCP detecting reacting to loss
loss indicated by timeout cwnd set to 1 MSS window then grows exponentially (as in slow start) to threshold
then grows linearly loss indicated by 3 duplicate ACKs TCP RENO
dup ACKs indicate network capable of delivering some segments cwnd is cut in half window then grows linearly
TCP Tahoe always sets cwnd to 1 (timeout or 3 duplicate acks)
Transport Layer 3-22
Q when should the exponential increase switch to linear
A when cwnd gets to 12 of its value before timeout
Implementation variable ssthresh on loss event ssthresh is set to 12 of cwnd just before loss event
TCP switching from slow start to CA
Transport Layer 3-23
Summary TCP Congestion Control
timeoutssthresh = cwnd2cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd gt ssthresh
congestionavoidance
cwnd = cwnd + MSS (MSScwnd)dupACKcount = 0transmit new segment(s) as allowed
new ACK
dupACKcount++
duplicate ACK
fastrecovery
cwnd = cwnd + MSStransmit new segment(s) as allowed
duplicate ACK
ssthresh= cwnd2cwnd = ssthresh + 3
retransmit missing segment
dupACKcount == 3
timeoutssthresh = cwnd2cwnd = 1 dupACKcount = 0retransmit missing segment
ssthresh= cwnd2cwnd = ssthresh + 3retransmit missing segment
dupACKcount == 3cwnd = ssthreshdupACKcount = 0
New ACK
slow start
timeoutssthresh = cwnd2 cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd = cwnd+MSSdupACKcount = 0transmit new segment(s) as allowed
new ACKdupACKcount++
duplicate ACK
cwnd = 1 MSSssthresh = 64 KBdupACKcount = 0
NewACK
NewACK
NewACK
Transport Layer 3-24
TCP throughput avg TCP thruput as function of window
size RTT ignore slow start assume always data to send
W window size (measured in bytes) where loss occurs avg window size ( in-flight bytes) is frac34 W avg thruput is 34W per RTT
W
W2
avg TCP thruput = 34W
RTTbytessec
Transport Layer 3-25
TCP Futures TCP over ldquolong fat pipesrdquo example 1500 byte segments 100ms
RTT want 10 Gbps throughput requires W = 83333 in-flight segments throughput in terms of segment loss
probability L [Mathis 1997]
to achieve 10 Gbps throughput need a loss rate of L = 210-10 ndash a very small loss rate
new versions of TCP for high-speed
TCP throughput = 122 MSSRTT L
Transport Layer 3-26
fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckroutercapacity R
TCP Fairness
TCP connection 2
Transport Layer 3-27
Why is TCP fairtwo competing sessions additive increase gives slope of 1 as throughout
increases multiplicative decrease decreases throughput
proportionally R
R
equal bandwidth share
Connection 1 throughput
Con
nect
ion
2 th
roug
h pu t
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-28
Fairness (more)Fairness and UDP multimedia apps
often do not use TCP do not want rate
throttled by congestion control
instead use UDP send audiovideo
at constant rate tolerate packet loss
Fairness parallel TCP connections
application can open multiple parallel connections between two hosts
web browsers do this eg link of rate R with 9
existing connections new app asks for 1 TCP gets
rate R10 new app asks for 11 TCPs gets
R2
Transport Layer 3-29
Chapter 3 summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation implementation in the Internet UDP TCP
next leaving the
network ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- John Magee 20 February 2014
- Chapter 3 Transport Layer
- Chapter 3 outline
- Principles of congestion control
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Causescosts of congestion scenario 3
- Slide 13
- Approaches towards congestion control
- Case study ATM ABR congestion control
- Slide 16
- Slide 17
- TCP congestion control additive increase multiplicative decrease
- TCP Congestion Control details
- TCP Slow Start
- TCP detecting reacting to loss
- TCP switching from slow start to CA
- Summary TCP Congestion Control
- TCP throughput
- TCP Futures TCP over ldquolong fat pipesrdquo
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Chapter 3 summary
-
Transport Layer 3-7
idealization perfect knowledge
sender sends only when router buffers available
finite shared output link buffers
in original dataoutin original data plus
retransmitted data
copy
free buffer space
R2
R2
out
in
Causescosts of congestion scenario 2
Host B
A
Transport Layer 3-8
in original dataoutin original data plus
retransmitted data
copy
no buffer space
Idealization known loss packets can be lost dropped at router due to full buffers
sender only resends if packet known to be lost
Causescosts of congestion scenario 2
A
Host B
Transport Layer 3-9
in original dataoutin original data plus
retransmitted data
free buffer space
Causescosts of congestion scenario 2
Idealization known loss packets can be lost dropped at router due to full buffers
sender only resends if packet known to be lost
R2
R2in
out
when sending at R2 some packets are retransmissions but asymptotic goodput is still R2 (why)
A
Host B
Transport Layer 3-10
A
in outincopy
free buffer space
timeout
R2
R2in
out
when sending at R2 some packets are retransmissions including duplicated that are delivered
Host B
Realistic duplicates packets can be lost
dropped at router due to full buffers
sender times out prematurely sending two copies both of which are delivered
Causescosts of congestion scenario 2
Transport Layer 3-11
R2
out
when sending at R2 some packets are retransmissions including duplicated that are delivered
ldquocostsrdquo of congestion more work (retrans) for given ldquogoodputrdquo unneeded retransmissions link carries multiple copies of pkt
decreasing goodput
R2in
Causescosts of congestion scenario 2 Realistic duplicates packets can be lost
dropped at router due to full buffers
sender times out prematurely sending two copies both of which are delivered
Transport Layer 3-12
four senders multihop paths timeoutretransmit
Q what happens as in and in
rsquo increase
finite shared output link buffers
Host A out
Causescosts of congestion scenario 3
Host B
Host C
Host D
in original data
in original data plus
retransmitted data
A as red inrsquo increases all arriving
blue pkts at upper queue are dropped blue throughput 0
Transport Layer 3-13
another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission
capacity used for that packet was wasted
Causescosts of congestion scenario 3
C2
C2
ou
t
inrsquo
Transport Layer 3-14
Approaches towards congestion controltwo broad approaches towards congestion
controlend-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 systemssingle bit indicating congestion (SNA DECbit TCPIP ECN ATM)
explicit rate for sender to send at
Transport Layer 3-15
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should
use available bandwidth
if senderrsquos path congested sender throttled
to minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-16
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell sendersrsquo send rate thus max supportable rate on path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set receiver
sets CI bit in returned RM cell
RM cell data cell
Transport Layer 3-17
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
management36 principles of
congestion control37 TCP congestion
control
Transport Layer 3-18
TCP congestion control additive increase multiplicative decrease
approach sender increases transmission rate (window size) probing for usable bandwidth until loss occurs additive increase increase cwnd by 1
MSS every RTT until loss detected multiplicative decrease cut cwnd in half
after loss
cwnd
TC
P s
ende
r co
nges
tion
win
dow
siz
e
AIMD saw toothbehavior probing
for bandwidth
additively increase window size helliphellip until loss occurs (then cut window in half)
time
Transport Layer 3-19
TCP Congestion Control details
sender limits transmission
cwnd is dynamic function of perceived network congestion
TCP sending rate roughly send
cwnd bytes wait RTT for ACKS then send more bytes
last byteACKed sent not-
yet ACKed(ldquoin-flightrdquo)
last byte sent
cwnd
LastByteSent-LastByteAcked
lt cwnd
sender sequence number space
rate~~cwnd
RTTbytessec
Transport Layer 3-20
TCP Slow Start when connection
begins increase rate exponentially until first loss event initially cwnd = 1 MSS double cwnd every
RTT done by incrementing cwnd for every ACK received
summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RT
T
Host B
time
two segments
four segments
Transport Layer 3-21
TCP detecting reacting to loss
loss indicated by timeout cwnd set to 1 MSS window then grows exponentially (as in slow start) to threshold
then grows linearly loss indicated by 3 duplicate ACKs TCP RENO
dup ACKs indicate network capable of delivering some segments cwnd is cut in half window then grows linearly
TCP Tahoe always sets cwnd to 1 (timeout or 3 duplicate acks)
Transport Layer 3-22
Q when should the exponential increase switch to linear
A when cwnd gets to 12 of its value before timeout
Implementation variable ssthresh on loss event ssthresh is set to 12 of cwnd just before loss event
TCP switching from slow start to CA
Transport Layer 3-23
Summary TCP Congestion Control
timeoutssthresh = cwnd2cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd gt ssthresh
congestionavoidance
cwnd = cwnd + MSS (MSScwnd)dupACKcount = 0transmit new segment(s) as allowed
new ACK
dupACKcount++
duplicate ACK
fastrecovery
cwnd = cwnd + MSStransmit new segment(s) as allowed
duplicate ACK
ssthresh= cwnd2cwnd = ssthresh + 3
retransmit missing segment
dupACKcount == 3
timeoutssthresh = cwnd2cwnd = 1 dupACKcount = 0retransmit missing segment
ssthresh= cwnd2cwnd = ssthresh + 3retransmit missing segment
dupACKcount == 3cwnd = ssthreshdupACKcount = 0
New ACK
slow start
timeoutssthresh = cwnd2 cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd = cwnd+MSSdupACKcount = 0transmit new segment(s) as allowed
new ACKdupACKcount++
duplicate ACK
cwnd = 1 MSSssthresh = 64 KBdupACKcount = 0
NewACK
NewACK
NewACK
Transport Layer 3-24
TCP throughput avg TCP thruput as function of window
size RTT ignore slow start assume always data to send
W window size (measured in bytes) where loss occurs avg window size ( in-flight bytes) is frac34 W avg thruput is 34W per RTT
W
W2
avg TCP thruput = 34W
RTTbytessec
Transport Layer 3-25
TCP Futures TCP over ldquolong fat pipesrdquo example 1500 byte segments 100ms
RTT want 10 Gbps throughput requires W = 83333 in-flight segments throughput in terms of segment loss
probability L [Mathis 1997]
to achieve 10 Gbps throughput need a loss rate of L = 210-10 ndash a very small loss rate
new versions of TCP for high-speed
TCP throughput = 122 MSSRTT L
Transport Layer 3-26
fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckroutercapacity R
TCP Fairness
TCP connection 2
Transport Layer 3-27
Why is TCP fairtwo competing sessions additive increase gives slope of 1 as throughout
increases multiplicative decrease decreases throughput
proportionally R
R
equal bandwidth share
Connection 1 throughput
Con
nect
ion
2 th
roug
h pu t
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-28
Fairness (more)Fairness and UDP multimedia apps
often do not use TCP do not want rate
throttled by congestion control
instead use UDP send audiovideo
at constant rate tolerate packet loss
Fairness parallel TCP connections
application can open multiple parallel connections between two hosts
web browsers do this eg link of rate R with 9
existing connections new app asks for 1 TCP gets
rate R10 new app asks for 11 TCPs gets
R2
Transport Layer 3-29
Chapter 3 summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation implementation in the Internet UDP TCP
next leaving the
network ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- John Magee 20 February 2014
- Chapter 3 Transport Layer
- Chapter 3 outline
- Principles of congestion control
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Causescosts of congestion scenario 3
- Slide 13
- Approaches towards congestion control
- Case study ATM ABR congestion control
- Slide 16
- Slide 17
- TCP congestion control additive increase multiplicative decrease
- TCP Congestion Control details
- TCP Slow Start
- TCP detecting reacting to loss
- TCP switching from slow start to CA
- Summary TCP Congestion Control
- TCP throughput
- TCP Futures TCP over ldquolong fat pipesrdquo
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Chapter 3 summary
-
Transport Layer 3-8
in original dataoutin original data plus
retransmitted data
copy
no buffer space
Idealization known loss packets can be lost dropped at router due to full buffers
sender only resends if packet known to be lost
Causescosts of congestion scenario 2
A
Host B
Transport Layer 3-9
in original dataoutin original data plus
retransmitted data
free buffer space
Causescosts of congestion scenario 2
Idealization known loss packets can be lost dropped at router due to full buffers
sender only resends if packet known to be lost
R2
R2in
out
when sending at R2 some packets are retransmissions but asymptotic goodput is still R2 (why)
A
Host B
Transport Layer 3-10
A
in outincopy
free buffer space
timeout
R2
R2in
out
when sending at R2 some packets are retransmissions including duplicated that are delivered
Host B
Realistic duplicates packets can be lost
dropped at router due to full buffers
sender times out prematurely sending two copies both of which are delivered
Causescosts of congestion scenario 2
Transport Layer 3-11
R2
out
when sending at R2 some packets are retransmissions including duplicated that are delivered
ldquocostsrdquo of congestion more work (retrans) for given ldquogoodputrdquo unneeded retransmissions link carries multiple copies of pkt
decreasing goodput
R2in
Causescosts of congestion scenario 2 Realistic duplicates packets can be lost
dropped at router due to full buffers
sender times out prematurely sending two copies both of which are delivered
Transport Layer 3-12
four senders multihop paths timeoutretransmit
Q what happens as in and in
rsquo increase
finite shared output link buffers
Host A out
Causescosts of congestion scenario 3
Host B
Host C
Host D
in original data
in original data plus
retransmitted data
A as red inrsquo increases all arriving
blue pkts at upper queue are dropped blue throughput 0
Transport Layer 3-13
another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission
capacity used for that packet was wasted
Causescosts of congestion scenario 3
C2
C2
ou
t
inrsquo
Transport Layer 3-14
Approaches towards congestion controltwo broad approaches towards congestion
controlend-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 systemssingle bit indicating congestion (SNA DECbit TCPIP ECN ATM)
explicit rate for sender to send at
Transport Layer 3-15
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should
use available bandwidth
if senderrsquos path congested sender throttled
to minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-16
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell sendersrsquo send rate thus max supportable rate on path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set receiver
sets CI bit in returned RM cell
RM cell data cell
Transport Layer 3-17
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
management36 principles of
congestion control37 TCP congestion
control
Transport Layer 3-18
TCP congestion control additive increase multiplicative decrease
approach sender increases transmission rate (window size) probing for usable bandwidth until loss occurs additive increase increase cwnd by 1
MSS every RTT until loss detected multiplicative decrease cut cwnd in half
after loss
cwnd
TC
P s
ende
r co
nges
tion
win
dow
siz
e
AIMD saw toothbehavior probing
for bandwidth
additively increase window size helliphellip until loss occurs (then cut window in half)
time
Transport Layer 3-19
TCP Congestion Control details
sender limits transmission
cwnd is dynamic function of perceived network congestion
TCP sending rate roughly send
cwnd bytes wait RTT for ACKS then send more bytes
last byteACKed sent not-
yet ACKed(ldquoin-flightrdquo)
last byte sent
cwnd
LastByteSent-LastByteAcked
lt cwnd
sender sequence number space
rate~~cwnd
RTTbytessec
Transport Layer 3-20
TCP Slow Start when connection
begins increase rate exponentially until first loss event initially cwnd = 1 MSS double cwnd every
RTT done by incrementing cwnd for every ACK received
summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RT
T
Host B
time
two segments
four segments
Transport Layer 3-21
TCP detecting reacting to loss
loss indicated by timeout cwnd set to 1 MSS window then grows exponentially (as in slow start) to threshold
then grows linearly loss indicated by 3 duplicate ACKs TCP RENO
dup ACKs indicate network capable of delivering some segments cwnd is cut in half window then grows linearly
TCP Tahoe always sets cwnd to 1 (timeout or 3 duplicate acks)
Transport Layer 3-22
Q when should the exponential increase switch to linear
A when cwnd gets to 12 of its value before timeout
Implementation variable ssthresh on loss event ssthresh is set to 12 of cwnd just before loss event
TCP switching from slow start to CA
Transport Layer 3-23
Summary TCP Congestion Control
timeoutssthresh = cwnd2cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd gt ssthresh
congestionavoidance
cwnd = cwnd + MSS (MSScwnd)dupACKcount = 0transmit new segment(s) as allowed
new ACK
dupACKcount++
duplicate ACK
fastrecovery
cwnd = cwnd + MSStransmit new segment(s) as allowed
duplicate ACK
ssthresh= cwnd2cwnd = ssthresh + 3
retransmit missing segment
dupACKcount == 3
timeoutssthresh = cwnd2cwnd = 1 dupACKcount = 0retransmit missing segment
ssthresh= cwnd2cwnd = ssthresh + 3retransmit missing segment
dupACKcount == 3cwnd = ssthreshdupACKcount = 0
New ACK
slow start
timeoutssthresh = cwnd2 cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd = cwnd+MSSdupACKcount = 0transmit new segment(s) as allowed
new ACKdupACKcount++
duplicate ACK
cwnd = 1 MSSssthresh = 64 KBdupACKcount = 0
NewACK
NewACK
NewACK
Transport Layer 3-24
TCP throughput avg TCP thruput as function of window
size RTT ignore slow start assume always data to send
W window size (measured in bytes) where loss occurs avg window size ( in-flight bytes) is frac34 W avg thruput is 34W per RTT
W
W2
avg TCP thruput = 34W
RTTbytessec
Transport Layer 3-25
TCP Futures TCP over ldquolong fat pipesrdquo example 1500 byte segments 100ms
RTT want 10 Gbps throughput requires W = 83333 in-flight segments throughput in terms of segment loss
probability L [Mathis 1997]
to achieve 10 Gbps throughput need a loss rate of L = 210-10 ndash a very small loss rate
new versions of TCP for high-speed
TCP throughput = 122 MSSRTT L
Transport Layer 3-26
fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckroutercapacity R
TCP Fairness
TCP connection 2
Transport Layer 3-27
Why is TCP fairtwo competing sessions additive increase gives slope of 1 as throughout
increases multiplicative decrease decreases throughput
proportionally R
R
equal bandwidth share
Connection 1 throughput
Con
nect
ion
2 th
roug
h pu t
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-28
Fairness (more)Fairness and UDP multimedia apps
often do not use TCP do not want rate
throttled by congestion control
instead use UDP send audiovideo
at constant rate tolerate packet loss
Fairness parallel TCP connections
application can open multiple parallel connections between two hosts
web browsers do this eg link of rate R with 9
existing connections new app asks for 1 TCP gets
rate R10 new app asks for 11 TCPs gets
R2
Transport Layer 3-29
Chapter 3 summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation implementation in the Internet UDP TCP
next leaving the
network ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- John Magee 20 February 2014
- Chapter 3 Transport Layer
- Chapter 3 outline
- Principles of congestion control
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Causescosts of congestion scenario 3
- Slide 13
- Approaches towards congestion control
- Case study ATM ABR congestion control
- Slide 16
- Slide 17
- TCP congestion control additive increase multiplicative decrease
- TCP Congestion Control details
- TCP Slow Start
- TCP detecting reacting to loss
- TCP switching from slow start to CA
- Summary TCP Congestion Control
- TCP throughput
- TCP Futures TCP over ldquolong fat pipesrdquo
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Chapter 3 summary
-
Transport Layer 3-9
in original dataoutin original data plus
retransmitted data
free buffer space
Causescosts of congestion scenario 2
Idealization known loss packets can be lost dropped at router due to full buffers
sender only resends if packet known to be lost
R2
R2in
out
when sending at R2 some packets are retransmissions but asymptotic goodput is still R2 (why)
A
Host B
Transport Layer 3-10
A
in outincopy
free buffer space
timeout
R2
R2in
out
when sending at R2 some packets are retransmissions including duplicated that are delivered
Host B
Realistic duplicates packets can be lost
dropped at router due to full buffers
sender times out prematurely sending two copies both of which are delivered
Causescosts of congestion scenario 2
Transport Layer 3-11
R2
out
when sending at R2 some packets are retransmissions including duplicated that are delivered
ldquocostsrdquo of congestion more work (retrans) for given ldquogoodputrdquo unneeded retransmissions link carries multiple copies of pkt
decreasing goodput
R2in
Causescosts of congestion scenario 2 Realistic duplicates packets can be lost
dropped at router due to full buffers
sender times out prematurely sending two copies both of which are delivered
Transport Layer 3-12
four senders multihop paths timeoutretransmit
Q what happens as in and in
rsquo increase
finite shared output link buffers
Host A out
Causescosts of congestion scenario 3
Host B
Host C
Host D
in original data
in original data plus
retransmitted data
A as red inrsquo increases all arriving
blue pkts at upper queue are dropped blue throughput 0
Transport Layer 3-13
another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission
capacity used for that packet was wasted
Causescosts of congestion scenario 3
C2
C2
ou
t
inrsquo
Transport Layer 3-14
Approaches towards congestion controltwo broad approaches towards congestion
controlend-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 systemssingle bit indicating congestion (SNA DECbit TCPIP ECN ATM)
explicit rate for sender to send at
Transport Layer 3-15
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should
use available bandwidth
if senderrsquos path congested sender throttled
to minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-16
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell sendersrsquo send rate thus max supportable rate on path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set receiver
sets CI bit in returned RM cell
RM cell data cell
Transport Layer 3-17
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
management36 principles of
congestion control37 TCP congestion
control
Transport Layer 3-18
TCP congestion control additive increase multiplicative decrease
approach sender increases transmission rate (window size) probing for usable bandwidth until loss occurs additive increase increase cwnd by 1
MSS every RTT until loss detected multiplicative decrease cut cwnd in half
after loss
cwnd
TC
P s
ende
r co
nges
tion
win
dow
siz
e
AIMD saw toothbehavior probing
for bandwidth
additively increase window size helliphellip until loss occurs (then cut window in half)
time
Transport Layer 3-19
TCP Congestion Control details
sender limits transmission
cwnd is dynamic function of perceived network congestion
TCP sending rate roughly send
cwnd bytes wait RTT for ACKS then send more bytes
last byteACKed sent not-
yet ACKed(ldquoin-flightrdquo)
last byte sent
cwnd
LastByteSent-LastByteAcked
lt cwnd
sender sequence number space
rate~~cwnd
RTTbytessec
Transport Layer 3-20
TCP Slow Start when connection
begins increase rate exponentially until first loss event initially cwnd = 1 MSS double cwnd every
RTT done by incrementing cwnd for every ACK received
summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RT
T
Host B
time
two segments
four segments
Transport Layer 3-21
TCP detecting reacting to loss
loss indicated by timeout cwnd set to 1 MSS window then grows exponentially (as in slow start) to threshold
then grows linearly loss indicated by 3 duplicate ACKs TCP RENO
dup ACKs indicate network capable of delivering some segments cwnd is cut in half window then grows linearly
TCP Tahoe always sets cwnd to 1 (timeout or 3 duplicate acks)
Transport Layer 3-22
Q when should the exponential increase switch to linear
A when cwnd gets to 12 of its value before timeout
Implementation variable ssthresh on loss event ssthresh is set to 12 of cwnd just before loss event
TCP switching from slow start to CA
Transport Layer 3-23
Summary TCP Congestion Control
timeoutssthresh = cwnd2cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd gt ssthresh
congestionavoidance
cwnd = cwnd + MSS (MSScwnd)dupACKcount = 0transmit new segment(s) as allowed
new ACK
dupACKcount++
duplicate ACK
fastrecovery
cwnd = cwnd + MSStransmit new segment(s) as allowed
duplicate ACK
ssthresh= cwnd2cwnd = ssthresh + 3
retransmit missing segment
dupACKcount == 3
timeoutssthresh = cwnd2cwnd = 1 dupACKcount = 0retransmit missing segment
ssthresh= cwnd2cwnd = ssthresh + 3retransmit missing segment
dupACKcount == 3cwnd = ssthreshdupACKcount = 0
New ACK
slow start
timeoutssthresh = cwnd2 cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd = cwnd+MSSdupACKcount = 0transmit new segment(s) as allowed
new ACKdupACKcount++
duplicate ACK
cwnd = 1 MSSssthresh = 64 KBdupACKcount = 0
NewACK
NewACK
NewACK
Transport Layer 3-24
TCP throughput avg TCP thruput as function of window
size RTT ignore slow start assume always data to send
W window size (measured in bytes) where loss occurs avg window size ( in-flight bytes) is frac34 W avg thruput is 34W per RTT
W
W2
avg TCP thruput = 34W
RTTbytessec
Transport Layer 3-25
TCP Futures TCP over ldquolong fat pipesrdquo example 1500 byte segments 100ms
RTT want 10 Gbps throughput requires W = 83333 in-flight segments throughput in terms of segment loss
probability L [Mathis 1997]
to achieve 10 Gbps throughput need a loss rate of L = 210-10 ndash a very small loss rate
new versions of TCP for high-speed
TCP throughput = 122 MSSRTT L
Transport Layer 3-26
fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckroutercapacity R
TCP Fairness
TCP connection 2
Transport Layer 3-27
Why is TCP fairtwo competing sessions additive increase gives slope of 1 as throughout
increases multiplicative decrease decreases throughput
proportionally R
R
equal bandwidth share
Connection 1 throughput
Con
nect
ion
2 th
roug
h pu t
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-28
Fairness (more)Fairness and UDP multimedia apps
often do not use TCP do not want rate
throttled by congestion control
instead use UDP send audiovideo
at constant rate tolerate packet loss
Fairness parallel TCP connections
application can open multiple parallel connections between two hosts
web browsers do this eg link of rate R with 9
existing connections new app asks for 1 TCP gets
rate R10 new app asks for 11 TCPs gets
R2
Transport Layer 3-29
Chapter 3 summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation implementation in the Internet UDP TCP
next leaving the
network ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- John Magee 20 February 2014
- Chapter 3 Transport Layer
- Chapter 3 outline
- Principles of congestion control
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Causescosts of congestion scenario 3
- Slide 13
- Approaches towards congestion control
- Case study ATM ABR congestion control
- Slide 16
- Slide 17
- TCP congestion control additive increase multiplicative decrease
- TCP Congestion Control details
- TCP Slow Start
- TCP detecting reacting to loss
- TCP switching from slow start to CA
- Summary TCP Congestion Control
- TCP throughput
- TCP Futures TCP over ldquolong fat pipesrdquo
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Chapter 3 summary
-
Transport Layer 3-10
A
in outincopy
free buffer space
timeout
R2
R2in
out
when sending at R2 some packets are retransmissions including duplicated that are delivered
Host B
Realistic duplicates packets can be lost
dropped at router due to full buffers
sender times out prematurely sending two copies both of which are delivered
Causescosts of congestion scenario 2
Transport Layer 3-11
R2
out
when sending at R2 some packets are retransmissions including duplicated that are delivered
ldquocostsrdquo of congestion more work (retrans) for given ldquogoodputrdquo unneeded retransmissions link carries multiple copies of pkt
decreasing goodput
R2in
Causescosts of congestion scenario 2 Realistic duplicates packets can be lost
dropped at router due to full buffers
sender times out prematurely sending two copies both of which are delivered
Transport Layer 3-12
four senders multihop paths timeoutretransmit
Q what happens as in and in
rsquo increase
finite shared output link buffers
Host A out
Causescosts of congestion scenario 3
Host B
Host C
Host D
in original data
in original data plus
retransmitted data
A as red inrsquo increases all arriving
blue pkts at upper queue are dropped blue throughput 0
Transport Layer 3-13
another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission
capacity used for that packet was wasted
Causescosts of congestion scenario 3
C2
C2
ou
t
inrsquo
Transport Layer 3-14
Approaches towards congestion controltwo broad approaches towards congestion
controlend-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 systemssingle bit indicating congestion (SNA DECbit TCPIP ECN ATM)
explicit rate for sender to send at
Transport Layer 3-15
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should
use available bandwidth
if senderrsquos path congested sender throttled
to minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-16
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell sendersrsquo send rate thus max supportable rate on path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set receiver
sets CI bit in returned RM cell
RM cell data cell
Transport Layer 3-17
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
management36 principles of
congestion control37 TCP congestion
control
Transport Layer 3-18
TCP congestion control additive increase multiplicative decrease
approach sender increases transmission rate (window size) probing for usable bandwidth until loss occurs additive increase increase cwnd by 1
MSS every RTT until loss detected multiplicative decrease cut cwnd in half
after loss
cwnd
TC
P s
ende
r co
nges
tion
win
dow
siz
e
AIMD saw toothbehavior probing
for bandwidth
additively increase window size helliphellip until loss occurs (then cut window in half)
time
Transport Layer 3-19
TCP Congestion Control details
sender limits transmission
cwnd is dynamic function of perceived network congestion
TCP sending rate roughly send
cwnd bytes wait RTT for ACKS then send more bytes
last byteACKed sent not-
yet ACKed(ldquoin-flightrdquo)
last byte sent
cwnd
LastByteSent-LastByteAcked
lt cwnd
sender sequence number space
rate~~cwnd
RTTbytessec
Transport Layer 3-20
TCP Slow Start when connection
begins increase rate exponentially until first loss event initially cwnd = 1 MSS double cwnd every
RTT done by incrementing cwnd for every ACK received
summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RT
T
Host B
time
two segments
four segments
Transport Layer 3-21
TCP detecting reacting to loss
loss indicated by timeout cwnd set to 1 MSS window then grows exponentially (as in slow start) to threshold
then grows linearly loss indicated by 3 duplicate ACKs TCP RENO
dup ACKs indicate network capable of delivering some segments cwnd is cut in half window then grows linearly
TCP Tahoe always sets cwnd to 1 (timeout or 3 duplicate acks)
Transport Layer 3-22
Q when should the exponential increase switch to linear
A when cwnd gets to 12 of its value before timeout
Implementation variable ssthresh on loss event ssthresh is set to 12 of cwnd just before loss event
TCP switching from slow start to CA
Transport Layer 3-23
Summary TCP Congestion Control
timeoutssthresh = cwnd2cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd gt ssthresh
congestionavoidance
cwnd = cwnd + MSS (MSScwnd)dupACKcount = 0transmit new segment(s) as allowed
new ACK
dupACKcount++
duplicate ACK
fastrecovery
cwnd = cwnd + MSStransmit new segment(s) as allowed
duplicate ACK
ssthresh= cwnd2cwnd = ssthresh + 3
retransmit missing segment
dupACKcount == 3
timeoutssthresh = cwnd2cwnd = 1 dupACKcount = 0retransmit missing segment
ssthresh= cwnd2cwnd = ssthresh + 3retransmit missing segment
dupACKcount == 3cwnd = ssthreshdupACKcount = 0
New ACK
slow start
timeoutssthresh = cwnd2 cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd = cwnd+MSSdupACKcount = 0transmit new segment(s) as allowed
new ACKdupACKcount++
duplicate ACK
cwnd = 1 MSSssthresh = 64 KBdupACKcount = 0
NewACK
NewACK
NewACK
Transport Layer 3-24
TCP throughput avg TCP thruput as function of window
size RTT ignore slow start assume always data to send
W window size (measured in bytes) where loss occurs avg window size ( in-flight bytes) is frac34 W avg thruput is 34W per RTT
W
W2
avg TCP thruput = 34W
RTTbytessec
Transport Layer 3-25
TCP Futures TCP over ldquolong fat pipesrdquo example 1500 byte segments 100ms
RTT want 10 Gbps throughput requires W = 83333 in-flight segments throughput in terms of segment loss
probability L [Mathis 1997]
to achieve 10 Gbps throughput need a loss rate of L = 210-10 ndash a very small loss rate
new versions of TCP for high-speed
TCP throughput = 122 MSSRTT L
Transport Layer 3-26
fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckroutercapacity R
TCP Fairness
TCP connection 2
Transport Layer 3-27
Why is TCP fairtwo competing sessions additive increase gives slope of 1 as throughout
increases multiplicative decrease decreases throughput
proportionally R
R
equal bandwidth share
Connection 1 throughput
Con
nect
ion
2 th
roug
h pu t
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-28
Fairness (more)Fairness and UDP multimedia apps
often do not use TCP do not want rate
throttled by congestion control
instead use UDP send audiovideo
at constant rate tolerate packet loss
Fairness parallel TCP connections
application can open multiple parallel connections between two hosts
web browsers do this eg link of rate R with 9
existing connections new app asks for 1 TCP gets
rate R10 new app asks for 11 TCPs gets
R2
Transport Layer 3-29
Chapter 3 summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation implementation in the Internet UDP TCP
next leaving the
network ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- John Magee 20 February 2014
- Chapter 3 Transport Layer
- Chapter 3 outline
- Principles of congestion control
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Causescosts of congestion scenario 3
- Slide 13
- Approaches towards congestion control
- Case study ATM ABR congestion control
- Slide 16
- Slide 17
- TCP congestion control additive increase multiplicative decrease
- TCP Congestion Control details
- TCP Slow Start
- TCP detecting reacting to loss
- TCP switching from slow start to CA
- Summary TCP Congestion Control
- TCP throughput
- TCP Futures TCP over ldquolong fat pipesrdquo
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Chapter 3 summary
-
Transport Layer 3-11
R2
out
when sending at R2 some packets are retransmissions including duplicated that are delivered
ldquocostsrdquo of congestion more work (retrans) for given ldquogoodputrdquo unneeded retransmissions link carries multiple copies of pkt
decreasing goodput
R2in
Causescosts of congestion scenario 2 Realistic duplicates packets can be lost
dropped at router due to full buffers
sender times out prematurely sending two copies both of which are delivered
Transport Layer 3-12
four senders multihop paths timeoutretransmit
Q what happens as in and in
rsquo increase
finite shared output link buffers
Host A out
Causescosts of congestion scenario 3
Host B
Host C
Host D
in original data
in original data plus
retransmitted data
A as red inrsquo increases all arriving
blue pkts at upper queue are dropped blue throughput 0
Transport Layer 3-13
another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission
capacity used for that packet was wasted
Causescosts of congestion scenario 3
C2
C2
ou
t
inrsquo
Transport Layer 3-14
Approaches towards congestion controltwo broad approaches towards congestion
controlend-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 systemssingle bit indicating congestion (SNA DECbit TCPIP ECN ATM)
explicit rate for sender to send at
Transport Layer 3-15
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should
use available bandwidth
if senderrsquos path congested sender throttled
to minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-16
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell sendersrsquo send rate thus max supportable rate on path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set receiver
sets CI bit in returned RM cell
RM cell data cell
Transport Layer 3-17
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
management36 principles of
congestion control37 TCP congestion
control
Transport Layer 3-18
TCP congestion control additive increase multiplicative decrease
approach sender increases transmission rate (window size) probing for usable bandwidth until loss occurs additive increase increase cwnd by 1
MSS every RTT until loss detected multiplicative decrease cut cwnd in half
after loss
cwnd
TC
P s
ende
r co
nges
tion
win
dow
siz
e
AIMD saw toothbehavior probing
for bandwidth
additively increase window size helliphellip until loss occurs (then cut window in half)
time
Transport Layer 3-19
TCP Congestion Control details
sender limits transmission
cwnd is dynamic function of perceived network congestion
TCP sending rate roughly send
cwnd bytes wait RTT for ACKS then send more bytes
last byteACKed sent not-
yet ACKed(ldquoin-flightrdquo)
last byte sent
cwnd
LastByteSent-LastByteAcked
lt cwnd
sender sequence number space
rate~~cwnd
RTTbytessec
Transport Layer 3-20
TCP Slow Start when connection
begins increase rate exponentially until first loss event initially cwnd = 1 MSS double cwnd every
RTT done by incrementing cwnd for every ACK received
summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RT
T
Host B
time
two segments
four segments
Transport Layer 3-21
TCP detecting reacting to loss
loss indicated by timeout cwnd set to 1 MSS window then grows exponentially (as in slow start) to threshold
then grows linearly loss indicated by 3 duplicate ACKs TCP RENO
dup ACKs indicate network capable of delivering some segments cwnd is cut in half window then grows linearly
TCP Tahoe always sets cwnd to 1 (timeout or 3 duplicate acks)
Transport Layer 3-22
Q when should the exponential increase switch to linear
A when cwnd gets to 12 of its value before timeout
Implementation variable ssthresh on loss event ssthresh is set to 12 of cwnd just before loss event
TCP switching from slow start to CA
Transport Layer 3-23
Summary TCP Congestion Control
timeoutssthresh = cwnd2cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd gt ssthresh
congestionavoidance
cwnd = cwnd + MSS (MSScwnd)dupACKcount = 0transmit new segment(s) as allowed
new ACK
dupACKcount++
duplicate ACK
fastrecovery
cwnd = cwnd + MSStransmit new segment(s) as allowed
duplicate ACK
ssthresh= cwnd2cwnd = ssthresh + 3
retransmit missing segment
dupACKcount == 3
timeoutssthresh = cwnd2cwnd = 1 dupACKcount = 0retransmit missing segment
ssthresh= cwnd2cwnd = ssthresh + 3retransmit missing segment
dupACKcount == 3cwnd = ssthreshdupACKcount = 0
New ACK
slow start
timeoutssthresh = cwnd2 cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd = cwnd+MSSdupACKcount = 0transmit new segment(s) as allowed
new ACKdupACKcount++
duplicate ACK
cwnd = 1 MSSssthresh = 64 KBdupACKcount = 0
NewACK
NewACK
NewACK
Transport Layer 3-24
TCP throughput avg TCP thruput as function of window
size RTT ignore slow start assume always data to send
W window size (measured in bytes) where loss occurs avg window size ( in-flight bytes) is frac34 W avg thruput is 34W per RTT
W
W2
avg TCP thruput = 34W
RTTbytessec
Transport Layer 3-25
TCP Futures TCP over ldquolong fat pipesrdquo example 1500 byte segments 100ms
RTT want 10 Gbps throughput requires W = 83333 in-flight segments throughput in terms of segment loss
probability L [Mathis 1997]
to achieve 10 Gbps throughput need a loss rate of L = 210-10 ndash a very small loss rate
new versions of TCP for high-speed
TCP throughput = 122 MSSRTT L
Transport Layer 3-26
fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckroutercapacity R
TCP Fairness
TCP connection 2
Transport Layer 3-27
Why is TCP fairtwo competing sessions additive increase gives slope of 1 as throughout
increases multiplicative decrease decreases throughput
proportionally R
R
equal bandwidth share
Connection 1 throughput
Con
nect
ion
2 th
roug
h pu t
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-28
Fairness (more)Fairness and UDP multimedia apps
often do not use TCP do not want rate
throttled by congestion control
instead use UDP send audiovideo
at constant rate tolerate packet loss
Fairness parallel TCP connections
application can open multiple parallel connections between two hosts
web browsers do this eg link of rate R with 9
existing connections new app asks for 1 TCP gets
rate R10 new app asks for 11 TCPs gets
R2
Transport Layer 3-29
Chapter 3 summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation implementation in the Internet UDP TCP
next leaving the
network ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- John Magee 20 February 2014
- Chapter 3 Transport Layer
- Chapter 3 outline
- Principles of congestion control
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Causescosts of congestion scenario 3
- Slide 13
- Approaches towards congestion control
- Case study ATM ABR congestion control
- Slide 16
- Slide 17
- TCP congestion control additive increase multiplicative decrease
- TCP Congestion Control details
- TCP Slow Start
- TCP detecting reacting to loss
- TCP switching from slow start to CA
- Summary TCP Congestion Control
- TCP throughput
- TCP Futures TCP over ldquolong fat pipesrdquo
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Chapter 3 summary
-
Transport Layer 3-12
four senders multihop paths timeoutretransmit
Q what happens as in and in
rsquo increase
finite shared output link buffers
Host A out
Causescosts of congestion scenario 3
Host B
Host C
Host D
in original data
in original data plus
retransmitted data
A as red inrsquo increases all arriving
blue pkts at upper queue are dropped blue throughput 0
Transport Layer 3-13
another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission
capacity used for that packet was wasted
Causescosts of congestion scenario 3
C2
C2
ou
t
inrsquo
Transport Layer 3-14
Approaches towards congestion controltwo broad approaches towards congestion
controlend-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 systemssingle bit indicating congestion (SNA DECbit TCPIP ECN ATM)
explicit rate for sender to send at
Transport Layer 3-15
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should
use available bandwidth
if senderrsquos path congested sender throttled
to minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-16
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell sendersrsquo send rate thus max supportable rate on path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set receiver
sets CI bit in returned RM cell
RM cell data cell
Transport Layer 3-17
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
management36 principles of
congestion control37 TCP congestion
control
Transport Layer 3-18
TCP congestion control additive increase multiplicative decrease
approach sender increases transmission rate (window size) probing for usable bandwidth until loss occurs additive increase increase cwnd by 1
MSS every RTT until loss detected multiplicative decrease cut cwnd in half
after loss
cwnd
TC
P s
ende
r co
nges
tion
win
dow
siz
e
AIMD saw toothbehavior probing
for bandwidth
additively increase window size helliphellip until loss occurs (then cut window in half)
time
Transport Layer 3-19
TCP Congestion Control details
sender limits transmission
cwnd is dynamic function of perceived network congestion
TCP sending rate roughly send
cwnd bytes wait RTT for ACKS then send more bytes
last byteACKed sent not-
yet ACKed(ldquoin-flightrdquo)
last byte sent
cwnd
LastByteSent-LastByteAcked
lt cwnd
sender sequence number space
rate~~cwnd
RTTbytessec
Transport Layer 3-20
TCP Slow Start when connection
begins increase rate exponentially until first loss event initially cwnd = 1 MSS double cwnd every
RTT done by incrementing cwnd for every ACK received
summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RT
T
Host B
time
two segments
four segments
Transport Layer 3-21
TCP detecting reacting to loss
loss indicated by timeout cwnd set to 1 MSS window then grows exponentially (as in slow start) to threshold
then grows linearly loss indicated by 3 duplicate ACKs TCP RENO
dup ACKs indicate network capable of delivering some segments cwnd is cut in half window then grows linearly
TCP Tahoe always sets cwnd to 1 (timeout or 3 duplicate acks)
Transport Layer 3-22
Q when should the exponential increase switch to linear
A when cwnd gets to 12 of its value before timeout
Implementation variable ssthresh on loss event ssthresh is set to 12 of cwnd just before loss event
TCP switching from slow start to CA
Transport Layer 3-23
Summary TCP Congestion Control
timeoutssthresh = cwnd2cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd gt ssthresh
congestionavoidance
cwnd = cwnd + MSS (MSScwnd)dupACKcount = 0transmit new segment(s) as allowed
new ACK
dupACKcount++
duplicate ACK
fastrecovery
cwnd = cwnd + MSStransmit new segment(s) as allowed
duplicate ACK
ssthresh= cwnd2cwnd = ssthresh + 3
retransmit missing segment
dupACKcount == 3
timeoutssthresh = cwnd2cwnd = 1 dupACKcount = 0retransmit missing segment
ssthresh= cwnd2cwnd = ssthresh + 3retransmit missing segment
dupACKcount == 3cwnd = ssthreshdupACKcount = 0
New ACK
slow start
timeoutssthresh = cwnd2 cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd = cwnd+MSSdupACKcount = 0transmit new segment(s) as allowed
new ACKdupACKcount++
duplicate ACK
cwnd = 1 MSSssthresh = 64 KBdupACKcount = 0
NewACK
NewACK
NewACK
Transport Layer 3-24
TCP throughput avg TCP thruput as function of window
size RTT ignore slow start assume always data to send
W window size (measured in bytes) where loss occurs avg window size ( in-flight bytes) is frac34 W avg thruput is 34W per RTT
W
W2
avg TCP thruput = 34W
RTTbytessec
Transport Layer 3-25
TCP Futures TCP over ldquolong fat pipesrdquo example 1500 byte segments 100ms
RTT want 10 Gbps throughput requires W = 83333 in-flight segments throughput in terms of segment loss
probability L [Mathis 1997]
to achieve 10 Gbps throughput need a loss rate of L = 210-10 ndash a very small loss rate
new versions of TCP for high-speed
TCP throughput = 122 MSSRTT L
Transport Layer 3-26
fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckroutercapacity R
TCP Fairness
TCP connection 2
Transport Layer 3-27
Why is TCP fairtwo competing sessions additive increase gives slope of 1 as throughout
increases multiplicative decrease decreases throughput
proportionally R
R
equal bandwidth share
Connection 1 throughput
Con
nect
ion
2 th
roug
h pu t
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-28
Fairness (more)Fairness and UDP multimedia apps
often do not use TCP do not want rate
throttled by congestion control
instead use UDP send audiovideo
at constant rate tolerate packet loss
Fairness parallel TCP connections
application can open multiple parallel connections between two hosts
web browsers do this eg link of rate R with 9
existing connections new app asks for 1 TCP gets
rate R10 new app asks for 11 TCPs gets
R2
Transport Layer 3-29
Chapter 3 summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation implementation in the Internet UDP TCP
next leaving the
network ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- John Magee 20 February 2014
- Chapter 3 Transport Layer
- Chapter 3 outline
- Principles of congestion control
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Causescosts of congestion scenario 3
- Slide 13
- Approaches towards congestion control
- Case study ATM ABR congestion control
- Slide 16
- Slide 17
- TCP congestion control additive increase multiplicative decrease
- TCP Congestion Control details
- TCP Slow Start
- TCP detecting reacting to loss
- TCP switching from slow start to CA
- Summary TCP Congestion Control
- TCP throughput
- TCP Futures TCP over ldquolong fat pipesrdquo
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Chapter 3 summary
-
Transport Layer 3-13
another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission
capacity used for that packet was wasted
Causescosts of congestion scenario 3
C2
C2
ou
t
inrsquo
Transport Layer 3-14
Approaches towards congestion controltwo broad approaches towards congestion
controlend-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 systemssingle bit indicating congestion (SNA DECbit TCPIP ECN ATM)
explicit rate for sender to send at
Transport Layer 3-15
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should
use available bandwidth
if senderrsquos path congested sender throttled
to minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-16
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell sendersrsquo send rate thus max supportable rate on path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set receiver
sets CI bit in returned RM cell
RM cell data cell
Transport Layer 3-17
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
management36 principles of
congestion control37 TCP congestion
control
Transport Layer 3-18
TCP congestion control additive increase multiplicative decrease
approach sender increases transmission rate (window size) probing for usable bandwidth until loss occurs additive increase increase cwnd by 1
MSS every RTT until loss detected multiplicative decrease cut cwnd in half
after loss
cwnd
TC
P s
ende
r co
nges
tion
win
dow
siz
e
AIMD saw toothbehavior probing
for bandwidth
additively increase window size helliphellip until loss occurs (then cut window in half)
time
Transport Layer 3-19
TCP Congestion Control details
sender limits transmission
cwnd is dynamic function of perceived network congestion
TCP sending rate roughly send
cwnd bytes wait RTT for ACKS then send more bytes
last byteACKed sent not-
yet ACKed(ldquoin-flightrdquo)
last byte sent
cwnd
LastByteSent-LastByteAcked
lt cwnd
sender sequence number space
rate~~cwnd
RTTbytessec
Transport Layer 3-20
TCP Slow Start when connection
begins increase rate exponentially until first loss event initially cwnd = 1 MSS double cwnd every
RTT done by incrementing cwnd for every ACK received
summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RT
T
Host B
time
two segments
four segments
Transport Layer 3-21
TCP detecting reacting to loss
loss indicated by timeout cwnd set to 1 MSS window then grows exponentially (as in slow start) to threshold
then grows linearly loss indicated by 3 duplicate ACKs TCP RENO
dup ACKs indicate network capable of delivering some segments cwnd is cut in half window then grows linearly
TCP Tahoe always sets cwnd to 1 (timeout or 3 duplicate acks)
Transport Layer 3-22
Q when should the exponential increase switch to linear
A when cwnd gets to 12 of its value before timeout
Implementation variable ssthresh on loss event ssthresh is set to 12 of cwnd just before loss event
TCP switching from slow start to CA
Transport Layer 3-23
Summary TCP Congestion Control
timeoutssthresh = cwnd2cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd gt ssthresh
congestionavoidance
cwnd = cwnd + MSS (MSScwnd)dupACKcount = 0transmit new segment(s) as allowed
new ACK
dupACKcount++
duplicate ACK
fastrecovery
cwnd = cwnd + MSStransmit new segment(s) as allowed
duplicate ACK
ssthresh= cwnd2cwnd = ssthresh + 3
retransmit missing segment
dupACKcount == 3
timeoutssthresh = cwnd2cwnd = 1 dupACKcount = 0retransmit missing segment
ssthresh= cwnd2cwnd = ssthresh + 3retransmit missing segment
dupACKcount == 3cwnd = ssthreshdupACKcount = 0
New ACK
slow start
timeoutssthresh = cwnd2 cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd = cwnd+MSSdupACKcount = 0transmit new segment(s) as allowed
new ACKdupACKcount++
duplicate ACK
cwnd = 1 MSSssthresh = 64 KBdupACKcount = 0
NewACK
NewACK
NewACK
Transport Layer 3-24
TCP throughput avg TCP thruput as function of window
size RTT ignore slow start assume always data to send
W window size (measured in bytes) where loss occurs avg window size ( in-flight bytes) is frac34 W avg thruput is 34W per RTT
W
W2
avg TCP thruput = 34W
RTTbytessec
Transport Layer 3-25
TCP Futures TCP over ldquolong fat pipesrdquo example 1500 byte segments 100ms
RTT want 10 Gbps throughput requires W = 83333 in-flight segments throughput in terms of segment loss
probability L [Mathis 1997]
to achieve 10 Gbps throughput need a loss rate of L = 210-10 ndash a very small loss rate
new versions of TCP for high-speed
TCP throughput = 122 MSSRTT L
Transport Layer 3-26
fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckroutercapacity R
TCP Fairness
TCP connection 2
Transport Layer 3-27
Why is TCP fairtwo competing sessions additive increase gives slope of 1 as throughout
increases multiplicative decrease decreases throughput
proportionally R
R
equal bandwidth share
Connection 1 throughput
Con
nect
ion
2 th
roug
h pu t
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-28
Fairness (more)Fairness and UDP multimedia apps
often do not use TCP do not want rate
throttled by congestion control
instead use UDP send audiovideo
at constant rate tolerate packet loss
Fairness parallel TCP connections
application can open multiple parallel connections between two hosts
web browsers do this eg link of rate R with 9
existing connections new app asks for 1 TCP gets
rate R10 new app asks for 11 TCPs gets
R2
Transport Layer 3-29
Chapter 3 summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation implementation in the Internet UDP TCP
next leaving the
network ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- John Magee 20 February 2014
- Chapter 3 Transport Layer
- Chapter 3 outline
- Principles of congestion control
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Causescosts of congestion scenario 3
- Slide 13
- Approaches towards congestion control
- Case study ATM ABR congestion control
- Slide 16
- Slide 17
- TCP congestion control additive increase multiplicative decrease
- TCP Congestion Control details
- TCP Slow Start
- TCP detecting reacting to loss
- TCP switching from slow start to CA
- Summary TCP Congestion Control
- TCP throughput
- TCP Futures TCP over ldquolong fat pipesrdquo
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Chapter 3 summary
-
Transport Layer 3-14
Approaches towards congestion controltwo broad approaches towards congestion
controlend-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 systemssingle bit indicating congestion (SNA DECbit TCPIP ECN ATM)
explicit rate for sender to send at
Transport Layer 3-15
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should
use available bandwidth
if senderrsquos path congested sender throttled
to minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-16
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell sendersrsquo send rate thus max supportable rate on path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set receiver
sets CI bit in returned RM cell
RM cell data cell
Transport Layer 3-17
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
management36 principles of
congestion control37 TCP congestion
control
Transport Layer 3-18
TCP congestion control additive increase multiplicative decrease
approach sender increases transmission rate (window size) probing for usable bandwidth until loss occurs additive increase increase cwnd by 1
MSS every RTT until loss detected multiplicative decrease cut cwnd in half
after loss
cwnd
TC
P s
ende
r co
nges
tion
win
dow
siz
e
AIMD saw toothbehavior probing
for bandwidth
additively increase window size helliphellip until loss occurs (then cut window in half)
time
Transport Layer 3-19
TCP Congestion Control details
sender limits transmission
cwnd is dynamic function of perceived network congestion
TCP sending rate roughly send
cwnd bytes wait RTT for ACKS then send more bytes
last byteACKed sent not-
yet ACKed(ldquoin-flightrdquo)
last byte sent
cwnd
LastByteSent-LastByteAcked
lt cwnd
sender sequence number space
rate~~cwnd
RTTbytessec
Transport Layer 3-20
TCP Slow Start when connection
begins increase rate exponentially until first loss event initially cwnd = 1 MSS double cwnd every
RTT done by incrementing cwnd for every ACK received
summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RT
T
Host B
time
two segments
four segments
Transport Layer 3-21
TCP detecting reacting to loss
loss indicated by timeout cwnd set to 1 MSS window then grows exponentially (as in slow start) to threshold
then grows linearly loss indicated by 3 duplicate ACKs TCP RENO
dup ACKs indicate network capable of delivering some segments cwnd is cut in half window then grows linearly
TCP Tahoe always sets cwnd to 1 (timeout or 3 duplicate acks)
Transport Layer 3-22
Q when should the exponential increase switch to linear
A when cwnd gets to 12 of its value before timeout
Implementation variable ssthresh on loss event ssthresh is set to 12 of cwnd just before loss event
TCP switching from slow start to CA
Transport Layer 3-23
Summary TCP Congestion Control
timeoutssthresh = cwnd2cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd gt ssthresh
congestionavoidance
cwnd = cwnd + MSS (MSScwnd)dupACKcount = 0transmit new segment(s) as allowed
new ACK
dupACKcount++
duplicate ACK
fastrecovery
cwnd = cwnd + MSStransmit new segment(s) as allowed
duplicate ACK
ssthresh= cwnd2cwnd = ssthresh + 3
retransmit missing segment
dupACKcount == 3
timeoutssthresh = cwnd2cwnd = 1 dupACKcount = 0retransmit missing segment
ssthresh= cwnd2cwnd = ssthresh + 3retransmit missing segment
dupACKcount == 3cwnd = ssthreshdupACKcount = 0
New ACK
slow start
timeoutssthresh = cwnd2 cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd = cwnd+MSSdupACKcount = 0transmit new segment(s) as allowed
new ACKdupACKcount++
duplicate ACK
cwnd = 1 MSSssthresh = 64 KBdupACKcount = 0
NewACK
NewACK
NewACK
Transport Layer 3-24
TCP throughput avg TCP thruput as function of window
size RTT ignore slow start assume always data to send
W window size (measured in bytes) where loss occurs avg window size ( in-flight bytes) is frac34 W avg thruput is 34W per RTT
W
W2
avg TCP thruput = 34W
RTTbytessec
Transport Layer 3-25
TCP Futures TCP over ldquolong fat pipesrdquo example 1500 byte segments 100ms
RTT want 10 Gbps throughput requires W = 83333 in-flight segments throughput in terms of segment loss
probability L [Mathis 1997]
to achieve 10 Gbps throughput need a loss rate of L = 210-10 ndash a very small loss rate
new versions of TCP for high-speed
TCP throughput = 122 MSSRTT L
Transport Layer 3-26
fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckroutercapacity R
TCP Fairness
TCP connection 2
Transport Layer 3-27
Why is TCP fairtwo competing sessions additive increase gives slope of 1 as throughout
increases multiplicative decrease decreases throughput
proportionally R
R
equal bandwidth share
Connection 1 throughput
Con
nect
ion
2 th
roug
h pu t
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-28
Fairness (more)Fairness and UDP multimedia apps
often do not use TCP do not want rate
throttled by congestion control
instead use UDP send audiovideo
at constant rate tolerate packet loss
Fairness parallel TCP connections
application can open multiple parallel connections between two hosts
web browsers do this eg link of rate R with 9
existing connections new app asks for 1 TCP gets
rate R10 new app asks for 11 TCPs gets
R2
Transport Layer 3-29
Chapter 3 summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation implementation in the Internet UDP TCP
next leaving the
network ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- John Magee 20 February 2014
- Chapter 3 Transport Layer
- Chapter 3 outline
- Principles of congestion control
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Causescosts of congestion scenario 3
- Slide 13
- Approaches towards congestion control
- Case study ATM ABR congestion control
- Slide 16
- Slide 17
- TCP congestion control additive increase multiplicative decrease
- TCP Congestion Control details
- TCP Slow Start
- TCP detecting reacting to loss
- TCP switching from slow start to CA
- Summary TCP Congestion Control
- TCP throughput
- TCP Futures TCP over ldquolong fat pipesrdquo
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Chapter 3 summary
-
Transport Layer 3-15
Case study ATM ABR congestion control
ABR available bit rate
ldquoelastic servicerdquo if senderrsquos path
ldquounderloadedrdquo sender should
use available bandwidth
if senderrsquos path congested sender throttled
to minimum guaranteed rate
RM (resource management) cells
sent by sender interspersed with data cells
bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate
(mild congestion) CI bit congestion
indication RM cells returned to sender
by receiver with bits intact
Transport Layer 3-16
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell sendersrsquo send rate thus max supportable rate on path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set receiver
sets CI bit in returned RM cell
RM cell data cell
Transport Layer 3-17
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
management36 principles of
congestion control37 TCP congestion
control
Transport Layer 3-18
TCP congestion control additive increase multiplicative decrease
approach sender increases transmission rate (window size) probing for usable bandwidth until loss occurs additive increase increase cwnd by 1
MSS every RTT until loss detected multiplicative decrease cut cwnd in half
after loss
cwnd
TC
P s
ende
r co
nges
tion
win
dow
siz
e
AIMD saw toothbehavior probing
for bandwidth
additively increase window size helliphellip until loss occurs (then cut window in half)
time
Transport Layer 3-19
TCP Congestion Control details
sender limits transmission
cwnd is dynamic function of perceived network congestion
TCP sending rate roughly send
cwnd bytes wait RTT for ACKS then send more bytes
last byteACKed sent not-
yet ACKed(ldquoin-flightrdquo)
last byte sent
cwnd
LastByteSent-LastByteAcked
lt cwnd
sender sequence number space
rate~~cwnd
RTTbytessec
Transport Layer 3-20
TCP Slow Start when connection
begins increase rate exponentially until first loss event initially cwnd = 1 MSS double cwnd every
RTT done by incrementing cwnd for every ACK received
summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RT
T
Host B
time
two segments
four segments
Transport Layer 3-21
TCP detecting reacting to loss
loss indicated by timeout cwnd set to 1 MSS window then grows exponentially (as in slow start) to threshold
then grows linearly loss indicated by 3 duplicate ACKs TCP RENO
dup ACKs indicate network capable of delivering some segments cwnd is cut in half window then grows linearly
TCP Tahoe always sets cwnd to 1 (timeout or 3 duplicate acks)
Transport Layer 3-22
Q when should the exponential increase switch to linear
A when cwnd gets to 12 of its value before timeout
Implementation variable ssthresh on loss event ssthresh is set to 12 of cwnd just before loss event
TCP switching from slow start to CA
Transport Layer 3-23
Summary TCP Congestion Control
timeoutssthresh = cwnd2cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd gt ssthresh
congestionavoidance
cwnd = cwnd + MSS (MSScwnd)dupACKcount = 0transmit new segment(s) as allowed
new ACK
dupACKcount++
duplicate ACK
fastrecovery
cwnd = cwnd + MSStransmit new segment(s) as allowed
duplicate ACK
ssthresh= cwnd2cwnd = ssthresh + 3
retransmit missing segment
dupACKcount == 3
timeoutssthresh = cwnd2cwnd = 1 dupACKcount = 0retransmit missing segment
ssthresh= cwnd2cwnd = ssthresh + 3retransmit missing segment
dupACKcount == 3cwnd = ssthreshdupACKcount = 0
New ACK
slow start
timeoutssthresh = cwnd2 cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd = cwnd+MSSdupACKcount = 0transmit new segment(s) as allowed
new ACKdupACKcount++
duplicate ACK
cwnd = 1 MSSssthresh = 64 KBdupACKcount = 0
NewACK
NewACK
NewACK
Transport Layer 3-24
TCP throughput avg TCP thruput as function of window
size RTT ignore slow start assume always data to send
W window size (measured in bytes) where loss occurs avg window size ( in-flight bytes) is frac34 W avg thruput is 34W per RTT
W
W2
avg TCP thruput = 34W
RTTbytessec
Transport Layer 3-25
TCP Futures TCP over ldquolong fat pipesrdquo example 1500 byte segments 100ms
RTT want 10 Gbps throughput requires W = 83333 in-flight segments throughput in terms of segment loss
probability L [Mathis 1997]
to achieve 10 Gbps throughput need a loss rate of L = 210-10 ndash a very small loss rate
new versions of TCP for high-speed
TCP throughput = 122 MSSRTT L
Transport Layer 3-26
fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckroutercapacity R
TCP Fairness
TCP connection 2
Transport Layer 3-27
Why is TCP fairtwo competing sessions additive increase gives slope of 1 as throughout
increases multiplicative decrease decreases throughput
proportionally R
R
equal bandwidth share
Connection 1 throughput
Con
nect
ion
2 th
roug
h pu t
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-28
Fairness (more)Fairness and UDP multimedia apps
often do not use TCP do not want rate
throttled by congestion control
instead use UDP send audiovideo
at constant rate tolerate packet loss
Fairness parallel TCP connections
application can open multiple parallel connections between two hosts
web browsers do this eg link of rate R with 9
existing connections new app asks for 1 TCP gets
rate R10 new app asks for 11 TCPs gets
R2
Transport Layer 3-29
Chapter 3 summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation implementation in the Internet UDP TCP
next leaving the
network ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- John Magee 20 February 2014
- Chapter 3 Transport Layer
- Chapter 3 outline
- Principles of congestion control
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Causescosts of congestion scenario 3
- Slide 13
- Approaches towards congestion control
- Case study ATM ABR congestion control
- Slide 16
- Slide 17
- TCP congestion control additive increase multiplicative decrease
- TCP Congestion Control details
- TCP Slow Start
- TCP detecting reacting to loss
- TCP switching from slow start to CA
- Summary TCP Congestion Control
- TCP throughput
- TCP Futures TCP over ldquolong fat pipesrdquo
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Chapter 3 summary
-
Transport Layer 3-16
Case study ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell sendersrsquo send rate thus max supportable rate on path
EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set receiver
sets CI bit in returned RM cell
RM cell data cell
Transport Layer 3-17
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
management36 principles of
congestion control37 TCP congestion
control
Transport Layer 3-18
TCP congestion control additive increase multiplicative decrease
approach sender increases transmission rate (window size) probing for usable bandwidth until loss occurs additive increase increase cwnd by 1
MSS every RTT until loss detected multiplicative decrease cut cwnd in half
after loss
cwnd
TC
P s
ende
r co
nges
tion
win
dow
siz
e
AIMD saw toothbehavior probing
for bandwidth
additively increase window size helliphellip until loss occurs (then cut window in half)
time
Transport Layer 3-19
TCP Congestion Control details
sender limits transmission
cwnd is dynamic function of perceived network congestion
TCP sending rate roughly send
cwnd bytes wait RTT for ACKS then send more bytes
last byteACKed sent not-
yet ACKed(ldquoin-flightrdquo)
last byte sent
cwnd
LastByteSent-LastByteAcked
lt cwnd
sender sequence number space
rate~~cwnd
RTTbytessec
Transport Layer 3-20
TCP Slow Start when connection
begins increase rate exponentially until first loss event initially cwnd = 1 MSS double cwnd every
RTT done by incrementing cwnd for every ACK received
summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RT
T
Host B
time
two segments
four segments
Transport Layer 3-21
TCP detecting reacting to loss
loss indicated by timeout cwnd set to 1 MSS window then grows exponentially (as in slow start) to threshold
then grows linearly loss indicated by 3 duplicate ACKs TCP RENO
dup ACKs indicate network capable of delivering some segments cwnd is cut in half window then grows linearly
TCP Tahoe always sets cwnd to 1 (timeout or 3 duplicate acks)
Transport Layer 3-22
Q when should the exponential increase switch to linear
A when cwnd gets to 12 of its value before timeout
Implementation variable ssthresh on loss event ssthresh is set to 12 of cwnd just before loss event
TCP switching from slow start to CA
Transport Layer 3-23
Summary TCP Congestion Control
timeoutssthresh = cwnd2cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd gt ssthresh
congestionavoidance
cwnd = cwnd + MSS (MSScwnd)dupACKcount = 0transmit new segment(s) as allowed
new ACK
dupACKcount++
duplicate ACK
fastrecovery
cwnd = cwnd + MSStransmit new segment(s) as allowed
duplicate ACK
ssthresh= cwnd2cwnd = ssthresh + 3
retransmit missing segment
dupACKcount == 3
timeoutssthresh = cwnd2cwnd = 1 dupACKcount = 0retransmit missing segment
ssthresh= cwnd2cwnd = ssthresh + 3retransmit missing segment
dupACKcount == 3cwnd = ssthreshdupACKcount = 0
New ACK
slow start
timeoutssthresh = cwnd2 cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd = cwnd+MSSdupACKcount = 0transmit new segment(s) as allowed
new ACKdupACKcount++
duplicate ACK
cwnd = 1 MSSssthresh = 64 KBdupACKcount = 0
NewACK
NewACK
NewACK
Transport Layer 3-24
TCP throughput avg TCP thruput as function of window
size RTT ignore slow start assume always data to send
W window size (measured in bytes) where loss occurs avg window size ( in-flight bytes) is frac34 W avg thruput is 34W per RTT
W
W2
avg TCP thruput = 34W
RTTbytessec
Transport Layer 3-25
TCP Futures TCP over ldquolong fat pipesrdquo example 1500 byte segments 100ms
RTT want 10 Gbps throughput requires W = 83333 in-flight segments throughput in terms of segment loss
probability L [Mathis 1997]
to achieve 10 Gbps throughput need a loss rate of L = 210-10 ndash a very small loss rate
new versions of TCP for high-speed
TCP throughput = 122 MSSRTT L
Transport Layer 3-26
fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckroutercapacity R
TCP Fairness
TCP connection 2
Transport Layer 3-27
Why is TCP fairtwo competing sessions additive increase gives slope of 1 as throughout
increases multiplicative decrease decreases throughput
proportionally R
R
equal bandwidth share
Connection 1 throughput
Con
nect
ion
2 th
roug
h pu t
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-28
Fairness (more)Fairness and UDP multimedia apps
often do not use TCP do not want rate
throttled by congestion control
instead use UDP send audiovideo
at constant rate tolerate packet loss
Fairness parallel TCP connections
application can open multiple parallel connections between two hosts
web browsers do this eg link of rate R with 9
existing connections new app asks for 1 TCP gets
rate R10 new app asks for 11 TCPs gets
R2
Transport Layer 3-29
Chapter 3 summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation implementation in the Internet UDP TCP
next leaving the
network ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- John Magee 20 February 2014
- Chapter 3 Transport Layer
- Chapter 3 outline
- Principles of congestion control
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Causescosts of congestion scenario 3
- Slide 13
- Approaches towards congestion control
- Case study ATM ABR congestion control
- Slide 16
- Slide 17
- TCP congestion control additive increase multiplicative decrease
- TCP Congestion Control details
- TCP Slow Start
- TCP detecting reacting to loss
- TCP switching from slow start to CA
- Summary TCP Congestion Control
- TCP throughput
- TCP Futures TCP over ldquolong fat pipesrdquo
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Chapter 3 summary
-
Transport Layer 3-17
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
management36 principles of
congestion control37 TCP congestion
control
Transport Layer 3-18
TCP congestion control additive increase multiplicative decrease
approach sender increases transmission rate (window size) probing for usable bandwidth until loss occurs additive increase increase cwnd by 1
MSS every RTT until loss detected multiplicative decrease cut cwnd in half
after loss
cwnd
TC
P s
ende
r co
nges
tion
win
dow
siz
e
AIMD saw toothbehavior probing
for bandwidth
additively increase window size helliphellip until loss occurs (then cut window in half)
time
Transport Layer 3-19
TCP Congestion Control details
sender limits transmission
cwnd is dynamic function of perceived network congestion
TCP sending rate roughly send
cwnd bytes wait RTT for ACKS then send more bytes
last byteACKed sent not-
yet ACKed(ldquoin-flightrdquo)
last byte sent
cwnd
LastByteSent-LastByteAcked
lt cwnd
sender sequence number space
rate~~cwnd
RTTbytessec
Transport Layer 3-20
TCP Slow Start when connection
begins increase rate exponentially until first loss event initially cwnd = 1 MSS double cwnd every
RTT done by incrementing cwnd for every ACK received
summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RT
T
Host B
time
two segments
four segments
Transport Layer 3-21
TCP detecting reacting to loss
loss indicated by timeout cwnd set to 1 MSS window then grows exponentially (as in slow start) to threshold
then grows linearly loss indicated by 3 duplicate ACKs TCP RENO
dup ACKs indicate network capable of delivering some segments cwnd is cut in half window then grows linearly
TCP Tahoe always sets cwnd to 1 (timeout or 3 duplicate acks)
Transport Layer 3-22
Q when should the exponential increase switch to linear
A when cwnd gets to 12 of its value before timeout
Implementation variable ssthresh on loss event ssthresh is set to 12 of cwnd just before loss event
TCP switching from slow start to CA
Transport Layer 3-23
Summary TCP Congestion Control
timeoutssthresh = cwnd2cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd gt ssthresh
congestionavoidance
cwnd = cwnd + MSS (MSScwnd)dupACKcount = 0transmit new segment(s) as allowed
new ACK
dupACKcount++
duplicate ACK
fastrecovery
cwnd = cwnd + MSStransmit new segment(s) as allowed
duplicate ACK
ssthresh= cwnd2cwnd = ssthresh + 3
retransmit missing segment
dupACKcount == 3
timeoutssthresh = cwnd2cwnd = 1 dupACKcount = 0retransmit missing segment
ssthresh= cwnd2cwnd = ssthresh + 3retransmit missing segment
dupACKcount == 3cwnd = ssthreshdupACKcount = 0
New ACK
slow start
timeoutssthresh = cwnd2 cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd = cwnd+MSSdupACKcount = 0transmit new segment(s) as allowed
new ACKdupACKcount++
duplicate ACK
cwnd = 1 MSSssthresh = 64 KBdupACKcount = 0
NewACK
NewACK
NewACK
Transport Layer 3-24
TCP throughput avg TCP thruput as function of window
size RTT ignore slow start assume always data to send
W window size (measured in bytes) where loss occurs avg window size ( in-flight bytes) is frac34 W avg thruput is 34W per RTT
W
W2
avg TCP thruput = 34W
RTTbytessec
Transport Layer 3-25
TCP Futures TCP over ldquolong fat pipesrdquo example 1500 byte segments 100ms
RTT want 10 Gbps throughput requires W = 83333 in-flight segments throughput in terms of segment loss
probability L [Mathis 1997]
to achieve 10 Gbps throughput need a loss rate of L = 210-10 ndash a very small loss rate
new versions of TCP for high-speed
TCP throughput = 122 MSSRTT L
Transport Layer 3-26
fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckroutercapacity R
TCP Fairness
TCP connection 2
Transport Layer 3-27
Why is TCP fairtwo competing sessions additive increase gives slope of 1 as throughout
increases multiplicative decrease decreases throughput
proportionally R
R
equal bandwidth share
Connection 1 throughput
Con
nect
ion
2 th
roug
h pu t
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-28
Fairness (more)Fairness and UDP multimedia apps
often do not use TCP do not want rate
throttled by congestion control
instead use UDP send audiovideo
at constant rate tolerate packet loss
Fairness parallel TCP connections
application can open multiple parallel connections between two hosts
web browsers do this eg link of rate R with 9
existing connections new app asks for 1 TCP gets
rate R10 new app asks for 11 TCPs gets
R2
Transport Layer 3-29
Chapter 3 summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation implementation in the Internet UDP TCP
next leaving the
network ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- John Magee 20 February 2014
- Chapter 3 Transport Layer
- Chapter 3 outline
- Principles of congestion control
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Causescosts of congestion scenario 3
- Slide 13
- Approaches towards congestion control
- Case study ATM ABR congestion control
- Slide 16
- Slide 17
- TCP congestion control additive increase multiplicative decrease
- TCP Congestion Control details
- TCP Slow Start
- TCP detecting reacting to loss
- TCP switching from slow start to CA
- Summary TCP Congestion Control
- TCP throughput
- TCP Futures TCP over ldquolong fat pipesrdquo
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Chapter 3 summary
-
Transport Layer 3-18
TCP congestion control additive increase multiplicative decrease
approach sender increases transmission rate (window size) probing for usable bandwidth until loss occurs additive increase increase cwnd by 1
MSS every RTT until loss detected multiplicative decrease cut cwnd in half
after loss
cwnd
TC
P s
ende
r co
nges
tion
win
dow
siz
e
AIMD saw toothbehavior probing
for bandwidth
additively increase window size helliphellip until loss occurs (then cut window in half)
time
Transport Layer 3-19
TCP Congestion Control details
sender limits transmission
cwnd is dynamic function of perceived network congestion
TCP sending rate roughly send
cwnd bytes wait RTT for ACKS then send more bytes
last byteACKed sent not-
yet ACKed(ldquoin-flightrdquo)
last byte sent
cwnd
LastByteSent-LastByteAcked
lt cwnd
sender sequence number space
rate~~cwnd
RTTbytessec
Transport Layer 3-20
TCP Slow Start when connection
begins increase rate exponentially until first loss event initially cwnd = 1 MSS double cwnd every
RTT done by incrementing cwnd for every ACK received
summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RT
T
Host B
time
two segments
four segments
Transport Layer 3-21
TCP detecting reacting to loss
loss indicated by timeout cwnd set to 1 MSS window then grows exponentially (as in slow start) to threshold
then grows linearly loss indicated by 3 duplicate ACKs TCP RENO
dup ACKs indicate network capable of delivering some segments cwnd is cut in half window then grows linearly
TCP Tahoe always sets cwnd to 1 (timeout or 3 duplicate acks)
Transport Layer 3-22
Q when should the exponential increase switch to linear
A when cwnd gets to 12 of its value before timeout
Implementation variable ssthresh on loss event ssthresh is set to 12 of cwnd just before loss event
TCP switching from slow start to CA
Transport Layer 3-23
Summary TCP Congestion Control
timeoutssthresh = cwnd2cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd gt ssthresh
congestionavoidance
cwnd = cwnd + MSS (MSScwnd)dupACKcount = 0transmit new segment(s) as allowed
new ACK
dupACKcount++
duplicate ACK
fastrecovery
cwnd = cwnd + MSStransmit new segment(s) as allowed
duplicate ACK
ssthresh= cwnd2cwnd = ssthresh + 3
retransmit missing segment
dupACKcount == 3
timeoutssthresh = cwnd2cwnd = 1 dupACKcount = 0retransmit missing segment
ssthresh= cwnd2cwnd = ssthresh + 3retransmit missing segment
dupACKcount == 3cwnd = ssthreshdupACKcount = 0
New ACK
slow start
timeoutssthresh = cwnd2 cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd = cwnd+MSSdupACKcount = 0transmit new segment(s) as allowed
new ACKdupACKcount++
duplicate ACK
cwnd = 1 MSSssthresh = 64 KBdupACKcount = 0
NewACK
NewACK
NewACK
Transport Layer 3-24
TCP throughput avg TCP thruput as function of window
size RTT ignore slow start assume always data to send
W window size (measured in bytes) where loss occurs avg window size ( in-flight bytes) is frac34 W avg thruput is 34W per RTT
W
W2
avg TCP thruput = 34W
RTTbytessec
Transport Layer 3-25
TCP Futures TCP over ldquolong fat pipesrdquo example 1500 byte segments 100ms
RTT want 10 Gbps throughput requires W = 83333 in-flight segments throughput in terms of segment loss
probability L [Mathis 1997]
to achieve 10 Gbps throughput need a loss rate of L = 210-10 ndash a very small loss rate
new versions of TCP for high-speed
TCP throughput = 122 MSSRTT L
Transport Layer 3-26
fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckroutercapacity R
TCP Fairness
TCP connection 2
Transport Layer 3-27
Why is TCP fairtwo competing sessions additive increase gives slope of 1 as throughout
increases multiplicative decrease decreases throughput
proportionally R
R
equal bandwidth share
Connection 1 throughput
Con
nect
ion
2 th
roug
h pu t
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-28
Fairness (more)Fairness and UDP multimedia apps
often do not use TCP do not want rate
throttled by congestion control
instead use UDP send audiovideo
at constant rate tolerate packet loss
Fairness parallel TCP connections
application can open multiple parallel connections between two hosts
web browsers do this eg link of rate R with 9
existing connections new app asks for 1 TCP gets
rate R10 new app asks for 11 TCPs gets
R2
Transport Layer 3-29
Chapter 3 summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation implementation in the Internet UDP TCP
next leaving the
network ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- John Magee 20 February 2014
- Chapter 3 Transport Layer
- Chapter 3 outline
- Principles of congestion control
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Causescosts of congestion scenario 3
- Slide 13
- Approaches towards congestion control
- Case study ATM ABR congestion control
- Slide 16
- Slide 17
- TCP congestion control additive increase multiplicative decrease
- TCP Congestion Control details
- TCP Slow Start
- TCP detecting reacting to loss
- TCP switching from slow start to CA
- Summary TCP Congestion Control
- TCP throughput
- TCP Futures TCP over ldquolong fat pipesrdquo
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Chapter 3 summary
-
Transport Layer 3-19
TCP Congestion Control details
sender limits transmission
cwnd is dynamic function of perceived network congestion
TCP sending rate roughly send
cwnd bytes wait RTT for ACKS then send more bytes
last byteACKed sent not-
yet ACKed(ldquoin-flightrdquo)
last byte sent
cwnd
LastByteSent-LastByteAcked
lt cwnd
sender sequence number space
rate~~cwnd
RTTbytessec
Transport Layer 3-20
TCP Slow Start when connection
begins increase rate exponentially until first loss event initially cwnd = 1 MSS double cwnd every
RTT done by incrementing cwnd for every ACK received
summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RT
T
Host B
time
two segments
four segments
Transport Layer 3-21
TCP detecting reacting to loss
loss indicated by timeout cwnd set to 1 MSS window then grows exponentially (as in slow start) to threshold
then grows linearly loss indicated by 3 duplicate ACKs TCP RENO
dup ACKs indicate network capable of delivering some segments cwnd is cut in half window then grows linearly
TCP Tahoe always sets cwnd to 1 (timeout or 3 duplicate acks)
Transport Layer 3-22
Q when should the exponential increase switch to linear
A when cwnd gets to 12 of its value before timeout
Implementation variable ssthresh on loss event ssthresh is set to 12 of cwnd just before loss event
TCP switching from slow start to CA
Transport Layer 3-23
Summary TCP Congestion Control
timeoutssthresh = cwnd2cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd gt ssthresh
congestionavoidance
cwnd = cwnd + MSS (MSScwnd)dupACKcount = 0transmit new segment(s) as allowed
new ACK
dupACKcount++
duplicate ACK
fastrecovery
cwnd = cwnd + MSStransmit new segment(s) as allowed
duplicate ACK
ssthresh= cwnd2cwnd = ssthresh + 3
retransmit missing segment
dupACKcount == 3
timeoutssthresh = cwnd2cwnd = 1 dupACKcount = 0retransmit missing segment
ssthresh= cwnd2cwnd = ssthresh + 3retransmit missing segment
dupACKcount == 3cwnd = ssthreshdupACKcount = 0
New ACK
slow start
timeoutssthresh = cwnd2 cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd = cwnd+MSSdupACKcount = 0transmit new segment(s) as allowed
new ACKdupACKcount++
duplicate ACK
cwnd = 1 MSSssthresh = 64 KBdupACKcount = 0
NewACK
NewACK
NewACK
Transport Layer 3-24
TCP throughput avg TCP thruput as function of window
size RTT ignore slow start assume always data to send
W window size (measured in bytes) where loss occurs avg window size ( in-flight bytes) is frac34 W avg thruput is 34W per RTT
W
W2
avg TCP thruput = 34W
RTTbytessec
Transport Layer 3-25
TCP Futures TCP over ldquolong fat pipesrdquo example 1500 byte segments 100ms
RTT want 10 Gbps throughput requires W = 83333 in-flight segments throughput in terms of segment loss
probability L [Mathis 1997]
to achieve 10 Gbps throughput need a loss rate of L = 210-10 ndash a very small loss rate
new versions of TCP for high-speed
TCP throughput = 122 MSSRTT L
Transport Layer 3-26
fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckroutercapacity R
TCP Fairness
TCP connection 2
Transport Layer 3-27
Why is TCP fairtwo competing sessions additive increase gives slope of 1 as throughout
increases multiplicative decrease decreases throughput
proportionally R
R
equal bandwidth share
Connection 1 throughput
Con
nect
ion
2 th
roug
h pu t
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-28
Fairness (more)Fairness and UDP multimedia apps
often do not use TCP do not want rate
throttled by congestion control
instead use UDP send audiovideo
at constant rate tolerate packet loss
Fairness parallel TCP connections
application can open multiple parallel connections between two hosts
web browsers do this eg link of rate R with 9
existing connections new app asks for 1 TCP gets
rate R10 new app asks for 11 TCPs gets
R2
Transport Layer 3-29
Chapter 3 summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation implementation in the Internet UDP TCP
next leaving the
network ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- John Magee 20 February 2014
- Chapter 3 Transport Layer
- Chapter 3 outline
- Principles of congestion control
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Causescosts of congestion scenario 3
- Slide 13
- Approaches towards congestion control
- Case study ATM ABR congestion control
- Slide 16
- Slide 17
- TCP congestion control additive increase multiplicative decrease
- TCP Congestion Control details
- TCP Slow Start
- TCP detecting reacting to loss
- TCP switching from slow start to CA
- Summary TCP Congestion Control
- TCP throughput
- TCP Futures TCP over ldquolong fat pipesrdquo
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Chapter 3 summary
-
Transport Layer 3-20
TCP Slow Start when connection
begins increase rate exponentially until first loss event initially cwnd = 1 MSS double cwnd every
RTT done by incrementing cwnd for every ACK received
summary initial rate is slow but ramps up exponentially fast
Host A
one segment
RT
T
Host B
time
two segments
four segments
Transport Layer 3-21
TCP detecting reacting to loss
loss indicated by timeout cwnd set to 1 MSS window then grows exponentially (as in slow start) to threshold
then grows linearly loss indicated by 3 duplicate ACKs TCP RENO
dup ACKs indicate network capable of delivering some segments cwnd is cut in half window then grows linearly
TCP Tahoe always sets cwnd to 1 (timeout or 3 duplicate acks)
Transport Layer 3-22
Q when should the exponential increase switch to linear
A when cwnd gets to 12 of its value before timeout
Implementation variable ssthresh on loss event ssthresh is set to 12 of cwnd just before loss event
TCP switching from slow start to CA
Transport Layer 3-23
Summary TCP Congestion Control
timeoutssthresh = cwnd2cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd gt ssthresh
congestionavoidance
cwnd = cwnd + MSS (MSScwnd)dupACKcount = 0transmit new segment(s) as allowed
new ACK
dupACKcount++
duplicate ACK
fastrecovery
cwnd = cwnd + MSStransmit new segment(s) as allowed
duplicate ACK
ssthresh= cwnd2cwnd = ssthresh + 3
retransmit missing segment
dupACKcount == 3
timeoutssthresh = cwnd2cwnd = 1 dupACKcount = 0retransmit missing segment
ssthresh= cwnd2cwnd = ssthresh + 3retransmit missing segment
dupACKcount == 3cwnd = ssthreshdupACKcount = 0
New ACK
slow start
timeoutssthresh = cwnd2 cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd = cwnd+MSSdupACKcount = 0transmit new segment(s) as allowed
new ACKdupACKcount++
duplicate ACK
cwnd = 1 MSSssthresh = 64 KBdupACKcount = 0
NewACK
NewACK
NewACK
Transport Layer 3-24
TCP throughput avg TCP thruput as function of window
size RTT ignore slow start assume always data to send
W window size (measured in bytes) where loss occurs avg window size ( in-flight bytes) is frac34 W avg thruput is 34W per RTT
W
W2
avg TCP thruput = 34W
RTTbytessec
Transport Layer 3-25
TCP Futures TCP over ldquolong fat pipesrdquo example 1500 byte segments 100ms
RTT want 10 Gbps throughput requires W = 83333 in-flight segments throughput in terms of segment loss
probability L [Mathis 1997]
to achieve 10 Gbps throughput need a loss rate of L = 210-10 ndash a very small loss rate
new versions of TCP for high-speed
TCP throughput = 122 MSSRTT L
Transport Layer 3-26
fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckroutercapacity R
TCP Fairness
TCP connection 2
Transport Layer 3-27
Why is TCP fairtwo competing sessions additive increase gives slope of 1 as throughout
increases multiplicative decrease decreases throughput
proportionally R
R
equal bandwidth share
Connection 1 throughput
Con
nect
ion
2 th
roug
h pu t
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-28
Fairness (more)Fairness and UDP multimedia apps
often do not use TCP do not want rate
throttled by congestion control
instead use UDP send audiovideo
at constant rate tolerate packet loss
Fairness parallel TCP connections
application can open multiple parallel connections between two hosts
web browsers do this eg link of rate R with 9
existing connections new app asks for 1 TCP gets
rate R10 new app asks for 11 TCPs gets
R2
Transport Layer 3-29
Chapter 3 summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation implementation in the Internet UDP TCP
next leaving the
network ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- John Magee 20 February 2014
- Chapter 3 Transport Layer
- Chapter 3 outline
- Principles of congestion control
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Causescosts of congestion scenario 3
- Slide 13
- Approaches towards congestion control
- Case study ATM ABR congestion control
- Slide 16
- Slide 17
- TCP congestion control additive increase multiplicative decrease
- TCP Congestion Control details
- TCP Slow Start
- TCP detecting reacting to loss
- TCP switching from slow start to CA
- Summary TCP Congestion Control
- TCP throughput
- TCP Futures TCP over ldquolong fat pipesrdquo
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Chapter 3 summary
-
Transport Layer 3-21
TCP detecting reacting to loss
loss indicated by timeout cwnd set to 1 MSS window then grows exponentially (as in slow start) to threshold
then grows linearly loss indicated by 3 duplicate ACKs TCP RENO
dup ACKs indicate network capable of delivering some segments cwnd is cut in half window then grows linearly
TCP Tahoe always sets cwnd to 1 (timeout or 3 duplicate acks)
Transport Layer 3-22
Q when should the exponential increase switch to linear
A when cwnd gets to 12 of its value before timeout
Implementation variable ssthresh on loss event ssthresh is set to 12 of cwnd just before loss event
TCP switching from slow start to CA
Transport Layer 3-23
Summary TCP Congestion Control
timeoutssthresh = cwnd2cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd gt ssthresh
congestionavoidance
cwnd = cwnd + MSS (MSScwnd)dupACKcount = 0transmit new segment(s) as allowed
new ACK
dupACKcount++
duplicate ACK
fastrecovery
cwnd = cwnd + MSStransmit new segment(s) as allowed
duplicate ACK
ssthresh= cwnd2cwnd = ssthresh + 3
retransmit missing segment
dupACKcount == 3
timeoutssthresh = cwnd2cwnd = 1 dupACKcount = 0retransmit missing segment
ssthresh= cwnd2cwnd = ssthresh + 3retransmit missing segment
dupACKcount == 3cwnd = ssthreshdupACKcount = 0
New ACK
slow start
timeoutssthresh = cwnd2 cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd = cwnd+MSSdupACKcount = 0transmit new segment(s) as allowed
new ACKdupACKcount++
duplicate ACK
cwnd = 1 MSSssthresh = 64 KBdupACKcount = 0
NewACK
NewACK
NewACK
Transport Layer 3-24
TCP throughput avg TCP thruput as function of window
size RTT ignore slow start assume always data to send
W window size (measured in bytes) where loss occurs avg window size ( in-flight bytes) is frac34 W avg thruput is 34W per RTT
W
W2
avg TCP thruput = 34W
RTTbytessec
Transport Layer 3-25
TCP Futures TCP over ldquolong fat pipesrdquo example 1500 byte segments 100ms
RTT want 10 Gbps throughput requires W = 83333 in-flight segments throughput in terms of segment loss
probability L [Mathis 1997]
to achieve 10 Gbps throughput need a loss rate of L = 210-10 ndash a very small loss rate
new versions of TCP for high-speed
TCP throughput = 122 MSSRTT L
Transport Layer 3-26
fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckroutercapacity R
TCP Fairness
TCP connection 2
Transport Layer 3-27
Why is TCP fairtwo competing sessions additive increase gives slope of 1 as throughout
increases multiplicative decrease decreases throughput
proportionally R
R
equal bandwidth share
Connection 1 throughput
Con
nect
ion
2 th
roug
h pu t
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-28
Fairness (more)Fairness and UDP multimedia apps
often do not use TCP do not want rate
throttled by congestion control
instead use UDP send audiovideo
at constant rate tolerate packet loss
Fairness parallel TCP connections
application can open multiple parallel connections between two hosts
web browsers do this eg link of rate R with 9
existing connections new app asks for 1 TCP gets
rate R10 new app asks for 11 TCPs gets
R2
Transport Layer 3-29
Chapter 3 summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation implementation in the Internet UDP TCP
next leaving the
network ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- John Magee 20 February 2014
- Chapter 3 Transport Layer
- Chapter 3 outline
- Principles of congestion control
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Causescosts of congestion scenario 3
- Slide 13
- Approaches towards congestion control
- Case study ATM ABR congestion control
- Slide 16
- Slide 17
- TCP congestion control additive increase multiplicative decrease
- TCP Congestion Control details
- TCP Slow Start
- TCP detecting reacting to loss
- TCP switching from slow start to CA
- Summary TCP Congestion Control
- TCP throughput
- TCP Futures TCP over ldquolong fat pipesrdquo
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Chapter 3 summary
-
Transport Layer 3-22
Q when should the exponential increase switch to linear
A when cwnd gets to 12 of its value before timeout
Implementation variable ssthresh on loss event ssthresh is set to 12 of cwnd just before loss event
TCP switching from slow start to CA
Transport Layer 3-23
Summary TCP Congestion Control
timeoutssthresh = cwnd2cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd gt ssthresh
congestionavoidance
cwnd = cwnd + MSS (MSScwnd)dupACKcount = 0transmit new segment(s) as allowed
new ACK
dupACKcount++
duplicate ACK
fastrecovery
cwnd = cwnd + MSStransmit new segment(s) as allowed
duplicate ACK
ssthresh= cwnd2cwnd = ssthresh + 3
retransmit missing segment
dupACKcount == 3
timeoutssthresh = cwnd2cwnd = 1 dupACKcount = 0retransmit missing segment
ssthresh= cwnd2cwnd = ssthresh + 3retransmit missing segment
dupACKcount == 3cwnd = ssthreshdupACKcount = 0
New ACK
slow start
timeoutssthresh = cwnd2 cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd = cwnd+MSSdupACKcount = 0transmit new segment(s) as allowed
new ACKdupACKcount++
duplicate ACK
cwnd = 1 MSSssthresh = 64 KBdupACKcount = 0
NewACK
NewACK
NewACK
Transport Layer 3-24
TCP throughput avg TCP thruput as function of window
size RTT ignore slow start assume always data to send
W window size (measured in bytes) where loss occurs avg window size ( in-flight bytes) is frac34 W avg thruput is 34W per RTT
W
W2
avg TCP thruput = 34W
RTTbytessec
Transport Layer 3-25
TCP Futures TCP over ldquolong fat pipesrdquo example 1500 byte segments 100ms
RTT want 10 Gbps throughput requires W = 83333 in-flight segments throughput in terms of segment loss
probability L [Mathis 1997]
to achieve 10 Gbps throughput need a loss rate of L = 210-10 ndash a very small loss rate
new versions of TCP for high-speed
TCP throughput = 122 MSSRTT L
Transport Layer 3-26
fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckroutercapacity R
TCP Fairness
TCP connection 2
Transport Layer 3-27
Why is TCP fairtwo competing sessions additive increase gives slope of 1 as throughout
increases multiplicative decrease decreases throughput
proportionally R
R
equal bandwidth share
Connection 1 throughput
Con
nect
ion
2 th
roug
h pu t
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-28
Fairness (more)Fairness and UDP multimedia apps
often do not use TCP do not want rate
throttled by congestion control
instead use UDP send audiovideo
at constant rate tolerate packet loss
Fairness parallel TCP connections
application can open multiple parallel connections between two hosts
web browsers do this eg link of rate R with 9
existing connections new app asks for 1 TCP gets
rate R10 new app asks for 11 TCPs gets
R2
Transport Layer 3-29
Chapter 3 summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation implementation in the Internet UDP TCP
next leaving the
network ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- John Magee 20 February 2014
- Chapter 3 Transport Layer
- Chapter 3 outline
- Principles of congestion control
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Causescosts of congestion scenario 3
- Slide 13
- Approaches towards congestion control
- Case study ATM ABR congestion control
- Slide 16
- Slide 17
- TCP congestion control additive increase multiplicative decrease
- TCP Congestion Control details
- TCP Slow Start
- TCP detecting reacting to loss
- TCP switching from slow start to CA
- Summary TCP Congestion Control
- TCP throughput
- TCP Futures TCP over ldquolong fat pipesrdquo
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Chapter 3 summary
-
Transport Layer 3-23
Summary TCP Congestion Control
timeoutssthresh = cwnd2cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd gt ssthresh
congestionavoidance
cwnd = cwnd + MSS (MSScwnd)dupACKcount = 0transmit new segment(s) as allowed
new ACK
dupACKcount++
duplicate ACK
fastrecovery
cwnd = cwnd + MSStransmit new segment(s) as allowed
duplicate ACK
ssthresh= cwnd2cwnd = ssthresh + 3
retransmit missing segment
dupACKcount == 3
timeoutssthresh = cwnd2cwnd = 1 dupACKcount = 0retransmit missing segment
ssthresh= cwnd2cwnd = ssthresh + 3retransmit missing segment
dupACKcount == 3cwnd = ssthreshdupACKcount = 0
New ACK
slow start
timeoutssthresh = cwnd2 cwnd = 1 MSSdupACKcount = 0retransmit missing segment
cwnd = cwnd+MSSdupACKcount = 0transmit new segment(s) as allowed
new ACKdupACKcount++
duplicate ACK
cwnd = 1 MSSssthresh = 64 KBdupACKcount = 0
NewACK
NewACK
NewACK
Transport Layer 3-24
TCP throughput avg TCP thruput as function of window
size RTT ignore slow start assume always data to send
W window size (measured in bytes) where loss occurs avg window size ( in-flight bytes) is frac34 W avg thruput is 34W per RTT
W
W2
avg TCP thruput = 34W
RTTbytessec
Transport Layer 3-25
TCP Futures TCP over ldquolong fat pipesrdquo example 1500 byte segments 100ms
RTT want 10 Gbps throughput requires W = 83333 in-flight segments throughput in terms of segment loss
probability L [Mathis 1997]
to achieve 10 Gbps throughput need a loss rate of L = 210-10 ndash a very small loss rate
new versions of TCP for high-speed
TCP throughput = 122 MSSRTT L
Transport Layer 3-26
fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckroutercapacity R
TCP Fairness
TCP connection 2
Transport Layer 3-27
Why is TCP fairtwo competing sessions additive increase gives slope of 1 as throughout
increases multiplicative decrease decreases throughput
proportionally R
R
equal bandwidth share
Connection 1 throughput
Con
nect
ion
2 th
roug
h pu t
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-28
Fairness (more)Fairness and UDP multimedia apps
often do not use TCP do not want rate
throttled by congestion control
instead use UDP send audiovideo
at constant rate tolerate packet loss
Fairness parallel TCP connections
application can open multiple parallel connections between two hosts
web browsers do this eg link of rate R with 9
existing connections new app asks for 1 TCP gets
rate R10 new app asks for 11 TCPs gets
R2
Transport Layer 3-29
Chapter 3 summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation implementation in the Internet UDP TCP
next leaving the
network ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- John Magee 20 February 2014
- Chapter 3 Transport Layer
- Chapter 3 outline
- Principles of congestion control
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Causescosts of congestion scenario 3
- Slide 13
- Approaches towards congestion control
- Case study ATM ABR congestion control
- Slide 16
- Slide 17
- TCP congestion control additive increase multiplicative decrease
- TCP Congestion Control details
- TCP Slow Start
- TCP detecting reacting to loss
- TCP switching from slow start to CA
- Summary TCP Congestion Control
- TCP throughput
- TCP Futures TCP over ldquolong fat pipesrdquo
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Chapter 3 summary
-
Transport Layer 3-24
TCP throughput avg TCP thruput as function of window
size RTT ignore slow start assume always data to send
W window size (measured in bytes) where loss occurs avg window size ( in-flight bytes) is frac34 W avg thruput is 34W per RTT
W
W2
avg TCP thruput = 34W
RTTbytessec
Transport Layer 3-25
TCP Futures TCP over ldquolong fat pipesrdquo example 1500 byte segments 100ms
RTT want 10 Gbps throughput requires W = 83333 in-flight segments throughput in terms of segment loss
probability L [Mathis 1997]
to achieve 10 Gbps throughput need a loss rate of L = 210-10 ndash a very small loss rate
new versions of TCP for high-speed
TCP throughput = 122 MSSRTT L
Transport Layer 3-26
fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckroutercapacity R
TCP Fairness
TCP connection 2
Transport Layer 3-27
Why is TCP fairtwo competing sessions additive increase gives slope of 1 as throughout
increases multiplicative decrease decreases throughput
proportionally R
R
equal bandwidth share
Connection 1 throughput
Con
nect
ion
2 th
roug
h pu t
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-28
Fairness (more)Fairness and UDP multimedia apps
often do not use TCP do not want rate
throttled by congestion control
instead use UDP send audiovideo
at constant rate tolerate packet loss
Fairness parallel TCP connections
application can open multiple parallel connections between two hosts
web browsers do this eg link of rate R with 9
existing connections new app asks for 1 TCP gets
rate R10 new app asks for 11 TCPs gets
R2
Transport Layer 3-29
Chapter 3 summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation implementation in the Internet UDP TCP
next leaving the
network ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- John Magee 20 February 2014
- Chapter 3 Transport Layer
- Chapter 3 outline
- Principles of congestion control
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Causescosts of congestion scenario 3
- Slide 13
- Approaches towards congestion control
- Case study ATM ABR congestion control
- Slide 16
- Slide 17
- TCP congestion control additive increase multiplicative decrease
- TCP Congestion Control details
- TCP Slow Start
- TCP detecting reacting to loss
- TCP switching from slow start to CA
- Summary TCP Congestion Control
- TCP throughput
- TCP Futures TCP over ldquolong fat pipesrdquo
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Chapter 3 summary
-
Transport Layer 3-25
TCP Futures TCP over ldquolong fat pipesrdquo example 1500 byte segments 100ms
RTT want 10 Gbps throughput requires W = 83333 in-flight segments throughput in terms of segment loss
probability L [Mathis 1997]
to achieve 10 Gbps throughput need a loss rate of L = 210-10 ndash a very small loss rate
new versions of TCP for high-speed
TCP throughput = 122 MSSRTT L
Transport Layer 3-26
fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckroutercapacity R
TCP Fairness
TCP connection 2
Transport Layer 3-27
Why is TCP fairtwo competing sessions additive increase gives slope of 1 as throughout
increases multiplicative decrease decreases throughput
proportionally R
R
equal bandwidth share
Connection 1 throughput
Con
nect
ion
2 th
roug
h pu t
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-28
Fairness (more)Fairness and UDP multimedia apps
often do not use TCP do not want rate
throttled by congestion control
instead use UDP send audiovideo
at constant rate tolerate packet loss
Fairness parallel TCP connections
application can open multiple parallel connections between two hosts
web browsers do this eg link of rate R with 9
existing connections new app asks for 1 TCP gets
rate R10 new app asks for 11 TCPs gets
R2
Transport Layer 3-29
Chapter 3 summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation implementation in the Internet UDP TCP
next leaving the
network ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- John Magee 20 February 2014
- Chapter 3 Transport Layer
- Chapter 3 outline
- Principles of congestion control
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Causescosts of congestion scenario 3
- Slide 13
- Approaches towards congestion control
- Case study ATM ABR congestion control
- Slide 16
- Slide 17
- TCP congestion control additive increase multiplicative decrease
- TCP Congestion Control details
- TCP Slow Start
- TCP detecting reacting to loss
- TCP switching from slow start to CA
- Summary TCP Congestion Control
- TCP throughput
- TCP Futures TCP over ldquolong fat pipesrdquo
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Chapter 3 summary
-
Transport Layer 3-26
fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK
TCP connection 1
bottleneckroutercapacity R
TCP Fairness
TCP connection 2
Transport Layer 3-27
Why is TCP fairtwo competing sessions additive increase gives slope of 1 as throughout
increases multiplicative decrease decreases throughput
proportionally R
R
equal bandwidth share
Connection 1 throughput
Con
nect
ion
2 th
roug
h pu t
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-28
Fairness (more)Fairness and UDP multimedia apps
often do not use TCP do not want rate
throttled by congestion control
instead use UDP send audiovideo
at constant rate tolerate packet loss
Fairness parallel TCP connections
application can open multiple parallel connections between two hosts
web browsers do this eg link of rate R with 9
existing connections new app asks for 1 TCP gets
rate R10 new app asks for 11 TCPs gets
R2
Transport Layer 3-29
Chapter 3 summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation implementation in the Internet UDP TCP
next leaving the
network ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- John Magee 20 February 2014
- Chapter 3 Transport Layer
- Chapter 3 outline
- Principles of congestion control
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Causescosts of congestion scenario 3
- Slide 13
- Approaches towards congestion control
- Case study ATM ABR congestion control
- Slide 16
- Slide 17
- TCP congestion control additive increase multiplicative decrease
- TCP Congestion Control details
- TCP Slow Start
- TCP detecting reacting to loss
- TCP switching from slow start to CA
- Summary TCP Congestion Control
- TCP throughput
- TCP Futures TCP over ldquolong fat pipesrdquo
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Chapter 3 summary
-
Transport Layer 3-27
Why is TCP fairtwo competing sessions additive increase gives slope of 1 as throughout
increases multiplicative decrease decreases throughput
proportionally R
R
equal bandwidth share
Connection 1 throughput
Con
nect
ion
2 th
roug
h pu t
congestion avoidance additive increaseloss decrease window by factor of 2
congestion avoidance additive increaseloss decrease window by factor of 2
Transport Layer 3-28
Fairness (more)Fairness and UDP multimedia apps
often do not use TCP do not want rate
throttled by congestion control
instead use UDP send audiovideo
at constant rate tolerate packet loss
Fairness parallel TCP connections
application can open multiple parallel connections between two hosts
web browsers do this eg link of rate R with 9
existing connections new app asks for 1 TCP gets
rate R10 new app asks for 11 TCPs gets
R2
Transport Layer 3-29
Chapter 3 summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation implementation in the Internet UDP TCP
next leaving the
network ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- John Magee 20 February 2014
- Chapter 3 Transport Layer
- Chapter 3 outline
- Principles of congestion control
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Causescosts of congestion scenario 3
- Slide 13
- Approaches towards congestion control
- Case study ATM ABR congestion control
- Slide 16
- Slide 17
- TCP congestion control additive increase multiplicative decrease
- TCP Congestion Control details
- TCP Slow Start
- TCP detecting reacting to loss
- TCP switching from slow start to CA
- Summary TCP Congestion Control
- TCP throughput
- TCP Futures TCP over ldquolong fat pipesrdquo
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Chapter 3 summary
-
Transport Layer 3-28
Fairness (more)Fairness and UDP multimedia apps
often do not use TCP do not want rate
throttled by congestion control
instead use UDP send audiovideo
at constant rate tolerate packet loss
Fairness parallel TCP connections
application can open multiple parallel connections between two hosts
web browsers do this eg link of rate R with 9
existing connections new app asks for 1 TCP gets
rate R10 new app asks for 11 TCPs gets
R2
Transport Layer 3-29
Chapter 3 summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation implementation in the Internet UDP TCP
next leaving the
network ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- John Magee 20 February 2014
- Chapter 3 Transport Layer
- Chapter 3 outline
- Principles of congestion control
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Causescosts of congestion scenario 3
- Slide 13
- Approaches towards congestion control
- Case study ATM ABR congestion control
- Slide 16
- Slide 17
- TCP congestion control additive increase multiplicative decrease
- TCP Congestion Control details
- TCP Slow Start
- TCP detecting reacting to loss
- TCP switching from slow start to CA
- Summary TCP Congestion Control
- TCP throughput
- TCP Futures TCP over ldquolong fat pipesrdquo
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Chapter 3 summary
-
Transport Layer 3-29
Chapter 3 summary principles behind transport
layer services multiplexing
demultiplexing reliable data transfer flow control congestion control
instantiation implementation in the Internet UDP TCP
next leaving the
network ldquoedgerdquo (application transport layers)
into the network ldquocorerdquo
- John Magee 20 February 2014
- Chapter 3 Transport Layer
- Chapter 3 outline
- Principles of congestion control
- Causescosts of congestion scenario 1
- Causescosts of congestion scenario 2
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Causescosts of congestion scenario 3
- Slide 13
- Approaches towards congestion control
- Case study ATM ABR congestion control
- Slide 16
- Slide 17
- TCP congestion control additive increase multiplicative decrease
- TCP Congestion Control details
- TCP Slow Start
- TCP detecting reacting to loss
- TCP switching from slow start to CA
- Summary TCP Congestion Control
- TCP throughput
- TCP Futures TCP over ldquolong fat pipesrdquo
- TCP Fairness
- Why is TCP fair
- Fairness (more)
- Chapter 3 summary
-