transport layer3-1 chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and...
TRANSCRIPT
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-