transport layer3-1 data communication and networks lecture 8 congestion control october 28, 2004

41
Transport Layer 3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Post on 21-Dec-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-1

Data Communication and Networks

Lecture 8

Congestion Control

October 28 2004

Transport Layer 3-2

What Is Congestion

Congestion occurs when the number of packets being transmitted through the network approaches the packet handling capacity of the network

Congestion control aims to keep number of packets below level at which performance falls off dramatically

Data network is a network of queues Generally 80 utilization is critical Finite queues mean data may be lost A top-10 problem

Transport Layer 3-3

Queues at a Node

Transport Layer 3-4

Effects of Congestion

Packets arriving are stored at input buffers Routing decision made Packet moves to output buffer Packets queued for output transmitted as fast

as possible Statistical time division multiplexing

If packets arrive to fast to be routed or to be output buffers will fill

Can discard packets Can use flow control

Can propagate congestion through network

Transport Layer 3-5

Interaction of Queues

Transport Layer 3-6

Causescosts of congestion scenario 1

two senders two receivers

one router infinite buffers

no retransmission

large delays when congested

maximum achievable throughput

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-7

Causescosts of congestion scenario 2

one router finite buffers sender retransmission of lost packet

finite shared output link buffers

Host A in original data

Host B

out

in original data plus retransmitted data

Transport Layer 3-8

Causescosts of congestion scenario 2 always (goodput)

ldquoperfectrdquo retransmission only when loss

retransmission of delayed (not lost) packet makes

larger (than perfect case) for same

in

out

=

in

out

gt

in

out

ldquocostsrdquo of congestion more work (retrans) for given ldquogoodputrdquo unneeded retransmissions link carries multiple copies of pkt

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-9

Causescosts of congestion scenario 3 four senders multihop paths timeoutretransmit

in

Q what happens as and increase

in

finite shared output link buffers

Host Ain original data

Host B

out

in original data plus retransmitted data

Transport Layer 3-10

Causescosts of congestion scenario 3

Another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission capacity

used for that packet was wasted

Host A

Host B

o

u

t

Transport Layer 3-11

Practical Performance

Ideal assumes infinite buffers and no overhead

Buffers are finite Overheads occur in exchanging

congestion control messages

Transport Layer 3-12

Approaches towards congestion control

End-end congestion control

no explicit feedback from network

congestion inferred from end-system observed loss delay

approach taken by TCP

Network-assisted congestion control

routers provide feedback to end systems single bit indicating

congestion (SNA DECbit TCPIP ECN ATM)

explicit rate sender should send at

Two broad approaches towards congestion control

Transport Layer 3-13

Mechanisms for Congestion Control

Transport Layer 3-14

Backpressure

If node becomes congested it can slow down or halt flow of packets from other nodes

May mean that other nodes have to apply control on incoming packet rates

Propagates back to source Can restrict to logical connections generating

most traffic Used in connection oriented that allow hop by

hop congestion control (eg X25) Not used in ATM

Transport Layer 3-15

Choke Packet

Control packet Generated at congested node Sent to source node eg ICMP source quench

bull From router or destinationbull Source cuts back until no more source quench

messagebull Sent for every discarded packet or anticipated

Rather crude mechanism

Transport Layer 3-16

Implicit Congestion Signaling

Transmission delay may increase with congestion

Packet may be discarded Source can detect these as implicit

indications of congestion Useful on connectionless (datagram)

networks eg IP based Used in frame relay LAPF

Transport Layer 3-17

Explicit Congestion Signaling

Network alerts end systems of increasing congestion

End systems take steps to reduce offered load

Backwards Congestion avoidance in opposite direction

to packet required Forwards

Congestion avoidance in same direction as packet required

Used in ATM by ABR Service

Transport Layer 3-18

Traffic Shaping

Smooth out traffic flow and reduce cell clumping

Token bucket

Transport Layer 3-19

Token Bucket for Traffic Shaping

Transport Layer 3-20

Case study ATM ABR congestion control

ABR available bit rate

ldquoelastic servicerdquo if senderrsquos path

ldquounderloadedrdquo sender should use

available bandwidth if senderrsquos path

congested sender throttled to

minimum guaranteed rate

RM (resource management) cells

sent by sender interspersed with data cells

bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate

(mild congestion) CI bit congestion

indication RM cells returned to sender

by receiver with bits intact

Transport Layer 3-21

Case study ATM ABR congestion control

two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on

path

EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI

bit in returned RM cell

Transport Layer 3-22

TCP Congestion Control

end-end control (no network assistance)

sender limits transmission LastByteSent-LastByteAcked

CongWin Roughly

CongWin is dynamic function of perceived network congestion

How does sender perceive congestion

loss event = timeout or 3 duplicate acks

TCP sender reduces rate (CongWin) after loss event

three mechanisms AIMD slow start conservative after

timeout events

rate = CongWin

RTT Bytessec

Transport Layer 3-23

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

multiplicative decrease cut CongWin in half after loss event

additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing

Long-lived TCP connection

Transport Layer 3-24

TCP Slow Start

When connection begins CongWin = 1 MSS Example MSS = 500

bytes amp RTT = 200 msec

initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT desirable to quickly

ramp up to respectable rate

When connection begins increase rate exponentially fast until first loss event

Transport Layer 3-25

TCP Slow Start (more)

When connection begins increase rate exponentially until first loss event double CongWin every

RTT done by incrementing CongWin for every ACK received

Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-26

Refinement After 3 dup ACKs

CongWin is cut in half window then grows linearly

But after timeout event CongWin instead set to 1 MSS window then grows

exponentially to a threshold then grows

linearly

bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo

Philosophy

Transport Layer 3-27

Refinement (more)Q When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementation Variable Threshold At loss event Threshold

is set to 12 of CongWin just before loss event

Transport Layer 3-28

Summary TCP Congestion Control

When CongWin is below Threshold sender in slow-start phase window grows exponentially

When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly

When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold

When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS

Transport Layer 3-29

TCP sender congestion control

Event State TCP Sender Action Commentary

ACK receipt for previously unacked data

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo

Resulting in a doubling of CongWin every RTT

ACK receipt for previously unacked data

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Additive increase resulting in increase of CongWin by 1 MSS every RTT

Loss event detected by triple duplicate ACK

SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS

Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo

Enter slow start

Duplicate ACK

SS or CA Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 2: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-2

What Is Congestion

Congestion occurs when the number of packets being transmitted through the network approaches the packet handling capacity of the network

Congestion control aims to keep number of packets below level at which performance falls off dramatically

Data network is a network of queues Generally 80 utilization is critical Finite queues mean data may be lost A top-10 problem

Transport Layer 3-3

Queues at a Node

Transport Layer 3-4

Effects of Congestion

Packets arriving are stored at input buffers Routing decision made Packet moves to output buffer Packets queued for output transmitted as fast

as possible Statistical time division multiplexing

If packets arrive to fast to be routed or to be output buffers will fill

Can discard packets Can use flow control

Can propagate congestion through network

Transport Layer 3-5

Interaction of Queues

Transport Layer 3-6

Causescosts of congestion scenario 1

two senders two receivers

one router infinite buffers

no retransmission

large delays when congested

maximum achievable throughput

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-7

Causescosts of congestion scenario 2

one router finite buffers sender retransmission of lost packet

finite shared output link buffers

Host A in original data

Host B

out

in original data plus retransmitted data

Transport Layer 3-8

Causescosts of congestion scenario 2 always (goodput)

ldquoperfectrdquo retransmission only when loss

retransmission of delayed (not lost) packet makes

larger (than perfect case) for same

in

out

=

in

out

gt

in

out

ldquocostsrdquo of congestion more work (retrans) for given ldquogoodputrdquo unneeded retransmissions link carries multiple copies of pkt

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-9

Causescosts of congestion scenario 3 four senders multihop paths timeoutretransmit

in

Q what happens as and increase

in

finite shared output link buffers

Host Ain original data

Host B

out

in original data plus retransmitted data

Transport Layer 3-10

Causescosts of congestion scenario 3

Another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission capacity

used for that packet was wasted

Host A

Host B

o

u

t

Transport Layer 3-11

Practical Performance

Ideal assumes infinite buffers and no overhead

Buffers are finite Overheads occur in exchanging

congestion control messages

Transport Layer 3-12

Approaches towards congestion control

End-end congestion control

no explicit feedback from network

congestion inferred from end-system observed loss delay

approach taken by TCP

Network-assisted congestion control

routers provide feedback to end systems single bit indicating

congestion (SNA DECbit TCPIP ECN ATM)

explicit rate sender should send at

Two broad approaches towards congestion control

Transport Layer 3-13

Mechanisms for Congestion Control

Transport Layer 3-14

Backpressure

If node becomes congested it can slow down or halt flow of packets from other nodes

May mean that other nodes have to apply control on incoming packet rates

Propagates back to source Can restrict to logical connections generating

most traffic Used in connection oriented that allow hop by

hop congestion control (eg X25) Not used in ATM

Transport Layer 3-15

Choke Packet

Control packet Generated at congested node Sent to source node eg ICMP source quench

bull From router or destinationbull Source cuts back until no more source quench

messagebull Sent for every discarded packet or anticipated

Rather crude mechanism

Transport Layer 3-16

Implicit Congestion Signaling

Transmission delay may increase with congestion

Packet may be discarded Source can detect these as implicit

indications of congestion Useful on connectionless (datagram)

networks eg IP based Used in frame relay LAPF

Transport Layer 3-17

Explicit Congestion Signaling

Network alerts end systems of increasing congestion

End systems take steps to reduce offered load

Backwards Congestion avoidance in opposite direction

to packet required Forwards

Congestion avoidance in same direction as packet required

Used in ATM by ABR Service

Transport Layer 3-18

Traffic Shaping

Smooth out traffic flow and reduce cell clumping

Token bucket

Transport Layer 3-19

Token Bucket for Traffic Shaping

Transport Layer 3-20

Case study ATM ABR congestion control

ABR available bit rate

ldquoelastic servicerdquo if senderrsquos path

ldquounderloadedrdquo sender should use

available bandwidth if senderrsquos path

congested sender throttled to

minimum guaranteed rate

RM (resource management) cells

sent by sender interspersed with data cells

bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate

(mild congestion) CI bit congestion

indication RM cells returned to sender

by receiver with bits intact

Transport Layer 3-21

Case study ATM ABR congestion control

two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on

path

EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI

bit in returned RM cell

Transport Layer 3-22

TCP Congestion Control

end-end control (no network assistance)

sender limits transmission LastByteSent-LastByteAcked

CongWin Roughly

CongWin is dynamic function of perceived network congestion

How does sender perceive congestion

loss event = timeout or 3 duplicate acks

TCP sender reduces rate (CongWin) after loss event

three mechanisms AIMD slow start conservative after

timeout events

rate = CongWin

RTT Bytessec

Transport Layer 3-23

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

multiplicative decrease cut CongWin in half after loss event

additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing

Long-lived TCP connection

Transport Layer 3-24

TCP Slow Start

When connection begins CongWin = 1 MSS Example MSS = 500

bytes amp RTT = 200 msec

initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT desirable to quickly

ramp up to respectable rate

When connection begins increase rate exponentially fast until first loss event

Transport Layer 3-25

TCP Slow Start (more)

When connection begins increase rate exponentially until first loss event double CongWin every

RTT done by incrementing CongWin for every ACK received

Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-26

Refinement After 3 dup ACKs

CongWin is cut in half window then grows linearly

But after timeout event CongWin instead set to 1 MSS window then grows

exponentially to a threshold then grows

linearly

bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo

Philosophy

Transport Layer 3-27

Refinement (more)Q When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementation Variable Threshold At loss event Threshold

is set to 12 of CongWin just before loss event

Transport Layer 3-28

Summary TCP Congestion Control

When CongWin is below Threshold sender in slow-start phase window grows exponentially

When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly

When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold

When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS

Transport Layer 3-29

TCP sender congestion control

Event State TCP Sender Action Commentary

ACK receipt for previously unacked data

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo

Resulting in a doubling of CongWin every RTT

ACK receipt for previously unacked data

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Additive increase resulting in increase of CongWin by 1 MSS every RTT

Loss event detected by triple duplicate ACK

SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS

Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo

Enter slow start

Duplicate ACK

SS or CA Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 3: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-3

Queues at a Node

Transport Layer 3-4

Effects of Congestion

Packets arriving are stored at input buffers Routing decision made Packet moves to output buffer Packets queued for output transmitted as fast

as possible Statistical time division multiplexing

If packets arrive to fast to be routed or to be output buffers will fill

Can discard packets Can use flow control

Can propagate congestion through network

Transport Layer 3-5

Interaction of Queues

