1 john magee 20 february 2014 cs 280: transport layer: congestion control concepts, tcp congestion...

29
1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer Networking 6/e Source material copyright 1996-2012 J.F Kurose and K.W. Ross

Upload: chester-clark

Post on 21-Jan-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer

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
Page 2: 1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer

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
Page 3: 1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer

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
Page 4: 1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer

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
Page 5: 1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer

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
Page 6: 1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer

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
Page 7: 1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer

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
Page 8: 1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer

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
Page 9: 1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer

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
Page 10: 1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer

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
Page 11: 1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer

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
Page 12: 1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer

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
Page 13: 1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer

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
Page 14: 1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer

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
Page 15: 1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer

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
Page 16: 1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer

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
Page 17: 1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer

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
Page 18: 1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer

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
Page 19: 1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer

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
Page 20: 1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer

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
Page 21: 1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer

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
Page 22: 1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer

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
Page 23: 1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer

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
Page 24: 1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer

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
Page 25: 1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer

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
Page 26: 1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer

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
Page 27: 1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer

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
Page 28: 1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer

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
Page 29: 1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer

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