13-TCPVariations.ppt

advertisement
EECS 122:
Introduction to Computer Networks
TCP Variations
Computer Science Division
Department of Electrical Engineering and Computer Sciences
University of California, Berkeley
Berkeley, CA 94720-1776
Katz, Stoica F04
Today’s Lecture: 11
2
17, 18, 19
6
10,11
Transport
14,
15, 16
7, 8, 9
21, 22, 23
25
Application
Network (IP)
Link
Physical
Katz, Stoica F04
2
Outline

TCP congestion control
-

Quick Review
TCP flavors
Equation-based congestion control
Impact of losses
Cheating
Router-based support
-
RED
ECN
Fair Queueing
XCP
Katz, Stoica F04
3
Quick Review

Slow-Start: cwnd++ upon every new ACK

Congestion avoidance: AIMD if cwnd > ssthresh
- ACK: cwnd = cwnd + 1/cwnd
- Drop: ssthresh =cwnd/2 and cwnd=1

Fast Recovery:
- duplicate ACKS: cwnd=cwnd/2
- Timeout: cwnd=1
Katz, Stoica F04
4
TCP Flavors

TCP-Tahoe
- cwnd =1 whenever drop is detected

TCP-Reno
- cwnd =1 on timeout
- cwnd = cwnd/2 on dupack

TCP-newReno
- TCP-Reno + improved fast recovery

TCP-Vegas, TCP-SACK
Katz, Stoica F04
5
TCP Vegas

Improved timeout mechanism

Decrease cwnd only for losses sent at current rate
- avoids reducing rate twice

Congestion avoidance phase:
-
compare Actual rate (A) to Expected rate (E)
if E-A > , decrease cwnd linearly
if E-A < , increase cwnd linearly
rate measurements ~ delay measurements
see textbook for details!
Katz, Stoica F04
6
TCP-SACK

SACK = Selective Acknowledgements

ACK packets identify exactly which packets have
arrived

Makes recovery from multiple losses much easier
Katz, Stoica F04
7
Standards?

How can all these algorithms coexist?

Don’t we need a single, uniform standard?

What happens if I’m using Reno and you are
using Tahoe, and we try to communicate?
Katz, Stoica F04
8
Equation-Based CC

Simple scenario
- assume a drop every k’th RTT (for some large k)
- w, w+1, w+2, ...w+k-1 DROP (w+k-1)/2, (w+k-1)/2+1,...

Observations:
-

In steady state: w= (w+k-1)/2 so w=k-1
Average window: 1.5(k-1)
Total packets between drops: 1.5k(k-1)
Drop probability: p = 1/[1.5k(k-1)]
Throughput: T ~ (1/RTT)*sqrt(3/2p)
Katz, Stoica F04
9
Equation-Based CC

Idea:
- Forget complicated increase/decrease algorithms
- Use this equation T(p) directly!

Approach:
- measure drop rate (don’t need ACKs for this)
- send drop rate p to source
- source sends at rate T(p)

Good for streaming audio/video that can’t tolerate
the high variability of TCP’s sending rate
Katz, Stoica F04 10
Question!

Why use the TCP equation?

Why not use any equation for T(p)?
Katz, Stoica F04
11
Cheating

Three main ways to cheat:
- increasing cwnd faster than 1 per RTT
- using large initial cwnd
- Opening many connections
Katz, Stoica F04 12
Increasing cwnd Faster
A
C y
D
x
B
y
E
x increases by 2 per RTT
y increases by 1 per RTT
Limit rates:
x = 2y
x
Katz, Stoica F04 13
Increasing cwnd Faster
x
A
B
y
D
E
60
50
40
30
20
10
487
460
433
406
379
352
325
298
271
244
217
190
163
136
109
82
55
28
1
0
Katz, Stoica F04 14
Larger Initial cwnd
A
D
x
y
B
E
x starts SS with cwnd = 4
y starts SS with cwnd = 1
Katz, Stoica F04 15
Open Many Connections
A
D
x
y
B
E
Assume
• A starts 10 connections to B
• D starts 1 connection to E
• Each connection gets about the same throughput
Then A gets 10 times more throughput than D
Katz, Stoica F04 16
Cheating and Game Theory
A
D
A
x
B
y
E
D  Increases by 1
Increases by 1
Increases by 5
Increases by 5
22, 22
10, 35
35, 10
15, 15
Individual incentives: cheating pays
Social incentives: better off without cheating
(x, y)
Too aggressive
Losses
Throughput falls
Classic PD: resolution depends on accountability
Katz, Stoica F04 17
Lossy Links

TCP assumes that all losses are due to
congestion