Transport Layer 3-6

Causescosts of congestion scenario 1

two senders two receivers

one router infinite buffers

no retransmission

large delays when congested

maximum achievable throughput

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-7

Causescosts of congestion scenario 2

one router finite buffers sender retransmission of lost packet

finite shared output link buffers

Host A in original data

Host B

out

in original data plus retransmitted data

Transport Layer 3-8

Causescosts of congestion scenario 2 always (goodput)

ldquoperfectrdquo retransmission only when loss

retransmission of delayed (not lost) packet makes

larger (than perfect case) for same

in

out

=

in

out

gt

in

out

ldquocostsrdquo of congestion more work (retrans) for given ldquogoodputrdquo unneeded retransmissions link carries multiple copies of pkt

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-9

Causescosts of congestion scenario 3 four senders multihop paths timeoutretransmit

in

Q what happens as and increase

in

finite shared output link buffers

Host Ain original data

Host B

out

in original data plus retransmitted data

Transport Layer 3-10

Causescosts of congestion scenario 3

Another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission capacity

used for that packet was wasted

Host A

Host B

o

u

t

Transport Layer 3-11

Practical Performance

Ideal assumes infinite buffers and no overhead

Buffers are finite Overheads occur in exchanging

congestion control messages

Transport Layer 3-12

Approaches towards congestion control

End-end congestion control

no explicit feedback from network

congestion inferred from end-system observed loss delay

approach taken by TCP

Network-assisted congestion control

routers provide feedback to end systems single bit indicating

congestion (SNA DECbit TCPIP ECN ATM)

explicit rate sender should send at

Two broad approaches towards congestion control

Transport Layer 3-13

Mechanisms for Congestion Control

Transport Layer 3-14

Backpressure

If node becomes congested it can slow down or halt flow of packets from other nodes

May mean that other nodes have to apply control on incoming packet rates

Propagates back to source Can restrict to logical connections generating

most traffic Used in connection oriented that allow hop by

hop congestion control (eg X25) Not used in ATM

Transport Layer 3-15

Choke Packet

Control packet Generated at congested node Sent to source node eg ICMP source quench

bull From router or destinationbull Source cuts back until no more source quench

messagebull Sent for every discarded packet or anticipated

Rather crude mechanism

Transport Layer 3-16

Implicit Congestion Signaling

Transmission delay may increase with congestion

Packet may be discarded Source can detect these as implicit

indications of congestion Useful on connectionless (datagram)

networks eg IP based Used in frame relay LAPF

Transport Layer 3-17

Explicit Congestion Signaling

Network alerts end systems of increasing congestion

End systems take steps to reduce offered load

Backwards Congestion avoidance in opposite direction

to packet required Forwards

Congestion avoidance in same direction as packet required

Used in ATM by ABR Service

Transport Layer 3-18

Traffic Shaping

Smooth out traffic flow and reduce cell clumping

Token bucket

Transport Layer 3-19

Token Bucket for Traffic Shaping

Transport Layer 3-20

Case study ATM ABR congestion control

ABR available bit rate

ldquoelastic servicerdquo if senderrsquos path

ldquounderloadedrdquo sender should use

available bandwidth if senderrsquos path

congested sender throttled to

minimum guaranteed rate

RM (resource management) cells

sent by sender interspersed with data cells

bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate

(mild congestion) CI bit congestion

indication RM cells returned to sender

by receiver with bits intact

Transport Layer 3-21

Case study ATM ABR congestion control

two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on

path

EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI

bit in returned RM cell

Transport Layer 3-22

TCP Congestion Control

end-end control (no network assistance)

sender limits transmission LastByteSent-LastByteAcked

CongWin Roughly

CongWin is dynamic function of perceived network congestion

How does sender perceive congestion

loss event = timeout or 3 duplicate acks

TCP sender reduces rate (CongWin) after loss event

three mechanisms AIMD slow start conservative after

timeout events

rate = CongWin

RTT Bytessec

Transport Layer 3-23

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

multiplicative decrease cut CongWin in half after loss event

additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing

Long-lived TCP connection

Transport Layer 3-24

TCP Slow Start

When connection begins CongWin = 1 MSS Example MSS = 500

bytes amp RTT = 200 msec

initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT desirable to quickly

ramp up to respectable rate

When connection begins increase rate exponentially fast until first loss event

Transport Layer 3-25

TCP Slow Start (more)

When connection begins increase rate exponentially until first loss event double CongWin every

RTT done by incrementing CongWin for every ACK received

Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-26

Refinement After 3 dup ACKs

CongWin is cut in half window then grows linearly

But after timeout event CongWin instead set to 1 MSS window then grows

exponentially to a threshold then grows

linearly

bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo

Philosophy

Transport Layer 3-27

Refinement (more)Q When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementation Variable Threshold At loss event Threshold

is set to 12 of CongWin just before loss event

Transport Layer 3-28

Summary TCP Congestion Control

When CongWin is below Threshold sender in slow-start phase window grows exponentially

When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly

When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold

When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS

Transport Layer 3-29

TCP sender congestion control

Event State TCP Sender Action Commentary

ACK receipt for previously unacked data

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo

Resulting in a doubling of CongWin every RTT

ACK receipt for previously unacked data

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Additive increase resulting in increase of CongWin by 1 MSS every RTT

Loss event detected by triple duplicate ACK

SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS

Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo

Enter slow start

Duplicate ACK

SS or CA Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 4: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-4

Effects of Congestion

Packets arriving are stored at input buffers Routing decision made Packet moves to output buffer Packets queued for output transmitted as fast

as possible Statistical time division multiplexing

If packets arrive to fast to be routed or to be output buffers will fill

Can discard packets Can use flow control

Can propagate congestion through network

Transport Layer 3-5

Interaction of Queues

Transport Layer 3-6

Causescosts of congestion scenario 1

two senders two receivers

one router infinite buffers

no retransmission

large delays when congested

maximum achievable throughput

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-7

Causescosts of congestion scenario 2

one router finite buffers sender retransmission of lost packet

finite shared output link buffers

Host A in original data

Host B

out

in original data plus retransmitted data

Transport Layer 3-8

Causescosts of congestion scenario 2 always (goodput)

ldquoperfectrdquo retransmission only when loss

retransmission of delayed (not lost) packet makes

larger (than perfect case) for same

in

out

=

in

out

gt

in

out

ldquocostsrdquo of congestion more work (retrans) for given ldquogoodputrdquo unneeded retransmissions link carries multiple copies of pkt

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-9

Causescosts of congestion scenario 3 four senders multihop paths timeoutretransmit

in

Q what happens as and increase

in

finite shared output link buffers

Host Ain original data

Host B

out

in original data plus retransmitted data

Transport Layer 3-10

Causescosts of congestion scenario 3

Another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission capacity

used for that packet was wasted

Host A

Host B

o

u

t

Transport Layer 3-11

Practical Performance

Ideal assumes infinite buffers and no overhead

Buffers are finite Overheads occur in exchanging

congestion control messages

Transport Layer 3-12

Approaches towards congestion control

End-end congestion control

no explicit feedback from network

congestion inferred from end-system observed loss delay

approach taken by TCP

Network-assisted congestion control

routers provide feedback to end systems single bit indicating

congestion (SNA DECbit TCPIP ECN ATM)

explicit rate sender should send at

Two broad approaches towards congestion control

Transport Layer 3-13

Mechanisms for Congestion Control

Transport Layer 3-14

Backpressure

If node becomes congested it can slow down or halt flow of packets from other nodes

May mean that other nodes have to apply control on incoming packet rates

Propagates back to source Can restrict to logical connections generating

most traffic Used in connection oriented that allow hop by

hop congestion control (eg X25) Not used in ATM

Transport Layer 3-15

Choke Packet

Control packet Generated at congested node Sent to source node eg ICMP source quench

bull From router or destinationbull Source cuts back until no more source quench

messagebull Sent for every discarded packet or anticipated

Rather crude mechanism

Transport Layer 3-16

Implicit Congestion Signaling

Transmission delay may increase with congestion

Packet may be discarded Source can detect these as implicit

indications of congestion Useful on connectionless (datagram)

networks eg IP based Used in frame relay LAPF

Transport Layer 3-17

Explicit Congestion Signaling

Network alerts end systems of increasing congestion

End systems take steps to reduce offered load

Backwards Congestion avoidance in opposite direction

to packet required Forwards

Congestion avoidance in same direction as packet required

Used in ATM by ABR Service

Transport Layer 3-18

Traffic Shaping

Smooth out traffic flow and reduce cell clumping

Token bucket

Transport Layer 3-19

Token Bucket for Traffic Shaping

Transport Layer 3-20

Case study ATM ABR congestion control

ABR available bit rate

ldquoelastic servicerdquo if senderrsquos path

ldquounderloadedrdquo sender should use

available bandwidth if senderrsquos path

congested sender throttled to

minimum guaranteed rate

RM (resource management) cells

sent by sender interspersed with data cells

bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate

(mild congestion) CI bit congestion

indication RM cells returned to sender

by receiver with bits intact

Transport Layer 3-21

Case study ATM ABR congestion control

two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on

path

EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI

bit in returned RM cell

Transport Layer 3-22

TCP Congestion Control

end-end control (no network assistance)

sender limits transmission LastByteSent-LastByteAcked

CongWin Roughly

CongWin is dynamic function of perceived network congestion

How does sender perceive congestion

loss event = timeout or 3 duplicate acks

TCP sender reduces rate (CongWin) after loss event

three mechanisms AIMD slow start conservative after

timeout events

rate = CongWin

RTT Bytessec

Transport Layer 3-23

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

multiplicative decrease cut CongWin in half after loss event

additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing

Long-lived TCP connection

Transport Layer 3-24

TCP Slow Start

When connection begins CongWin = 1 MSS Example MSS = 500

bytes amp RTT = 200 msec

initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT desirable to quickly

ramp up to respectable rate

When connection begins increase rate exponentially fast until first loss event

Transport Layer 3-25

TCP Slow Start (more)

When connection begins increase rate exponentially until first loss event double CongWin every

RTT done by incrementing CongWin for every ACK received

Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-26

Refinement After 3 dup ACKs

CongWin is cut in half window then grows linearly

But after timeout event CongWin instead set to 1 MSS window then grows

exponentially to a threshold then grows

linearly

bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo

Philosophy

Transport Layer 3-27

Refinement (more)Q When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementation Variable Threshold At loss event Threshold

is set to 12 of CongWin just before loss event

Transport Layer 3-28

Summary TCP Congestion Control

When CongWin is below Threshold sender in slow-start phase window grows exponentially

When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly

When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold

When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS

Transport Layer 3-29

TCP sender congestion control

Event State TCP Sender Action Commentary

ACK receipt for previously unacked data

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo

Resulting in a doubling of CongWin every RTT

ACK receipt for previously unacked data

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Additive increase resulting in increase of CongWin by 1 MSS every RTT

Loss event detected by triple duplicate ACK

SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS

Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo

Enter slow start

Duplicate ACK

SS or CA Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 5: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-5

Interaction of Queues

Transport Layer 3-6

Causescosts of congestion scenario 1

two senders two receivers

one router infinite buffers

no retransmission

large delays when congested

maximum achievable throughput

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-7

Causescosts of congestion scenario 2

one router finite buffers sender retransmission of lost packet

finite shared output link buffers

Host A in original data

Host B

out

in original data plus retransmitted data

Transport Layer 3-8

Causescosts of congestion scenario 2 always (goodput)

ldquoperfectrdquo retransmission only when loss

retransmission of delayed (not lost) packet makes

larger (than perfect case) for same

in

out

=

in

out

gt

in

out

ldquocostsrdquo of congestion more work (retrans) for given ldquogoodputrdquo unneeded retransmissions link carries multiple copies of pkt

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-9

Causescosts of congestion scenario 3 four senders multihop paths timeoutretransmit

in

Q what happens as and increase

in

finite shared output link buffers

Host Ain original data

Host B

out

in original data plus retransmitted data

Transport Layer 3-10

Causescosts of congestion scenario 3

Another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission capacity

used for that packet was wasted

Host A

Host B

o

u

t

Transport Layer 3-11

Practical Performance

Ideal assumes infinite buffers and no overhead

Buffers are finite Overheads occur in exchanging

congestion control messages

Transport Layer 3-12

Approaches towards congestion control

End-end congestion control

no explicit feedback from network

congestion inferred from end-system observed loss delay

approach taken by TCP

Network-assisted congestion control

routers provide feedback to end systems single bit indicating

congestion (SNA DECbit TCPIP ECN ATM)

explicit rate sender should send at

Two broad approaches towards congestion control

Transport Layer 3-13

