15-441 computer networking lecture 18 – more tcp & congestion control

28
15-441 Computer Networking Lecture 18 – More TCP & Congestion Control

Upload: gwendolyn-lamb

Post on 17-Jan-2016

215 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 15-441 Computer Networking Lecture 18 – More TCP & Congestion Control

15-441 Computer Networking

Lecture 18 – More TCP & Congestion Control

Page 2: 15-441 Computer Networking Lecture 18 – More TCP & Congestion Control

Lecture 18: 03-22-2005 2

Outline

• TCP reliability

• TCP congestion control

Page 3: 15-441 Computer Networking Lecture 18 – More TCP & Congestion Control

Lecture 18: 03-22-2005 3

Reliability Challenges

• Congestion related losses• Variable packet delays

• What should the timeout be?

• Reordering of packets• How to tell the difference between a delayed packet

and a lost one?

Page 4: 15-441 Computer Networking Lecture 18 – More TCP & Congestion Control

Lecture 18: 03-22-2005 4

TCP = Go-Back-N Variant

• Sliding window with cumulative acks• Receiver can only return a single “ack” sequence number to the

sender.• Acknowledges all bytes with a lower sequence number• Starting point for retransmission• Duplicate acks sent when out-of-order packet received

• But: sender only retransmits a single packet.• Reason???

• Only one that it knows is lost• Network is congested shouldn’t overload it

• Error control is based on byte sequences, not packets.• Retransmitted packet can be different from the original lost packet

– Why?

Page 5: 15-441 Computer Networking Lecture 18 – More TCP & Congestion Control

Lecture 18: 03-22-2005 5

Round-trip Time Estimation

• Wait at least one RTT before retransmitting• Importance of accurate RTT estimators:

• Low RTT estimate• unneeded retransmissions

• High RTT estimate• poor throughput

• RTT estimator must adapt to change in RTT• But not too fast, or too slow!

• Spurious timeouts• “Conservation of packets” principle – never more than a

window worth of packets in flight

Page 6: 15-441 Computer Networking Lecture 18 – More TCP & Congestion Control

Lecture 18: 03-22-2005 6

Original TCP Round-trip Estimator

• Round trip times exponentially averaged:

• New RTT = (old RTT) + (1 - ) (new sample)

• Recommended value for : 0.8 - 0.9

• 0.875 for most TCP’s0

0.5

1

1.5

2

2.5

• Retransmit timer set to (b * RTT), where b = 2• Every time timer expires, RTO exponentially backed-off

• Not good at preventing spurious timeouts• Why?

Page 7: 15-441 Computer Networking Lecture 18 – More TCP & Congestion Control

Lecture 18: 03-22-2005 7

Jacobson’s Retransmission Timeout

• Key observation:• At high loads round trip variance is high

• Solution:• Base RTO on RTT and standard deviation

• RTO = RTT + 4 * rttvar

• new_rttvar = * dev + (1- ) old_rttvar• Dev = linear deviation • Inappropriately named – actually smoothed linear

deviation

Page 8: 15-441 Computer Networking Lecture 18 – More TCP & Congestion Control

Lecture 18: 03-22-2005 8

RTT Sample Ambiguity

• Karn’s RTT Estimator• If a segment has been retransmitted:

• Don’t count RTT sample on ACKs for this segment• Keep backed off time-out for next packet• Reuse RTT estimate only after one successful transmission

A B

ACK

SampleRTT

Original transmission

retransmission

RTO

A B

Original transmission

retransmissionSampleRTT

ACKRTOX

Page 9: 15-441 Computer Networking Lecture 18 – More TCP & Congestion Control

Lecture 18: 03-22-2005 9

Timestamp Extension

• Used to improve timeout mechanism by more accurate measurement of RTT

• When sending a packet, insert current timestamp into option

• 4 bytes for timestamp, 4 bytes for echo

• Receiver echoes timestamp in ACK• Actually will echo whatever is in timestamp

• Removes retransmission ambiguity• Can get RTT sample on any packet

Page 10: 15-441 Computer Networking Lecture 18 – More TCP & Congestion Control

Lecture 18: 03-22-2005 10

Timer Granularity

• Many TCP implementations set RTO in multiples of 200,500,1000ms

• Why?• Avoid spurious timeouts – RTTs can vary quickly due to

cross traffic• Make timers interrupts efficient

• What happens for the first couple of packets?• Pick a very conservative value (seconds)

Page 11: 15-441 Computer Networking Lecture 18 – More TCP & Congestion Control

Lecture 18: 03-22-2005 11

Fast Retransmit

• What are duplicate acks (dupacks)?• Repeated acks for the same sequence

• When can duplicate acks occur?• Loss• Packet re-ordering• Window update – advertisement of new flow control window

• Assume re-ordering is infrequent and not of large magnitude

• Use receipt of 3 or more duplicate acks as indication of loss• Don’t wait for timeout to retransmit packet

Page 12: 15-441 Computer Networking Lecture 18 – More TCP & Congestion Control

Lecture 18: 03-22-2005 12

Fast Retransmit

Time

Sequence No Duplicate Acks

RetransmissionX

Packets

Acks

Page 13: 15-441 Computer Networking Lecture 18 – More TCP & Congestion Control

Lecture 18: 03-22-2005 13

Outline

• TCP reliability

• TCP congestion control

Page 14: 15-441 Computer Networking Lecture 18 – More TCP & Congestion Control

Lecture 18: 03-22-2005 14

TCP Congestion Control

