TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The...

68
TCP Basics The Problem: Congestion Collapse The Solution More Problems TCP Congestion Avoidance Joshua Gancher November 10, 2016 Joshua Gancher TCP Congestion Avoidance

Transcript of TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The...

Page 1: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

TCP Congestion Avoidance

Joshua Gancher

November 10, 2016

Joshua Gancher TCP Congestion Avoidance

Page 2: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

A little historyI Late 1950’s: SAGE radar station

I 1961: Leonard Kleinrock – queueing theory =⇒ packetswitching

I 1964: Dartmouth Time Sharing SystemI 1969: Beginning of ARPANET – UCLA, SRI, UCSB, Utah

I Initially over NCP

”We typed the L and we asked on the phone, ”Doyou see the L?”

”Yes, we see the L,” came the response.”We typed the O, and we asked, ”Do you see the O.””Yes, we see the O.””Then we typed the G, and the system crashed...Yet a revolution had begun...”

Kleinrock, at UCLA

Joshua Gancher TCP Congestion Avoidance

Page 3: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

A little historyI Late 1950’s: SAGE radar stationI 1961: Leonard Kleinrock – queueing theory =⇒ packet

switching

I 1964: Dartmouth Time Sharing SystemI 1969: Beginning of ARPANET – UCLA, SRI, UCSB, Utah

I Initially over NCP

”We typed the L and we asked on the phone, ”Doyou see the L?”

”Yes, we see the L,” came the response.”We typed the O, and we asked, ”Do you see the O.””Yes, we see the O.””Then we typed the G, and the system crashed...Yet a revolution had begun...”

Kleinrock, at UCLA

Joshua Gancher TCP Congestion Avoidance

Page 4: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

A little historyI Late 1950’s: SAGE radar stationI 1961: Leonard Kleinrock – queueing theory =⇒ packet

switchingI 1964: Dartmouth Time Sharing System

I 1969: Beginning of ARPANET – UCLA, SRI, UCSB, UtahI Initially over NCP

”We typed the L and we asked on the phone, ”Doyou see the L?”

”Yes, we see the L,” came the response.”We typed the O, and we asked, ”Do you see the O.””Yes, we see the O.””Then we typed the G, and the system crashed...Yet a revolution had begun...”

Kleinrock, at UCLA

Joshua Gancher TCP Congestion Avoidance

Page 5: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

A little historyI Late 1950’s: SAGE radar stationI 1961: Leonard Kleinrock – queueing theory =⇒ packet

switchingI 1964: Dartmouth Time Sharing SystemI 1969: Beginning of ARPANET – UCLA, SRI, UCSB, Utah

I Initially over NCP

”We typed the L and we asked on the phone, ”Doyou see the L?”

”Yes, we see the L,” came the response.”We typed the O, and we asked, ”Do you see the O.””Yes, we see the O.””Then we typed the G, and the system crashed...Yet a revolution had begun...”

Kleinrock, at UCLAJoshua Gancher TCP Congestion Avoidance

Page 6: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

TCP in One Slide

Sender Receiver

1:100

ACK 100

101:200

101:200

ACK 150

151:250

(wsize = 100; rate = wsize/RTT )

I 1974: RFC 675I (coined the term

Internet)

I All data carries a sequencenumber

I Receiver sends backcumulative acknowledgement(ACKs)

I If no ACK, retransmitfrom last ACK

I Receiver advertises windowsize in header

Joshua Gancher TCP Congestion Avoidance

Page 7: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

TCP in One Slide

Sender Receiver

1:100

ACK 100

101:200

101:200

ACK 150

151:250

(wsize = 100; rate = wsize/RTT )

I 1974: RFC 675I (coined the term

Internet)I All data carries a sequence

number

I Receiver sends backcumulative acknowledgement(ACKs)

I If no ACK, retransmitfrom last ACK

I Receiver advertises windowsize in header

Joshua Gancher TCP Congestion Avoidance

Page 8: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

TCP in One Slide

Sender Receiver

1:100

ACK 100

101:200

101:200

ACK 150

151:250

(wsize = 100; rate = wsize/RTT )

I 1974: RFC 675I (coined the term

Internet)I All data carries a sequence

numberI Receiver sends back

cumulative acknowledgement(ACKs)

I If no ACK, retransmitfrom last ACK

I Receiver advertises windowsize in header

Joshua Gancher TCP Congestion Avoidance

Page 9: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

TCP in One Slide

Sender Receiver

1:100

ACK 100

101:200

101:200

ACK 150