Mechanisms for Congestion Control

Transport Layer 3-14

Backpressure

If node becomes congested it can slow down or halt flow of packets from other nodes

May mean that other nodes have to apply control on incoming packet rates

Propagates back to source Can restrict to logical connections generating

most traffic Used in connection oriented that allow hop by

hop congestion control (eg X25) Not used in ATM

Transport Layer 3-15

Choke Packet

Control packet Generated at congested node Sent to source node eg ICMP source quench

bull From router or destinationbull Source cuts back until no more source quench

messagebull Sent for every discarded packet or anticipated

Rather crude mechanism

Transport Layer 3-16

Implicit Congestion Signaling

Transmission delay may increase with congestion

Packet may be discarded Source can detect these as implicit

indications of congestion Useful on connectionless (datagram)

networks eg IP based Used in frame relay LAPF

Transport Layer 3-17

Explicit Congestion Signaling

Network alerts end systems of increasing congestion

End systems take steps to reduce offered load

Backwards Congestion avoidance in opposite direction

to packet required Forwards

Congestion avoidance in same direction as packet required

Used in ATM by ABR Service

Transport Layer 3-18

Traffic Shaping

Smooth out traffic flow and reduce cell clumping

Token bucket

Transport Layer 3-19

Token Bucket for Traffic Shaping

Transport Layer 3-20

Case study ATM ABR congestion control

ABR available bit rate

ldquoelastic servicerdquo if senderrsquos path

ldquounderloadedrdquo sender should use

available bandwidth if senderrsquos path

congested sender throttled to

minimum guaranteed rate

RM (resource management) cells

sent by sender interspersed with data cells

bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate

(mild congestion) CI bit congestion

indication RM cells returned to sender

by receiver with bits intact

Transport Layer 3-21

Case study ATM ABR congestion control

two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on

path

EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI

bit in returned RM cell

Transport Layer 3-22

TCP Congestion Control

end-end control (no network assistance)

sender limits transmission LastByteSent-LastByteAcked

CongWin Roughly

CongWin is dynamic function of perceived network congestion

How does sender perceive congestion

loss event = timeout or 3 duplicate acks

TCP sender reduces rate (CongWin) after loss event

three mechanisms AIMD slow start conservative after

timeout events

rate = CongWin

RTT Bytessec

Transport Layer 3-23

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

multiplicative decrease cut CongWin in half after loss event

additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing

Long-lived TCP connection

Transport Layer 3-24

TCP Slow Start

When connection begins CongWin = 1 MSS Example MSS = 500

bytes amp RTT = 200 msec

initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT desirable to quickly

ramp up to respectable rate

When connection begins increase rate exponentially fast until first loss event

Transport Layer 3-25

TCP Slow Start (more)

When connection begins increase rate exponentially until first loss event double CongWin every

RTT done by incrementing CongWin for every ACK received

Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-26

Refinement After 3 dup ACKs

CongWin is cut in half window then grows linearly

But after timeout event CongWin instead set to 1 MSS window then grows

exponentially to a threshold then grows

linearly

bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo

Philosophy

Transport Layer 3-27

Refinement (more)Q When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementation Variable Threshold At loss event Threshold

is set to 12 of CongWin just before loss event

Transport Layer 3-28

Summary TCP Congestion Control

When CongWin is below Threshold sender in slow-start phase window grows exponentially

When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly

When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold

When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS

Transport Layer 3-29

TCP sender congestion control

Event State TCP Sender Action Commentary

ACK receipt for previously unacked data

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo

Resulting in a doubling of CongWin every RTT

ACK receipt for previously unacked data

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Additive increase resulting in increase of CongWin by 1 MSS every RTT

Loss event detected by triple duplicate ACK

SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS

Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo

Enter slow start

Duplicate ACK

SS or CA Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 6: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-6

Causescosts of congestion scenario 1

two senders two receivers

one router infinite buffers

no retransmission

large delays when congested

maximum achievable throughput

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-7

Causescosts of congestion scenario 2

one router finite buffers sender retransmission of lost packet

finite shared output link buffers

Host A in original data

Host B

out

in original data plus retransmitted data

Transport Layer 3-8

Causescosts of congestion scenario 2 always (goodput)

ldquoperfectrdquo retransmission only when loss

retransmission of delayed (not lost) packet makes

larger (than perfect case) for same

in

out

=

in

out

gt

in

out

ldquocostsrdquo of congestion more work (retrans) for given ldquogoodputrdquo unneeded retransmissions link carries multiple copies of pkt

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-9

Causescosts of congestion scenario 3 four senders multihop paths timeoutretransmit

in

Q what happens as and increase

in

finite shared output link buffers

Host Ain original data

Host B

out

in original data plus retransmitted data

Transport Layer 3-10

Causescosts of congestion scenario 3

Another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission capacity

used for that packet was wasted

Host A

Host B

o

u

t

Transport Layer 3-11

Practical Performance

Ideal assumes infinite buffers and no overhead

Buffers are finite Overheads occur in exchanging

congestion control messages

Transport Layer 3-12

Approaches towards congestion control

End-end congestion control

no explicit feedback from network

congestion inferred from end-system observed loss delay

approach taken by TCP

Network-assisted congestion control

routers provide feedback to end systems single bit indicating

congestion (SNA DECbit TCPIP ECN ATM)

explicit rate sender should send at

Two broad approaches towards congestion control

Transport Layer 3-13

Mechanisms for Congestion Control

Transport Layer 3-14

Backpressure

If node becomes congested it can slow down or halt flow of packets from other nodes

May mean that other nodes have to apply control on incoming packet rates

Propagates back to source Can restrict to logical connections generating

most traffic Used in connection oriented that allow hop by

hop congestion control (eg X25) Not used in ATM

Transport Layer 3-15

Choke Packet

Control packet Generated at congested node Sent to source node eg ICMP source quench

bull From router or destinationbull Source cuts back until no more source quench

messagebull Sent for every discarded packet or anticipated

Rather crude mechanism

Transport Layer 3-16

Implicit Congestion Signaling

Transmission delay may increase with congestion

Packet may be discarded Source can detect these as implicit

indications of congestion Useful on connectionless (datagram)

networks eg IP based Used in frame relay LAPF

Transport Layer 3-17

Explicit Congestion Signaling

Network alerts end systems of increasing congestion

End systems take steps to reduce offered load

Backwards Congestion avoidance in opposite direction

to packet required Forwards

Congestion avoidance in same direction as packet required

Used in ATM by ABR Service

Transport Layer 3-18

Traffic Shaping

Smooth out traffic flow and reduce cell clumping

Token bucket

Transport Layer 3-19

Token Bucket for Traffic Shaping

Transport Layer 3-20

Case study ATM ABR congestion control

ABR available bit rate

ldquoelastic servicerdquo if senderrsquos path

ldquounderloadedrdquo sender should use

available bandwidth if senderrsquos path

congested sender throttled to

minimum guaranteed rate

RM (resource management) cells

sent by sender interspersed with data cells

bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate

(mild congestion) CI bit congestion

indication RM cells returned to sender

by receiver with bits intact

Transport Layer 3-21

Case study ATM ABR congestion control

two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on

path

EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI

bit in returned RM cell

Transport Layer 3-22

TCP Congestion Control

end-end control (no network assistance)

sender limits transmission LastByteSent-LastByteAcked

CongWin Roughly

CongWin is dynamic function of perceived network congestion

How does sender perceive congestion

loss event = timeout or 3 duplicate acks

TCP sender reduces rate (CongWin) after loss event

three mechanisms AIMD slow start conservative after

timeout events

rate = CongWin

RTT Bytessec

Transport Layer 3-23

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

multiplicative decrease cut CongWin in half after loss event

additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing

Long-lived TCP connection

Transport Layer 3-24

TCP Slow Start

When connection begins CongWin = 1 MSS Example MSS = 500

bytes amp RTT = 200 msec

initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT desirable to quickly

ramp up to respectable rate

When connection begins increase rate exponentially fast until first loss event

Transport Layer 3-25

TCP Slow Start (more)

When connection begins increase rate exponentially until first loss event double CongWin every

RTT done by incrementing CongWin for every ACK received

Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-26

Refinement After 3 dup ACKs

CongWin is cut in half window then grows linearly

But after timeout event CongWin instead set to 1 MSS window then grows

exponentially to a threshold then grows

linearly

bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo

Philosophy

Transport Layer 3-27

Refinement (more)Q When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementation Variable Threshold At loss event Threshold

is set to 12 of CongWin just before loss event

Transport Layer 3-28

Summary TCP Congestion Control

When CongWin is below Threshold sender in slow-start phase window grows exponentially

When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly

When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold

When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS

Transport Layer 3-29

TCP sender congestion control

Event State TCP Sender Action Commentary

ACK receipt for previously unacked data

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo

Resulting in a doubling of CongWin every RTT

ACK receipt for previously unacked data

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Additive increase resulting in increase of CongWin by 1 MSS every RTT

Loss event detected by triple duplicate ACK

SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS

Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo

Enter slow start

Duplicate ACK

SS or CA Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 7: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-7

Causescosts of congestion scenario 2

one router finite buffers sender retransmission of lost packet

finite shared output link buffers

Host A in original data

Host B

out

in original data plus retransmitted data

Transport Layer 3-8

Causescosts of congestion scenario 2 always (goodput)

ldquoperfectrdquo retransmission only when loss

retransmission of delayed (not lost) packet makes

larger (than perfect case) for same

in

out

=

in

out

gt

in

out

ldquocostsrdquo of congestion more work (retrans) for given ldquogoodputrdquo unneeded retransmissions link carries multiple copies of pkt

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-9

Causescosts of congestion scenario 3 four senders multihop paths timeoutretransmit

in

Q what happens as and increase

in

finite shared output link buffers

Host Ain original data

Host B

out

in original data plus retransmitted data

Transport Layer 3-10

Causescosts of congestion scenario 3

Another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission capacity

used for that packet was wasted

Host A

Host B

o

u

t

Transport Layer 3-11

Practical Performance

Ideal assumes infinite buffers and no overhead

Buffers are finite Overheads occur in exchanging

congestion control messages

Transport Layer 3-12

Approaches towards congestion control

End-end congestion control

no explicit feedback from network

congestion inferred from end-system observed loss delay

approach taken by TCP

Network-assisted congestion control

routers provide feedback to end systems single bit indicating

congestion (SNA DECbit TCPIP ECN ATM)

explicit rate sender should send at

Two broad approaches towards congestion control

Transport Layer 3-13

Mechanisms for Congestion Control

Transport Layer 3-14

Backpressure

If node becomes congested it can slow down or halt flow of packets from other nodes

May mean that other nodes have to apply control on incoming packet rates

Propagates back to source Can restrict to logical connections generating

most traffic Used in connection oriented that allow hop by

hop congestion control (eg X25) Not used in ATM

Transport Layer 3-15

Choke Packet

Control packet Generated at congested node Sent to source node eg ICMP source quench

bull From router or destinationbull Source cuts back until no more source quench

messagebull Sent for every discarded packet or anticipated

Rather crude mechanism

Transport Layer 3-16

Implicit Congestion Signaling

Transmission delay may increase with congestion

Packet may be discarded Source can detect these as implicit

indications of congestion Useful on connectionless (datagram)

networks eg IP based Used in frame relay LAPF

Transport Layer 3-17

Explicit Congestion Signaling

Network alerts end systems of increasing congestion

End systems take steps to reduce offered load

Backwards Congestion avoidance in opposite direction

to packet required Forwards

Congestion avoidance in same direction as packet required

Used in ATM by ABR Service

Transport Layer 3-18

Traffic Shaping

Smooth out traffic flow and reduce cell clumping

Token bucket

Transport Layer 3-19

Token Bucket for Traffic Shaping

Transport Layer 3-20

Case study ATM ABR congestion control

ABR available bit rate

ldquoelastic servicerdquo if senderrsquos path

ldquounderloadedrdquo sender should use

available bandwidth if senderrsquos path

congested sender throttled to

minimum guaranteed rate

RM (resource management) cells

sent by sender interspersed with data cells

bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate

(mild congestion) CI bit congestion

indication RM cells returned to sender

by receiver with bits intact

Transport Layer 3-21

Case study ATM ABR congestion control

two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on

path

EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI

bit in returned RM cell

Transport Layer 3-22

TCP Congestion Control

end-end control (no network assistance)

sender limits transmission LastByteSent-LastByteAcked

CongWin Roughly

CongWin is dynamic function of perceived network congestion

How does sender perceive congestion

loss event = timeout or 3 duplicate acks

TCP sender reduces rate (CongWin) after loss event

three mechanisms AIMD slow start conservative after

timeout events

rate = CongWin

