Llnw bufferbloat
-
Upload
stephen-hemminger -
Category
Engineering
-
view
91 -
download
2
Transcript of Llnw bufferbloat
![Page 1: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/1.jpg)
BufferbloatBufferbloat
Why is the Internet slow?Why is the Internet slow?
Stephen HemmingerStephen [email protected]@networkplumber.org
Limelight Networks May 2015
![Page 2: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/2.jpg)
![Page 3: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/3.jpg)
BufferbloatBufferbloat
● What is the problemWhat is the problem● What causes the problemWhat causes the problem● SolutionsSolutions
– DemonstrationDemonstration● Current statusCurrent status
– The GoodThe Good– The BadThe Bad– The UglyThe Ugly
![Page 4: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/4.jpg)
Network PerformanceNetwork Performance
ThroughputMbits/sec
LatencyRound Trip Time
Fairness
![Page 5: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/5.jpg)
How bad is it?How bad is it?
![Page 6: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/6.jpg)
Why is worse now?Why is worse now?
● No longer in FTP universeNo longer in FTP universe● TCP Initial Window Size = 10TCP Initial Window Size = 10● Advanced TCP algorithmsAdvanced TCP algorithms● Network Offload packet trainsNetwork Offload packet trains● Bad benchmarksBad benchmarks● Router/switch memory is cheapRouter/switch memory is cheap● Everyone fears dropping packetsEveryone fears dropping packets
![Page 7: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/7.jpg)
Head of Line blockingHead of Line blocking
![Page 8: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/8.jpg)
Queuing Theory BasicsQueuing Theory Basics
averagetimeinqueueutilization
servicerate1 utilization
Graphic courtesy Sprint, Apricot 2004
From Fred Baker: Bufferbloat!
![Page 9: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/9.jpg)
Netalyzr: DownstreamNetalyzr: Downstream
![Page 10: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/10.jpg)
Netalyzr: UpstreamNetalyzr: Upstream
![Page 11: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/11.jpg)
![Page 12: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/12.jpg)
TCP throughput dynamicsTCP 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 13: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/13.jpg)
Blame LinuxBlame Linux
● Windows XPWindows XP– Maximum window 64kMaximum window 64k
● Windows 7Windows 7– Bandwidth limit to 80 mbitsBandwidth limit to 80 mbits
● AndroidAndroid– Receive window limitedReceive window limited
![Page 14: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/14.jpg)
Blame the customerBlame the customer
● Customers call Customers call supportsupport
● Applications are Applications are using more using more bandwidthbandwidth
● Block and chargeBlock and charge
![Page 15: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/15.jpg)
![Page 16: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/16.jpg)
Why Queueing?Why Queueing?
![Page 17: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/17.jpg)
Priority Queue: TheoryPriority Queue: Theory
![Page 18: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/18.jpg)
Priority Queue: RealityPriority Queue: Reality
![Page 19: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/19.jpg)
Hierarchical Token BucketHierarchical Token Bucket
![Page 20: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/20.jpg)
Random Early DetectRandom Early Detect
![Page 21: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/21.jpg)
Explicit Congestion NotificationExplicit Congestion Notification
PACKETS
![Page 22: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/22.jpg)
Ideal Active Queue ManagementIdeal Active Queue Management
● FairFair– All flows get some bandwidthAll flows get some bandwidth
● SimpleSimple– No tuningNo tuning
● Easy to deployEasy to deploy– No special hardware, no protocol changesNo special hardware, no protocol changes
● ReasonableReasonable– Won't create multi-second latencyWon't create multi-second latency
![Page 23: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/23.jpg)
Stocastic Fair QueueStocastic Fair Queue
![Page 24: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/24.jpg)
CodelCodel
![Page 25: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/25.jpg)
PIEPIE
![Page 26: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/26.jpg)
CakeCake
Priority
Fair Queue
CoDel
![Page 27: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/27.jpg)
Back to Reality
![Page 28: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/28.jpg)
Benchmark issuesBenchmark issues
● BadBad– Bytes/secBytes/sec– Packes/secPackes/sec– LatencyLatency
● GoodGood– Throughput + LatencyThroughput + Latency– Multiple connectionsMultiple connections– Real not simulatedReal not simulated
![Page 29: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/29.jpg)
Better toolsBetter tools
● DSLreport'sDSLreport's– http://www.dslreports.com/speedtest/http://www.dslreports.com/speedtest/
● ICSI netalyzrICSI netalyzr– http://netalyzr.icsi.berkeley.edu/http://netalyzr.icsi.berkeley.edu/
● Real time Response Under LoadReal time Response Under Load– https://github.com/tohojo/netperf-wrapperhttps://github.com/tohojo/netperf-wrapper– Flent: The Flexible Network TesterFlent: The Flexible Network Tester
![Page 30: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/30.jpg)
DSLReports speedtestDSLReports speedtest
5 sec delay!!
![Page 31: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/31.jpg)
FIFO – the defaultFIFO – the default
Høiland-Jørgensen T., Battling Bufferbloat
Ping 1sec!
Upload
Download
![Page 32: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/32.jpg)
Stochastic Fair QueueStochastic Fair Queue
Høiland-Jørgensen T., Battling Bufferbloat
![Page 33: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/33.jpg)
Controlled Delay - codelControlled Delay - codel
Høiland-Jørgensen T., Battling Bufferbloat
![Page 34: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/34.jpg)
Fair Queue Controlled DelayFair Queue Controlled Delay
Høiland-Jørgensen T., Battling Bufferbloat
![Page 35: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/35.jpg)
Bufferbloat statusBufferbloat status
![Page 36: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/36.jpg)
Bufferbloat: The GoodBufferbloat: The Good
● Industry awarenessIndustry awareness● Standards progressStandards progress● Active researchActive research● Open Source SolutionsOpen Source Solutions
![Page 37: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/37.jpg)
Once you start looking,Once you start looking,Bufferbloat can be everywhereBufferbloat can be everywhere● EdgeEdge
– Home routerHome router● ProviderProvider● NetworkNetwork● AcceleratorsAccelerators
– CachesCaches– Load balancers,...Load balancers,...
● ServersServers
![Page 38: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/38.jpg)
How is Bufferbloat Solved on Linux?How is Bufferbloat Solved on Linux?
● Queuing disciplinesQueuing disciplines– Codel, PIE, ...Codel, PIE, ...
● Linux internal Linux internal – BQL, FQ, PacingBQL, FQ, Pacing
● Enable good defaultsEnable good defaults– ecnecn– fq_codel fq_codel
![Page 39: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/39.jpg)
Bufferbloat: the BadBufferbloat: the Bad
● Legacy equipmentLegacy equipment– OEM focus on cost not AQMOEM focus on cost not AQM
● Congestion on backboneCongestion on backbone– It's not a bug it's a feature?It's not a bug it's a feature?– Problem is political not technicalProblem is political not technical
![Page 40: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/40.jpg)
Bufferbloat: the UglyBufferbloat: the Ugly
● WirelessWireless– AggregationAggregation– MulticastMulticast– Bad benchmarksBad benchmarks– Proprietary firmwareProprietary firmware
![Page 41: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/41.jpg)
Questions?
![Page 43: Llnw bufferbloat](https://reader030.fdocuments.in/reader030/viewer/2022032715/55ad59ef1a28ab3a508b476a/html5/thumbnails/43.jpg)
Bufferbloat resources
Bufferbloat.net: http://bufferbloat.netEmail Lists: http://lists.bufferbloat.net
CeroWrt: http://www.bufferbloat.net/projects/cerowrt Other talks: http://mirrors.bufferbloat.net/Talks
Jim Gettys Blog – http://gettys.wordpress.com A big thanks to the bloat mailing list, Jim, Kathie, Van, Dave, Eric, ISC, and all the other the CeroWrt/OpenWrt contributors