151:250

(wsize = 100; rate = wsize/RTT )

I 1974: RFC 675I (coined the term

Internet)I All data carries a sequence

numberI Receiver sends back

cumulative acknowledgement(ACKs)

I If no ACK, retransmitfrom last ACK

I Receiver advertises windowsize in header

Joshua Gancher TCP Congestion Avoidance

Page 10: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

TCP in One Slide

Sender Receiver

1:100

ACK 100

101:200

101:200

ACK 150

151:250

(wsize = 100; rate = wsize/RTT )

I 1974: RFC 675I (coined the term

Internet)I All data carries a sequence

numberI Receiver sends back

cumulative acknowledgement(ACKs)

I If no ACK, retransmitfrom last ACK

I Receiver advertises windowsize in header

Joshua Gancher TCP Congestion Avoidance

Page 11: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

TCP Sending Behavior

Repeat:1. Send packet2. Wait for ack3. If no ack within timeout, retransmit until acknowledged

Joshua Gancher TCP Congestion Avoidance

Page 12: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Bottleneck Buffers

A

B

C

D E

F

G

H

I F,G,H advertise large windowI A,B,C send large windowI E’s buffer reaches capacity

=⇒ A,B,C all must retransmit lost packets, after timeout

What if timeout range is smaller than transmit time?

Joshua Gancher TCP Congestion Avoidance

Page 13: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Bottleneck Buffers

A

B

C

D E

F

G

H

I F,G,H advertise large window

I A,B,C send large windowI E’s buffer reaches capacity

=⇒ A,B,C all must retransmit lost packets, after timeout

What if timeout range is smaller than transmit time?

Joshua Gancher TCP Congestion Avoidance

Page 14: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Bottleneck Buffers

A

B

C

D E

F

G

H

I F,G,H advertise large windowI A,B,C send large window

I E’s buffer reaches capacity=⇒ A,B,C all must retransmit lost packets, after timeout

What if timeout range is smaller than transmit time?

Joshua Gancher TCP Congestion Avoidance

Page 15: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Bottleneck Buffers

A

B

C

D E

F

G

H

I F,G,H advertise large windowI A,B,C send large windowI E’s buffer reaches capacity

=⇒ A,B,C all must retransmit lost packets, after timeout

What if timeout range is smaller than transmit time?

Joshua Gancher TCP Congestion Avoidance

Page 16: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Bottleneck Buffers

A

B

C

D E

F

G

H

I F,G,H advertise large windowI A,B,C send large windowI E’s buffer reaches capacity

=⇒ A,B,C all must retransmit lost packets, after timeout

What if timeout range is smaller than transmit time?

Joshua Gancher TCP Congestion Avoidance

Page 17: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Bottleneck Buffers

A

B

C

D E

F

G

H

I F,G,H advertise large windowI A,B,C send large windowI E’s buffer reaches capacity

=⇒ A,B,C all must retransmit lost packets, after timeout

What if timeout range is smaller than transmit time?

Joshua Gancher TCP Congestion Avoidance

Page 18: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Congestion Collapse

1986: NSFNET dropped from 32 Kb/s to 40 b/s[Hosts] will begin to introduce more and more copies

of the same datagrams into the net. The network is nowin serious trouble... Hosts are sending each packet severaltimes, and eventually some copy of each packet arrives atits destination. This is congestion collapse. – RFC 896

Joshua Gancher TCP Congestion Avoidance

Page 19: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Optimistic Case / Worst Case

I Low demand onnetwork

I No major bottleneckI Little packet loss

I Low load stable stateI Low round trip time

I High demand onnetwork

I BottleneckI High packet loss

I High load stable stateI High round trip time

Joshua Gancher TCP Congestion Avoidance

Page 20: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Optimistic Case / Worst Case

I Low demand onnetwork

I No major bottleneckI Little packet loss

I Low load stable stateI Low round trip time

I High demand onnetwork

I BottleneckI High packet loss

I High load stable stateI High round trip time

Joshua Gancher TCP Congestion Avoidance

Page 21: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Optimistic Case / Worst Case

I Low demand onnetwork

I No major bottleneckI Little packet loss

I Low load stable stateI Low round trip time

I High demand onnetwork

I BottleneckI High packet loss

I High load stable stateI High round trip time

Joshua Gancher TCP Congestion Avoidance

Page 22: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Optimistic Case / Worst Case

I Low demand onnetwork

I No major bottleneckI Little packet loss

I Low load stable stateI Low round trip time

I High demand onnetwork

