A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window...
Transcript of A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window...
![Page 1: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/1.jpg)
A Rant on Queues
Van Jacobson
July 26, 2006
MIT Lincoln LabsLexington, MA
![Page 2: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/2.jpg)
vj-ll-jul06
• Unlike the phone system, the Internet supports communication over paths with diverse, time varying, bandwidth.
• This means we often have to connect a fire hose to a soda straw.
2
![Page 3: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/3.jpg)
vj-ll-jul06
• Unlike the phone system, the Internet supports communication over paths with diverse, time varying, bandwidth.
• This means we often have to connect a fire hose to a soda straw.
• This kind of plumbing needs an adapter. The adapter is called a queue.
2
![Page 4: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/4.jpg)
vj-ll-jul06
How a real queue works
3
![Page 5: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/5.jpg)
vj-ll-jul06
Sender injects a window’s worth of packets
Sender Receiver
4
![Page 6: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/6.jpg)
vj-ll-jul06
Packets reach high to low bandwidth transition
Sender Receiver
5
![Page 7: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/7.jpg)
vj-ll-jul06
First ack returns and releases next data packet
Sender Receiver
6
![Page 8: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/8.jpg)
vj-ll-jul06
Steady-state reached
Sender Receiver
7
![Page 9: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/9.jpg)
vj-ll-jul06
• The amount of data that has to be in transit to run at 100% utilization is the bottleneck bandwidth times the sender-receiver-sender round-trip delay (this is called the bandwidth*delay product).
• The bottleneck has to have this much buffer to handle the start up transient.
• What happens if it doesn’t?
8
![Page 10: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/10.jpg)
vj-ll-jul06
•••••••••••••••••••••••••••••••••••••••
••• ••••• ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
••••••••••••••••••••••••••••••••••••••••••••••••••••• •••••••••••
••••••••••••••••••• ••••
••••••••••••••••••••••••••••
••••••••••••••••••••••••••••••••••
••••••••••••• ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
••••••••••••••••••••••••••••••••••••••••••
•••••••••••••••••••••••••••••• •••••••
••••••••••••••••••••• •••••••
••••••••••••••••••••••••••••••••••
•••••••••••••••••••••••••••••••••••
•• ••••••••••••••••••••••••••••••••••••••••••••••••••• ••••••••••
•••••••••••••••••••••••••••••••• •••••
•••••••••••••••••••••••••• •••••
•••••••••••••••••••••••••••••••••
••••••••••••••••••••••••••••••••••••••••
•••••••••••••••••••••••••••••••••••••• ••••••••••••••
••••••••••••••••••••••••••••••••••••••
••••••••••••••••••••••••••••••••••••••••••••
Satnet Test -- Dec 11, 1988
Time (sec)
Seq
uenc
e N
umbe
r (K
B)
0 200 400 600 800 1000 1200 1400
020
4060
8010
012
014
016
0
(averaged 100 Bytes/sec on a 8 KByte/sec link)
9
![Page 11: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/11.jpg)
vj-ll-jul06
•• ••••••••••••
••
•
••
••••••••••••
••••••••••• •••
•••••••••••
•
•••••
•• •••• •••
•••••••••
•••••••••• •••
••••• •••
••••••••••
•
Satnet Test -- Dec 11, 1988 (Detail)
Time (sec)
Seq
uenc
e N
umbe
r (K
B)
100 120 140 160 180 200
1015
2025
3035
40
10
![Page 12: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/12.jpg)
vj-ll-jul06
How does the queue behave vs. time?
Sender Receiver
11
![Page 13: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/13.jpg)
vj-ll-jul06
Queue behavior at the fast-to-slow transition
Time
Que
ue le
ngth
12
![Page 14: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/14.jpg)
vj-ll-jul06
Queue behavior at the fast-to-slow transition
Time
Que
ue le
ngth
20 packet window
30 packet window
12
![Page 15: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/15.jpg)
vj-ll-jul06
Queue behavior with ack-per-window receiver
Time
Que
ue le
ngth
13
![Page 16: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/16.jpg)
vj-ll-jul06
Three minor (and completely standard) variations in protocol implementation give
three wildly different average queue lengths.
I.e., the average queue lengthcontains no informationabout demand or load.
14
![Page 17: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/17.jpg)
vj-ll-jul06
A mathematical digression ...
15
![Page 18: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/18.jpg)
vj-ll-jul06
∫[A(t) − D(t)]
• A queue is the integral of the difference between an arrival process & a departure process.
• For packet network queues, D is usually deterministic and A is some sort of random mixture process.
16
![Page 19: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/19.jpg)
vj-ll-jul06
The Poisson arrival process is beloved by academics
the world over
• It describes a low density, IID, uniform random collection of stuff.
• ‘Uniform random’ means the interarrival time
is distributed as e-λt.17
![Page 20: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/20.jpg)
vj-ll-jul06
0 20 40 60 80 100
010
2030
4050
Demand (% of output capacity)
Ave
rage
Que
ue L
engt
hFor a Poisson process, queue length is a function of demand
18
![Page 21: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/21.jpg)
vj-ll-jul06
0 5 10 15 20 25
05
1015
2025
In fact, inverse queue length is
a linear function of 1/λ
19
![Page 22: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/22.jpg)
vj-ll-jul06
For years people haveused queue length as
a proxy for loadin network controls
• In theory this shouldn’t work at all
• In practice it sometimes sort of works because the internet protocols are robust in the face of foolishness.
20
![Page 23: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/23.jpg)
vj-ll-jul06
Theory failures
• There can be lots of Poisson traffic in the network but not at a bottleneck.
• Poisson requires independent, random uniform traffic but at a bottleneck real traffic is highly correlated and not at all uniform.
• The correlations are intrinsic since reliability requires a sender-receiver-sender loop and traffic in a loop is never poisson.
21
![Page 24: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/24.jpg)
vj-ll-jul06
Poisson model isn’t even representative
• Queue length is the integral of an arrival rate (with deterministic departures).
• Queue length for a Poisson process is proportional to arrival rate.
• Implies family where ∫F(t) ∝ F(t)
• Exponential (Poisson process) is the only member of this family.
22
![Page 25: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/25.jpg)
vj-ll-jul06
• Poisson models fail because they’re memoryless but congested router queues are all about memory.
• A much better mathematical model for real queues is a random process with memory. I.e., a random walk or Brownian motion.
• Its behavior is the polar opposite of poisson (see Feller, vol.1, chap.3).
23
![Page 26: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/26.jpg)
vj-ll-jul06
Two simulation runs of the simplest random walk
(Bernoulli trials)
0 2000 4000 6000 8000 10000
050
100
150
200
Round
Sum
0 2000 4000 6000 8000 10000
!50
050
Round
Sum
24
![Page 27: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/27.jpg)
vj-ll-jul06
Probability density distribution of the simplest random walk
!100 !50 0 50 100
1.0
1.5
2.0
2.5
3.0
Value after 100 iterations
Pro
babi
lity
(%)
25
![Page 28: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/28.jpg)
vj-ll-jul06
And now back to packets ...
26
![Page 29: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/29.jpg)
vj-ll-jul06
CS profs try to instill intuition based on this picture of traffic:
Measured traffic usually looks more like:
Where does all the structure come from?27
![Page 30: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/30.jpg)
vj-ll-jul06
• Part of the structure comes from the stability of high rate, bursty arrivals on the upstream side of the queue -- one conversation is unlikely to insert a packet into another’s burst.
• This tendency to preserve bursts is then driven by some of the non-linear dynamics of the net ...
28
![Page 31: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/31.jpg)
vj-ll-jul06
The Internetat 50,000 feet
the Internet
Sender Receiver
packet
ack
29
The ends are just mirrors, all the dynamics result from the (usually non-linear) behavior of the net.
![Page 32: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/32.jpg)
vj-ll-jul06
How shared links make bursts
• Picture two conversations sharing a congested gateway as two separate train tracks with one common section.
• When a blue train waits for red trains to go through the shared section, the blue trains behind it catch up (get more clumped)
• If the merge rules are efficient (service each color to exhaustion), the system clumps exponentially fast.
30
![Page 33: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/33.jpg)
vj-ll-jul06
R1
R2
G1 G2
S1
S2
• Clumping creates a ‘horizon problem’ that tends to bias traffic managers.
• For satellite systems, the traffic time structure can interact with superframe epoch structure in unfortunate ways (e.g., ACTS hopping beams).
• Increasing delay or epoch length makes things worse (windows increase to compensate).
31
![Page 34: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/34.jpg)
vj-ll-jul06
Suggestions
• Queue length is meaningless (but long term min can be useful).
• Try have at least a bandwidth*delay of buffer.
• Don’t let it stay full.
• Try for a ‘flow-thru’ architecture to minimize packet time-structure disturbance
32
![Page 35: A Rant on Queues - Pollerepollere.net/Pdfdocs/QrantJul06.pdf · 20 packet window 30 packet window 12. vj-ll-jul06 Queue behavior with ack-per-window receiver Time Queue length 13.](https://reader033.fdocuments.us/reader033/viewer/2022042303/5ece388300bbfb522729adcc/html5/thumbnails/35.jpg)
vj-ll-jul06
Suggestions (cont.)
• Never introduce additional delay (apps will just try to fill it with packets):
‣ Let apps do their own FEC; avoid link layer Reed-Solomon and ARQ.
‣ Use smooth, simple downlink schedulers
‣ Use predictive and anticipatory uplink schedulers
33