20
Transport Layer 10-1 2010 session 1 TELE3118: Network Technologies Week 10: Transport Layer TCP Some slides have been taken from: Computer Networking: A Top Down Approach Featuring the Internet , 3 rd edition. Jim Kurose, Keith Ross. Addison-Wesley, July 2004. All material copyright 1996-2004. J.F Kurose and K.W. Ross, All Rights Reserved.

Transport Layer10-1 2010 session 1 TELE3118: Network Technologies Week 10: Transport Layer TCP Some slides have been taken from: r Computer Networking:

  • View
    216

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Transport Layer10-1 2010 session 1 TELE3118: Network Technologies Week 10: Transport Layer TCP Some slides have been taken from: r Computer Networking:

Transport Layer 10-1

2010 session 1TELE3118 Network

Technologies

Week 10 Transport LayerTCP

Some slides have been taken fromComputer Networking A Top Down Approach Featuring the Internet 3rd edition Jim Kurose Keith Ross Addison-Wesley July 2004 All material copyright 1996-2004 JF Kurose and KW Ross All Rights Reserved

Transport Layer 10-2

TCP Connection Management Setup

Recall TCP sender receiver establish ldquoconnectionrdquo before exchanging data segments

initialize TCP variables seq s buffers flow control

info (eg RcvWindow) client connection initiator

connect() server contacted by client

accept()

Three way handshake

Step 1 client host sends TCP SYN segment to server specifies initial seq no data

Step 2 server host receives SYN replies with SYNACK segment

server allocates buffers specifies server initial

seq Step 3 client receives SYNACK

replies with ACK segment which may contain data

Transport Layer 10-3

TCP Connection Management TeardownClosing a connection

Step 1 client end system sends TCP FIN control segment to server

Step 2 server receives FIN replies with ACK Closes connection sends FIN

Step 3 client receives FIN replies with ACK

Enters ldquotimed waitrdquo - will respond with ACK to received FINs

Step 4 server receives ACK Connection closed

client

FIN

server

ACK

ACK

FIN

close

close

closed

tim

ed w

ait

Transport Layer 10-4

TCP Connection Management (cont)

TCP clientlifecycle

TCP serverlifecycle

Transport Layer 10-5

TCP Flow Control

receive side of TCP connection has a receive buffer

speed-matching service matching the send rate to the receiving apprsquos drain rate app process may be

slow at reading from buffer

sender wonrsquot overflow

receiverrsquos buffer bytransmitting too

much too fast

flow control

Transport Layer 10-6

TCP Flow control how it works

(Suppose TCP receiver discards out-of-order segments)

spare room in buffer= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Rcvr advertises spare room by including value of RcvWindow in segments

Sender limits unACKed data to RcvWindow guarantees receive

buffer doesnrsquot overflow

Transport Layer 10-7

Congestion Control

Congestion informally ldquotoo many sources sending too

much data too fast for network to handlerdquo different from flow control manifestations

lost packets (buffer overflow at routers) long delays (queueing in router buffers)

a top-10 problem

Transport Layer 10-8

Approaches towards congestion control

End-end congestion control

no explicit feedback from network

congestion inferred from end-system observed loss delay

approach taken by TCP

Network-assisted congestion control

routers provide feedback to end systems single bit indicating

congestion (SNA DECbit TCPIP ECN ATM)

explicit rate sender should send at

Two broad approaches towards congestion control

Transport Layer 10-9

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 10-10

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 10-11

TCP Slow Start When connection begins

CongWin = 1 MSS Egbull MSS = 500 bytesbull RTT = 200 msecbull initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT Ramp-up takes too long

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 slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 10-12

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 10-13

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 10-14

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 10-15

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 10-16

TCP throughput