What happens when the link is lossy?

Recall that Tput ~ 1/sqrt(p) where p is loss prob.

This applies even for non-congestion losses
Katz, Stoica F04 18
Example
60
p=0
50
40
30
20
p = 1%
10
p = 10%
0
1
26 51 76 101 126 151 176 201 226 251 276 301 326 351 376 401 426 451 476
Katz, Stoica F04 19
What can routers do to help?
Katz, Stoica F04
Paradox

Routers are in middle of action

But traditional routers are very
passive in terms of congestion
control
- FIFO
- Drop-tail
Katz, Stoica F04 21
FIFO: First-In First-Out


Maintain a queue to store all packets
Send packet at the head of the queue
Next to transmit
Arriving packet
Queued packets
Katz, Stoica F04 22
Tail-drop Buffer Management


Drop packets only when buffer is full
Drop arriving packet
Next to transmit
Arriving packet
Drop
Katz, Stoica F04 23
Ways Routers Can Help

Packet scheduling: non-FIFO scheduling

Packet dropping:
- not drop-tail
- not only when buffer is full

Congestion signaling
Katz, Stoica F04 24
Question!

Why not use infinite buffers?
- no packet drops!
Katz, Stoica F04 25
The Buffer Size Quandary

Small buffers:
- often drop packets due to bursts
- but have small delays

Large buffers:
- reduce number of packet drops (due to bursts)
- but increase delays

Can we have the best of both worlds?
Katz, Stoica F04 26
Random Early Detection (RED)

Basic premise:
- router should signal congestion when the queue first
starts building up (by dropping a packet)
- but router should give flows time to reduce their sending
rates before dropping more packets

Therefore, packet drops should be:
- early: don’t wait for queue to overflow
- random: don’t drop all packets in burst, but space drops
out
Katz, Stoica F04 27
RED


FIFO scheduling
Buffer management:
- Probabilistically discard packets
- Probability is computed as a function of average queue
length (why average?)
Discard Probability
1
0
min_th
max_th queue_len Average
Queue Length
Katz, Stoica F04 28
RED (cont’d)



min_th – minimum threshold
max_th – maximum threshold
avg_len – average queue length
- avg_len = (1-w)*avg_len + w*sample_len
Discard Probability
1
0
min_th max_th queue_len Average
Queue Length
Katz, Stoica F04 29
RED (cont’d)



If (avg_len < min_th)  enqueue packet
If (avg_len > max_th)  drop packet
If (avg_len >= min_th and avg_len < max_th) 
enqueue packet with probability P
Discard Probability (P)
1
0
min_th max_th queue_len Average
Queue Length
Katz, Stoica F04 30
RED (cont’d)


P = max_P*(avg_len – min_th)/(max_th – min_th)
Improvements to spread the drops (see textbook)
Discard Probability
max_P
1
P
0
min_th
max_th queue_len Average
Queue Length
avg_len
Katz, Stoica F04 31
Average vs Instantaneous Queue
Katz, Stoica F04 32
RED Advantages

High network utilization with low delays

Average queue length small, but capable of absorbing
large bursts

Many refinements to basic algorithm make it more
adaptive (requires less tuning)
Katz, Stoica F04 33
Explicit Congestion Notification

Rather than drop packets to signal congestion,
router can send an explicit signal

Explicit congestion notification (ECN):
- instead of optionally dropping packet, router sets a bit in
the packet header
- If data packet has bit set, then ACK has ECN bit set

Backward compatibility:
- bit in header indicates if host implements ECN
- note that not all routers need to implement ECN
Katz, Stoica F04 34
Picture
A
B
W
W/2
Katz, Stoica F04 35
ECN Advantages

No need for retransmitting optionally dropped
packets

No confusion between congestion losses and
corruption losses
Katz, Stoica F04 36
Remaining Problem

Internet vulnerable to CC cheaters!

Single CC standard can’t satisfy all applications
- EBCC might answer this point

Goal:
- make Internet invulnerable to cheaters
- allow end users to use whatever congestion control
they want

How?
Katz, Stoica F04 37
One Approach: Nagle (1987)

Round-robin among different flows
- one queue per flow
Katz, Stoica F04 38
Round-Robin Discussion

Advantages: protection among flows
- Misbehaving flows will not affect the performance of wellbehaving flows
• Misbehaving flow – a flow that does not implement any
congestion control
- FIFO does not have such a property

Disadvantages:
- More complex than FIFO: per flow queue/state
- Biased toward large packets – a flow receives service
proportional to the number of packets
Katz, Stoica F04 39
Solution?