I BottleneckI High packet loss

I High load stable stateI High round trip time

Joshua Gancher TCP Congestion Avoidance

Page 23: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Slow StartRound-Trip TimingWindow Resizing

I From Berkeley; now at UCLAI Major contributions to TCP/IPI Member of the Internet Hall of Fame

Joshua Gancher TCP Congestion Avoidance

Page 24: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Slow StartRound-Trip TimingWindow Resizing

Conservation of Packets

ConservationUnder stable conditions, new packets enter the stream only whenold packets leave.

Can be violated by:I The connection doesn’t stabilizeI A new packet enters before an old packet is receivedI In-transit packet loss

Joshua Gancher TCP Congestion Avoidance

Page 25: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Slow StartRound-Trip TimingWindow Resizing

Conservation of Packets

ConservationUnder stable conditions, new packets enter the stream only whenold packets leave.

Can be violated by:I The connection doesn’t stabilizeI A new packet enters before an old packet is receivedI In-transit packet loss

Joshua Gancher TCP Congestion Avoidance

Page 26: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Slow StartRound-Trip TimingWindow Resizing

StabilityProblem 1: Stability

Joshua Gancher TCP Congestion Avoidance

Page 27: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Slow StartRound-Trip TimingWindow Resizing

Self-Clocking TCP

Joshua Gancher TCP Congestion Avoidance

Page 28: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Slow StartRound-Trip TimingWindow Resizing

Slow Start

Congestion WindowsInitialize: cwnd := 1On ack: cwnd++On packet loss: set cwnd := 1On send: send min(cwnd, receiver’s window size)

I Exponential acceleration to receiver’s window size(R log W time to reach window size of W )

I Reset back to 1 on failure (will be amended)

Joshua Gancher TCP Congestion Avoidance

Page 29: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Slow StartRound-Trip TimingWindow Resizing

Slow Start

Congestion WindowsInitialize: cwnd := 1On ack: cwnd++On packet loss: set cwnd := 1On send: send min(cwnd, receiver’s window size)

I Exponential acceleration to receiver’s window size(R log W time to reach window size of W )

I Reset back to 1 on failure (will be amended)

Joshua Gancher TCP Congestion Avoidance

Page 30: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Slow StartRound-Trip TimingWindow Resizing

Execution with Slow Start

Joshua Gancher TCP Congestion Avoidance

Page 31: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Slow StartRound-Trip TimingWindow Resizing

Conservation of Packets

ConservationUnder stable conditions, new packets enter the stream only whenold packets leave.

Can be violated by:I The connection doesn’t stabilizeI A new packet enters before an old packet is receivedI In-transit packet loss

Joshua Gancher TCP Congestion Avoidance

Page 32: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Slow StartRound-Trip TimingWindow Resizing

Problem 2: Packet duplication

I Need a good estimator of round-trip time (RTT)Jacobson’s insight: account for the variation of RTT

I Each ACK: RTT := α · RTT + (1− α) ·MI Where α ≈ 0.9

I Set timeout to β · RTTI Where β ≈ 2

Joshua Gancher TCP Congestion Avoidance

Page 33: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Slow StartRound-Trip TimingWindow Resizing

Problem 2: Packet duplicationI Need a good estimator of round-trip time (RTT)

Jacobson’s insight: account for the variation of RTTI Each ACK: RTT := α · RTT + (1− α) ·M

I Where α ≈ 0.9I Set timeout to β · RTT

I Where β ≈ 2

Joshua Gancher TCP Congestion Avoidance

Page 34: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Slow StartRound-Trip TimingWindow Resizing

Problem 2: Packet duplicationI Need a good estimator of round-trip time (RTT)

Jacobson’s insight: account for the variation of RTTI Each ACK: RTT := α · RTT + (1− α) ·M

I Where α ≈ 0.9

I Set timeout to β · RTTI Where β ≈ 2

Joshua Gancher TCP Congestion Avoidance

Page 35: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Slow StartRound-Trip TimingWindow Resizing

Problem 2: Packet duplicationI Need a good estimator of round-trip time (RTT)

Jacobson’s insight: account for the variation of RTTI Each ACK: RTT := α · RTT + (1− α) ·M

I Where α ≈ 0.9I Set timeout to β · RTT

I Where β ≈ 2

Joshua Gancher TCP Congestion Avoidance

Page 36: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Slow StartRound-Trip TimingWindow Resizing

Round-Trip Time Estimation

Joshua Gancher TCP Congestion Avoidance

Page 37: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Slow StartRound-Trip TimingWindow Resizing