Whatrsquos the average throughout of 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 10-17

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 10-18

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 10-19

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 10-20

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

  • 2010 session 1 TELE3118 Network Technologies Week 10 Transport Layer TCP
  • TCP Connection Management Setup
  • TCP Connection Management Teardown
  • TCP Connection Management (cont)
  • TCP Flow Control
  • TCP Flow control how it works
  • Congestion Control
  • Approaches towards congestion control
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
Page 2: Transport Layer10-1 2010 session 1 TELE3118: Network Technologies Week 10: Transport Layer TCP Some slides have been taken from: r Computer Networking:

Transport Layer 10-2

TCP Connection Management Setup

Recall TCP sender receiver establish ldquoconnectionrdquo before exchanging data segments

initialize TCP variables seq s buffers flow control

info (eg RcvWindow) client connection initiator

connect() server contacted by client

accept()

Three way handshake

Step 1 client host sends TCP SYN segment to server specifies initial seq no data

Step 2 server host receives SYN replies with SYNACK segment

server allocates buffers specifies server initial

seq Step 3 client receives SYNACK

replies with ACK segment which may contain data

Transport Layer 10-3

TCP Connection Management TeardownClosing a connection

Step 1 client end system sends TCP FIN control segment to server

Step 2 server receives FIN replies with ACK Closes connection sends FIN

Step 3 client receives FIN replies with ACK

Enters ldquotimed waitrdquo - will respond with ACK to received FINs

Step 4 server receives ACK Connection closed

client

FIN

server

ACK

ACK

FIN

close

close

closed

tim

ed w

ait

Transport Layer 10-4

TCP Connection Management (cont)

TCP clientlifecycle

TCP serverlifecycle

Transport Layer 10-5

TCP Flow Control

receive side of TCP connection has a receive buffer

speed-matching service matching the send rate to the receiving apprsquos drain rate app process may be

slow at reading from buffer

sender wonrsquot overflow

receiverrsquos buffer bytransmitting too

much too fast

flow control

Transport Layer 10-6

TCP Flow control how it works

(Suppose TCP receiver discards out-of-order segments)

spare room in buffer= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Rcvr advertises spare room by including value of RcvWindow in segments

Sender limits unACKed data to RcvWindow guarantees receive

buffer doesnrsquot overflow

Transport Layer 10-7

Congestion Control

Congestion informally ldquotoo many sources sending too

much data too fast for network to handlerdquo different from flow control manifestations

lost packets (buffer overflow at routers) long delays (queueing in router buffers)

a top-10 problem

Transport Layer 10-8

Approaches towards congestion control

End-end congestion control

no explicit feedback from network

congestion inferred from end-system observed loss delay

approach taken by TCP

Network-assisted congestion control

routers provide feedback to end systems single bit indicating

congestion (SNA DECbit TCPIP ECN ATM)

explicit rate sender should send at

Two broad approaches towards congestion control

Transport Layer 10-9

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 10-10

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 10-11

TCP Slow Start When connection begins

CongWin = 1 MSS Egbull MSS = 500 bytesbull RTT = 200 msecbull initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT Ramp-up takes too long

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 slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 10-12

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 10-13

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 10-14

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 10-15

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 10-16

TCP throughput

Whatrsquos the average throughout of 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 10-17

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 10-18

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 10-19

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 10-20

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

  • 2010 session 1 TELE3118 Network Technologies Week 10 Transport Layer TCP
  • TCP Connection Management Setup
  • TCP Connection Management Teardown
  • TCP Connection Management (cont)
  • TCP Flow Control
  • TCP Flow control how it works
  • Congestion Control
  • Approaches towards congestion control
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
Page 3: Transport Layer10-1 2010 session 1 TELE3118: Network Technologies Week 10: Transport Layer TCP Some slides have been taken from: r Computer Networking:

Transport Layer 10-3

TCP Connection Management TeardownClosing a connection

Step 1 client end system sends TCP FIN control segment to server

Step 2 server receives FIN replies with ACK Closes connection sends FIN

Step 3 client receives FIN replies with ACK

Enters ldquotimed waitrdquo - will respond with ACK to received FINs

