transport layer3-1 chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and...

15
Transport Layer 3-1 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles of reliable data transfer 3.5 Connection- oriented transport: TCP segment structure reliable data transfer flow control – connection management 3.6 Principles of congestion control 3.7 TCP congestion control

Upload: ada-ramsey

Post on 11-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Transport Layer3-1 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles

Transport Layer 3-1

Chapter 3 outline

bull 31 Transport-layer servicesbull 32 Multiplexing and demultiplexingbull 33 Connectionless transport UDPbull 34 Principles of reliable data transfer

bull 35 Connection-oriented transport TCPndash segment structurendash reliable data transferndash flow controlndash connection management

bull 36 Principles of congestion control

bull 37 TCP congestion control

Transport Layer 3-2

TCP congestion control additive increase multiplicative decrease

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Approach increase transmission rate (window size) probing for usable bandwidth until loss occurs additive increase increase CongWin by 1 MSS every RTT

until loss detected multiplicative decrease cut CongWin in half after loss

timecong

estio

n w

indo

w s

ize

Saw toothbehavior probingfor bandwidth

Transport Layer 3-3

TCP Congestion Control details

bull sender limits transmission LastByteSent-LastByteAcked min(CongWinRcvWindows)

bull Roughly

bull CongWin is dynamic function of perceived network congestion

How does sender perceive congestion

bull loss event = timeout or 3 duplicate acks

bull TCP sender reduces rate (CongWin) after loss event

three mechanismsndash AIMDndash slow startndash conservative after timeout

events

rate = CongWin

RTT Bytessec

Transport Layer 3-4

TCP Slow Start

bull When connection begins CongWin = 1 MSSndash Example MSS = 500 bytes amp

RTT = 200 msecndash initial rate = 20 kbps

bull available bandwidth may be gtgt MSSRTTndash desirable to quickly ramp up

to respectable rate

When connection begins increase rate exponentially fast until first loss event

Transport Layer 3-5

TCP Slow Start (more)

bull When connection begins increase rate exponentially until first loss eventndash double CongWin every RTTndash done by incrementing CongWin for every ACK received

bull Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-6

RefinementQ When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementationbull Variable Threshold bull At loss event Threshold is set

to 12 of CongWin just before loss event

Transport Layer 3-7

Refinement inferring lossbull After 3 dup ACKs

ndash CongWin is cut in halfndash window then grows linearly

bull But after timeout event

ndash CongWin instead set to 1 MSS ndash window then grows exponentiallyndash to a threshold then grows linearly

3 dup ACKs indicates network capable of delivering some segments timeout indicates a ldquomore alarmingrdquo congestion scenario

Philosophy

Transport Layer 3-8

Summary TCP Congestion Control

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

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

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

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

Transport Layer 3-9

TCP sender congestion controlState Event TCP Sender Action Commentary

Slow Start (SS)

ACK receipt for previously unacked data

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

Resulting in a doubling of CongWin every RTT

CongestionAvoidance (CA)

ACK receipt for previously unacked data

CongWin = CongWin+MSS (MSSCongWin)

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

SS or CA Loss event detected by triple duplicate ACK

Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

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

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

Enter slow start

SS or CA Duplicate ACK

Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-10

TCP throughput

bull Whatrsquos the average throughout of TCP as a function of window size and RTTndash Ignore slow start

bull Let W be the window size when loss occursbull When window is W throughput is WRTTbull Just after loss window drops to W2

throughput to W2RTT bull Average throughout 75 WRTT

Transport Layer 3-11

TCP Futures TCP over ldquolong fat pipesrdquo

bull Example 1500 byte segments 100ms RTT want 10 Gbps throughput

bull Requires window size W = 83333 in-flight segmentsbull Throughput in terms of loss rate

bull L = 210-10 Wowbull New versions of TCP for high-speed

LRTT

MSS221

Transport Layer 3-12

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

TCP connection 1

bottleneckroutercapacity R

TCP connection 2

TCP Fairness

Transport Layer 3-13

Why is TCP fairTwo competing sessionsbull Additive increase gives slope of 1 as throughout increasesbull multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConn

ectio

n 2

t hr o

u gh p

u t

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-14

Fairness (more)Fairness and UDPbull Multimedia apps often do

not use TCPndash do not want rate throttled

by congestion controlbull Instead use UDP

ndash pump audiovideo at constant rate tolerate packet loss

bull Research area TCP friendly

Fairness and parallel TCP connections

bull nothing prevents app from opening parallel connections between 2 hosts

bull Web browsers do this bull Example link of rate R

supporting 9 connections ndash new app asks for 1 TCP gets rate

R10ndash new app asks for 11 TCPs gets

R2

Transport Layer 3-15

Chapter 3 Summarybull principles behind transport layer

services

ndash multiplexing demultiplexingndash reliable data transferndash flow controlndash congestion control

bull instantiation and implementation in the Internet

ndash UDPndash TCP

Nextbull leaving the network

ldquoedgerdquo (application transport layers)

bull into the network ldquocorerdquo

  • Chapter 3 outline
  • TCP congestion control additive increase multiplicative decre
  • TCP Congestion Control details
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement inferring loss
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures TCP over ldquolong fat pipesrdquo
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Chapter 3 Summary
Page 2: Transport Layer3-1 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles

