From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) by huchra.bufferbloat.net (Postfix) with ESMTP id A9BA921F170 for ; Mon, 17 Jun 2013 05:27:44 -0700 (PDT) Received: from u-090-csam110a.zmbp.uni-tuebingen.de ([134.2.90.47]) by mail.gmx.com (mrgmx103) with ESMTPSA (Nemesis) id 0M6ioC-1URgWQ043A-00wU1p; Mon, 17 Jun 2013 14:27:42 +0200 Content-Type: multipart/alternative; boundary="Apple-Mail=_297CEAB1-523D-49A5-AA5D-B4AD34EBF799" Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\)) From: Sebastian Moeller In-Reply-To: <874ncxnh82.fsf@toke.dk> Date: Mon, 17 Jun 2013 14:27:42 +0200 Message-Id: <2786EAC4-2771-4E8F-B81E-31E91C797914@gmx.de> References: <8738shsx3w.fsf@toke.dk> <87vc5drhdj.fsf@toke.dk> <87bo75rgp5.fsf@toke.dk> <8738shrd0p.fsf@toke.dk> <00B68282-44B0-4392-8AEF-68144A50D94E@gmx.de> <87hagxnkad.fsf@toke.dk> <2AD5FF25-5388-4AE7-8BE2-837B7F94250F@gmx.de> <874ncxnh82.fsf@toke.dk> To: =?iso-8859-1?Q?Toke_H=F8iland-J=F8rgensen?= X-Mailer: Apple Mail (2.1508) X-Provags-ID: V03:K0:uHbPiG62AYt3U+O3YfWcy8OAl+rggR9RfpsIY5iMZAhB752u5Mi 3qXHhi9uiwu4Pl4CWe2xik/L6Hbswc/yyq9qY21KAWTMyXKwnkVj5bPd2InuytnTX/GXdVW ikCLdK97NhCmp2J8NWUoxWx7hg3NrzKnKULbNgTR3u28Bc0DJf2gu3Ph1xIs1K7WfqMnJ+7 E/qMogIdFAgUCdFb6eJaA== Cc: cerowrt-devel@lists.bufferbloat.net Subject: Re: [Cerowrt-devel] trivial 6in4 fix(?) X-BeenThere: cerowrt-devel@lists.bufferbloat.net X-Mailman-Version: 2.1.13 Precedence: list List-Id: Development issues regarding the cerowrt test router project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Jun 2013 12:27:45 -0000 --Apple-Mail=_297CEAB1-523D-49A5-AA5D-B4AD34EBF799 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=windows-1252 Hi Toke, On Jun 17, 2013, at 12:50 , Toke H=F8iland-J=F8rgensen = wrote: > Sebastian Moeller writes: >=20 >> I fully believe you that it is flat (graph did not make it into my >> inbox=85) >=20 > Heh. May have forgotten to attach it... Should be there now=85 It is=85 I agree no noticeable stepping (btw. in theory taking = the minimum at each ping size would be more precise, in practice for ATM = the median seems to work best). The min because that is limited by wire = speed and optimal processing, the median as it turned out to be less = noisy... >=20 >> So that looks like PTM. Good! But beware the expected step size >> depends on your down and uplink speeds, at VDSL I would only expect a >> very tiny increase (basically the time it takes to see an additional >> ATM cell back and forth, (RTT step per ATM cell in milliseconds =3D >> (53*8 / line.down.bit + 53*8 / line.up.bit ) * 1000); this means that >> potentially a large sample size per ping packet size is required to = be >> reasonably sure that there is no step.... >=20 > Right, well in my case that comes out as something like 0.05 ms, which > is way below the measuring accuracy of my ping test (lowest mdev as > reported by ping is 0.7ms; highest is 3.3). I tend to agree, if interpreted as a statistical power problem = at stddev 0.7, around 1000 samples should do fine (power of 72% for = detecting an effect of 0.05), but at 3.3 even 20500 samples per size = will only give you 70% power. To save some time the ATM quantization = test can be reduced to 3 sizes: say 16 (seems to be the smallest ping = size( on 64 bit systems?) that allows timestamps), 16+24 and 16+48; out = of these 3 two are guaranteed to require the same number of ATM cells = the other one will be either one small or one bigger. But at n ~20k this = still takes too long :) > So I guess testing is not > really going to be viable in this case. But then perhaps it's not = going > to make much of a difference either way in this case? Nah it still is, as ATM will pad the unused reminder of the last = cell of each packet, for small packets that will mean a considerable = amount of your bandwidth is wasted on padding. On average you are going = to waste half a cell, naively speaking; and for small packets that can = easily be above 33%. And if you do not regard that into your shaping you = will run into issues for a flood of small packets, namely you are not = shaping enough and your modem will fill its buffers=85 Thinking of this, = another war to test for ATM carrier is to shape to the nominal link = speeds and see whether flooding some upstream with minimally small = packets affects latency. But unlike the step method this will not give = you the satisfaction of seeing the quantization in a decent plot... >=20 >> Hence in theory using a saturating load and measuring the latencies >> for different overhead values should still work. I wonder whether = rrul >> might just be the right probe? If you go that route I would be >> delighted to learn the outcome :). Sorry to be of no more help here. >=20 > Right. That seems reasonable. However, it also seems to require a bit > more testing than I really have the time to spare right now, so I = think > I'll defer it for the time being. I wonder if it would be possible to > persuade my ISP to set up a netperf server to test against=85 Well, if you talk to your ISP you could also ask them for ATM or = PTM and any potential overhead :) >=20 > Either way, thanks for your insight; I'll be sure to ping you if I = come > up with something more conclusive... :) Great and thanks Best Sebastian >=20 > -Toke >=20 --Apple-Mail=_297CEAB1-523D-49A5-AA5D-B4AD34EBF799 Content-Type: multipart/related; type="text/html"; boundary="Apple-Mail=_F7B652CC-4BD9-4A8F-9E2E-4BDA40A9EE91" --Apple-Mail=_F7B652CC-4BD9-4A8F-9E2E-4BDA40A9EE91 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=windows-1252 Hi = Toke,