Step 4 server receives ACK Connection closed

client

FIN

server

ACK

ACK

FIN

close

close

closed

tim

ed w

ait

Transport Layer 10-4

TCP Connection Management (cont)

TCP clientlifecycle

TCP serverlifecycle

Transport Layer 10-5

TCP Flow Control

receive side of TCP connection has a receive buffer

speed-matching service matching the send rate to the receiving apprsquos drain rate app process may be

slow at reading from buffer

sender wonrsquot overflow

receiverrsquos buffer bytransmitting too

much too fast

flow control

Transport Layer 10-6

TCP Flow control how it works

(Suppose TCP receiver discards out-of-order segments)

spare room in buffer= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Rcvr advertises spare room by including value of RcvWindow in segments

Sender limits unACKed data to RcvWindow guarantees receive

buffer doesnrsquot overflow

Transport Layer 10-7

Congestion Control

Congestion informally ldquotoo many sources sending too

much data too fast for network to handlerdquo different from flow control manifestations

lost packets (buffer overflow at routers) long delays (queueing in router buffers)

a top-10 problem

Transport Layer 10-8

Approaches towards congestion control

End-end congestion control

no explicit feedback from network

congestion inferred from end-system observed loss delay

approach taken by TCP

Network-assisted congestion control

routers provide feedback to end systems single bit indicating

congestion (SNA DECbit TCPIP ECN ATM)

explicit rate sender should send at

Two broad approaches towards congestion control

Transport Layer 10-9

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 10-10

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 10-11

TCP Slow Start When connection begins

CongWin = 1 MSS Egbull MSS = 500 bytesbull RTT = 200 msecbull initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT Ramp-up takes too long

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 slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 10-12

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 10-13

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 10-14

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 10-15

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 10-16

TCP throughput

Whatrsquos the average throughout of 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 10-17

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 10-18

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 10-19

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 10-20

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

  • 2010 session 1 TELE3118 Network Technologies Week 10 Transport Layer TCP
  • TCP Connection Management Setup
  • TCP Connection Management Teardown
  • TCP Connection Management (cont)
  • TCP Flow Control
  • TCP Flow control how it works
  • Congestion Control
  • Approaches towards congestion control
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
Page 4: Transport Layer10-1 2010 session 1 TELE3118: Network Technologies Week 10: Transport Layer TCP Some slides have been taken from: r Computer Networking:

Transport Layer 10-4

TCP Connection Management (cont)

TCP clientlifecycle

TCP serverlifecycle

Transport Layer 10-5

TCP Flow Control

receive side of TCP connection has a receive buffer

speed-matching service matching the send rate to the receiving apprsquos drain rate app process may be

slow at reading from buffer

sender wonrsquot overflow

receiverrsquos buffer bytransmitting too

much too fast

flow control

Transport Layer 10-6

TCP Flow control how it works

(Suppose TCP receiver discards out-of-order segments)

spare room in buffer= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Rcvr advertises spare room by including value of RcvWindow in segments

Sender limits unACKed data to RcvWindow guarantees receive

buffer doesnrsquot overflow

Transport Layer 10-7

Congestion Control

Congestion informally ldquotoo many sources sending too

much data too fast for network to handlerdquo different from flow control manifestations

lost packets (buffer overflow at routers) long delays (queueing in router buffers)

a top-10 problem

Transport Layer 10-8

Approaches towards congestion control

End-end congestion control

no explicit feedback from network

congestion inferred from end-system observed loss delay

approach taken by TCP

Network-assisted congestion control

routers provide feedback to end systems single bit indicating

congestion (SNA DECbit TCPIP ECN ATM)

explicit rate sender should send at

Two broad approaches towards congestion control

Transport Layer 10-9

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 10-10

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 10-11

TCP Slow Start When connection begins

CongWin = 1 MSS Egbull MSS = 500 bytesbull RTT = 200 msecbull initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT Ramp-up takes too long

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 slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 10-12

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 10-13

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 10-14

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 10-15

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 10-16