Transport Layer 3-2

TCP congestion control additive increase multiplicative decrease

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Approach increase transmission rate (window size) probing for usable bandwidth until loss occurs additive increase increase CongWin by 1 MSS every RTT

until loss detected multiplicative decrease cut CongWin in half after loss

timecong

estio

n w

indo

w s

ize

Saw toothbehavior probingfor bandwidth

Transport Layer 3-3

TCP Congestion Control details

bull sender limits transmission LastByteSent-LastByteAcked min(CongWinRcvWindows)

bull Roughly

bull CongWin is dynamic function of perceived network congestion

How does sender perceive congestion

bull loss event = timeout or 3 duplicate acks

bull TCP sender reduces rate (CongWin) after loss event

three mechanismsndash AIMDndash slow startndash conservative after timeout

events

rate = CongWin

RTT Bytessec

Transport Layer 3-4

TCP Slow Start

bull When connection begins CongWin = 1 MSSndash Example MSS = 500 bytes amp

RTT = 200 msecndash initial rate = 20 kbps

bull available bandwidth may be gtgt MSSRTTndash desirable to quickly ramp up

to respectable rate

When connection begins increase rate exponentially fast until first loss event

Transport Layer 3-5

TCP Slow Start (more)

bull When connection begins increase rate exponentially until first loss eventndash double CongWin every RTTndash done by incrementing CongWin for every ACK received

bull Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-6

RefinementQ When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementationbull Variable Threshold bull At loss event Threshold is set

to 12 of CongWin just before loss event

Transport Layer 3-7

Refinement inferring lossbull After 3 dup ACKs

ndash CongWin is cut in halfndash window then grows linearly

bull But after timeout event

ndash CongWin instead set to 1 MSS ndash window then grows exponentiallyndash to a threshold then grows linearly

3 dup ACKs indicates network capable of delivering some segments timeout indicates a ldquomore alarmingrdquo congestion scenario

Philosophy

Transport Layer 3-8

Summary TCP Congestion Control

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

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

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

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

Transport Layer 3-9

TCP sender congestion controlState Event TCP Sender Action Commentary

Slow Start (SS)

ACK receipt for previously unacked data

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

Resulting in a doubling of CongWin every RTT

CongestionAvoidance (CA)

ACK receipt for previously unacked data

CongWin = CongWin+MSS (MSSCongWin)

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

SS or CA Loss event detected by triple duplicate ACK

Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

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

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

Enter slow start

SS or CA Duplicate ACK

Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-10

TCP throughput

bull Whatrsquos the average throughout of TCP as a function of window size and RTTndash Ignore slow start

bull Let W be the window size when loss occursbull When window is W throughput is WRTTbull Just after loss window drops to W2

throughput to W2RTT bull Average throughout 75 WRTT

Transport Layer 3-11

TCP Futures TCP over ldquolong fat pipesrdquo

bull Example 1500 byte segments 100ms RTT want 10 Gbps throughput

bull Requires window size W = 83333 in-flight segmentsbull Throughput in terms of loss rate

bull L = 210-10 Wowbull New versions of TCP for high-speed

LRTT

MSS221

Transport Layer 3-12

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

TCP connection 1

bottleneckroutercapacity R

TCP connection 2

TCP Fairness

Transport Layer 3-13

Why is TCP fairTwo competing sessionsbull Additive increase gives slope of 1 as throughout increasesbull multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConn

ectio

n 2

t hr o

u gh p

u t

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-14

Fairness (more)Fairness and UDPbull Multimedia apps often do

not use TCPndash do not want rate throttled

by congestion controlbull Instead use UDP

ndash pump audiovideo at constant rate tolerate packet loss

bull Research area TCP friendly

Fairness and parallel TCP connections

bull nothing prevents app from opening parallel connections between 2 hosts

bull Web browsers do this bull Example link of rate R

supporting 9 connections ndash new app asks for 1 TCP gets rate

R10ndash new app asks for 11 TCPs gets

R2

Transport Layer 3-15

Chapter 3 Summarybull principles behind transport layer

services

ndash multiplexing demultiplexingndash reliable data transferndash flow controlndash congestion control

bull instantiation and implementation in the Internet

ndash UDPndash TCP

Nextbull leaving the network

ldquoedgerdquo (application transport layers)

bull into the network ldquocorerdquo

  • Chapter 3 outline
  • TCP congestion control additive increase multiplicative decre
  • TCP Congestion Control details
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement inferring loss
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures TCP over ldquolong fat pipesrdquo
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Chapter 3 Summary
Page 3: Transport Layer3-1 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles

Transport Layer 3-3

TCP Congestion Control details

bull sender limits transmission LastByteSent-LastByteAcked min(CongWinRcvWindows)

bull Roughly

bull CongWin is dynamic function of perceived network congestion

How does sender perceive congestion

bull loss event = timeout or 3 duplicate acks

bull TCP sender reduces rate (CongWin) after loss event

three mechanismsndash AIMDndash slow startndash conservative after timeout

events

rate = CongWin

RTT Bytessec

Transport Layer 3-4

TCP Slow Start

bull When connection begins CongWin = 1 MSSndash Example MSS = 500 bytes amp

RTT = 200 msecndash initial rate = 20 kbps