Conservation of Packets

ConservationUnder stable conditions, new packets enter the stream only whenold packets leave.

Can be violated by:I The connection doesn’t stabilizeI A new packet enters before an old packet is receivedI In-transit packet loss

Joshua Gancher TCP Congestion Avoidance

Page 38: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Slow StartRound-Trip TimingWindow Resizing

Congestion Avoidance

Problem 3: packet loss in-transit

I 99% of packet loss due to buffer overflowI Need local state to keep track of network allowance

I Congestion window: slow startI Congestion threshold: exploratory window opening

Queueing theory:I Low load: average buffer length ≈ constantI Congestive load: average buffer length ≈ exponential growth

Jacobson’s insight:I Use timeouts to determine congestionI No congestion: log growthI Congestion: exponential decay

Joshua Gancher TCP Congestion Avoidance

Page 39: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Slow StartRound-Trip TimingWindow Resizing

Congestion Avoidance

Problem 3: packet loss in-transitI 99% of packet loss due to buffer overflow

I Need local state to keep track of network allowanceI Congestion window: slow startI Congestion threshold: exploratory window opening

Queueing theory:I Low load: average buffer length ≈ constantI Congestive load: average buffer length ≈ exponential growth

Jacobson’s insight:I Use timeouts to determine congestionI No congestion: log growthI Congestion: exponential decay

Joshua Gancher TCP Congestion Avoidance

Page 40: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Slow StartRound-Trip TimingWindow Resizing

Congestion Avoidance

Problem 3: packet loss in-transitI 99% of packet loss due to buffer overflowI Need local state to keep track of network allowance

I Congestion window: slow startI Congestion threshold: exploratory window opening

Queueing theory:I Low load: average buffer length ≈ constantI Congestive load: average buffer length ≈ exponential growth

Jacobson’s insight:I Use timeouts to determine congestionI No congestion: log growthI Congestion: exponential decay

Joshua Gancher TCP Congestion Avoidance

Page 41: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Slow StartRound-Trip TimingWindow Resizing

Congestion Avoidance

Problem 3: packet loss in-transitI 99% of packet loss due to buffer overflowI Need local state to keep track of network allowance

I Congestion window: slow startI Congestion threshold: exploratory window opening

Queueing theory:I Low load: average buffer length ≈ constantI Congestive load: average buffer length ≈ exponential growth

Jacobson’s insight:I Use timeouts to determine congestionI No congestion: log growthI Congestion: exponential decay

Joshua Gancher TCP Congestion Avoidance

Page 42: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Slow StartRound-Trip TimingWindow Resizing

Congestion Avoidance

Problem 3: packet loss in-transitI 99% of packet loss due to buffer overflowI Need local state to keep track of network allowance

I Congestion window: slow startI Congestion threshold: exploratory window opening

Queueing theory:I Low load: average buffer length ≈ constantI Congestive load: average buffer length ≈ exponential growth

Jacobson’s insight:I Use timeouts to determine congestionI No congestion: log growthI Congestion: exponential decay

Joshua Gancher TCP Congestion Avoidance

Page 43: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Slow StartRound-Trip TimingWindow Resizing

Congestion Avoidance

Problem 3: packet loss in-transitI 99% of packet loss due to buffer overflowI Need local state to keep track of network allowance

I Congestion window: slow startI Congestion threshold: exploratory window opening

Queueing theory:I Low load: average buffer length ≈ constantI Congestive load: average buffer length ≈ exponential growth

Jacobson’s insight:I Use timeouts to determine congestionI No congestion: log growthI Congestion: exponential decay

Joshua Gancher TCP Congestion Avoidance

Page 44: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Slow StartRound-Trip TimingWindow Resizing

New Congestion Window AlgorithmOn timeout: ssthresh := cur window size / 2

cwnd := 1On ack: if cwnd < ssthresh, cwnd++ // slow start

else, cwnd += 1/cwnd // exploratory growth

Joshua Gancher TCP Congestion Avoidance

Page 45: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Slow StartRound-Trip TimingWindow Resizing

Congestion Avoidance

Joshua Gancher TCP Congestion Avoidance

Page 46: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Slow StartRound-Trip TimingWindow Resizing

Biggest lesson learned:

I Analytic methods =⇒ tiny codebase which does a whole lot

Joshua Gancher TCP Congestion Avoidance

Page 47: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Slow StartRound-Trip TimingWindow Resizing

Biggest lesson learned:I Analytic methods =⇒ tiny codebase which does a whole lot