RTT Bytessec

Transport Layer 3-23

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

multiplicative decrease cut CongWin in half after loss event

additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing

Long-lived TCP connection

Transport Layer 3-24

TCP Slow Start

When connection begins CongWin = 1 MSS Example MSS = 500

bytes amp RTT = 200 msec

initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT desirable to quickly

ramp up to respectable rate

When connection begins increase rate exponentially fast until first loss event

Transport Layer 3-25

TCP Slow Start (more)

When connection begins increase rate exponentially until first loss event double CongWin every

RTT done by incrementing CongWin for every ACK received

Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-26

Refinement After 3 dup ACKs

CongWin is cut in half window then grows linearly

But after timeout event CongWin instead set to 1 MSS window then grows

exponentially to a threshold then grows

linearly

bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo

Philosophy

Transport Layer 3-27

Refinement (more)Q When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementation Variable Threshold At loss event Threshold

is set to 12 of CongWin just before loss event

Transport Layer 3-28

Summary TCP Congestion Control

When CongWin is below Threshold sender in slow-start phase window grows exponentially

When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly

When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold

When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS

Transport Layer 3-29

TCP sender congestion control

Event State TCP Sender Action Commentary

ACK receipt for previously unacked data

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo

Resulting in a doubling of CongWin every RTT

ACK receipt for previously unacked data

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Additive increase resulting in increase of CongWin by 1 MSS every RTT

Loss event detected by triple duplicate ACK

SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS

Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo

Enter slow start

Duplicate ACK

SS or CA Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 8: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-8

Causescosts of congestion scenario 2 always (goodput)

ldquoperfectrdquo retransmission only when loss

retransmission of delayed (not lost) packet makes

larger (than perfect case) for same

in

out

=

in

out

gt

in

out

ldquocostsrdquo of congestion more work (retrans) for given ldquogoodputrdquo unneeded retransmissions link carries multiple copies of pkt

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-9

Causescosts of congestion scenario 3 four senders multihop paths timeoutretransmit

in

Q what happens as and increase

in

finite shared output link buffers

Host Ain original data

Host B

out

in original data plus retransmitted data

Transport Layer 3-10

Causescosts of congestion scenario 3

Another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission capacity

used for that packet was wasted

Host A

Host B

o

u

t

Transport Layer 3-11

Practical Performance

Ideal assumes infinite buffers and no overhead

Buffers are finite Overheads occur in exchanging

congestion control messages

Transport Layer 3-12

Approaches towards congestion control

End-end congestion control

no explicit feedback from network

congestion inferred from end-system observed loss delay

approach taken by TCP

Network-assisted congestion control

routers provide feedback to end systems single bit indicating

congestion (SNA DECbit TCPIP ECN ATM)

explicit rate sender should send at

Two broad approaches towards congestion control

Transport Layer 3-13

Mechanisms for Congestion Control

Transport Layer 3-14

Backpressure

If node becomes congested it can slow down or halt flow of packets from other nodes

May mean that other nodes have to apply control on incoming packet rates

Propagates back to source Can restrict to logical connections generating

most traffic Used in connection oriented that allow hop by

hop congestion control (eg X25) Not used in ATM

Transport Layer 3-15

Choke Packet

Control packet Generated at congested node Sent to source node eg ICMP source quench

bull From router or destinationbull Source cuts back until no more source quench

messagebull Sent for every discarded packet or anticipated

Rather crude mechanism

Transport Layer 3-16

Implicit Congestion Signaling

Transmission delay may increase with congestion

Packet may be discarded Source can detect these as implicit

indications of congestion Useful on connectionless (datagram)

networks eg IP based Used in frame relay LAPF

Transport Layer 3-17

Explicit Congestion Signaling

Network alerts end systems of increasing congestion

End systems take steps to reduce offered load

Backwards Congestion avoidance in opposite direction

to packet required Forwards

Congestion avoidance in same direction as packet required

Used in ATM by ABR Service

Transport Layer 3-18

Traffic Shaping

Smooth out traffic flow and reduce cell clumping

Token bucket

Transport Layer 3-19

Token Bucket for Traffic Shaping

Transport Layer 3-20

Case study ATM ABR congestion control

ABR available bit rate

ldquoelastic servicerdquo if senderrsquos path

ldquounderloadedrdquo sender should use

available bandwidth if senderrsquos path

congested sender throttled to

minimum guaranteed rate

RM (resource management) cells

sent by sender interspersed with data cells

bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate

(mild congestion) CI bit congestion

indication RM cells returned to sender

by receiver with bits intact

Transport Layer 3-21

Case study ATM ABR congestion control

two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on

path

EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI

bit in returned RM cell

Transport Layer 3-22

TCP Congestion Control

end-end control (no network assistance)

sender limits transmission LastByteSent-LastByteAcked

CongWin Roughly

CongWin is dynamic function of perceived network congestion

How does sender perceive congestion

loss event = timeout or 3 duplicate acks

TCP sender reduces rate (CongWin) after loss event

three mechanisms AIMD slow start conservative after

timeout events

rate = CongWin

RTT Bytessec

Transport Layer 3-23

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

multiplicative decrease cut CongWin in half after loss event

additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing

Long-lived TCP connection

Transport Layer 3-24

TCP Slow Start

When connection begins CongWin = 1 MSS Example MSS = 500

bytes amp RTT = 200 msec

initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT desirable to quickly

ramp up to respectable rate

When connection begins increase rate exponentially fast until first loss event

Transport Layer 3-25

TCP Slow Start (more)

When connection begins increase rate exponentially until first loss event double CongWin every

RTT done by incrementing CongWin for every ACK received

Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-26

Refinement After 3 dup ACKs

CongWin is cut in half window then grows linearly

But after timeout event CongWin instead set to 1 MSS window then grows

exponentially to a threshold then grows

linearly

bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo

Philosophy

Transport Layer 3-27

Refinement (more)Q When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementation Variable Threshold At loss event Threshold

is set to 12 of CongWin just before loss event

Transport Layer 3-28

Summary TCP Congestion Control

When CongWin is below Threshold sender in slow-start phase window grows exponentially

When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly

When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold

When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS

Transport Layer 3-29

TCP sender congestion control

Event State TCP Sender Action Commentary

ACK receipt for previously unacked data

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo

Resulting in a doubling of CongWin every RTT

ACK receipt for previously unacked data

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Additive increase resulting in increase of CongWin by 1 MSS every RTT

Loss event detected by triple duplicate ACK

SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS

Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo

Enter slow start

Duplicate ACK

SS or CA Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 9: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-9

Causescosts of congestion scenario 3 four senders multihop paths timeoutretransmit

in

Q what happens as and increase

in

finite shared output link buffers

Host Ain original data

Host B

out

in original data plus retransmitted data

Transport Layer 3-10

Causescosts of congestion scenario 3

Another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission capacity

used for that packet was wasted

Host A

Host B

o

u

t

Transport Layer 3-11

Practical Performance

Ideal assumes infinite buffers and no overhead

Buffers are finite Overheads occur in exchanging

congestion control messages

Transport Layer 3-12

Approaches towards congestion control

End-end congestion control

no explicit feedback from network

congestion inferred from end-system observed loss delay

approach taken by TCP

Network-assisted congestion control

routers provide feedback to end systems single bit indicating

congestion (SNA DECbit TCPIP ECN ATM)

explicit rate sender should send at

Two broad approaches towards congestion control

Transport Layer 3-13

Mechanisms for Congestion Control

Transport Layer 3-14

Backpressure

If node becomes congested it can slow down or halt flow of packets from other nodes

May mean that other nodes have to apply control on incoming packet rates

Propagates back to source Can restrict to logical connections generating

most traffic Used in connection oriented that allow hop by

hop congestion control (eg X25) Not used in ATM

Transport Layer 3-15

Choke Packet

Control packet Generated at congested node Sent to source node eg ICMP source quench

bull From router or destinationbull Source cuts back until no more source quench

messagebull Sent for every discarded packet or anticipated

Rather crude mechanism

Transport Layer 3-16

Implicit Congestion Signaling

Transmission delay may increase with congestion

Packet may be discarded Source can detect these as implicit

indications of congestion Useful on connectionless (datagram)

networks eg IP based Used in frame relay LAPF

Transport Layer 3-17

Explicit Congestion Signaling

Network alerts end systems of increasing congestion

End systems take steps to reduce offered load

Backwards Congestion avoidance in opposite direction

to packet required Forwards

Congestion avoidance in same direction as packet required

Used in ATM by ABR Service

Transport Layer 3-18

Traffic Shaping

Smooth out traffic flow and reduce cell clumping

Token bucket

Transport Layer 3-19

Token Bucket for Traffic Shaping

Transport Layer 3-20

Case study ATM ABR congestion control

ABR available bit rate

ldquoelastic servicerdquo if senderrsquos path

ldquounderloadedrdquo sender should use

available bandwidth if senderrsquos path

congested sender throttled to

minimum guaranteed rate

RM (resource management) cells

sent by sender interspersed with data cells

bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate

(mild congestion) CI bit congestion

indication RM cells returned to sender

by receiver with bits intact

Transport Layer 3-21

Case study ATM ABR congestion control

two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on

path

EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI

bit in returned RM cell

Transport Layer 3-22

TCP Congestion Control

end-end control (no network assistance)

sender limits transmission LastByteSent-LastByteAcked

CongWin Roughly

CongWin is dynamic function of perceived network congestion

How does sender perceive congestion

loss event = timeout or 3 duplicate acks

TCP sender reduces rate (CongWin) after loss event

three mechanisms AIMD slow start conservative after

timeout events

rate = CongWin

RTT Bytessec

Transport Layer 3-23

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

multiplicative decrease cut CongWin in half after loss event

additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing

Long-lived TCP connection

Transport Layer 3-24

TCP Slow Start

When connection begins CongWin = 1 MSS Example MSS = 500

bytes amp RTT = 200 msec

initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT desirable to quickly

ramp up to respectable rate

When connection begins increase rate exponentially fast until first loss event

Transport Layer 3-25

TCP Slow Start (more)

When connection begins increase rate exponentially until first loss event double CongWin every

RTT done by incrementing CongWin for every ACK received

Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-26

Refinement After 3 dup ACKs

CongWin is cut in half window then grows linearly

But after timeout event CongWin instead set to 1 MSS window then grows

exponentially to a threshold then grows

linearly

bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo

Philosophy

Transport Layer 3-27

Refinement (more)Q When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementation Variable Threshold At loss event Threshold

is set to 12 of CongWin just before loss event

Transport Layer 3-28

Summary TCP Congestion Control

When CongWin is below Threshold sender in slow-start phase window grows exponentially

When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly

When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold

When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS

Transport Layer 3-29

TCP sender congestion control

Event State TCP Sender Action Commentary

ACK receipt for previously unacked data

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo

Resulting in a doubling of CongWin every RTT

ACK receipt for previously unacked data

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Additive increase resulting in increase of CongWin by 1 MSS every RTT

Loss event detected by triple duplicate ACK

SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS

Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo

Enter slow start

Duplicate ACK

SS or CA Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 10: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-10

Causescosts of congestion scenario 3

Another ldquocostrdquo of congestion when packet dropped any ldquoupstream transmission capacity

used for that packet was wasted

Host A

Host B

o

u

t

Transport Layer 3-11

Practical Performance

Ideal assumes infinite buffers and no overhead

Buffers are finite Overheads occur in exchanging

congestion control messages

Transport Layer 3-12

Approaches towards congestion control

End-end congestion control

no explicit feedback from network

congestion inferred from end-system observed loss delay

approach taken by TCP

Network-assisted congestion control

routers provide feedback to end systems single bit indicating

congestion (SNA DECbit TCPIP ECN ATM)

explicit rate sender should send at

Two broad approaches towards congestion control

Transport Layer 3-13

Mechanisms for Congestion Control

Transport Layer 3-14

Backpressure

If node becomes congested it can slow down or halt flow of packets from other nodes

May mean that other nodes have to apply control on incoming packet rates

Propagates back to source Can restrict to logical connections generating

most traffic Used in connection oriented that allow hop by

hop congestion control (eg X25) Not used in ATM

Transport Layer 3-15

Choke Packet

Control packet Generated at congested node Sent to source node eg ICMP source quench

bull From router or destinationbull Source cuts back until no more source quench

messagebull Sent for every discarded packet or anticipated

Rather crude mechanism

Transport Layer 3-16

Implicit Congestion Signaling

Transmission delay may increase with congestion

Packet may be discarded Source can detect these as implicit

indications of congestion Useful on connectionless (datagram)

networks eg IP based Used in frame relay LAPF

Transport Layer 3-17

Explicit Congestion Signaling