bull available bandwidth may be gtgt MSSRTTndash desirable to quickly ramp up

to respectable rate

When connection begins increase rate exponentially fast until first loss event

Transport Layer 3-5

TCP Slow Start (more)

bull When connection begins increase rate exponentially until first loss eventndash double CongWin every RTTndash done by incrementing CongWin for every ACK received

bull Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-6

RefinementQ When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementationbull Variable Threshold bull At loss event Threshold is set

to 12 of CongWin just before loss event

Transport Layer 3-7

Refinement inferring lossbull After 3 dup ACKs

ndash CongWin is cut in halfndash window then grows linearly

bull But after timeout event

ndash CongWin instead set to 1 MSS ndash window then grows exponentiallyndash to a threshold then grows linearly

3 dup ACKs indicates network capable of delivering some segments timeout indicates a ldquomore alarmingrdquo congestion scenario

Philosophy

Transport Layer 3-8

Summary TCP Congestion Control

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

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

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

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

Transport Layer 3-9

TCP sender congestion controlState Event TCP Sender Action Commentary

Slow Start (SS)

ACK receipt for previously unacked data

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

Resulting in a doubling of CongWin every RTT

CongestionAvoidance (CA)

ACK receipt for previously unacked data

CongWin = CongWin+MSS (MSSCongWin)

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

SS or CA Loss event detected by triple duplicate ACK

Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

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

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

Enter slow start

SS or CA Duplicate ACK

Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-10

TCP throughput

bull Whatrsquos the average throughout of TCP as a function of window size and RTTndash Ignore slow start

bull Let W be the window size when loss occursbull When window is W throughput is WRTTbull Just after loss window drops to W2

throughput to W2RTT bull Average throughout 75 WRTT

Transport Layer 3-11

TCP Futures TCP over ldquolong fat pipesrdquo

bull Example 1500 byte segments 100ms RTT want 10 Gbps throughput

bull Requires window size W = 83333 in-flight segmentsbull Throughput in terms of loss rate

bull L = 210-10 Wowbull New versions of TCP for high-speed

LRTT

MSS221

Transport Layer 3-12

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

TCP connection 1

bottleneckroutercapacity R

TCP connection 2

TCP Fairness

Transport Layer 3-13

Why is TCP fairTwo competing sessionsbull Additive increase gives slope of 1 as throughout increasesbull multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConn

ectio

n 2

t hr o

u gh p

u t

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-14

Fairness (more)Fairness and UDPbull Multimedia apps often do

not use TCPndash do not want rate throttled

by congestion controlbull Instead use UDP

ndash pump audiovideo at constant rate tolerate packet loss

bull Research area TCP friendly

Fairness and parallel TCP connections

bull nothing prevents app from opening parallel connections between 2 hosts

bull Web browsers do this bull Example link of rate R

supporting 9 connections ndash new app asks for 1 TCP gets rate

R10ndash new app asks for 11 TCPs gets

R2

Transport Layer 3-15

Chapter 3 Summarybull principles behind transport layer

services

ndash multiplexing demultiplexingndash reliable data transferndash flow controlndash congestion control

bull instantiation and implementation in the Internet

ndash UDPndash TCP

Nextbull leaving the network

ldquoedgerdquo (application transport layers)

bull into the network ldquocorerdquo

  • Chapter 3 outline
  • TCP congestion control additive increase multiplicative decre
  • TCP Congestion Control details
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement inferring loss
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures TCP over ldquolong fat pipesrdquo
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Chapter 3 Summary
Page 4: Transport Layer3-1 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles

Transport Layer 3-4

TCP Slow Start

bull When connection begins CongWin = 1 MSSndash Example MSS = 500 bytes amp

RTT = 200 msecndash initial rate = 20 kbps

bull available bandwidth may be gtgt MSSRTTndash desirable to quickly ramp up

to respectable rate

When connection begins increase rate exponentially fast until first loss event

Transport Layer 3-5

TCP Slow Start (more)

bull When connection begins increase rate exponentially until first loss eventndash double CongWin every RTTndash done by incrementing CongWin for every ACK received

bull Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-6

RefinementQ When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementationbull Variable Threshold bull At loss event Threshold is set

to 12 of CongWin just before loss event

Transport Layer 3-7

Refinement inferring lossbull After 3 dup ACKs

ndash CongWin is cut in halfndash window then grows linearly

bull But after timeout event

ndash CongWin instead set to 1 MSS ndash window then grows exponentiallyndash to a threshold then grows linearly

3 dup ACKs indicates network capable of delivering some segments timeout indicates a ldquomore alarmingrdquo congestion scenario

Philosophy

Transport Layer 3-8

Summary TCP Congestion Control

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

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

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

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

Transport Layer 3-9

TCP sender congestion controlState Event TCP Sender Action Commentary

Slow Start (SS)

ACK receipt for previously unacked data

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

Resulting in a doubling of CongWin every RTT

CongestionAvoidance (CA)

ACK receipt for previously unacked data

CongWin = CongWin+MSS (MSSCongWin)

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

SS or CA Loss event detected by triple duplicate ACK

Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

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

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

Enter slow start

SS or CA Duplicate ACK

Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-10

TCP throughput

bull Whatrsquos the average throughout of TCP as a function of window size and RTTndash Ignore slow start

