what is bufferbloat? - scale · scale 11x 23 feb 2013 queuing theory basics averagetimeinqueue=...

33
SCALE 11x 23 Feb 2013 Bufferbloat What is Bufferbloat? Stephen Hemminger [email protected]

Upload: others

Post on 28-May-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

Bufferbloat

What is Bufferbloat?

Stephen [email protected]

Page 2: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

Page 3: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

Solving Plumbing problems

● Discovery

● Blame

● Enlightenment

● Nirvana

Page 4: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

Bufferbloat: definition

Page 5: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

Queuing Theory Basics

averagetimeinqueue=utilization

servicerate1 − utilization

Graphic courtesy Sprint, Apricot 2004

From Fred Baker: Bufferbloat!

Page 6: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

How bad is it?

150ms – VOIP

20ms – Desktop lag

100ms – DNS lookup fail

ARP, ND – Can't find machine

1000ms – User's give up

scp copy fails

DHCP – Machine falls off network

Page 7: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

Triggers

● Uploads– Youtube

– Dropbox

– Torrent

– Large Email attachments

– Backup services

● Downloads– Movie downloads

– Image heavy websites

– Video teleconferencing

Page 8: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

Netalyzr: Downstream

Page 9: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

Netalyzr: Upstream

Page 10: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

Gettys J., Bufferbloat: “Dark” Buffers in the Internet

Page 11: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

Page 12: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

Classical TCP

Page 13: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

Antonin BasStanford Cs244 assignment

Page 14: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

Page 15: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

Page 16: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

TCP throughput dynamicsIn

crea

sing

Mea

sura

ble

Thr

ough

put

Increasing TCP Window

“knee” “cliff”

Bottleneck Capacity

QueueDepth

meanthroughput= effectivewindowmeanroundtriptime

From Fred Baker: Bufferbloat!

Page 17: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

Blame Linux

● Windows XP

– Maximum window 64k

● Windows 7

– Bandwidth limit to 80 mbits

● Android– Receive window limited

Page 18: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

Blame the customer

● Customers call support

● Applications are using more bandwidth

● Block and charge

Page 19: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

Page 20: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

Back to Reality

Page 21: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

Benchmark issues

● Bad

– Bytes/sec

– Packes/sec

– Latency

Page 22: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

Making a good test

● Combinations

– RRUL

Page 23: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

FIFO – the default

Høiland-Jørgensen T., Battling Bufferbloat

Ping 1sec!

Upload

Download

Page 24: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

Stochastic Fair Queue

Høiland-Jørgensen T., Battling Bufferbloat

Page 25: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

Controlled Delay - codel

Høiland-Jørgensen T., Battling Bufferbloat

Page 26: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

Fair Queue Controlled Delay

Høiland-Jørgensen T., Battling Bufferbloat

Page 27: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

Fight Bufferbloat

Page 28: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

Linux Everywhere

In the Datacenter

In the Home

If we fix Bufferbloat, the world will change... eventually

Page 29: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

The ICSI Netalyzr

Page 30: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

Bufferbloat project

● Information

– Research

– Presentations

– Mailing lists

Page 31: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

Cerowrt

● Development platform

– Openwrt based

Page 32: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

Future Research

● Systemic view

● Change Linux default?

● Wireless

● High speed 10/40/100G?

Page 33: What is Bufferbloat? - SCALE · SCALE 11x 23 Feb 2013 Queuing Theory Basics averagetimeinqueue= utilization servicerate 1−utilization Graphic courtesy Sprint, Apricot 2004 From

SCALE 11x 23 Feb 2013

Thank youStephen Hemminger

[email protected]