+ All Categories
Home > Documents > TCP Congestion Control TCP Tahoe TCP Reno TCP Vegas.

TCP Congestion Control TCP Tahoe TCP Reno TCP Vegas.

Date post: 21-Dec-2015
Category:
View: 278 times
Download: 3 times
Share this document with a friend
22
TCP Congestion Control TCP Tahoe TCP Reno TCP Vegas
Transcript
Page 1: TCP Congestion Control TCP Tahoe TCP Reno TCP Vegas.

TCP Congestion Control

TCP TahoeTCP RenoTCP Vegas

Page 2: TCP Congestion Control TCP Tahoe TCP Reno TCP Vegas.

Internet Congestion Collapse In the late 80s, the Internet suffered a

congestion collapse

Host

Host

Host

Congestion!Packet drops!!

Data+ Retransmissions

More Drops!!!

Collapse

Page 3: TCP Congestion Control TCP Tahoe TCP Reno TCP Vegas.

Why is Today’s Topic Important?

The algorithm for TCP congestion control is the main reason we can

use the Internet successfully today despite largely unpredictable user

access patterns and despite resource bottlenecks and

limitations. Without TCP congestion control, the Internet could have become history a long time ago.

Page 4: TCP Congestion Control TCP Tahoe TCP Reno TCP Vegas.

Resource Management Solutions

Handling congestion pre-allocate resources so as to avoid congestion control congestion if (and when) is occurs

Two points of implementation routers inside the network (queuing discipline) hosts at the edges of the network (transport protocol)

Destination1.5-Mbps T1 link

Router

Source2

Source1

100-Mbps FDDI

10-Mbps Ethernet

Page 5: TCP Congestion Control TCP Tahoe TCP Reno TCP Vegas.

Detecting Congestion Packet drops indicate congestion

Is that really true? Why does it work?

Src Dst

Packet

Ack

Drop

Timeout! No Ack =

Congestion!

Page 6: TCP Congestion Control TCP Tahoe TCP Reno TCP Vegas.

Controlling Congestion – The Effect of Window Size

Note that sender’s window is equal to the number of sender packets in flight (in the network). Why?

A Window’s worth of packets

X acks

Window

X more packets

Source Destination

Page 7: TCP Congestion Control TCP Tahoe TCP Reno TCP Vegas.

Controlling Congestion Reduce window less packets in

the network Increase window more packets in

the network Idea: Concept of a congestion

window – window is smaller when congestion is larger and vice versa

Page 8: TCP Congestion Control TCP Tahoe TCP Reno TCP Vegas.

Additive Increase, Multiplicative Decrease

Each time a packet drop occurs, slash window size in half (multiplicative decrease) Multiplicative decrease is necessary to

avoid congestion When no losses are observed,

gradually increase window size (additive increase)

Page 9: TCP Congestion Control TCP Tahoe TCP Reno TCP Vegas.

AIMD (cont)

In practice: increment a little for each ACKIncrement = (MSS*MSS)/CongestionWindow

CongestionWindow += Increment

Source Destination

Algorithm increment CongestionWindow by

one packet per RTT (linear increase)

divide CongestionWindow by two whenever a timeout occurs (multiplicative decrease)

Page 10: TCP Congestion Control TCP Tahoe TCP Reno TCP Vegas.

AIMD (cont) Trace: sawtooth behavior

60

20

1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0

KB

Time (seconds)

70

304050

10

10.0

Page 11: TCP Congestion Control TCP Tahoe TCP Reno TCP Vegas.

Problems What should the window size be

Initially? Upon packet loss and timeout?

Pessimistic window size? (e.g., 1) Additive increase is too slow in ramping

up window size – short connections will not fully utilize available bandwidth

Optimistic window size? Large initial burst may cause router

queue overflow

Page 12: TCP Congestion Control TCP Tahoe TCP Reno TCP Vegas.

Slow Start

Objective: determine the available capacity quickly

Idea: Use CongestionThreshold as an

optimistic CongestionWindow estimate begin with CongestionWindow = 1

packet double CongestionWindow each RTT

(increment by 1 packet for each ACK)

When CongestionThreshold is crossed, use additive increase

Source Destination