bull Let W be the window size when loss occursbull When window is W throughput is WRTTbull Just after loss window drops to W2

throughput to W2RTT bull Average throughout 75 WRTT

Transport Layer 3-11

TCP Futures TCP over ldquolong fat pipesrdquo

bull Example 1500 byte segments 100ms RTT want 10 Gbps throughput

bull Requires window size W = 83333 in-flight segmentsbull Throughput in terms of loss rate

bull L = 210-10 Wowbull New versions of TCP for high-speed

LRTT

MSS221

Transport Layer 3-12

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

TCP connection 1

bottleneckroutercapacity R

TCP connection 2

TCP Fairness

Transport Layer 3-13

Why is TCP fairTwo competing sessionsbull Additive increase gives slope of 1 as throughout increasesbull multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConn

ectio

n 2

t hr o

u gh p

u t

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-14

Fairness (more)Fairness and UDPbull Multimedia apps often do

not use TCPndash do not want rate throttled

by congestion controlbull Instead use UDP

ndash pump audiovideo at constant rate tolerate packet loss

bull Research area TCP friendly

Fairness and parallel TCP connections

bull nothing prevents app from opening parallel connections between 2 hosts

bull Web browsers do this bull Example link of rate R

supporting 9 connections ndash new app asks for 1 TCP gets rate

R10ndash new app asks for 11 TCPs gets

R2

Transport Layer 3-15

Chapter 3 Summarybull principles behind transport layer

services

ndash multiplexing demultiplexingndash reliable data transferndash flow controlndash congestion control

bull instantiation and implementation in the Internet

ndash UDPndash TCP

Nextbull leaving the network

ldquoedgerdquo (application transport layers)

bull into the network ldquocorerdquo

  • Chapter 3 outline
  • TCP congestion control additive increase multiplicative decre
  • TCP Congestion Control details
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement inferring loss
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures TCP over ldquolong fat pipesrdquo
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Chapter 3 Summary
Page 5: Transport Layer3-1 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles

Transport Layer 3-5

TCP Slow Start (more)

bull When connection begins increase rate exponentially until first loss eventndash double CongWin every RTTndash done by incrementing CongWin for every ACK received

bull Summary initial rate is slow but ramps up exponentially fast

Host A

one segment

RTT

Host B

time

two segments

four segments

Transport Layer 3-6

RefinementQ When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementationbull Variable Threshold bull At loss event Threshold is set

to 12 of CongWin just before loss event

Transport Layer 3-7

Refinement inferring lossbull After 3 dup ACKs

ndash CongWin is cut in halfndash window then grows linearly

bull But after timeout event

ndash CongWin instead set to 1 MSS ndash window then grows exponentiallyndash to a threshold then grows linearly

3 dup ACKs indicates network capable of delivering some segments timeout indicates a ldquomore alarmingrdquo congestion scenario

Philosophy

Transport Layer 3-8

Summary TCP Congestion Control

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

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

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

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

Transport Layer 3-9

TCP sender congestion controlState Event TCP Sender Action Commentary

Slow Start (SS)

ACK receipt for previously unacked data

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

Resulting in a doubling of CongWin every RTT

CongestionAvoidance (CA)

ACK receipt for previously unacked data

CongWin = CongWin+MSS (MSSCongWin)

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

SS or CA Loss event detected by triple duplicate ACK

Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

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

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

Enter slow start

SS or CA Duplicate ACK

Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-10

TCP throughput

bull Whatrsquos the average throughout of TCP as a function of window size and RTTndash Ignore slow start

bull Let W be the window size when loss occursbull When window is W throughput is WRTTbull Just after loss window drops to W2

throughput to W2RTT bull Average throughout 75 WRTT

Transport Layer 3-11

TCP Futures TCP over ldquolong fat pipesrdquo

bull Example 1500 byte segments 100ms RTT want 10 Gbps throughput

bull Requires window size W = 83333 in-flight segmentsbull Throughput in terms of loss rate

bull L = 210-10 Wowbull New versions of TCP for high-speed

LRTT

MSS221

Transport Layer 3-12

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

TCP connection 1

bottleneckroutercapacity R

TCP connection 2

TCP Fairness

Transport Layer 3-13

Why is TCP fairTwo competing sessionsbull Additive increase gives slope of 1 as throughout increasesbull multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConn

ectio

n 2

t hr o

u gh p

u t

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-14

Fairness (more)Fairness and UDPbull Multimedia apps often do

not use TCPndash do not want rate throttled

by congestion controlbull Instead use UDP

ndash pump audiovideo at constant rate tolerate packet loss

bull Research area TCP friendly

Fairness and parallel TCP connections

bull nothing prevents app from opening parallel connections between 2 hosts

bull Web browsers do this bull Example link of rate R

supporting 9 connections ndash new app asks for 1 TCP gets rate

R10ndash new app asks for 11 TCPs gets

R2

Transport Layer 3-15

Chapter 3 Summarybull principles behind transport layer

services

ndash multiplexing demultiplexingndash reliable data transferndash flow controlndash congestion control

bull instantiation and implementation in the Internet

ndash UDPndash TCP

Nextbull leaving the network

ldquoedgerdquo (application transport layers)