Network alerts end systems of increasing congestion

End systems take steps to reduce offered load

Backwards Congestion avoidance in opposite direction

to packet required Forwards

Congestion avoidance in same direction as packet required

Used in ATM by ABR Service

Transport Layer 3-18

Traffic Shaping

Smooth out traffic flow and reduce cell clumping

Token bucket

Transport Layer 3-19

Token Bucket for Traffic Shaping

Transport Layer 3-20

Case study ATM ABR congestion control

ABR available bit rate

ldquoelastic servicerdquo if senderrsquos path

ldquounderloadedrdquo sender should use

available bandwidth if senderrsquos path

congested sender throttled to

minimum guaranteed rate

RM (resource management) cells

sent by sender interspersed with data cells

bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate

(mild congestion) CI bit congestion

indication RM cells returned to sender

by receiver with bits intact

Transport Layer 3-21

Case study ATM ABR congestion control

two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on

path

EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI

bit in returned RM cell

Transport Layer 3-22

TCP Congestion Control

end-end control (no network assistance)

sender limits transmission LastByteSent-LastByteAcked

CongWin Roughly

CongWin is dynamic function of perceived network congestion

How does sender perceive congestion

loss event = timeout or 3 duplicate acks

TCP sender reduces rate (CongWin) after loss event

three mechanisms AIMD slow start conservative after

timeout events

rate = CongWin

RTT Bytessec

Transport Layer 3-23

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

multiplicative decrease cut CongWin in half after loss event

additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing

Long-lived TCP connection

Transport Layer 3-24

TCP Slow Start

When connection begins CongWin = 1 MSS Example MSS = 500

bytes amp RTT = 200 msec

initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT desirable to quickly

ramp up to respectable rate

When connection begins increase rate exponentially fast until first loss event

Transport Layer 3-25

TCP Slow Start (more)

When connection begins increase rate exponentially until first loss event double CongWin every

RTT done by incrementing CongWin for every ACK received

Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-26

Refinement After 3 dup ACKs

CongWin is cut in half window then grows linearly

But after timeout event CongWin instead set to 1 MSS window then grows

exponentially to a threshold then grows

linearly

bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo

Philosophy

Transport Layer 3-27

Refinement (more)Q When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementation Variable Threshold At loss event Threshold

is set to 12 of CongWin just before loss event

Transport Layer 3-28

Summary TCP Congestion Control

When CongWin is below Threshold sender in slow-start phase window grows exponentially

When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly

When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold

When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS

Transport Layer 3-29

TCP sender congestion control

Event State TCP Sender Action Commentary

ACK receipt for previously unacked data

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo

Resulting in a doubling of CongWin every RTT

ACK receipt for previously unacked data

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Additive increase resulting in increase of CongWin by 1 MSS every RTT

Loss event detected by triple duplicate ACK

SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS

Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo

Enter slow start

Duplicate ACK

SS or CA Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 11: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-11

Practical Performance

Ideal assumes infinite buffers and no overhead

Buffers are finite Overheads occur in exchanging

congestion control messages

Transport Layer 3-12

Approaches towards congestion control

End-end congestion control

no explicit feedback from network

congestion inferred from end-system observed loss delay

approach taken by TCP

Network-assisted congestion control

routers provide feedback to end systems single bit indicating

congestion (SNA DECbit TCPIP ECN ATM)

explicit rate sender should send at

Two broad approaches towards congestion control

Transport Layer 3-13

Mechanisms for Congestion Control

Transport Layer 3-14

Backpressure

If node becomes congested it can slow down or halt flow of packets from other nodes

May mean that other nodes have to apply control on incoming packet rates

Propagates back to source Can restrict to logical connections generating

most traffic Used in connection oriented that allow hop by

hop congestion control (eg X25) Not used in ATM

Transport Layer 3-15

Choke Packet

Control packet Generated at congested node Sent to source node eg ICMP source quench

bull From router or destinationbull Source cuts back until no more source quench

messagebull Sent for every discarded packet or anticipated

Rather crude mechanism

Transport Layer 3-16

Implicit Congestion Signaling

Transmission delay may increase with congestion

Packet may be discarded Source can detect these as implicit

indications of congestion Useful on connectionless (datagram)

networks eg IP based Used in frame relay LAPF

Transport Layer 3-17

Explicit Congestion Signaling

Network alerts end systems of increasing congestion

End systems take steps to reduce offered load

Backwards Congestion avoidance in opposite direction

to packet required Forwards

Congestion avoidance in same direction as packet required

Used in ATM by ABR Service

Transport Layer 3-18

Traffic Shaping

Smooth out traffic flow and reduce cell clumping

Token bucket

Transport Layer 3-19

Token Bucket for Traffic Shaping

Transport Layer 3-20

Case study ATM ABR congestion control

ABR available bit rate

ldquoelastic servicerdquo if senderrsquos path

ldquounderloadedrdquo sender should use

available bandwidth if senderrsquos path

congested sender throttled to

minimum guaranteed rate

RM (resource management) cells

sent by sender interspersed with data cells

bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate

(mild congestion) CI bit congestion

indication RM cells returned to sender

by receiver with bits intact

Transport Layer 3-21

Case study ATM ABR congestion control

two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on

path

EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI

bit in returned RM cell

Transport Layer 3-22

TCP Congestion Control

end-end control (no network assistance)

sender limits transmission LastByteSent-LastByteAcked

CongWin Roughly

CongWin is dynamic function of perceived network congestion

How does sender perceive congestion

loss event = timeout or 3 duplicate acks

TCP sender reduces rate (CongWin) after loss event

three mechanisms AIMD slow start conservative after

timeout events

rate = CongWin

RTT Bytessec

Transport Layer 3-23

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

multiplicative decrease cut CongWin in half after loss event

additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing

Long-lived TCP connection

Transport Layer 3-24

TCP Slow Start

When connection begins CongWin = 1 MSS Example MSS = 500

bytes amp RTT = 200 msec

initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT desirable to quickly

ramp up to respectable rate

When connection begins increase rate exponentially fast until first loss event

Transport Layer 3-25

TCP Slow Start (more)

When connection begins increase rate exponentially until first loss event double CongWin every

RTT done by incrementing CongWin for every ACK received

Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-26

Refinement After 3 dup ACKs

CongWin is cut in half window then grows linearly

But after timeout event CongWin instead set to 1 MSS window then grows

exponentially to a threshold then grows

linearly

bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo

Philosophy

Transport Layer 3-27

Refinement (more)Q When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementation Variable Threshold At loss event Threshold

is set to 12 of CongWin just before loss event

Transport Layer 3-28

Summary TCP Congestion Control

When CongWin is below Threshold sender in slow-start phase window grows exponentially

When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly

When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold

When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS

Transport Layer 3-29

TCP sender congestion control

Event State TCP Sender Action Commentary

ACK receipt for previously unacked data

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo

Resulting in a doubling of CongWin every RTT

ACK receipt for previously unacked data

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Additive increase resulting in increase of CongWin by 1 MSS every RTT

Loss event detected by triple duplicate ACK

SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS

Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo

Enter slow start

Duplicate ACK

SS or CA Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 12: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-12

Approaches towards congestion control

End-end congestion control

no explicit feedback from network

congestion inferred from end-system observed loss delay

approach taken by TCP

Network-assisted congestion control

routers provide feedback to end systems single bit indicating

congestion (SNA DECbit TCPIP ECN ATM)

explicit rate sender should send at

Two broad approaches towards congestion control

Transport Layer 3-13

Mechanisms for Congestion Control

Transport Layer 3-14

Backpressure

If node becomes congested it can slow down or halt flow of packets from other nodes

May mean that other nodes have to apply control on incoming packet rates

Propagates back to source Can restrict to logical connections generating

most traffic Used in connection oriented that allow hop by

hop congestion control (eg X25) Not used in ATM

Transport Layer 3-15

Choke Packet

Control packet Generated at congested node Sent to source node eg ICMP source quench

bull From router or destinationbull Source cuts back until no more source quench

messagebull Sent for every discarded packet or anticipated

Rather crude mechanism

Transport Layer 3-16

Implicit Congestion Signaling

Transmission delay may increase with congestion

Packet may be discarded Source can detect these as implicit

indications of congestion Useful on connectionless (datagram)

networks eg IP based Used in frame relay LAPF

Transport Layer 3-17

Explicit Congestion Signaling

Network alerts end systems of increasing congestion

End systems take steps to reduce offered load

Backwards Congestion avoidance in opposite direction

to packet required Forwards

Congestion avoidance in same direction as packet required

Used in ATM by ABR Service

Transport Layer 3-18

Traffic Shaping

Smooth out traffic flow and reduce cell clumping

Token bucket

Transport Layer 3-19

Token Bucket for Traffic Shaping

Transport Layer 3-20

Case study ATM ABR congestion control

ABR available bit rate

ldquoelastic servicerdquo if senderrsquos path

ldquounderloadedrdquo sender should use

available bandwidth if senderrsquos path

congested sender throttled to

minimum guaranteed rate

RM (resource management) cells

sent by sender interspersed with data cells

bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate

(mild congestion) CI bit congestion

indication RM cells returned to sender

by receiver with bits intact

Transport Layer 3-21

Case study ATM ABR congestion control

two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on

path

EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI

bit in returned RM cell

Transport Layer 3-22

TCP Congestion Control

end-end control (no network assistance)

sender limits transmission LastByteSent-LastByteAcked

CongWin Roughly

CongWin is dynamic function of perceived network congestion

How does sender perceive congestion

loss event = timeout or 3 duplicate acks

TCP sender reduces rate (CongWin) after loss event

three mechanisms AIMD slow start conservative after

timeout events

rate = CongWin

RTT Bytessec

Transport Layer 3-23

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

multiplicative decrease cut CongWin in half after loss event

additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing

Long-lived TCP connection

Transport Layer 3-24

TCP Slow Start

When connection begins CongWin = 1 MSS Example MSS = 500

bytes amp RTT = 200 msec

initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT desirable to quickly

ramp up to respectable rate

When connection begins increase rate exponentially fast until first loss event

Transport Layer 3-25

TCP Slow Start (more)

When connection begins increase rate exponentially until first loss event double CongWin every

RTT done by incrementing CongWin for every ACK received

Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-26

Refinement After 3 dup ACKs

CongWin is cut in half window then grows linearly

But after timeout event CongWin instead set to 1 MSS window then grows

exponentially to a threshold then grows

linearly

bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo

Philosophy

Transport Layer 3-27

Refinement (more)Q When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementation Variable Threshold At loss event Threshold

is set to 12 of CongWin just before loss event

Transport Layer 3-28

Summary TCP Congestion Control

When CongWin is below Threshold sender in slow-start phase window grows exponentially

When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly

When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold

When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS

Transport Layer 3-29

TCP sender congestion control

Event State TCP Sender Action Commentary

ACK receipt for previously unacked data

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo

Resulting in a doubling of CongWin every RTT

ACK receipt for previously unacked data

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Additive increase resulting in increase of CongWin by 1 MSS every RTT

Loss event detected by triple duplicate ACK

SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS

Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo

Enter slow start

Duplicate ACK

SS or CA Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 13: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-13

Mechanisms for Congestion Control

Transport Layer 3-14

Backpressure

If node becomes congested it can slow down or halt flow of packets from other nodes

May mean that other nodes have to apply control on incoming packet rates

Propagates back to source Can restrict to logical connections generating

most traffic Used in connection oriented that allow hop by

hop congestion control (eg X25) Not used in ATM

Transport Layer 3-15

Choke Packet

Control packet Generated at congested node Sent to source node eg ICMP source quench

bull From router or destinationbull Source cuts back until no more source quench

messagebull Sent for every discarded packet or anticipated

Rather crude mechanism

Transport Layer 3-16

Implicit Congestion Signaling

Transmission delay may increase with congestion

Packet may be discarded Source can detect these as implicit

indications of congestion Useful on connectionless (datagram)

networks eg IP based Used in frame relay LAPF

Transport Layer 3-17

Explicit Congestion Signaling

Network alerts end systems of increasing congestion

End systems take steps to reduce offered load

Backwards Congestion avoidance in opposite direction

to packet required Forwards

Congestion avoidance in same direction as packet required

Used in ATM by ABR Service

Transport Layer 3-18

Traffic Shaping

Smooth out traffic flow and reduce cell clumping

Token bucket

Transport Layer 3-19

Token Bucket for Traffic Shaping

Transport Layer 3-20

Case study ATM ABR congestion control

ABR available bit rate

ldquoelastic servicerdquo if senderrsquos path

ldquounderloadedrdquo sender should use

available bandwidth if senderrsquos path

congested sender throttled to

minimum guaranteed rate