Joshua Gancher TCP Congestion Avoidance

Page 48: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Attacks and Solutions

Joshua Gancher TCP Congestion Avoidance

Page 49: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Attacks and Solutions

TCP Congestion Control with a Misbehaving Receiver

I Van Jacobson paper assumes coordination

I Attacks: Malicious receivers can encourage unfriendlinessI Modifications to disable such attacks

Joshua Gancher TCP Congestion Avoidance

Page 50: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Attacks and Solutions

TCP Congestion Control with a Misbehaving Receiver

I Van Jacobson paper assumes coordinationI Attacks: Malicious receivers can encourage unfriendliness

I Modifications to disable such attacks

Joshua Gancher TCP Congestion Avoidance

Page 51: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Attacks and Solutions

TCP Congestion Control with a Misbehaving Receiver

I Van Jacobson paper assumes coordinationI Attacks: Malicious receivers can encourage unfriendlinessI Modifications to disable such attacks

Joshua Gancher TCP Congestion Avoidance

Page 52: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Attacks and Solutions

Attack 1: ACK Division

ACK GranularityDuring slow start, acks assumed to be in units of segments

Attack:I Send many acks for each segment receivedI Causes congestion window to increase many times

Joshua Gancher TCP Congestion Avoidance

Page 53: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Attacks and Solutions

Attack 1: ACK Division

ACK GranularityDuring slow start, acks assumed to be in units of segments

Attack:I Send many acks for each segment received

I Causes congestion window to increase many times

Joshua Gancher TCP Congestion Avoidance

Page 54: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Attacks and Solutions

Attack 1: ACK Division

ACK GranularityDuring slow start, acks assumed to be in units of segments

Attack:I Send many acks for each segment receivedI Causes congestion window to increase many times

Joshua Gancher TCP Congestion Avoidance

Page 55: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Attacks and Solutions

Attack 1: ACK Division

Joshua Gancher TCP Congestion Avoidance

Page 56: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Attacks and Solutions

Attack 1: ACK Division

Joshua Gancher TCP Congestion Avoidance

Page 57: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Attacks and Solutions

Attack 1: ACK Division

Solution:I Require unambiguous ACK granularity

I Either byte-level or segment-level

Joshua Gancher TCP Congestion Avoidance

Page 58: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Attacks and Solutions

Attack 1: ACK Division

Solution:I Require unambiguous ACK granularityI Either byte-level or segment-level

Joshua Gancher TCP Congestion Avoidance

Page 59: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Attacks and Solutions

Attack 2: Duplicate ACKs

Duplicate ACKsDuplicate ACKs interpreted as duplicate packets leaving thenetwork; each ACK increases cwnd

Attack:I Flood connection with duplicate ACKs

Joshua Gancher TCP Congestion Avoidance

Page 60: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Attacks and Solutions

Attack 2: Duplicate ACKs

Joshua Gancher TCP Congestion Avoidance

Page 61: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Attacks and Solutions

Attack 2: Duplicate ACKs

Joshua Gancher TCP Congestion Avoidance

Page 62: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Attacks and Solutions

Attack 2: Duplicate ACKs

Solution:I Attach nonces to retransmitted data

Joshua Gancher TCP Congestion Avoidance

Page 63: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Attacks and Solutions

Attack 3: Optimistic ACKing

Optimistic ACKsACKs can be sent before data is received, obtaining artificially lowRTT

Attack:I Send ACKs before data is receivedI Time so that ACK received just after data is sent

Joshua Gancher TCP Congestion Avoidance

Page 64: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Attacks and Solutions

Attack 3: Optimistic ACKing

Joshua Gancher TCP Congestion Avoidance

Page 65: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Attacks and Solutions

Attack 3: Optimistic ACKing

Joshua Gancher TCP Congestion Avoidance

Page 66: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Attacks and Solutions

Attack 3: Optimistic ACKingSolution:

I Use cumulative nonces to enforce causality

Joshua Gancher TCP Congestion Avoidance

Page 67: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Attacks and Solutions

Joshua Gancher TCP Congestion Avoidance

Page 68: TCP Congestion Avoidance - Cornell University · TCP Basics The Problem: Congestion Collapse The Solution More Problems A little history I Late 1950’s: SAGE radar station I 1961:

TCP BasicsThe Problem: Congestion Collapse

The SolutionMore Problems

Attacks and Solutions

Lesson learned:I Must assume malicious behavior in wide area networks!!I More important now than ever

Joshua Gancher TCP Congestion Avoidance