Bit-by-bit round robin
Can you do this in practice?
No, packets cannot be preempted (why?)
…we can only approximate it
Katz, Stoica F04 40
Fair Queueing (FQ)



Define a fluid flow system: a system in which
flows are served bit-by-bit
Then serve packets in the increasing order of
their deadlines
Advantages
- Each flow will receive exactly its fair rate

Note:
- FQ achieves max-min fairness
Katz, Stoica F04 41
Max-Min Fairness

Denote
-

C – link capacity
N – number of flows
ri – arrival rate
Max-min fair rate computation:
1. compute C/N
2. if there are flows i such that ri <= C/N, update C and N
C  C  i s.t r C / N ri
3. if no, f = C/N; terminate
4. go to 1

i
A flow can receive at most the fair rate, i.e., min(f, ri)
Katz, Stoica F04 42
Example



C = 10; r1 = 8, r2 = 6, r3 = 2; N = 3
C/3 = 3.33  C = C – r3 = 8; N = 2
C/2 = 4; f = 4
8
6
2
10
4
4
2
f = 4:
min(8, 4) = 4
min(6, 4) = 4
min(2, 4) = 2
Katz, Stoica F04 43
Implementing Fair Queueing

Idea: serve packets in the order in which they
would have finished transmission in the fluid flow
system
Katz, Stoica F04 44
Example
Flow 1
(arrival traffic)
Flow 2
(arrival traffic)
Service
in fluid flow
system
Packet
system
1
2
3
4
5
6
time
1
2
3
4
5
time
1
1
1
2
2
2
3
3
1
3
4
5
4
2 3
4
6
5
4 5
5
time
6
time
Katz, Stoica F04 45
System Virtual Time: V(t)


Measure service, instead of time
V(t) slope – rate at which every active flow receives service
- C – link capacity
- N(t) – number of active flows in fluid flow system at time t
V(t)
V (t )
C

t
N (t )
time
Service
in fluid flow
system
1
2
1
2
3
3
4
4
5
6
5
time
Katz, Stoica F04 46
Fair Queueing Implementation

Define
- Fi k- finishing time of packet k of flow i (in system virtual
time reference system)
- aik- arrival time of packet k of flow i
- Lk - length of packet k of flow i
i

The finishing time of packet k+1 of flow i is
Fi k 1  max( V (aik 1 ), Fi k )  Lki 1
Katz, Stoica F04 47
FQ Advantages
FQ protect well-behaved flows from ill-behaved flows
Example: 1 UDP (10 Mbps) and 31 TCP’s sharing a 10 Mbps
link

10
2
9
1.8
RED
8
7
6
5
4
3
2
Throughput(Mbps)
Throughput(Mbps)

1.4
1.2
1
0.8
0.6
0.4
1
0.2
0
0
1
4
7
10 13 16 19 22 25 28 31
Flow Number
FQ
1.6
1
4
7
10 13 16 19 22 25 28 31
Flow Number
Katz, Stoica F04 48
Alternative Implementations of Max-Min


Deficit round-robin
Core-stateless fair queueing
- label packets with rate
- drop according to rates
- check at ingress to make sure rates are truthful

Approximate fair dropping
-

keep small sample of previous packets
estimate rates based on these
apply dropping as above
wins because few large flows
• per-elephant state, not per-mouse state
RED-PD: not max-min, but punishes big cheaters
Katz, Stoica F04 49
Big Picture

FQ does not eliminate congestion  it just
manages the congestion

You need both end-host congestion control and
router support for congestion control
- end-host congestion control to adapt
- router congestion control to protect/isolate
Katz, Stoica F04 50
Explicit Rate Signaling (XCP)

Each packet contains: cwnd, RTT, feedback field

Routers indicate to flows whether to increase or
decrease:
- give explicit rates for increase/decrease amounts
- feedback is carried back to source in ACK

Separation of concerns:
- aggregate load
- allocation among flows
Katz, Stoica F04 51
XCP (continued)

Aggregate:
- measures spare capacity and avg queue size
- computes desired aggregate change: D=aRS-bQ

Allocation:
-
uses AIMD
positive feedback is same for all flows
negative feedback is proportional to current rate
when D=0, reshuffle bandwidth
all changes normalized by RTT
• want equal rates, not equal windows
Katz, Stoica F04 52
XCP (continued)

Challenge:
- how to give per-flow feedback without per-flow state?
- do you keep track of which flows you’ve signaled and
which you haven’t?

Solution:
- figure out desired change
- divide from expected number of packets from flow in
time interval
- give each packet share of rate adjustment
- flow totals up all rate adjustment
Katz, Stoica F04 53
Download