RM (resource management) cells

sent by sender interspersed with data cells

bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate

(mild congestion) CI bit congestion

indication RM cells returned to sender

by receiver with bits intact

Transport Layer 3-21

Case study ATM ABR congestion control

two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on

path

EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI

bit in returned RM cell

Transport Layer 3-22

TCP Congestion Control

end-end control (no network assistance)

sender limits transmission LastByteSent-LastByteAcked

CongWin Roughly

CongWin is dynamic function of perceived network congestion

How does sender perceive congestion

loss event = timeout or 3 duplicate acks

TCP sender reduces rate (CongWin) after loss event

three mechanisms AIMD slow start conservative after

timeout events

rate = CongWin

RTT Bytessec

Transport Layer 3-23

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

multiplicative decrease cut CongWin in half after loss event

additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing

Long-lived TCP connection

Transport Layer 3-24

TCP Slow Start

When connection begins CongWin = 1 MSS Example MSS = 500

bytes amp RTT = 200 msec

initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT desirable to quickly

ramp up to respectable rate

When connection begins increase rate exponentially fast until first loss event

Transport Layer 3-25

TCP Slow Start (more)

When connection begins increase rate exponentially until first loss event double CongWin every

RTT done by incrementing CongWin for every ACK received

Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-26

Refinement After 3 dup ACKs

CongWin is cut in half window then grows linearly

But after timeout event CongWin instead set to 1 MSS window then grows

exponentially to a threshold then grows

linearly

bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo

Philosophy

Transport Layer 3-27

Refinement (more)Q When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementation Variable Threshold At loss event Threshold

is set to 12 of CongWin just before loss event

Transport Layer 3-28

Summary TCP Congestion Control

When CongWin is below Threshold sender in slow-start phase window grows exponentially

When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly

When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold

When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS

Transport Layer 3-29

TCP sender congestion control

Event State TCP Sender Action Commentary

ACK receipt for previously unacked data

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo

Resulting in a doubling of CongWin every RTT

ACK receipt for previously unacked data

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Additive increase resulting in increase of CongWin by 1 MSS every RTT

Loss event detected by triple duplicate ACK

SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS

Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo

Enter slow start

Duplicate ACK

SS or CA Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 14: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-14

Backpressure

If node becomes congested it can slow down or halt flow of packets from other nodes

May mean that other nodes have to apply control on incoming packet rates

Propagates back to source Can restrict to logical connections generating

most traffic Used in connection oriented that allow hop by

hop congestion control (eg X25) Not used in ATM

Transport Layer 3-15

Choke Packet

Control packet Generated at congested node Sent to source node eg ICMP source quench

bull From router or destinationbull Source cuts back until no more source quench

messagebull Sent for every discarded packet or anticipated

Rather crude mechanism

Transport Layer 3-16

Implicit Congestion Signaling

Transmission delay may increase with congestion

Packet may be discarded Source can detect these as implicit

indications of congestion Useful on connectionless (datagram)

networks eg IP based Used in frame relay LAPF

Transport Layer 3-17

Explicit Congestion Signaling

Network alerts end systems of increasing congestion

End systems take steps to reduce offered load

Backwards Congestion avoidance in opposite direction

to packet required Forwards

Congestion avoidance in same direction as packet required

Used in ATM by ABR Service

Transport Layer 3-18

Traffic Shaping

Smooth out traffic flow and reduce cell clumping

Token bucket

Transport Layer 3-19

Token Bucket for Traffic Shaping

Transport Layer 3-20

Case study ATM ABR congestion control

ABR available bit rate

ldquoelastic servicerdquo if senderrsquos path

ldquounderloadedrdquo sender should use

available bandwidth if senderrsquos path

congested sender throttled to

minimum guaranteed rate

RM (resource management) cells

sent by sender interspersed with data cells

bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate

(mild congestion) CI bit congestion

indication RM cells returned to sender

by receiver with bits intact

Transport Layer 3-21

Case study ATM ABR congestion control

two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on

path

EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI

bit in returned RM cell

Transport Layer 3-22

TCP Congestion Control

end-end control (no network assistance)

sender limits transmission LastByteSent-LastByteAcked

CongWin Roughly

CongWin is dynamic function of perceived network congestion

How does sender perceive congestion

loss event = timeout or 3 duplicate acks

TCP sender reduces rate (CongWin) after loss event

three mechanisms AIMD slow start conservative after

timeout events

rate = CongWin

RTT Bytessec

Transport Layer 3-23

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

multiplicative decrease cut CongWin in half after loss event

additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing

Long-lived TCP connection

Transport Layer 3-24

TCP Slow Start

When connection begins CongWin = 1 MSS Example MSS = 500

bytes amp RTT = 200 msec

initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT desirable to quickly

ramp up to respectable rate

When connection begins increase rate exponentially fast until first loss event

Transport Layer 3-25

TCP Slow Start (more)

When connection begins increase rate exponentially until first loss event double CongWin every

RTT done by incrementing CongWin for every ACK received

Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-26

Refinement After 3 dup ACKs

CongWin is cut in half window then grows linearly

But after timeout event CongWin instead set to 1 MSS window then grows

exponentially to a threshold then grows

linearly

bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo

Philosophy

Transport Layer 3-27

Refinement (more)Q When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementation Variable Threshold At loss event Threshold

is set to 12 of CongWin just before loss event

Transport Layer 3-28

Summary TCP Congestion Control

When CongWin is below Threshold sender in slow-start phase window grows exponentially

When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly

When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold

When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS

Transport Layer 3-29

TCP sender congestion control

Event State TCP Sender Action Commentary

ACK receipt for previously unacked data

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo

Resulting in a doubling of CongWin every RTT

ACK receipt for previously unacked data

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Additive increase resulting in increase of CongWin by 1 MSS every RTT

Loss event detected by triple duplicate ACK

SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS

Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo

Enter slow start

Duplicate ACK

SS or CA Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 15: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-15

Choke Packet

Control packet Generated at congested node Sent to source node eg ICMP source quench

bull From router or destinationbull Source cuts back until no more source quench

messagebull Sent for every discarded packet or anticipated

Rather crude mechanism

Transport Layer 3-16

Implicit Congestion Signaling

Transmission delay may increase with congestion

Packet may be discarded Source can detect these as implicit

indications of congestion Useful on connectionless (datagram)

networks eg IP based Used in frame relay LAPF

Transport Layer 3-17

Explicit Congestion Signaling

Network alerts end systems of increasing congestion

End systems take steps to reduce offered load

Backwards Congestion avoidance in opposite direction

to packet required Forwards

Congestion avoidance in same direction as packet required

Used in ATM by ABR Service

Transport Layer 3-18

Traffic Shaping

Smooth out traffic flow and reduce cell clumping

Token bucket

Transport Layer 3-19

Token Bucket for Traffic Shaping

Transport Layer 3-20

Case study ATM ABR congestion control

ABR available bit rate

ldquoelastic servicerdquo if senderrsquos path

ldquounderloadedrdquo sender should use

available bandwidth if senderrsquos path

congested sender throttled to

minimum guaranteed rate

RM (resource management) cells

sent by sender interspersed with data cells

bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate

(mild congestion) CI bit congestion

indication RM cells returned to sender

by receiver with bits intact

Transport Layer 3-21

Case study ATM ABR congestion control

two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on

path

EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI

bit in returned RM cell

Transport Layer 3-22

TCP Congestion Control

end-end control (no network assistance)

sender limits transmission LastByteSent-LastByteAcked

CongWin Roughly

CongWin is dynamic function of perceived network congestion

How does sender perceive congestion

loss event = timeout or 3 duplicate acks

TCP sender reduces rate (CongWin) after loss event

three mechanisms AIMD slow start conservative after

timeout events

rate = CongWin

RTT Bytessec

Transport Layer 3-23

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

multiplicative decrease cut CongWin in half after loss event

additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing

Long-lived TCP connection

Transport Layer 3-24

TCP Slow Start

When connection begins CongWin = 1 MSS Example MSS = 500

bytes amp RTT = 200 msec

initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT desirable to quickly

ramp up to respectable rate

When connection begins increase rate exponentially fast until first loss event

Transport Layer 3-25

TCP Slow Start (more)

When connection begins increase rate exponentially until first loss event double CongWin every

RTT done by incrementing CongWin for every ACK received

Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-26

Refinement After 3 dup ACKs

CongWin is cut in half window then grows linearly

But after timeout event CongWin instead set to 1 MSS window then grows

exponentially to a threshold then grows

linearly

bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo

Philosophy

Transport Layer 3-27

Refinement (more)Q When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementation Variable Threshold At loss event Threshold

is set to 12 of CongWin just before loss event

Transport Layer 3-28

Summary TCP Congestion Control

When CongWin is below Threshold sender in slow-start phase window grows exponentially

When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly

When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold

When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS

Transport Layer 3-29

TCP sender congestion control

Event State TCP Sender Action Commentary

ACK receipt for previously unacked data

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo

Resulting in a doubling of CongWin every RTT

ACK receipt for previously unacked data

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Additive increase resulting in increase of CongWin by 1 MSS every RTT

Loss event detected by triple duplicate ACK

SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS

Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo

Enter slow start

Duplicate ACK

SS or CA Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 16: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-16

Implicit Congestion Signaling

Transmission delay may increase with congestion

Packet may be discarded Source can detect these as implicit

indications of congestion Useful on connectionless (datagram)

networks eg IP based Used in frame relay LAPF

Transport Layer 3-17

Explicit Congestion Signaling

Network alerts end systems of increasing congestion

End systems take steps to reduce offered load

Backwards Congestion avoidance in opposite direction

to packet required Forwards

Congestion avoidance in same direction as packet required

Used in ATM by ABR Service

Transport Layer 3-18

Traffic Shaping

Smooth out traffic flow and reduce cell clumping

Token bucket

Transport Layer 3-19

Token Bucket for Traffic Shaping

Transport Layer 3-20

Case study ATM ABR congestion control

ABR available bit rate

ldquoelastic servicerdquo if senderrsquos path

ldquounderloadedrdquo sender should use

available bandwidth if senderrsquos path

congested sender throttled to

minimum guaranteed rate

RM (resource management) cells

sent by sender interspersed with data cells

bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate

(mild congestion) CI bit congestion

indication RM cells returned to sender

by receiver with bits intact

Transport Layer 3-21

Case study ATM ABR congestion control

two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on

path

EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI

bit in returned RM cell

Transport Layer 3-22

TCP Congestion Control

end-end control (no network assistance)

sender limits transmission LastByteSent-LastByteAcked

CongWin Roughly

CongWin is dynamic function of perceived network congestion

How does sender perceive congestion

loss event = timeout or 3 duplicate acks

TCP sender reduces rate (CongWin) after loss event

three mechanisms AIMD slow start conservative after

timeout events

rate = CongWin

RTT Bytessec

Transport Layer 3-23

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

multiplicative decrease cut CongWin in half after loss event

additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing

Long-lived TCP connection

Transport Layer 3-24

TCP Slow Start

When connection begins CongWin = 1 MSS Example MSS = 500

bytes amp RTT = 200 msec

initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT desirable to quickly

ramp up to respectable rate

When connection begins increase rate exponentially fast until first loss event

Transport Layer 3-25

TCP Slow Start (more)

When connection begins increase rate exponentially until first loss event double CongWin every

RTT done by incrementing CongWin for every ACK received

Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-26

Refinement After 3 dup ACKs

CongWin is cut in half window then grows linearly

But after timeout event CongWin instead set to 1 MSS window then grows

exponentially to a threshold then grows

linearly

bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo

Philosophy

Transport Layer 3-27

Refinement (more)Q When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementation Variable Threshold At loss event Threshold

is set to 12 of CongWin just before loss event

Transport Layer 3-28

Summary TCP Congestion Control

When CongWin is below Threshold sender in slow-start phase window grows exponentially

When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly

When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold

When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS

Transport Layer 3-29

TCP sender congestion control

Event State TCP Sender Action Commentary

ACK receipt for previously unacked data

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo

Resulting in a doubling of CongWin every RTT

ACK receipt for previously unacked data

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Additive increase resulting in increase of CongWin by 1 MSS every RTT

Loss event detected by triple duplicate ACK

SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS

Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo

Enter slow start

Duplicate ACK

SS or CA Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 17: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-17

Explicit Congestion Signaling

Network alerts end systems of increasing congestion

End systems take steps to reduce offered load

Backwards Congestion avoidance in opposite direction

to packet required Forwards

Congestion avoidance in same direction as packet required

Used in ATM by ABR Service

Transport Layer 3-18

Traffic Shaping

Smooth out traffic flow and reduce cell clumping

Token bucket