On Jun 17, 2013, at 12:50 , Toke = H=F8iland-J=F8rgensen <toke@toke.dk> wrote:

Sebastian = Moeller <moeller0@gmx.de> = writes:

I fully believe you that it is = flat (graph did not make it into my
inbox=85)

Heh. = May have forgotten to attach it... Should be there = now=85

It is=85 I agree no noticeable = stepping (btw. in theory taking the minimum at each ping size would be = more precise, in practice for ATM the median seems to work best). The = min because that is limited by wire speed and optimal processing, the = median as it turned out to be less noisy...


So that looks like PTM. = Good! But beware the expected step size
depends on your down and = uplink speeds, at VDSL I would only expect a
very tiny increase = (basically the time it takes to see an additional
ATM cell back and = forth, (RTT step per ATM cell in milliseconds =3D
(53*8 / = line.down.bit + 53*8 / line.up.bit ) * 1000); this means = that
potentially a large sample size per ping packet size is required = to be
reasonably sure that there is no = step....

Right, well in my case that comes out as = something like 0.05 ms, which
is way below the measuring accuracy of = my ping test (lowest mdev as
reported by ping is 0.7ms; highest is = 3.3).

I tend to agree, if interpreted = as a statistical power problem at stddev 0.7, around 1000 samples should = do fine (power of 72% for detecting an effect of 0.05), but at 3.3 even = 20500 samples per size will only give you 70% power. To save some time = the ATM quantization test can be reduced to 3 sizes: say 16 (seems to be = the smallest ping size( on 64 bit systems?) that allows timestamps), = 16+24 and 16+48; out of these 3 two are guaranteed to require the same = number of ATM cells the other one will be either one small or one = bigger. But at n ~20k this still takes too long :)

So I guess testing is not
really going to be viable in = this case. But then perhaps it's not going
to make much of a = difference either way in this = case?

Nah it still is, as ATM will pad = the unused reminder of the last cell of each packet, for small packets = that will mean a considerable amount of your bandwidth is wasted on = padding. On average you are going to waste half a cell, naively = speaking; and for small packets that can easily be above 33%. And if you = do not regard that into your shaping you will run into issues for a = flood of small packets, namely you are not shaping enough and your modem = will fill its buffers=85 Thinking of this, another war to test for ATM = carrier is to shape to the nominal link speeds and see whether flooding = some upstream with minimally small packets affects latency. But unlike = the step method this will not give you the satisfaction of seeing the = quantization in a decent plot...


