From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.bufferbloat.net (Postfix) with ESMTPS id EF29F3B2A4 for ; Mon, 24 Apr 2017 11:42:29 -0400 (EDT) Received: from [172.17.3.97] ([134.76.241.253]) by mail.gmx.com (mrgmx001 [212.227.17.190]) with ESMTPSA (Nemesis) id 0MF5FT-1cn14i3jND-00GEK0; Mon, 24 Apr 2017 17:42:19 +0200 Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) From: Sebastian Moeller In-Reply-To: Date: Mon, 24 Apr 2017 17:42:17 +0200 Cc: David Lang , cake@lists.bufferbloat.net Content-Transfer-Encoding: quoted-printable Message-Id: References: <05C0B0C7-4337-4115-AC6B-DA81392FCB34@gmail.com> <22E633CF-5EE0-4B0F-89A8-B790E730FB6C@gmx.de> <0BA3EE91-C5BC-4155-9D5D-D15D34490A1A@gmx.de> <00DDAA0B-7D99-489B-BA2D-1F20289409B3@gmx.de> <2FFBF256-2932-4FC7-AD1F-0D7CEE111809@gmx.de> <8D8540DA-7AA3-4366-9488-DC1C266C598E@gmx.de> <709E9DC1-9FAA-4849-8981-3AFA0DC83132@gmx.de> To: Dendari Marini X-Mailer: Apple Mail (2.3273) X-Provags-ID: V03:K0:Rb7+aUtfDGzEn1qZvDZhV3Dvw5rxezZwdVr8pqPgX4xaiwHTmzB qlfJa7nrMYUjxUmV1rrHhFYpa33xBDdyQeqHLnvcI2YKzAxPn3euYN0clPe2oeRYqPtdua1 AbWTgrFxk3qsaD8EvRZrvcIoz9LHxzIt5NOhcZiAr+XANcPzdI6LQk6Us/uOGAWay6bMull VAy8F0EM8V59s64PsMElA== X-UI-Out-Filterresults: notjunk:1;V01:K0:CypdjOi7t2w=:glqFkhfCopXAe639cp0ALs zyINAxyMPJ3SEyn23VjBAp46FrZg50QV+CiqXSPkjO9DHodHeAgpywtzOnD6PvDKhHeFBtvr3 yAZVstkjU/fJiJ0EGp6jx6nclafaoGtI9JuRdp1tLIV+73aGMdG6GxkCbDs6XBcPqZyINIRAp rvXeknlbYD9VCcgTn1W5SciiyXo8JY9bsUzdUAqP/5cNrV/NMvc4w7ee+nEYBPC9FKbWJniHt aYbU5/XehS8dcRQ4bDfftSRh9SGqV9DP/cI06rzI+4dPVaevvS2qyfflo+Php6XLtyaDHBnj0 uGR/s/j3otXXnsyk2rN6jxDWYehHObARnmN9Lus2bJug8gdDXR0CcpZTIuBGdToA8cwCx4QHq rPvQzSANgLqzK+q9ggnAHC2fMfG6vjGcjiyK8eJDHcCOE5oloc40VpKuof+a4Fut2dnjfI2L5 EuQaet7Tlxyiug3IztJn5Qx909seG2SPA8HbhBuBr/CrBwioUuvw22S1cu8NeE6HQLPTy1nPy esC32LernDdxUZ6RCwog7qxzE9Ktue83QLS+pg/sSvKz7TCFcZ0YOIUa1iHuF0yDsfMkK3G6L GMoHRbORD9IYt++S8KRLTqa7BsYStrHjLubWaBptQV+FO0VT08rHEZLsGJkHJb0dt9B3onoPb V9zrmUJojAe0WQltVGJ+NeeeLFWjb72SrJZTs8g17qU2+ScsYKgtMMc902HBg88XjE9AvXJB3 HqmLZSqpIOnFUPkF7MWb1BRuKBkzMJPC3dNrcy7oe3pTJ22BFNr/Q4449TsGNaCTKDzdHXjB0 SfH7Zm1ZC4cC5czlEaue4RcKWA67IUEIFJrSgrtb63F5EN29GhQQUcyUdzJseuYOecD894TPZ cOOfGnWbKaxULArmZocw== Subject: Re: [Cake] Getting Cake to work better with Steam and similar applications X-BeenThere: cake@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: Cake - FQ_codel the next generation List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Apr 2017 15:42:30 -0000 Hi Dendari, > On Apr 24, 2017, at 15:49, Dendari Marini wrote: >=20 > Hi Sebastian, >=20 > Did few quick tests using your recommendations and the results is = still "overhead 20". Plot: http://imgur.com/a/5c3iv Text: = https://drive.google.com/open?id=3D0B7vEuplJWEIkRVBhX2xGUmNUMVE (NOTE: I = used PINGSPERSIZE =3D 100 instead of 1000, as I didn't have much time) The stair plot is quite nice, so 100 repetitions are = suffficient, the issue is more that the size the hrping reports is not = the same that gnu ping reports and hence thigns are off. So I still do = not trust the 20 bytes report, but over all the data q\acquisition = worked, I just need to figure out what hrping actually reports as = =E2=80=9Cbytes=E2=80=9D and then correct in the code accordingly. Weird, = I believe I have a hrping dataset that worked correctly=E2=80=A6=20 Well scratch that hrping reports in its header: with 16-160 bytes data (44-188 bytes IP): so I need to handle hrping log files differently from normal ones (where = I add the 20 + 8 IPv4 and ICMP header manually)=E2=80=A6 it seems that = never worked correctly.. thanks for testing I will get back to you with = an update later (this week) Best Regards Sebastian >=20 > On 24 April 2017 at 14:35, Sebastian Moeller wrote: > Hi Dendari, >=20 > thanks, >=20 >=20 > > On Apr 24, 2017, at 14:08, Dendari Marini = wrote: > > > > Hello, > > > > Could you share the two output plots somewhere, so I can have a look = at those? (Also I might want tto ask for the text file that actually was = generated by the ping collector script, just so I can run and = confirm/de-bug things my self). > > > > Sure thing. The plot images: http://imgur.com/a/qDtA0 >=20 > Okay, these _look_ reasonable on first sight... >=20 >=20 > > And the output text file: = https://drive.google.com/open?id=3D0B7vEuplJWEIkc1ozbUZRSGstajQ >=20 > =E2=80=A6but this actually shows that 8.8.8.8 truncated the size of = the ICMP responses (the runs of =E2=80=9Cbytes=3D92=E2=80=9D in the log = file also it only returned sizes from 44 to 92 so not exactly what we = asked for). I would not really trust these results, even though the RTTs = should be dominated by your slow egress link. Please redo these against = a different ICMP target server (netperf-east.bufferbloat.net might do, = depending on your location, that on is on the east coast of the U.S.). I = have to admit, that the hrping/windows overhead extraction did not have = much exercise so far and might be not be robust enough. I will have a = look at your log file, but this really requires a different target = server. In the unix script there is the following: >=20 >=20 > echo "To run measurements supply the TARGET IP address as first = agument to ${0} this script." > echo "Use traceroute 8.8.8.8 to get a list of increasingly distant = hosts, pick the first host out of your network (ideally the DSLAM)." > echo "Test whether the selected host responds to ping: 'ping -s16 = -c 1 target.IP.address.quad' : this needs to actually return non zero = RTTs." > echo "If the hosts does not reply to the pings take the next host = from the traceroute (moving closer to 8.8.8.8), repeat until you find a = replying host." > echo "Once the main script is started have a quick look at the = logfile, to see whether the RTTs stay close to the initial test RTT." > echo "If the RTTs have increased a lot, the PINGPERIOD might be = too short, and the host might have put us on a slow path; either = increase PINGPERIOD or try the next host..." > echo "" > echo "Here is the traceroute (might take a while):" > echo "" > traceroute 8.8.8.8 > echo "" > echo "Alternatively you might try to use googles infrastructure by = running: ${0} gstatic.com " > echo "Please note that gstatic.com might not return arbitrarily = sized ICMP probes, so check the log file care-fully.=E2=80=9D >=20 > Which unfortunately does not appear in the windows script yet, but = this still seems great advise, please note that at the time this was = written, 8.8.8.8 still replied with =E2=80=9Ccorrectly=E2=80=9D=E2=80=99 = sized ICMP echo responses just like gstatic.com di initially, now both = seem to truncate their responses. This is somewhat to be expected, but = maybe somewhere along the path there is another server that will still = respond properly... >=20 >=20 > Best Regards > Sebastian >=20 >=20 >=20 > > > > On 24 April 2017 at 13:34, Sebastian Moeller = wrote: > > Hello, > > > > > > > On Apr 24, 2017, at 10:41, Dendari Marini = wrote: > > > > > > Hello, > > > > > > Probably correct, but you do not have to resort to believing, you = can actually try to measure that ;) In case I have been too subtle = before, have a look at https://github.com/moeller0/ATM_overhead_detector = and follow the instructions there... > > > > > > I just used your script and it estimated an overhead of 20 bytes, = so should I use "overhead 20 atm" or am I missing something? In the last = few days I've been using "pppoe-llcsnap" ("overhead 40 atm") without any = evident issue, should I change it? > > > > Hmm, 20 seems rather interesting and something I never saw = before. Could you share the two output plots somewhere, so I can have a = look at those? (Also I might want tto ask for the text file that = actually was generated by the ping collector script, just so I can run = and confirm/de-bug things my self). I am not saying 20 is impossible, = just that it is improbable enough to require more scrutiny. > > > > > > Best Regards > > Sebastian > > > > > > > > > > FWIW here's a quick example on ingress ppp that I tested using = connmark > > > the connmarks (1 or 2 or unmarked) being set by iptables rules on = outbound > > > connections/traffic classes. > > > > > > Unfortunately I'm really not sure how to apply those settings to = my case, it's something I've never done so some hand-holding is probably = needed, sorry. At the moment I've limited the Steam bandwidth using the = built-in Basic Queue and DPI features from the ER-X. They're easy to set = up but aren't really ideal, would rather prefer Cake would take care = about it more dynamically. > > > > > > Anyway about the Steam IP addresses I've noticed, in the almost = three weeks of testing, they're almost always the same IP blocks (most = of which can be found on the Steam Support website, = https://support.steampowered.com/kb_article.php?ref=3D8571-GLVN-8711). I = believe it would be a good starting point for limiting Steam, what do = you think? > > > > > > On 24 April 2017 at 09:55, Sebastian Moeller = wrote: > > > Hi David, > > > > > > > On Apr 23, 2017, at 14:32, David Lang wrote: > > > > > > > > On Sun, 23 Apr 2017, Sebastian Moeller wrote: > > > > > > > >>> About the per-host fairness download issue: while it's kinda = resolved I still feel like it's mainly related to Steam, as normally = downloading files from PC1 and PC2 halved the speed as expected even at = full bandwidth (so no overhead, no -15%). > > > >> > > > >> This might be true, but for cake to meaningfully resolve = bufferbloat you absolutely _must_ take care to account for encapsulation = and overhead one way or another. > > > > > > > > well, one way to account for this overhead is to set the allowed = bandwidth low enough. Being precise on this overhead lets you get closer = to the actual line rate, but if you have enough bandwidth, it may not = really matter (i.e. if you have a 100Mb connection and only get 70Mb out = of it, you probably won't notice unless you go looking) > > > > > > Violent agreement. But note that with AAL5=E2=80=99s rule = to always use an integer number of ATM cells per user packet the = required bandwidth sacrifice to statically cover the worst case gets = ludicrous (theoretical worst case: requiring 2 53 byte ATM cells for on = 49 Byte data packet: 100 * 49 / (53 * 2) =3D 46.2% and this is on top of = any potential unaccounted overhead inside the 49 Byte packet). Luckily = the ATM padding issue is not as severe for bigger packets=E2=80=A6 but = still to statically fully solve modem/dslam bufferbloat the required = bandwidth sacrifice seems excessive=E2=80=A6 But again you are right, = there might be users who do not mind to go to this length. For this = reason I occasionally recommend to start the bandwidth at 50% to = certainly rule out overhead/encapsulation accounting issues (mind you = take 50% as starting point from which to ramp up=E2=80=A6) > > > > > > Best Regards > > > Sebastian. > > > > > > > > > > > > > > David Lang > > > > > > > > > > >=20 >=20