TCP throughput

Whatrsquos the average throughout of 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 10-17

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 10-18

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 10-19

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 10-20

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

  • 2010 session 1 TELE3118 Network Technologies Week 10 Transport Layer TCP
  • TCP Connection Management Setup
  • TCP Connection Management Teardown
  • TCP Connection Management (cont)
  • TCP Flow Control
  • TCP Flow control how it works
  • Congestion Control
  • Approaches towards congestion control
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
Page 5: Transport Layer10-1 2010 session 1 TELE3118: Network Technologies Week 10: Transport Layer TCP Some slides have been taken from: r Computer Networking:

Transport Layer 10-5

TCP Flow Control

receive side of TCP connection has a receive buffer

speed-matching service matching the send rate to the receiving apprsquos drain rate app process may be

slow at reading from buffer

sender wonrsquot overflow

receiverrsquos buffer bytransmitting too

much too fast

flow control

Transport Layer 10-6

TCP Flow control how it works

(Suppose TCP receiver discards out-of-order segments)

spare room in buffer= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Rcvr advertises spare room by including value of RcvWindow in segments

Sender limits unACKed data to RcvWindow guarantees receive

buffer doesnrsquot overflow

Transport Layer 10-7

Congestion Control

Congestion informally ldquotoo many sources sending too

much data too fast for network to handlerdquo different from flow control manifestations

lost packets (buffer overflow at routers) long delays (queueing in router buffers)

a top-10 problem

Transport Layer 10-8

Approaches towards congestion control

End-end congestion control

no explicit feedback from network

congestion inferred from end-system observed loss delay

approach taken by TCP

Network-assisted congestion control

routers provide feedback to end systems single bit indicating

congestion (SNA DECbit TCPIP ECN ATM)

explicit rate sender should send at

Two broad approaches towards congestion control

Transport Layer 10-9

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 10-10

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 10-11

TCP Slow Start When connection begins

CongWin = 1 MSS Egbull MSS = 500 bytesbull RTT = 200 msecbull initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT Ramp-up takes too long

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 slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 10-12

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 10-13

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 10-14

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 10-15

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 10-16

TCP throughput

Whatrsquos the average throughout of 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 10-17

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 10-18

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 10-19

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 10-20

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

  • 2010 session 1 TELE3118 Network Technologies Week 10 Transport Layer TCP
  • TCP Connection Management Setup
  • TCP Connection Management Teardown
  • TCP Connection Management (cont)
  • TCP Flow Control
  • TCP Flow control how it works
  • Congestion Control
  • Approaches towards congestion control
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
Page 6: Transport Layer10-1 2010 session 1 TELE3118: Network Technologies Week 10: Transport Layer TCP Some slides have been taken from: r Computer Networking:

Transport Layer 10-6

TCP Flow control how it works

(Suppose TCP receiver discards out-of-order segments)

spare room in buffer= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Rcvr advertises spare room by including value of RcvWindow in segments

Sender limits unACKed data to RcvWindow guarantees receive

buffer doesnrsquot overflow

Transport Layer 10-7

Congestion Control

Congestion informally ldquotoo many sources sending too

much data too fast for network to handlerdquo different from flow control manifestations

lost packets (buffer overflow at routers) long delays (queueing in router buffers)

a top-10 problem

Transport Layer 10-8

Approaches towards congestion control

End-end congestion control

no explicit feedback from network

congestion inferred from end-system observed loss delay

approach taken by TCP

Network-assisted congestion control

routers provide feedback to end systems single bit indicating

congestion (SNA DECbit TCPIP ECN ATM)

explicit rate sender should send at

Two broad approaches towards congestion control

Transport Layer 10-9

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 10-10

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 10-11

TCP Slow Start When connection begins

CongWin = 1 MSS Egbull MSS = 500 bytesbull RTT = 200 msecbull initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT Ramp-up takes too long

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 slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 10-12

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 10-13

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 10-14

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 10-15

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 10-16