bull into the network ldquocorerdquo

  • Chapter 3 outline
  • TCP congestion control additive increase multiplicative decre
  • TCP Congestion Control details
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement inferring loss
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures TCP over ldquolong fat pipesrdquo
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Chapter 3 Summary
Page 6: Transport Layer3-1 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles

Transport Layer 3-6

RefinementQ When should the

exponential increase switch to linear

A When CongWin gets to 12 of its value before timeout

Implementationbull Variable Threshold bull At loss event Threshold is set

to 12 of CongWin just before loss event

Transport Layer 3-7

Refinement inferring lossbull After 3 dup ACKs

ndash CongWin is cut in halfndash window then grows linearly

bull But after timeout event

ndash CongWin instead set to 1 MSS ndash window then grows exponentiallyndash to a threshold then grows linearly

3 dup ACKs indicates network capable of delivering some segments timeout indicates a ldquomore alarmingrdquo congestion scenario

Philosophy

Transport Layer 3-8

Summary TCP Congestion Control

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

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

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

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

Transport Layer 3-9

TCP sender congestion controlState Event TCP Sender Action Commentary

Slow Start (SS)

ACK receipt for previously unacked data

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

Resulting in a doubling of CongWin every RTT

CongestionAvoidance (CA)

ACK receipt for previously unacked data

CongWin = CongWin+MSS (MSSCongWin)

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

SS or CA Loss event detected by triple duplicate ACK

Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

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

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

Enter slow start

SS or CA Duplicate ACK

Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-10

TCP throughput

bull Whatrsquos the average throughout of TCP as a function of window size and RTTndash Ignore slow start

bull Let W be the window size when loss occursbull When window is W throughput is WRTTbull Just after loss window drops to W2

throughput to W2RTT bull Average throughout 75 WRTT

Transport Layer 3-11

TCP Futures TCP over ldquolong fat pipesrdquo

bull Example 1500 byte segments 100ms RTT want 10 Gbps throughput

bull Requires window size W = 83333 in-flight segmentsbull Throughput in terms of loss rate

bull L = 210-10 Wowbull New versions of TCP for high-speed

LRTT

MSS221

Transport Layer 3-12

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

TCP connection 1

bottleneckroutercapacity R

TCP connection 2

TCP Fairness

Transport Layer 3-13

Why is TCP fairTwo competing sessionsbull Additive increase gives slope of 1 as throughout increasesbull multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConn

ectio

n 2

t hr o

u gh p

u t

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-14

Fairness (more)Fairness and UDPbull Multimedia apps often do

not use TCPndash do not want rate throttled

by congestion controlbull Instead use UDP

ndash pump audiovideo at constant rate tolerate packet loss

bull Research area TCP friendly

Fairness and parallel TCP connections

bull nothing prevents app from opening parallel connections between 2 hosts

bull Web browsers do this bull Example link of rate R

supporting 9 connections ndash new app asks for 1 TCP gets rate

R10ndash new app asks for 11 TCPs gets

R2

Transport Layer 3-15

Chapter 3 Summarybull principles behind transport layer

services

ndash multiplexing demultiplexingndash reliable data transferndash flow controlndash congestion control

bull instantiation and implementation in the Internet

ndash UDPndash TCP

Nextbull leaving the network

ldquoedgerdquo (application transport layers)

bull into the network ldquocorerdquo

  • Chapter 3 outline
  • TCP congestion control additive increase multiplicative decre
  • TCP Congestion Control details
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement inferring loss
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures TCP over ldquolong fat pipesrdquo
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Chapter 3 Summary
Page 7: Transport Layer3-1 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles

Transport Layer 3-7

Refinement inferring lossbull After 3 dup ACKs

ndash CongWin is cut in halfndash window then grows linearly

bull But after timeout event

ndash CongWin instead set to 1 MSS ndash window then grows exponentiallyndash to a threshold then grows linearly

3 dup ACKs indicates network capable of delivering some segments timeout indicates a ldquomore alarmingrdquo congestion scenario

Philosophy

Transport Layer 3-8

Summary TCP Congestion Control

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

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

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

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

Transport Layer 3-9

TCP sender congestion controlState Event TCP Sender Action Commentary

Slow Start (SS)

ACK receipt for previously unacked data

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

Resulting in a doubling of CongWin every RTT

CongestionAvoidance (CA)

ACK receipt for previously unacked data

CongWin = CongWin+MSS (MSSCongWin)

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

SS or CA Loss event detected by triple duplicate ACK

Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

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

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

Enter slow start

SS or CA Duplicate ACK

Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-10

TCP throughput

bull Whatrsquos the average throughout of TCP as a function of window size and RTTndash Ignore slow start

bull Let W be the window size when loss occursbull When window is W throughput is WRTTbull Just after loss window drops to W2

throughput to W2RTT bull Average throughout 75 WRTT

Transport Layer 3-11

TCP Futures TCP over ldquolong fat pipesrdquo

bull Example 1500 byte segments 100ms RTT want 10 Gbps throughput

bull Requires window size W = 83333 in-flight segmentsbull Throughput in terms of loss rate

bull L = 210-10 Wowbull New versions of TCP for high-speed

LRTT

MSS221

Transport Layer 3-12

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

TCP connection 1

bottleneckroutercapacity R

TCP connection 2