Transport Layer 3-19

Token Bucket for Traffic Shaping

Transport Layer 3-20

Case study ATM ABR congestion control

ABR available bit rate

ldquoelastic servicerdquo if senderrsquos path

ldquounderloadedrdquo sender should use

available bandwidth if senderrsquos path

congested sender throttled to

minimum guaranteed rate

RM (resource management) cells

sent by sender interspersed with data cells

bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate

(mild congestion) CI bit congestion

indication RM cells returned to sender

by receiver with bits intact

Transport Layer 3-21

Case study ATM ABR congestion control

two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on

path

EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI

bit in returned RM cell

Transport Layer 3-22

TCP Congestion Control

end-end control (no network assistance)

sender limits transmission LastByteSent-LastByteAcked

CongWin Roughly

CongWin is dynamic function of perceived network congestion

How does sender perceive congestion

loss event = timeout or 3 duplicate acks

TCP sender reduces rate (CongWin) after loss event

three mechanisms AIMD slow start conservative after

timeout events

rate = CongWin

RTT Bytessec

Transport Layer 3-23

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

multiplicative decrease cut CongWin in half after loss event

additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing

Long-lived TCP connection

Transport Layer 3-24

TCP Slow Start

When connection begins CongWin = 1 MSS Example MSS = 500

bytes amp RTT = 200 msec

initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT desirable to quickly

ramp up to respectable rate

When connection begins increase rate exponentially fast until first loss event

Transport Layer 3-25

TCP Slow Start (more)

When connection begins increase rate exponentially until first loss event double CongWin every

RTT done by incrementing CongWin for every ACK received

Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-26

Refinement After 3 dup ACKs

CongWin is cut in half window then grows linearly

But after timeout event CongWin instead set to 1 MSS window then grows

exponentially to a threshold then grows

linearly

bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo

Philosophy

Transport Layer 3-27

Refinement (more)Q When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementation Variable Threshold At loss event Threshold

is set to 12 of CongWin just before loss event

Transport Layer 3-28

Summary TCP Congestion Control

When CongWin is below Threshold sender in slow-start phase window grows exponentially

When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly

When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold

When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS

Transport Layer 3-29

TCP sender congestion control

Event State TCP Sender Action Commentary

ACK receipt for previously unacked data

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo

Resulting in a doubling of CongWin every RTT

ACK receipt for previously unacked data

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Additive increase resulting in increase of CongWin by 1 MSS every RTT

Loss event detected by triple duplicate ACK

SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS

Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo

Enter slow start

Duplicate ACK

SS or CA Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 18: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-18

Traffic Shaping

Smooth out traffic flow and reduce cell clumping

Token bucket

Transport Layer 3-19

Token Bucket for Traffic Shaping

Transport Layer 3-20

Case study ATM ABR congestion control

ABR available bit rate

ldquoelastic servicerdquo if senderrsquos path

ldquounderloadedrdquo sender should use

available bandwidth if senderrsquos path

congested sender throttled to

minimum guaranteed rate

RM (resource management) cells

sent by sender interspersed with data cells

bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate

(mild congestion) CI bit congestion

indication RM cells returned to sender

by receiver with bits intact

Transport Layer 3-21

Case study ATM ABR congestion control

two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on

path

EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI

bit in returned RM cell

Transport Layer 3-22

TCP Congestion Control

end-end control (no network assistance)

sender limits transmission LastByteSent-LastByteAcked

CongWin Roughly

CongWin is dynamic function of perceived network congestion

How does sender perceive congestion

loss event = timeout or 3 duplicate acks

TCP sender reduces rate (CongWin) after loss event

three mechanisms AIMD slow start conservative after

timeout events

rate = CongWin

RTT Bytessec

Transport Layer 3-23

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

multiplicative decrease cut CongWin in half after loss event

additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing

Long-lived TCP connection

Transport Layer 3-24

TCP Slow Start

When connection begins CongWin = 1 MSS Example MSS = 500

bytes amp RTT = 200 msec

initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT desirable to quickly

ramp up to respectable rate

When connection begins increase rate exponentially fast until first loss event

Transport Layer 3-25

TCP Slow Start (more)

When connection begins increase rate exponentially until first loss event double CongWin every

RTT done by incrementing CongWin for every ACK received

Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-26

Refinement After 3 dup ACKs

CongWin is cut in half window then grows linearly

But after timeout event CongWin instead set to 1 MSS window then grows

exponentially to a threshold then grows

linearly

bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo

Philosophy

Transport Layer 3-27

Refinement (more)Q When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementation Variable Threshold At loss event Threshold

is set to 12 of CongWin just before loss event

Transport Layer 3-28

Summary TCP Congestion Control

When CongWin is below Threshold sender in slow-start phase window grows exponentially

When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly

When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold

When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS

Transport Layer 3-29

TCP sender congestion control

Event State TCP Sender Action Commentary

ACK receipt for previously unacked data

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo

Resulting in a doubling of CongWin every RTT

ACK receipt for previously unacked data

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Additive increase resulting in increase of CongWin by 1 MSS every RTT

Loss event detected by triple duplicate ACK

SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS

Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo

Enter slow start

Duplicate ACK

SS or CA Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 19: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-19

Token Bucket for Traffic Shaping

Transport Layer 3-20

Case study ATM ABR congestion control

ABR available bit rate

ldquoelastic servicerdquo if senderrsquos path

ldquounderloadedrdquo sender should use

available bandwidth if senderrsquos path

congested sender throttled to

minimum guaranteed rate

RM (resource management) cells

sent by sender interspersed with data cells

bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate

(mild congestion) CI bit congestion

indication RM cells returned to sender

by receiver with bits intact

Transport Layer 3-21

Case study ATM ABR congestion control

two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on

path

EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI

bit in returned RM cell

Transport Layer 3-22

TCP Congestion Control

end-end control (no network assistance)

sender limits transmission LastByteSent-LastByteAcked

CongWin Roughly

CongWin is dynamic function of perceived network congestion

How does sender perceive congestion

loss event = timeout or 3 duplicate acks

TCP sender reduces rate (CongWin) after loss event

three mechanisms AIMD slow start conservative after

timeout events

rate = CongWin

RTT Bytessec

Transport Layer 3-23

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

multiplicative decrease cut CongWin in half after loss event

additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing

Long-lived TCP connection

Transport Layer 3-24

TCP Slow Start

When connection begins CongWin = 1 MSS Example MSS = 500

bytes amp RTT = 200 msec

initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT desirable to quickly

ramp up to respectable rate

When connection begins increase rate exponentially fast until first loss event

Transport Layer 3-25

TCP Slow Start (more)

When connection begins increase rate exponentially until first loss event double CongWin every

RTT done by incrementing CongWin for every ACK received

Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-26

Refinement After 3 dup ACKs

CongWin is cut in half window then grows linearly

But after timeout event CongWin instead set to 1 MSS window then grows

exponentially to a threshold then grows

linearly

bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo

Philosophy

Transport Layer 3-27

Refinement (more)Q When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementation Variable Threshold At loss event Threshold

is set to 12 of CongWin just before loss event

Transport Layer 3-28

Summary TCP Congestion Control

When CongWin is below Threshold sender in slow-start phase window grows exponentially

When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly

When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold

When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS

Transport Layer 3-29

TCP sender congestion control

Event State TCP Sender Action Commentary

ACK receipt for previously unacked data

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo

Resulting in a doubling of CongWin every RTT

ACK receipt for previously unacked data

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Additive increase resulting in increase of CongWin by 1 MSS every RTT

Loss event detected by triple duplicate ACK

SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS

Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo

Enter slow start

Duplicate ACK

SS or CA Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 20: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-20

Case study ATM ABR congestion control

ABR available bit rate

ldquoelastic servicerdquo if senderrsquos path

ldquounderloadedrdquo sender should use

available bandwidth if senderrsquos path

congested sender throttled to

minimum guaranteed rate

RM (resource management) cells

sent by sender interspersed with data cells

bits in RM cell set by switches (ldquonetwork-assistedrdquo) NI bit no increase in rate

(mild congestion) CI bit congestion

indication RM cells returned to sender

by receiver with bits intact

Transport Layer 3-21

Case study ATM ABR congestion control

two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on

path

EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI

bit in returned RM cell

Transport Layer 3-22

TCP Congestion Control

end-end control (no network assistance)

sender limits transmission LastByteSent-LastByteAcked

CongWin Roughly

CongWin is dynamic function of perceived network congestion

How does sender perceive congestion

loss event = timeout or 3 duplicate acks

TCP sender reduces rate (CongWin) after loss event

three mechanisms AIMD slow start conservative after

timeout events

rate = CongWin

RTT Bytessec

Transport Layer 3-23

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

multiplicative decrease cut CongWin in half after loss event

additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing

Long-lived TCP connection

Transport Layer 3-24

TCP Slow Start

When connection begins CongWin = 1 MSS Example MSS = 500

bytes amp RTT = 200 msec

initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT desirable to quickly

ramp up to respectable rate

When connection begins increase rate exponentially fast until first loss event

Transport Layer 3-25

TCP Slow Start (more)

When connection begins increase rate exponentially until first loss event double CongWin every

RTT done by incrementing CongWin for every ACK received

Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-26

Refinement After 3 dup ACKs

CongWin is cut in half window then grows linearly

But after timeout event CongWin instead set to 1 MSS window then grows

exponentially to a threshold then grows

linearly

bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo

Philosophy

Transport Layer 3-27

Refinement (more)Q When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementation Variable Threshold At loss event Threshold

is set to 12 of CongWin just before loss event

Transport Layer 3-28

Summary TCP Congestion Control

When CongWin is below Threshold sender in slow-start phase window grows exponentially

When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly

When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold

When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS

Transport Layer 3-29

TCP sender congestion control

Event State TCP Sender Action Commentary

ACK receipt for previously unacked data

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo

Resulting in a doubling of CongWin every RTT

ACK receipt for previously unacked data

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Additive increase resulting in increase of CongWin by 1 MSS every RTT

Loss event detected by triple duplicate ACK

SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS

Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo

Enter slow start

Duplicate ACK

SS or CA Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 21: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-21

Case study ATM ABR congestion control

two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell senderrsquo send rate thus minimum supportable rate on

path

EFCI bit in data cells set to 1 in congested switch if data cell preceding RM cell has EFCI set sender sets CI

bit in returned RM cell

Transport Layer 3-22

TCP Congestion Control

end-end control (no network assistance)

sender limits transmission LastByteSent-LastByteAcked

CongWin Roughly

CongWin is dynamic function of perceived network congestion

How does sender perceive congestion

loss event = timeout or 3 duplicate acks

TCP sender reduces rate (CongWin) after loss event

three mechanisms AIMD slow start conservative after

timeout events

rate = CongWin

RTT Bytessec

Transport Layer 3-23

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

multiplicative decrease cut CongWin in half after loss event

additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing

Long-lived TCP connection

Transport Layer 3-24

TCP Slow Start

When connection begins CongWin = 1 MSS Example MSS = 500

bytes amp RTT = 200 msec

initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT desirable to quickly

ramp up to respectable rate

When connection begins increase rate exponentially fast until first loss event

Transport Layer 3-25

TCP Slow Start (more)

When connection begins increase rate exponentially until first loss event double CongWin every

RTT done by incrementing CongWin for every ACK received

Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-26

Refinement After 3 dup ACKs

CongWin is cut in half window then grows linearly

But after timeout event CongWin instead set to 1 MSS window then grows

exponentially to a threshold then grows

linearly

bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo

Philosophy

Transport Layer 3-27

Refinement (more)Q When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementation Variable Threshold At loss event Threshold

is set to 12 of CongWin just before loss event

Transport Layer 3-28

Summary TCP Congestion Control

When CongWin is below Threshold sender in slow-start phase window grows exponentially

When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly

When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold

When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS

Transport Layer 3-29

TCP sender congestion control

Event State TCP Sender Action Commentary

ACK receipt for previously unacked data

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo

Resulting in a doubling of CongWin every RTT

ACK receipt for previously unacked data

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Additive increase resulting in increase of CongWin by 1 MSS every RTT

Loss event detected by triple duplicate ACK

SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS

Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo

Enter slow start

Duplicate ACK

SS or CA Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 22: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-22

TCP Congestion Control

end-end control (no network assistance)

sender limits transmission LastByteSent-LastByteAcked

CongWin Roughly

CongWin is dynamic function of perceived network congestion

How does sender perceive congestion

loss event = timeout or 3 duplicate acks

TCP sender reduces rate (CongWin) after loss event

three mechanisms AIMD slow start conservative after

timeout events

rate = CongWin

RTT Bytessec

Transport Layer 3-23

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