TCP throughput

Whatrsquos the average throughout of 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 10-17

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 10-18

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 10-19

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 10-20

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

  • 2010 session 1 TELE3118 Network Technologies Week 10 Transport Layer TCP
  • TCP Connection Management Setup
  • TCP Connection Management Teardown
  • TCP Connection Management (cont)
  • TCP Flow Control
  • TCP Flow control how it works
  • Congestion Control
  • Approaches towards congestion control
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
Page 7: Transport Layer10-1 2010 session 1 TELE3118: Network Technologies Week 10: Transport Layer TCP Some slides have been taken from: r Computer Networking:

Transport Layer 10-7

Congestion Control

Congestion informally ldquotoo many sources sending too

much data too fast for network to handlerdquo different from flow control manifestations

lost packets (buffer overflow at routers) long delays (queueing in router buffers)

a top-10 problem

Transport Layer 10-8

Approaches towards congestion control

End-end congestion control

no explicit feedback from network

congestion inferred from end-system observed loss delay

approach taken by TCP

Network-assisted congestion control

routers provide feedback to end systems single bit indicating

congestion (SNA DECbit TCPIP ECN ATM)

explicit rate sender should send at

Two broad approaches towards congestion control

Transport Layer 10-9

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 10-10

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 10-11

TCP Slow Start When connection begins

CongWin = 1 MSS Egbull MSS = 500 bytesbull RTT = 200 msecbull initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT Ramp-up takes too long

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 slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 10-12

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 10-13

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 10-14

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 10-15

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 10-16

TCP throughput

Whatrsquos the average throughout of 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 10-17

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 10-18

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 10-19

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 10-20

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

  • 2010 session 1 TELE3118 Network Technologies Week 10 Transport Layer TCP
  • TCP Connection Management Setup
  • TCP Connection Management Teardown
  • TCP Connection Management (cont)
  • TCP Flow Control
  • TCP Flow control how it works
  • Congestion Control
  • Approaches towards congestion control
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
Page 8: Transport Layer10-1 2010 session 1 TELE3118: Network Technologies Week 10: Transport Layer TCP Some slides have been taken from: r Computer Networking:

Transport Layer 10-8

Approaches towards congestion control

End-end congestion control

no explicit feedback from network

congestion inferred from end-system observed loss delay

approach taken by TCP

Network-assisted congestion control

routers provide feedback to end systems single bit indicating

congestion (SNA DECbit TCPIP ECN ATM)

explicit rate sender should send at

Two broad approaches towards congestion control

Transport Layer 10-9

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 10-10

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 10-11

TCP Slow Start When connection begins

CongWin = 1 MSS Egbull MSS = 500 bytesbull RTT = 200 msecbull initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT Ramp-up takes too long

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 slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 10-12

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 10-13

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 10-14

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 10-15

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 10-16

TCP throughput

Whatrsquos the average throughout of 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 10-17

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 10-18

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 10-19

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 10-20

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

  • 2010 session 1 TELE3118 Network Technologies Week 10 Transport Layer TCP
  • TCP Connection Management Setup
  • TCP Connection Management Teardown
  • TCP Connection Management (cont)
  • TCP Flow Control
  • TCP Flow control how it works
  • Congestion Control
  • Approaches towards congestion control
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
Page 9: Transport Layer10-1 2010 session 1 TELE3118: Network Technologies Week 10: Transport Layer TCP Some slides have been taken from: r Computer Networking:

Transport Layer 10-9

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 10-10

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 10-11

TCP Slow Start When connection begins

CongWin = 1 MSS Egbull MSS = 500 bytesbull RTT = 200 msecbull initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT Ramp-up takes too long

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 slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 10-12

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 10-13

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 10-14

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 10-15

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 10-16

TCP throughput