TCP Fairness

Transport Layer 3-13

Why is TCP fairTwo competing sessionsbull Additive increase gives slope of 1 as throughout increasesbull multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConn

ectio

n 2

t hr o

u gh p

u t

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-14

Fairness (more)Fairness and UDPbull Multimedia apps often do

not use TCPndash do not want rate throttled

by congestion controlbull Instead use UDP

ndash pump audiovideo at constant rate tolerate packet loss

bull Research area TCP friendly

Fairness and parallel TCP connections

bull nothing prevents app from opening parallel connections between 2 hosts

bull Web browsers do this bull Example link of rate R

supporting 9 connections ndash new app asks for 1 TCP gets rate

R10ndash new app asks for 11 TCPs gets

R2

Transport Layer 3-15

Chapter 3 Summarybull principles behind transport layer

services

ndash multiplexing demultiplexingndash reliable data transferndash flow controlndash congestion control

bull instantiation and implementation in the Internet

ndash UDPndash TCP

Nextbull leaving the network

ldquoedgerdquo (application transport layers)

bull into the network ldquocorerdquo

  • Chapter 3 outline
  • TCP congestion control additive increase multiplicative decre
  • TCP Congestion Control details
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement inferring loss
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures TCP over ldquolong fat pipesrdquo
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Chapter 3 Summary
Page 8: Transport Layer3-1 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles

Transport Layer 3-8

Summary TCP Congestion Control

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

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

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

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

Transport Layer 3-9

TCP sender congestion controlState Event TCP Sender Action Commentary

Slow Start (SS)

ACK receipt for previously unacked data

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

Resulting in a doubling of CongWin every RTT

CongestionAvoidance (CA)

ACK receipt for previously unacked data

CongWin = CongWin+MSS (MSSCongWin)

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

SS or CA Loss event detected by triple duplicate ACK

Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

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

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

Enter slow start

SS or CA Duplicate ACK

Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-10

TCP throughput

bull Whatrsquos the average throughout of TCP as a function of window size and RTTndash Ignore slow start

bull Let W be the window size when loss occursbull When window is W throughput is WRTTbull Just after loss window drops to W2

throughput to W2RTT bull Average throughout 75 WRTT

Transport Layer 3-11

TCP Futures TCP over ldquolong fat pipesrdquo

bull Example 1500 byte segments 100ms RTT want 10 Gbps throughput

bull Requires window size W = 83333 in-flight segmentsbull Throughput in terms of loss rate

bull L = 210-10 Wowbull New versions of TCP for high-speed

LRTT

MSS221

Transport Layer 3-12

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

TCP connection 1

bottleneckroutercapacity R

TCP connection 2

TCP Fairness

Transport Layer 3-13

Why is TCP fairTwo competing sessionsbull Additive increase gives slope of 1 as throughout increasesbull multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConn

ectio

n 2

t hr o

u gh p

u t

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-14

Fairness (more)Fairness and UDPbull Multimedia apps often do

not use TCPndash do not want rate throttled

by congestion controlbull Instead use UDP

ndash pump audiovideo at constant rate tolerate packet loss

bull Research area TCP friendly

Fairness and parallel TCP connections

bull nothing prevents app from opening parallel connections between 2 hosts

bull Web browsers do this bull Example link of rate R

supporting 9 connections ndash new app asks for 1 TCP gets rate

R10ndash new app asks for 11 TCPs gets

R2

Transport Layer 3-15

Chapter 3 Summarybull principles behind transport layer

services

ndash multiplexing demultiplexingndash reliable data transferndash flow controlndash congestion control

bull instantiation and implementation in the Internet

ndash UDPndash TCP

Nextbull leaving the network

ldquoedgerdquo (application transport layers)

bull into the network ldquocorerdquo

  • Chapter 3 outline
  • TCP congestion control additive increase multiplicative decre
  • TCP Congestion Control details
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement inferring loss
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures TCP over ldquolong fat pipesrdquo
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Chapter 3 Summary
Page 9: Transport Layer3-1 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles

Transport Layer 3-9

TCP sender congestion controlState Event TCP Sender Action Commentary

Slow Start (SS)

ACK receipt for previously unacked data

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

Resulting in a doubling of CongWin every RTT

CongestionAvoidance (CA)

ACK receipt for previously unacked data

CongWin = CongWin+MSS (MSSCongWin)

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

SS or CA Loss event detected by triple duplicate ACK

Threshold = CongWin2 CongWin = ThresholdSet state to ldquoCongestion Avoidancerdquo

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

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

Enter slow start

SS or CA Duplicate ACK

Increment duplicate ACK count for segment being acked

CongWin and Threshold not changed

Transport Layer 3-10

TCP throughput

bull Whatrsquos the average throughout of TCP as a function of window size and RTTndash Ignore slow start

bull Let W be the window size when loss occursbull When window is W throughput is WRTTbull Just after loss window drops to W2

throughput to W2RTT bull Average throughout 75 WRTT

Transport Layer 3-11

TCP Futures TCP over ldquolong fat pipesrdquo

bull Example 1500 byte segments 100ms RTT want 10 Gbps throughput

bull Requires window size W = 83333 in-flight segmentsbull Throughput in terms of loss rate

bull L = 210-10 Wowbull New versions of TCP for high-speed