Hence in theory using a = saturating load and measuring the latencies
for different overhead = values should still work. I wonder whether rrul
might just be the = right probe? If you go that route I would be
delighted to learn the = outcome :). Sorry to be of no more help here.

Right. = That seems reasonable. However, it also seems to require a bit
more = testing than I really have the time to spare right now, so I = think
I'll defer it for the time being. I wonder if it would be = possible to
persuade my ISP to set up a netperf server to test = against=85

Well, if you talk to your ISP you = could also ask them for ATM or PTM and any potential overhead = :)


Either way, thanks for your = insight; I'll be sure to ping you if I come
up with something more = conclusive... :)

Great and = thanks
Best
Sebastian


-Toke


= --Apple-Mail=_F7B652CC-4BD9-4A8F-9E2E-4BDA40A9EE91 Content-Transfer-Encoding: base64 Content-Disposition: inline; filename=pings.png Content-Type: image/png; name="pings.png" Content-Id: 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 crGs7BoXEQMA4AqN5CIAVeEcIXwXuQgAgIxcBDA6xnzwT+QiAAAychEAABm5CEBTnN/iSnsHh7ml l+LIRQAAZIrl4sDAwKFDh37729++9957vb29ERERt9566/r16x988MFx3Q0DAAAvUiYXGxsbCwoK 7rrrrscee2zRokWhoaGXL18+derUq6++WlxcXF5e/oMf/ECRDQEA4FbK5KIYKZ44ccL21k6RkZHJ I/71r3/l5OSQiwAAn6BMLtbX14/10E033SRGk4psBQAAd1MmF995551nn3329OnTPT09AwMDM2fO FHG4dOnSHTt2zJ8/X5FNAADgAcrkYlZW1qpVq5555pnIyMjg4ODBwcGLFy+++OKL69evP3v2rCKb AADAA5TJRRF+J06cCA0NlSanTZsWFRX1+OOP/+xnP1Nk/Y46Ozvz8vLa29uDgoKSkpIqKip0Op30 UH9/vxikipGrmzYNANAwZXLx61//+i9/+cuMjAwRTiKoLBaLGC/+6le/io6OVmT9jlJTU/Pz8+vr 68W2DAZDTk6O0WgU9X19fWlpaRcuXHDTdgEA2qZMLjY0NDzzzDN33XXXRx99dOXKlbCwsK9+9av3 3nvv4cOHFVm/o46ODmu5qKgoNjZWKq9YsaKurq65udlN2wWg8h+U8XoDPMzf+usByuTiggUL9u/f r8iqJkAMGcPDw6VycXFxfHy8t1oCN1H5jhiAlmjhd+AaGxvT09OlckJCgncbAwAa428fTH3+Og2z 2WwymRoaGlyZuampycVK+BC/fQW/X3nayaOvb13osZbY8tuXw29p7xX37es0xIZyc3Nra2td/AnW 5ORkuxrxijpWQnWcBoD/voLeelp4OfyNOl5xjwWwr16nIXR1dRUWFhoMBtvfnwMAYDJ89TqNlpaW goICk8kkAthNmwAA+CFfvU4jKyurp6fHNneHh4fdtC0AgP/w1es0uru7nTxKRgIAJkYL12kAAKAU chHwR/52RZrKOX85AnhFPItchA9gp6AqvBzQNmVy8aabbvroo49GfYhTfQDgdZM5QjDWo9I6x1qz 735+UiYX//rXv953333btm3btGmTIiuEm3D0THEcAQM0RplcnD179pEjR773ve+tWrXqhhtuUGSd AJwjcQF3UOz8Ylxc3Mcff6zU2qBh1xxgjYUYAOABfO8G4PAyAJnCuRgYGCh90cZaAADAhzBeBABA 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 qqo95HsAAAAASUVORK5CYII= --Apple-Mail=_F7B652CC-4BD9-4A8F-9E2E-4BDA40A9EE91-- --Apple-Mail=_297CEAB1-523D-49A5-AA5D-B4AD34EBF799--