Whatrsquos the average throughout of 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 10-17

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 10-18

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 10-19

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 10-20

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

  • 2010 session 1 TELE3118 Network Technologies Week 10 Transport Layer TCP
  • TCP Connection Management Setup
  • TCP Connection Management Teardown
  • TCP Connection Management (cont)
  • TCP Flow Control
  • TCP Flow control how it works
  • Congestion Control
  • Approaches towards congestion control
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
Page 10: Transport Layer10-1 2010 session 1 TELE3118: Network Technologies Week 10: Transport Layer TCP Some slides have been taken from: r Computer Networking:

Transport Layer 10-10

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 10-11

TCP Slow Start When connection begins

CongWin = 1 MSS Egbull MSS = 500 bytesbull RTT = 200 msecbull initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT Ramp-up takes too long

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 slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 10-12

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 10-13

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 10-14

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 10-15

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 10-16

TCP throughput

Whatrsquos the average throughout of 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 10-17

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 10-18

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 10-19

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 10-20

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

  • 2010 session 1 TELE3118 Network Technologies Week 10 Transport Layer TCP
  • TCP Connection Management Setup
  • TCP Connection Management Teardown
  • TCP Connection Management (cont)
  • TCP Flow Control
  • TCP Flow control how it works
  • Congestion Control
  • Approaches towards congestion control
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
Page 11: Transport Layer10-1 2010 session 1 TELE3118: Network Technologies Week 10: Transport Layer TCP Some slides have been taken from: r Computer Networking:

Transport Layer 10-11

TCP Slow Start When connection begins

CongWin = 1 MSS Egbull MSS = 500 bytesbull RTT = 200 msecbull initial rate = 20 kbps

available bandwidth may be gtgt MSSRTT Ramp-up takes too long

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 slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 10-12

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 10-13

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 10-14

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 10-15

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 10-16

TCP throughput

Whatrsquos the average throughout of 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 10-17

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 10-18

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 10-19

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 10-20

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

  • 2010 session 1 TELE3118 Network Technologies Week 10 Transport Layer TCP
  • TCP Connection Management Setup
  • TCP Connection Management Teardown
  • TCP Connection Management (cont)
  • TCP Flow Control
  • TCP Flow control how it works
  • Congestion Control
  • Approaches towards congestion control
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
Page 12: Transport Layer10-1 2010 session 1 TELE3118: Network Technologies Week 10: Transport Layer TCP Some slides have been taken from: r Computer Networking:

Transport Layer 10-12

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 10-13

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 10-14

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 10-15

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 10-16

TCP throughput

Whatrsquos the average throughout of 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 10-17

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 10-18

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 10-19

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 10-20

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

  • 2010 session 1 TELE3118 Network Technologies Week 10 Transport Layer TCP
  • TCP Connection Management Setup
  • TCP Connection Management Teardown
  • TCP Connection Management (cont)
  • TCP Flow Control
  • TCP Flow control how it works
  • Congestion Control
  • Approaches towards congestion control
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
Page 13: Transport Layer10-1 2010 session 1 TELE3118: Network Technologies Week 10: Transport Layer TCP Some slides have been taken from: r Computer Networking:

Transport Layer 10-13

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 10-14

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 10-15

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 10-16

TCP throughput

Whatrsquos the average throughout of 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 10-17

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 10-18

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 10-19

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 10-20

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

  • 2010 session 1 TELE3118 Network Technologies Week 10 Transport Layer TCP
  • TCP Connection Management Setup
  • TCP Connection Management Teardown
  • TCP Connection Management (cont)
  • TCP Flow Control
  • TCP Flow control how it works
  • Congestion Control
  • Approaches towards congestion control
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
Page 14: Transport Layer10-1 2010 session 1 TELE3118: Network Technologies Week 10: Transport Layer TCP Some slides have been taken from: r Computer Networking:

Transport Layer 10-14

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 10-15

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 10-16

TCP throughput