LRTT

MSS221

Transport Layer 3-12

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

TCP connection 1

bottleneckroutercapacity R

TCP connection 2

TCP Fairness

Transport Layer 3-13

Why is TCP fairTwo competing sessionsbull Additive increase gives slope of 1 as throughout increasesbull multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConn

ectio

n 2

t hr o

u gh p

u t

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-14

Fairness (more)Fairness and UDPbull Multimedia apps often do

not use TCPndash do not want rate throttled

by congestion controlbull Instead use UDP

ndash pump audiovideo at constant rate tolerate packet loss

bull Research area TCP friendly

Fairness and parallel TCP connections

bull nothing prevents app from opening parallel connections between 2 hosts

bull Web browsers do this bull Example link of rate R

supporting 9 connections ndash new app asks for 1 TCP gets rate

R10ndash new app asks for 11 TCPs gets

R2

Transport Layer 3-15

Chapter 3 Summarybull principles behind transport layer

services

ndash multiplexing demultiplexingndash reliable data transferndash flow controlndash congestion control

bull instantiation and implementation in the Internet

ndash UDPndash TCP

Nextbull leaving the network

ldquoedgerdquo (application transport layers)

bull into the network ldquocorerdquo

  • Chapter 3 outline
  • TCP congestion control additive increase multiplicative decre
  • TCP Congestion Control details
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement inferring loss
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures TCP over ldquolong fat pipesrdquo
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Chapter 3 Summary
Page 10: Transport Layer3-1 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles

Transport Layer 3-10

TCP throughput

bull Whatrsquos the average throughout of TCP as a function of window size and RTTndash Ignore slow start

bull Let W be the window size when loss occursbull When window is W throughput is WRTTbull Just after loss window drops to W2

throughput to W2RTT bull Average throughout 75 WRTT

Transport Layer 3-11

TCP Futures TCP over ldquolong fat pipesrdquo

bull Example 1500 byte segments 100ms RTT want 10 Gbps throughput

bull Requires window size W = 83333 in-flight segmentsbull Throughput in terms of loss rate

bull L = 210-10 Wowbull New versions of TCP for high-speed

LRTT

MSS221

Transport Layer 3-12

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

TCP connection 1

bottleneckroutercapacity R

TCP connection 2

TCP Fairness

Transport Layer 3-13

Why is TCP fairTwo competing sessionsbull Additive increase gives slope of 1 as throughout increasesbull multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConn

ectio

n 2

t hr o

u gh p

u t

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-14

Fairness (more)Fairness and UDPbull Multimedia apps often do

not use TCPndash do not want rate throttled

by congestion controlbull Instead use UDP

ndash pump audiovideo at constant rate tolerate packet loss

bull Research area TCP friendly

Fairness and parallel TCP connections

bull nothing prevents app from opening parallel connections between 2 hosts

bull Web browsers do this bull Example link of rate R

supporting 9 connections ndash new app asks for 1 TCP gets rate

R10ndash new app asks for 11 TCPs gets

R2

Transport Layer 3-15

Chapter 3 Summarybull principles behind transport layer

services

ndash multiplexing demultiplexingndash reliable data transferndash flow controlndash congestion control

bull instantiation and implementation in the Internet

ndash UDPndash TCP

Nextbull leaving the network

ldquoedgerdquo (application transport layers)

bull into the network ldquocorerdquo

  • Chapter 3 outline
  • TCP congestion control additive increase multiplicative decre
  • TCP Congestion Control details
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement inferring loss
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures TCP over ldquolong fat pipesrdquo
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Chapter 3 Summary
Page 11: Transport Layer3-1 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles

Transport Layer 3-11

TCP Futures TCP over ldquolong fat pipesrdquo

bull Example 1500 byte segments 100ms RTT want 10 Gbps throughput

bull Requires window size W = 83333 in-flight segmentsbull Throughput in terms of loss rate

bull L = 210-10 Wowbull New versions of TCP for high-speed

LRTT

MSS221

Transport Layer 3-12

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

TCP connection 1

bottleneckroutercapacity R

TCP connection 2

TCP Fairness

Transport Layer 3-13

Why is TCP fairTwo competing sessionsbull Additive increase gives slope of 1 as throughout increasesbull multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConn

ectio

n 2

t hr o

u gh p

u t

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-14

Fairness (more)Fairness and UDPbull Multimedia apps often do

not use TCPndash do not want rate throttled

by congestion controlbull Instead use UDP

ndash pump audiovideo at constant rate tolerate packet loss

bull Research area TCP friendly

Fairness and parallel TCP connections

bull nothing prevents app from opening parallel connections between 2 hosts

bull Web browsers do this bull Example link of rate R

supporting 9 connections ndash new app asks for 1 TCP gets rate

R10ndash new app asks for 11 TCPs gets

R2

Transport Layer 3-15

Chapter 3 Summarybull principles behind transport layer

services

ndash multiplexing demultiplexingndash reliable data transferndash flow controlndash congestion control

bull instantiation and implementation in the Internet

ndash UDPndash TCP

Nextbull leaving the network

ldquoedgerdquo (application transport layers)