Page 13: TCP Congestion Control TCP Tahoe TCP Reno TCP Vegas.

Fast Retransmit Problem: coarse-grain TCP

timeouts lead to idle periods Fast retransmit:

Send an ack on every packet reception

Send duplicate of last ack when a packet is received out of order

Use duplicate ACKs to trigger retransmission

Packet 1

Packet 2

Packet 3

Packet 4

Packet 5

Packet 6

Retransmitpacket 3

ACK 1

ACK 2

ACK 2

ACK 2

ACK 6

ACK 2

Sender Receiver

Page 14: TCP Congestion Control TCP Tahoe TCP Reno TCP Vegas.

Self Clocking and Slow Start Each packet’s transmission is “clocked” by an ACK –

no bursts develop

W=1 W=2 W=4 W=5 W=6 W=7

Slow Start

Page 15: TCP Congestion Control TCP Tahoe TCP Reno TCP Vegas.

Self Clocking in Operation Each packet’s transmission is “clocked” by an ACK –

no bursts develop

W=32

……

Page 16: TCP Congestion Control TCP Tahoe TCP Reno TCP Vegas.

Self Clocking Interrupted During timeouts, ACKs are drained from the network.

Self clocking is interrupted. Next transmission causes a burst. Hence, slow start!

W=32

……Lost

Timeout

Retransmission

Ack32

16 packet burst

Cut window in 1/2

ACKsDrained!!

Page 17: TCP Congestion Control TCP Tahoe TCP Reno TCP Vegas.

Self Clocking and Fast Retransmit / Fast Recovery

When fast retransmit is used, the packet is retransmitted before all ACKs are drained. Slow start is not needed

W=32

……Lost

FastRetransmission

Cut window in 1/2

Page 18: TCP Congestion Control TCP Tahoe TCP Reno TCP Vegas.

TCP Vegas Uses congestion avoidance instead

of congestion control Vegas: Congestion avoidance: Predict

and avoid congestion before it occurs Tahoe, Reno: Congestion control:

React to congestion after it occurs Question: How to predict

congestion?

Page 19: TCP Congestion Control TCP Tahoe TCP Reno TCP Vegas.

TCP Vegas

Idea: source watches for some sign that router’s queue is building up and congestion will happen too; e.g., RTT grows sending rate

flattens

60

20

0.5 1.0 1.5 4.0 4.5 6.5 8.0

KB

Time (seconds)

Time (seconds)

70

304050

10

2.0 2.5 3.0 3.5 5.0 5.5 6.0 7.0 7.5 8.5

900

300100

0.5 1.0 1.5 4.0 4.5 6.5 8.0

Sen

ding

KB

ps

1100

500700

2.0 2.5 3.0 3.5 5.0 5.5 6.0 7.0 7.5 8.5

Time (seconds)0.5 1.0 1.5 4.0 4.5 6.5 8.0Q

ueue

siz

e in

rou

ter

5

10

2.0 2.5 3.0 3.5 5.0 5.5 6.0 7.0 7.5 8.5

Page 20: TCP Congestion Control TCP Tahoe TCP Reno TCP Vegas.

Observation Packet accumulation in the network can be

inferred by monitoring RTT and sending rate

Bottleneck LinkOverloadedRouter

Sending Rate

cwnd

Sending Rate = cwnd / RTT

Page 21: TCP Congestion Control TCP Tahoe TCP Reno TCP Vegas.

Algorithm

Let BaseRTT be the minimum of all measured RTTs (commonly the RTT of the first packet)

If not overflowing the connection, thenExpectRate = CongestionWindow/BaseRTT

Source calculates ActualRate once per RTT Source compares ActualRate with ExpectRate

Diff = ExpectedRate - ActualRateif Diff <

increase CongestionWindow linearlyelse if Diff >

decrease CongestionWindow linearlyelse

leave CongestionWindow unchanged

Page 22: TCP Congestion Control TCP Tahoe TCP Reno TCP Vegas.

Algorithm (cont)

Parameters = 1 packet = 3 packets

70605040302010

KB

Time (seconds)

0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0

0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0

CA

M K

Bps

240200160120

8040

Time (seconds)


Recommended