Академический Документы
Профессиональный Документы
Культура Документы
Adolfo Rodriguez
CPS 214
February 19, 2004
round-trip times
9
12
15
18
21
24
27
30
33
36
39
• Back to linear increase/multiplicative increase at this point round-trip times
4
packet/reinitiate slow start 2
• Slow start only at beginning/on timeout 2
2
2
0
10
12
14
16
18
20
22
24
26
28
0
round-trip times 3
Fast Recovery Delayed ACKs
Slow Start + Congestion Avoidance z Problem:
18 + Fast Retransmit + Fast Recovery • In request/response programs, you send separate ACK and
16 data packets for each transaction
14
z Goal: piggyback ACK with subsequent data packet
12
z Solution:
window 10
(in segs) 8 • Do not ACK data immediately
6 • Wait 200ms (must be less than 500ms)
4 • Must ACK every other packet
2
• Must not delay duplicate ACKs
0
10
12
14
16
18
20
22
24
0
round-trip times
What if Two TCP Connections Share Link? What if TCP and UDP share link?
z Reach equilibrium independent of initial bandwidth z Independent of initial rates, UDP will get priority! TCP
(assuming equal RTTs) will take what’s left.
16 18
16
14
14
12
12
10
window 10 UDP
window
8 (in segs) 8
(in segs) TCP
6 6
4 4
2
2
0
0
10
12
14
16
18
0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 round-trip times
round-trip times
What if Two Different TCP Implementations What if Two Different TCP Implementations
Share Link? Share Link?
z Problem: many different TCP implementations z Problem: many different TCP implementations
z If cut back more slowly after drops Î grab bigger share z If cut back more slowly after drops Î grab bigger share
z If add more quickly after ACKs Î grab bigger share z If add more quickly after ACKs Î grab bigger share
z Incentive to cause congestion collapse z Incentive to cause congestion collapse
• Many TCP “accelerators” • Many TCP “accelerators”
• Easy to improve perf at expense of network • Easy to improve perf at expense of network
z Solutions? z Solutions?
• Per-flow fair queuing at router
TCP Congestion Control Summary
z Slow Start
z Adaptive retransmission
• Account for average and variance
z Fast retransmission TCP Vegas
• Triple duplicate ACKs
z Fast recovery
• Use ACKs in pipeline to avoid shrinking congestion window
to one
• Cuts out going back to slow start when detecting congestion
with fast retransmission
Overview/Goals Implementation
z Goals: z Retrofitted x-kernel with BSD implementations of TCP
• Increase useful throughput of TCP Reno and Vegas
Vegas increases throughput by 37-71% • Ran both simulations and real wide-area experiments
• Decrease retransmissions z Simulated cross traffic (e.g., FTP/NNTP/Telnet) using
Vegas retransmits 1/5 to ½ the data of Reno tcplib
z Note: easy to increase throughput at the expense of other
connections
z TCP Reno controls congestion by causing it
• Vegas aims to avoid congestion using only host-based
measurements
• In times of congestion, Vegas flows occupy too many z Vegas* uses packet-pair mechanism to estimate available
buffers, so Vegas backs off bandwidth
z Typical values for α = 1 and β = 3 • Slow start to avail. bandwidth, then back to linear increase
• Why not go straight to bottleneck bandwidth?
• Goal: have Vegas flows occupy between 1 and 3 router
buffers • Vegas* did not result in significant perf/loss improvements
Vegas Discussion
z Does not involve a modification to the TCP spec
• Can be deployed incrementally
z Does not steal bandwidth from other implementations
z Uses additional information available at hosts to better
estimate congestion
• Congestion avoidance vs. control
z Additional processor overhead
• Increases throughput/reduces wasted transmissions
z Should congestion control be in hosts/routers/both?