bull into the network ldquocorerdquo

  • Chapter 3 outline
  • TCP congestion control additive increase multiplicative decre
  • TCP Congestion Control details
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement inferring loss
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures TCP over ldquolong fat pipesrdquo
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Chapter 3 Summary
Page 12: Transport Layer3-1 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles

Transport Layer 3-12

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

TCP connection 1

bottleneckroutercapacity R

TCP connection 2

TCP Fairness

Transport Layer 3-13

Why is TCP fairTwo competing sessionsbull Additive increase gives slope of 1 as throughout increasesbull multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConn

ectio

n 2

t hr o

u gh p

u t

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-14

Fairness (more)Fairness and UDPbull Multimedia apps often do

not use TCPndash do not want rate throttled

by congestion controlbull Instead use UDP

ndash pump audiovideo at constant rate tolerate packet loss

bull Research area TCP friendly

Fairness and parallel TCP connections

bull nothing prevents app from opening parallel connections between 2 hosts

bull Web browsers do this bull Example link of rate R

supporting 9 connections ndash new app asks for 1 TCP gets rate

R10ndash new app asks for 11 TCPs gets

R2

Transport Layer 3-15

Chapter 3 Summarybull principles behind transport layer

services

ndash multiplexing demultiplexingndash reliable data transferndash flow controlndash congestion control

bull instantiation and implementation in the Internet

ndash UDPndash TCP

Nextbull leaving the network

ldquoedgerdquo (application transport layers)

bull into the network ldquocorerdquo

  • Chapter 3 outline
  • TCP congestion control additive increase multiplicative decre
  • TCP Congestion Control details
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement inferring loss
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures TCP over ldquolong fat pipesrdquo
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Chapter 3 Summary
Page 13: Transport Layer3-1 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles

Transport Layer 3-13

Why is TCP fairTwo competing sessionsbull Additive increase gives slope of 1 as throughout increasesbull multiplicative decrease decreases throughput proportionally

R

R

equal bandwidth share

Connection 1 throughputConn

ectio

n 2

t hr o

u gh p

u t

congestion avoidance additive increaseloss decrease window by factor of 2

congestion avoidance additive increaseloss decrease window by factor of 2

Transport Layer 3-14

Fairness (more)Fairness and UDPbull Multimedia apps often do

not use TCPndash do not want rate throttled

by congestion controlbull Instead use UDP

ndash pump audiovideo at constant rate tolerate packet loss

bull Research area TCP friendly

Fairness and parallel TCP connections

bull nothing prevents app from opening parallel connections between 2 hosts

bull Web browsers do this bull Example link of rate R

supporting 9 connections ndash new app asks for 1 TCP gets rate

R10ndash new app asks for 11 TCPs gets

R2

Transport Layer 3-15

Chapter 3 Summarybull principles behind transport layer

services

ndash multiplexing demultiplexingndash reliable data transferndash flow controlndash congestion control

bull instantiation and implementation in the Internet

ndash UDPndash TCP

Nextbull leaving the network

ldquoedgerdquo (application transport layers)

bull into the network ldquocorerdquo

  • Chapter 3 outline
  • TCP congestion control additive increase multiplicative decre
  • TCP Congestion Control details
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement inferring loss
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures TCP over ldquolong fat pipesrdquo
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Chapter 3 Summary
Page 14: Transport Layer3-1 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles

Transport Layer 3-14

Fairness (more)Fairness and UDPbull Multimedia apps often do

not use TCPndash do not want rate throttled

by congestion controlbull Instead use UDP

ndash pump audiovideo at constant rate tolerate packet loss

bull Research area TCP friendly

Fairness and parallel TCP connections

bull nothing prevents app from opening parallel connections between 2 hosts

bull Web browsers do this bull Example link of rate R

supporting 9 connections ndash new app asks for 1 TCP gets rate

R10ndash new app asks for 11 TCPs gets

R2

Transport Layer 3-15

Chapter 3 Summarybull principles behind transport layer

services

ndash multiplexing demultiplexingndash reliable data transferndash flow controlndash congestion control

bull instantiation and implementation in the Internet

ndash UDPndash TCP

Nextbull leaving the network

ldquoedgerdquo (application transport layers)

bull into the network ldquocorerdquo

  • Chapter 3 outline
  • TCP congestion control additive increase multiplicative decre
  • TCP Congestion Control details
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement inferring loss
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures TCP over ldquolong fat pipesrdquo
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Chapter 3 Summary
Page 15: Transport Layer3-1 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles

Transport Layer 3-15

Chapter 3 Summarybull principles behind transport layer

services

ndash multiplexing demultiplexingndash reliable data transferndash flow controlndash congestion control

bull instantiation and implementation in the Internet

ndash UDPndash TCP

Nextbull leaving the network

ldquoedgerdquo (application transport layers)

bull into the network ldquocorerdquo

  • Chapter 3 outline
  • TCP congestion control additive increase multiplicative decre
  • TCP Congestion Control details
  • TCP Slow Start
  • TCP Slow Start (more)
  • Refinement
  • Refinement inferring loss
  • Summary TCP Congestion Control
  • TCP sender congestion control
  • TCP throughput
  • TCP Futures TCP over ldquolong fat pipesrdquo
  • TCP Fairness
  • Why is TCP fair
  • Fairness (more)
  • Chapter 3 Summary