Whatrsquos the average throughout of 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 10-17

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 10-18

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 10-19

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 10-20

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

  • 2010 session 1 TELE3118 Network Technologies Week 10 Transport Layer TCP
  • TCP Connection Management Setup
  • TCP Connection Management Teardown
  • TCP Connection Management (cont)
  • TCP Flow Control
  • TCP Flow control how it works
  • Congestion Control
  • Approaches towards congestion control
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
Page 15: Transport Layer10-1 2010 session 1 TELE3118: Network Technologies Week 10: Transport Layer TCP Some slides have been taken from: r Computer Networking:

Transport Layer 10-15

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 10-16

TCP throughput

Whatrsquos the average throughout of 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 10-17

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 10-18

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 10-19

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 10-20

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

  • 2010 session 1 TELE3118 Network Technologies Week 10 Transport Layer TCP
  • TCP Connection Management Setup
  • TCP Connection Management Teardown
  • TCP Connection Management (cont)
  • TCP Flow Control
  • TCP Flow control how it works
  • Congestion Control
  • Approaches towards congestion control
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
Page 16: Transport Layer10-1 2010 session 1 TELE3118: Network Technologies Week 10: Transport Layer TCP Some slides have been taken from: r Computer Networking:

Transport Layer 10-16

TCP throughput

Whatrsquos the average throughout of 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 10-17

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 10-18

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 10-19

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 10-20

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

  • 2010 session 1 TELE3118 Network Technologies Week 10 Transport Layer TCP
  • TCP Connection Management Setup
  • TCP Connection Management Teardown
  • TCP Connection Management (cont)
  • TCP Flow Control
  • TCP Flow control how it works
  • Congestion Control
  • Approaches towards congestion control
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
Page 17: Transport Layer10-1 2010 session 1 TELE3118: Network Technologies Week 10: Transport Layer TCP Some slides have been taken from: r Computer Networking:

Transport Layer 10-17

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 10-18

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 10-19

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 10-20

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

  • 2010 session 1 TELE3118 Network Technologies Week 10 Transport Layer TCP
  • TCP Connection Management Setup
  • TCP Connection Management Teardown
  • TCP Connection Management (cont)
  • TCP Flow Control
  • TCP Flow control how it works
  • Congestion Control
  • Approaches towards congestion control
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
Page 18: Transport Layer10-1 2010 session 1 TELE3118: Network Technologies Week 10: Transport Layer TCP Some slides have been taken from: r Computer Networking:

Transport Layer 10-18

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 10-19

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 10-20

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

  • 2010 session 1 TELE3118 Network Technologies Week 10 Transport Layer TCP
  • TCP Connection Management Setup
  • TCP Connection Management Teardown
  • TCP Connection Management (cont)
  • TCP Flow Control
  • TCP Flow control how it works
  • Congestion Control
  • Approaches towards congestion control
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
Page 19: Transport Layer10-1 2010 session 1 TELE3118: Network Technologies Week 10: Transport Layer TCP Some slides have been taken from: r Computer Networking:

Transport Layer 10-19

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 10-20

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

  • 2010 session 1 TELE3118 Network Technologies Week 10 Transport Layer TCP
  • TCP Connection Management Setup
  • TCP Connection Management Teardown
  • TCP Connection Management (cont)
  • TCP Flow Control
  • TCP Flow control how it works
  • Congestion Control
  • Approaches towards congestion control
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
Page 20: Transport Layer10-1 2010 session 1 TELE3118: Network Technologies Week 10: Transport Layer TCP Some slides have been taken from: r Computer Networking:

Transport Layer 10-20

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

  • 2010 session 1 TELE3118 Network Technologies Week 10 Transport Layer TCP
  • TCP Connection Management Setup
  • TCP Connection Management Teardown
  • TCP Connection Management (cont)
  • TCP Flow Control
  • TCP Flow control how it works
  • Congestion Control
  • Approaches towards congestion control
  • TCP Congestion Control
  • TCP AIMD
  • TCP Slow Start
  • Refinement
  • Refinement (more)
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)