• Changes to TCP motivated by ARPANET congestion collapse

• Basic principles• AIMD• Packet conservation• Reaching steady state quickly• ACK clocking

Page 15: 15-441 Computer Networking Lecture 18 – More TCP & Congestion Control

Lecture 18: 03-22-2005 15

AIMD

• Distributed, fair and efficient• Packet loss is seen as sign of congestion and results in a

multiplicative rate decrease • Factor of 2

• TCP periodically probes for available bandwidth by increasing its rate

Time

Rate

Page 16: 15-441 Computer Networking Lecture 18 – More TCP & Congestion Control

Lecture 18: 03-22-2005 16

Implementation Issue

• Operating system timers are very coarse – how to pace packets out smoothly?

• Implemented using a congestion window that limits how much data can be in the network.

• TCP also keeps track of how much data is in transit

• Data can only be sent when the amount of outstanding data is less than the congestion window.

• The amount of outstanding data is increased on a “send” and decreased on “ack”

• (last sent – last acked) < congestion window

• Window limited by both congestion and buffering• Sender’s maximum window = Min (advertised window, cwnd)

Page 17: 15-441 Computer Networking Lecture 18 – More TCP & Congestion Control

Lecture 18: 03-22-2005 17

Congestion Avoidance

• If loss occurs when cwnd = W• Network can handle 0.5W ~ W segments• Set cwnd to 0.5W (multiplicative decrease)

• Upon receiving ACK• Increase cwnd by (1 packet)/cwnd

• What is 1 packet? 1 MSS worth of bytes• After cwnd packets have passed by approximately increase

of 1 MSS

• Implements AIMD

Page 18: 15-441 Computer Networking Lecture 18 – More TCP & Congestion Control

Lecture 18: 03-22-2005 18

Congestion Avoidance Sequence Plot

Time

Sequence No

Packets

Acks

Page 19: 15-441 Computer Networking Lecture 18 – More TCP & Congestion Control

Lecture 18: 03-22-2005 19

Congestion Avoidance Behavior

Time

CongestionWindow

Packet loss+ Timeout

Grabbingback

Bandwidth

CutCongestion

Windowand Rate

Page 20: 15-441 Computer Networking Lecture 18 – More TCP & Congestion Control

Lecture 18: 03-22-2005 20

Packet Conservation

• At equilibrium, inject packet into network only when one is removed

• Sliding window and not rate controlled• But still need to avoid sending burst of packets

would overflow links• Need to carefully pace out packets• Helps provide stability

• Need to eliminate spurious retransmissions• Accurate RTO estimation• Better loss recovery techniques (e.g. fast retransmit)

Page 21: 15-441 Computer Networking Lecture 18 – More TCP & Congestion Control

Lecture 18: 03-22-2005 21

TCP Packet Pacing

• Congestion window helps to “pace” the transmission of data packets

• In steady state, a packet is sent when an ack is received• Data transmission remains smooth, once it is smooth• Self-clocking behavior

Pr

Pb

ArAb

ReceiverSender

As

Page 22: 15-441 Computer Networking Lecture 18 – More TCP & Congestion Control

Lecture 18: 03-22-2005 22

Reaching Steady State

• Doing AIMD is fine in steady state but slow…• How does TCP know what is a good initial rate to

start with?• Should work both for a CDPD (10s of Kbps or less) and

for supercomputer links (10 Gbps and growing)

• Quick initial phase to help get up to speed (slow start)

Page 23: 15-441 Computer Networking Lecture 18 – More TCP & Congestion Control

Lecture 18: 03-22-2005 23

Slow Start Packet Pacing

• How do we get this clocking behavior to start?

• Initialize cwnd = 1• Upon receipt of every ack,

cwnd = cwnd + 1

• Implications• Window actually increases to

W in RTT * log2(W)• Can overshoot window and

cause packet loss

Page 24: 15-441 Computer Networking Lecture 18 – More TCP & Congestion Control

Lecture 18: 03-22-2005 24

Slow Start Example

1

One RTT

One pkt time

0R

2

1R

3

4

2R

567

83R

91011

1213

1415

1

2 3

4 5 6 7

Page 25: 15-441 Computer Networking Lecture 18 – More TCP & Congestion Control

Lecture 18: 03-22-2005 25

Slow Start Sequence Plot

Time

Sequence No

.

.

.

Packets

Acks

Page 26: 15-441 Computer Networking Lecture 18 – More TCP & Congestion Control

Lecture 18: 03-22-2005 26

Return to Slow Start

• If packet is lost we lose our self clocking as well• Need to implement slow-start and congestion

avoidance together

• When timeout occurs set ssthresh to 0.5w• If cwnd < ssthresh, use slow start• Else use congestion avoidance

Page 27: 15-441 Computer Networking Lecture 18 – More TCP & Congestion Control

Lecture 18: 03-22-2005 27

TCP Saw Tooth Behavior

Time

CongestionWindow

InitialSlowstart

Fast Retransmit

and Recovery

Slowstartto pacepackets

Timeoutsmay still

occur

Page 28: 15-441 Computer Networking Lecture 18 – More TCP & Congestion Control

Lecture 18: 03-22-2005 28

Important Lessons

• TCP timeout calculation how is RTT estimated

• Modern TCP loss recovery• Why are timeouts bad?• How to avoid them? e.g. fast retransmit

• How does TCP implement AIMD?• Sliding window, slow start & ack clocking• How to maintain ack clocking during loss recovery

fast recovery