multiplicative decrease cut CongWin in half after loss event

additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing

Long-lived TCP connection

Transport Layer 3-24

TCP Slow Start

When connection begins CongWin = 1 MSS Example MSS = 500

bytes amp RTT = 200 msec

initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT desirable to quickly

ramp up to respectable rate

When connection begins increase rate exponentially fast until first loss event

Transport Layer 3-25

TCP Slow Start (more)

When connection begins increase rate exponentially until first loss event double CongWin every

RTT done by incrementing CongWin for every ACK received

Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-26

Refinement After 3 dup ACKs

CongWin is cut in half window then grows linearly

But after timeout event CongWin instead set to 1 MSS window then grows

exponentially to a threshold then grows

linearly

bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo

Philosophy

Transport Layer 3-27

Refinement (more)Q When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementation Variable Threshold At loss event Threshold

is set to 12 of CongWin just before loss event

Transport Layer 3-28

Summary TCP Congestion Control

When CongWin is below Threshold sender in slow-start phase window grows exponentially

When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly

When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold

When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS

Transport Layer 3-29

TCP sender congestion control

Event State TCP Sender Action Commentary

ACK receipt for previously unacked data

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo

Resulting in a doubling of CongWin every RTT

ACK receipt for previously unacked data

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Additive increase resulting in increase of CongWin by 1 MSS every RTT

Loss event detected by triple duplicate ACK

SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS

Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo

Enter slow start

Duplicate ACK

SS or CA Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 23: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-23

TCP AIMD

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

multiplicative decrease cut CongWin in half after loss event

additive increase increase CongWin by 1 MSS every RTT in the absence of loss events probing

Long-lived TCP connection

Transport Layer 3-24

TCP Slow Start

When connection begins CongWin = 1 MSS Example MSS = 500

bytes amp RTT = 200 msec

initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT desirable to quickly

ramp up to respectable rate

When connection begins increase rate exponentially fast until first loss event

Transport Layer 3-25

TCP Slow Start (more)

When connection begins increase rate exponentially until first loss event double CongWin every

RTT done by incrementing CongWin for every ACK received

Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-26

Refinement After 3 dup ACKs

CongWin is cut in half window then grows linearly

But after timeout event CongWin instead set to 1 MSS window then grows

exponentially to a threshold then grows

linearly

bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo

Philosophy

Transport Layer 3-27

Refinement (more)Q When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementation Variable Threshold At loss event Threshold

is set to 12 of CongWin just before loss event

Transport Layer 3-28

Summary TCP Congestion Control

When CongWin is below Threshold sender in slow-start phase window grows exponentially

When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly

When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold

When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS

Transport Layer 3-29

TCP sender congestion control

Event State TCP Sender Action Commentary

ACK receipt for previously unacked data

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo

Resulting in a doubling of CongWin every RTT

ACK receipt for previously unacked data

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Additive increase resulting in increase of CongWin by 1 MSS every RTT

Loss event detected by triple duplicate ACK

SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS

Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo

Enter slow start

Duplicate ACK

SS or CA Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 24: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-24

TCP Slow Start

When connection begins CongWin = 1 MSS Example MSS = 500

bytes amp RTT = 200 msec

initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT desirable to quickly

ramp up to respectable rate

When connection begins increase rate exponentially fast until first loss event

Transport Layer 3-25

TCP Slow Start (more)

When connection begins increase rate exponentially until first loss event double CongWin every

RTT done by incrementing CongWin for every ACK received

Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-26

Refinement After 3 dup ACKs

CongWin is cut in half window then grows linearly

But after timeout event CongWin instead set to 1 MSS window then grows

exponentially to a threshold then grows

linearly

bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo

Philosophy

Transport Layer 3-27

Refinement (more)Q When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementation Variable Threshold At loss event Threshold

is set to 12 of CongWin just before loss event

Transport Layer 3-28

Summary TCP Congestion Control

When CongWin is below Threshold sender in slow-start phase window grows exponentially

When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly

When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold

When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS

Transport Layer 3-29

TCP sender congestion control

Event State TCP Sender Action Commentary

ACK receipt for previously unacked data

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo

Resulting in a doubling of CongWin every RTT

ACK receipt for previously unacked data

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Additive increase resulting in increase of CongWin by 1 MSS every RTT

Loss event detected by triple duplicate ACK

SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS

Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo

Enter slow start

Duplicate ACK

SS or CA Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 25: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-25

TCP Slow Start (more)

When connection begins increase rate exponentially until first loss event double CongWin every

RTT done by incrementing CongWin for every ACK received

Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-26

Refinement After 3 dup ACKs

CongWin is cut in half window then grows linearly

But after timeout event CongWin instead set to 1 MSS window then grows

exponentially to a threshold then grows

linearly

bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo

Philosophy

Transport Layer 3-27

Refinement (more)Q When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementation Variable Threshold At loss event Threshold

is set to 12 of CongWin just before loss event

Transport Layer 3-28

Summary TCP Congestion Control

When CongWin is below Threshold sender in slow-start phase window grows exponentially

When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly

When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold

When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS

Transport Layer 3-29

TCP sender congestion control

Event State TCP Sender Action Commentary

ACK receipt for previously unacked data

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo

Resulting in a doubling of CongWin every RTT

ACK receipt for previously unacked data

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Additive increase resulting in increase of CongWin by 1 MSS every RTT

Loss event detected by triple duplicate ACK

SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS

Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo

Enter slow start

Duplicate ACK

SS or CA Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 26: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-26

Refinement After 3 dup ACKs

CongWin is cut in half window then grows linearly

But after timeout event CongWin instead set to 1 MSS window then grows

exponentially to a threshold then grows

linearly

bull 3 dup ACKs indicates network capable of delivering some segmentsbull timeout before 3 dup ACKs is ldquomore alarmingrdquo

Philosophy

Transport Layer 3-27

Refinement (more)Q When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementation Variable Threshold At loss event Threshold

is set to 12 of CongWin just before loss event

Transport Layer 3-28

Summary TCP Congestion Control

When CongWin is below Threshold sender in slow-start phase window grows exponentially

When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly

When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold

When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS

Transport Layer 3-29

TCP sender congestion control

Event State TCP Sender Action Commentary

ACK receipt for previously unacked data

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo

Resulting in a doubling of CongWin every RTT

ACK receipt for previously unacked data

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Additive increase resulting in increase of CongWin by 1 MSS every RTT

Loss event detected by triple duplicate ACK

SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS

Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo

Enter slow start

Duplicate ACK

SS or CA Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 27: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-27

Refinement (more)Q When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementation Variable Threshold At loss event Threshold

is set to 12 of CongWin just before loss event

Transport Layer 3-28

Summary TCP Congestion Control

When CongWin is below Threshold sender in slow-start phase window grows exponentially

When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly

When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold

When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS

Transport Layer 3-29

TCP sender congestion control

Event State TCP Sender Action Commentary

ACK receipt for previously unacked data

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo

Resulting in a doubling of CongWin every RTT

ACK receipt for previously unacked data

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Additive increase resulting in increase of CongWin by 1 MSS every RTT

Loss event detected by triple duplicate ACK

SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS

Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo

Enter slow start

Duplicate ACK

SS or CA Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 28: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-28

Summary TCP Congestion Control

When CongWin is below Threshold sender in slow-start phase window grows exponentially

When CongWin is above Threshold sender is in congestion-avoidance phase window grows linearly

When a triple duplicate ACK occurs Threshold set to CongWin2 and CongWin set to Threshold

When timeout occurs Threshold set to CongWin2 and CongWin is set to 1 MSS

Transport Layer 3-29

TCP sender congestion control

Event State TCP Sender Action Commentary

ACK receipt for previously unacked data

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo

Resulting in a doubling of CongWin every RTT

ACK receipt for previously unacked data

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Additive increase resulting in increase of CongWin by 1 MSS every RTT

Loss event detected by triple duplicate ACK

SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS

Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo

Enter slow start

Duplicate ACK

SS or CA Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 29: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-29

TCP sender congestion control

Event State TCP Sender Action Commentary

ACK receipt for previously unacked data

Slow Start (SS)

CongWin = CongWin + MSS If (CongWin gt Threshold) set state to ldquoCongestion Avoidancerdquo

Resulting in a doubling of CongWin every RTT

ACK receipt for previously unacked data

CongestionAvoidance (CA)

CongWin = CongWin+MSS (MSSCongWin)

Additive increase resulting in increase of CongWin by 1 MSS every RTT

Loss event detected by triple duplicate ACK

SS or CA Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

Fast recovery implementing multiplicative decrease CongWin will not drop below 1 MSS

Timeout SS or CA Threshold = CongWin2 CongWin = 1 MSSSet state to ldquoSlow Startrdquo

Enter slow start

Duplicate ACK

SS or CA Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 30: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-30

TCP throughput

Whatrsquos the average throughout ot TCP as a function of window size and RTT Ignore slow start

Let W be the window size when loss occurs

When window is W throughput is WRTT Just after loss window drops to W2

throughput to W2RTT Average throughout 75 WRTT

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 31: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-31

TCP Futures

Example 1500 byte segments 100ms RTT want 10 Gbps throughput

Requires window size W = 83333 in-flight segments

Throughput in terms of loss rate

L = 210-10 Wow New versions of TCP for high-speed needed

LRTT

MSS221

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 32: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-32

Fairness goal if K TCP sessions share same bottleneck link of bandwidth R each should have average rate of RK

TCP connection 1

bottleneckrouter

capacity R

TCP connection 2

TCP Fairness

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 33: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-33

Why is TCP fair

Two competing sessions Additive increase gives slope of 1 as throughout increases multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConnect

ion 2

th

roughput

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 34: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-34

Fairness (more)

Fairness and UDP Multimedia apps

often do not use TCP do not want rate

throttled by congestion control

Instead use UDP pump audiovideo at

constant rate tolerate packet loss

Research area TCP friendly

Fairness and parallel TCP connections

nothing prevents app from opening parallel cnctions between 2 hosts

Web browsers do this Example link of rate R

supporting 9 cnctions new app asks for 1 TCP

gets rate R10 new app asks for 11 TCPs

gets R2

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 35: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-35

Delay modeling

Q How long does it take to receive an object from a Web server after sending a request

Ignoring congestion delay is influenced by

TCP connection establishment

data transmission delay slow start

Notation assumptions Assume one link between

client and server of rate R S MSS (bits) O object size (bits) no retransmissions (no loss

no corruption)

Window size First assume fixed

congestion window W segments

Then dynamic window modeling slow start

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 36: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-36

Fixed congestion window (1)

First caseWSR gt RTT + SR ACK for

first segment in window returns before windowrsquos worth of data sent

delay = 2RTT + OR

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 37: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-37

Fixed congestion window (2)

Second case WSR lt RTT + SR wait

for ACK after sending windowrsquos worth of data sent

delay = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 38: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-38

TCP Delay Modeling Slow Start (1)

Now suppose window grows according to slow start

Will show that the delay for one object is

R

S

R

SRTTP

R

ORTTLatency P )12(2

where P is the number of times TCP idles at server

1min KQP

- where Q is the number of times the server idles if the object were of infinite size

- and K is the number of windows that cover the object

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 39: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-39

TCP Delay Modeling Slow Start (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Examplebull OS = 15 segmentsbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2

Server idles P=2 times

Delay componentsbull 2 RTT for connection estab and requestbull OR to transmit objectbull time server idles due to slow start

Server idles P = minK-1Q times

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 40: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-40

TCP Delay Modeling (3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver whenfrom time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)
Page 41: Transport Layer3-1 Data Communication and Networks Lecture 8 Congestion Control October 28, 2004

Transport Layer 3-41

TCP Delay Modeling (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

Calculation of Q number of idles for infinite-size objectis similar (see HW)

Recall K = number of windows that cover object

How do we calculate K

  • Data Communication and Networks
  • What Is Congestion
  • Queues at a Node
  • Effects of Congestion
  • Interaction of Queues
  • Causescosts of congestion scenario 1
  • Causescosts of congestion scenario 2
  • Slide 8
  • Causescosts of congestion scenario 3
  • Slide 10
  • Practical Performance
  • Approaches towards congestion control
  • Mechanisms for Congestion Control
  • Backpressure
  • Choke Packet
  • Implicit Congestion Signaling
  • Explicit Congestion Signaling
  • Traffic Shaping
  • Token Bucket for Traffic Shaping
  • Case study ATM ABR congestion control
  • Slide 21
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Delay modeling
  • Fixed congestion window (1)
  • Fixed congestion window (2)
  • TCP Delay Modeling Slow Start (1)
  • TCP Delay Modeling Slow Start (2)
  • TCP Delay Modeling (3)
  • TCP Delay Modeling (4)