From: Dave Taht <dave.taht@gmail.com>
To: Simon Barber <simon@superduper.net>
Cc: bloat <bloat@lists.bufferbloat.net>
Subject: Re: [Bloat] DSLReports Speed Test has latency measurement built-in
Date: Thu, 7 May 2015 15:27:28 -0700 [thread overview]
Message-ID: <CAA93jw5r9TvfgKcHPtqfk8kqzE4hyAcwFggJ7MsDuTic8m7d=Q@mail.gmail.com> (raw)
In-Reply-To: <14d2ed6f160.27f7.e972a4f4d859b00521b2b659602cb2f9@superduper.net>
On Thu, May 7, 2015 at 7:45 AM, Simon Barber <simon@superduper.net> wrote:
> The key figure for VoIP is maximum latency, or perhaps somewhere around 99th
> percentile. Voice packets cannot be played out if they are late, so how late
> they are is the only thing that matters. If many packets are early but more
> than a very small number are late, then the jitter buffer has to adjust to
> handle the late packets. Adjusting the jitter buffer disrupts the
> conversation, so ideally adjustments are infrequent. When maximum latency
> suddenly increases it becomes necessary to increase the buffer fairly
> quickly to avoid a dropout in the conversation. Buffer reductions can be
> hidden by waiting for gaps in conversation. People get used to the acoustic
> round trip latency and learn how quickly to expect a reply from the other
> person (unless latency is really too high), but adjustments interfere with
> this learned expectation, so make it hard to interpret why the other person
> has paused. Thus adjustments to the buffering should be as infrequent as
> possible.
>
> Codel measures and tracks minimum latency in its inner 'interval' loop. For
> VoIP the maximum is what counts. You can call it minimum + jitter, but the
> maximum is the important thing (not the absolute maximum, since a very small
> number of late packets are tolerable, but perhaps the 99th percentile).
>
> During a conversation it will take some time at the start to learn the
> characteristics of the link, but ideally the jitter buffer algorithm will
> quickly get to a place where few adjustments are made. The more conservative
> the buffer (higher delay above minimum) the less likely a future adjustment
> will be needed, hence a tendency towards larger buffers (and more delay).
>
> Priority queueing is perfect for VoIP, since it can keep the jitter at a
> single hop down to the transmission time for a single maximum size packet.
> Fair Queueing will often achieve the same thing, since VoIP streams are
> often the lowest bandwidth ongoing stream on the link.
Unfortunately this is more nuanced than this. Not for the first time
do I wish that email contained math, and/or we had put together a paper
for this containing the relevant math. I do have a spreadsheet lying
around here somewhere...
In the case of a drop tail queue, jitter is a function of the total
amount of data outstanding on the link by all the flows. A single
big fat flow experiencing a drop will drop it's buffer occupancy
(and thus effect on other flows) by a lot on the next RTT. However
a lot of fat flows will drop by less if drops are few. Total delay
is the sum of all packets outstanding on the link.
In the case of stochastic packet-fair queuing jitter is a function
of the total number of bytes in each packet outstanding on the sum
of the total number of flows. The total delay is the sum of the
bytes delivered per packet per flow.
In the case of DRR, jitter is a function of the total number of bytes
allowed by the quantum per flow outstanding on the link. The total
delay experienced by the flow is a function of the amounts of
bytes delivered with the number of flows.
In the case of fq_codel, jitter is a function of of the total number
of bytes allowed by the quantum per flow outstanding on the link,
with the sparse optimization pushing flows with no queue
queue in the available window to the front. Furthermore
codel acts to shorten the lengths of the queues overall.
fq_codel's delay: when the arriving in new flow packet can be serviced
in less time than the total number of flows' quantums, is a function
of the total number of flows that are not also building queues. When
the total service time for all flows exceeds the interval the voip
packet is delivered in, and AND the quantum under which the algorithm
is delivering, fq_codel degrades to DRR behavior. (in other words,
given enough queuing flows or enough new flows, you can steadily
accrue delay on a voip flow under fq_codel). Predicting jitter is
really hard to do here, but still pretty minimal compared to the
alternatives above.
in the above 3 cases, hash collisions permute the result. Cake and
fq_pie have a lot less collisions.
I am generally sanguine about this along the edge - from the internet
packets cannot be easily classified, yet most edge networks have more
bandwidth from that direction, thus able to fit WAY more flows in
under 10ms, and outbound, from the home or small business, some
classification can be effectively used in a X tier shaper (or cake) to
ensure better priority (still with fair) queuing for this special
class of application - not that under most home workloads that this is
an issue. We think. We really need to do more benchmarking of web and
dash traffic loads.
> Simon
>
> Sent with AquaMail for Android
> http://www.aqua-mail.com
>
> On May 7, 2015 6:16:00 AM jb <justin@dslr.net> wrote:
>>
>> I thought would be more sane too. I see mentioned online that PDV is a
>> gaussian distribution (around mean) but it looks more like half a bell
>> curve, with most numbers near the the lowest latency seen, and getting
>> progressively worse with
>> less frequency.
>> At least for DSL connections on good ISPs that scenario seems more
>> frequent.
>> You "usually" get the best latency and "sometimes" get spikes or fuzz on
>> top of it.
>>
>> by the way after I posted I discovered Firefox has an issue with this test
>> so I had
>> to block it with a message, my apologies if anyone wasted time trying it
>> with FF.
>> Hopefully i can figure out why.
>>
>>
>> On Thu, May 7, 2015 at 9:44 PM, Mikael Abrahamsson <swmike@swm.pp.se>
>> wrote:
>>>
>>> On Thu, 7 May 2015, jb wrote:
>>>
>>>> There is a web socket based jitter tester now. It is very early stage
>>>> but
>>>> works ok.
>>>>
>>>> http://www.dslreports.com/speedtest?radar=1
>>>>
>>>> So the latency displayed is the mean latency from a rolling 60 sample
>>>> buffer, Minimum latency is also displayed. and the +/- PDV value is the mean
>>>> difference between sequential pings in that same rolling buffer. It is quite
>>>> similar to the std.dev actually (not shown).
>>>
>>>
>>> So I think there are two schools here, either you take average and
>>> display + / - from that, but I think I prefer to take the lowest of the last
>>> 100 samples (or something), and then display PDV from that "floor" value, ie
>>> PDV can't ever be negative, it can only be positive.
>>>
>>> Apart from that, the above multi-place RTT test is really really nice,
>>> thanks for doing this!
>>>
>>>
>>> --
>>> Mikael Abrahamsson email: swmike@swm.pp.se
>>
>>
>> _______________________________________________
>> Bloat mailing list
>> Bloat@lists.bufferbloat.net
>> https://lists.bufferbloat.net/listinfo/bloat
>>
>
> _______________________________________________
> Bloat mailing list
> Bloat@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/bloat
>
--
Dave Täht
Open Networking needs **Open Source Hardware**
https://plus.google.com/u/0/+EricRaymond/posts/JqxCe2pFr67
next prev parent reply other threads:[~2015-05-07 22:27 UTC|newest]
Thread overview: 183+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-19 5:26 jb
2015-04-19 7:36 ` David Lang
2015-04-19 7:48 ` David Lang
2015-04-19 9:33 ` jb
2015-04-19 10:45 ` David Lang
2015-04-19 8:28 ` Alex Burr
2015-04-19 10:20 ` Sebastian Moeller
2015-04-19 10:46 ` Jonathan Morton
2015-04-19 16:30 ` Sebastian Moeller
2015-04-19 17:41 ` Jonathan Morton
2015-04-19 19:40 ` Sebastian Moeller
2015-04-19 20:53 ` Jonathan Morton
2015-04-21 2:56 ` Simon Barber
2015-04-21 4:15 ` jb
2015-04-21 4:47 ` David Lang
2015-04-21 7:35 ` jb
2015-04-21 9:14 ` Steinar H. Gunderson
2015-04-21 14:20 ` David Lang
2015-04-21 14:25 ` David Lang
2015-04-21 14:28 ` David Lang
2015-04-21 22:13 ` jb
2015-04-21 22:39 ` Aaron Wood
2015-04-21 23:17 ` jb
2015-04-22 2:14 ` Simon Barber
2015-04-22 2:56 ` jb
2015-04-22 14:32 ` Simon Barber
2015-04-22 17:35 ` David Lang
2015-04-23 1:37 ` Simon Barber
2015-04-24 16:54 ` David Lang
2015-04-24 17:00 ` Rick Jones
2015-04-21 9:37 ` Jonathan Morton
2015-04-21 10:35 ` jb
2015-04-22 4:04 ` Steinar H. Gunderson
2015-04-22 4:28 ` Eric Dumazet
2015-04-22 8:51 ` [Bloat] RE : " luca.muscariello
2015-04-22 12:02 ` jb
2015-04-22 13:08 ` Jonathan Morton
[not found] ` <14ce17a7810.27f7.e972a4f4d859b00521b2b659602cb2f9@superduper.net>
2015-04-22 14:15 ` Simon Barber
2015-04-22 13:50 ` [Bloat] " Eric Dumazet
2015-04-22 14:09 ` Steinar H. Gunderson
2015-04-22 15:26 ` [Bloat] RE : " luca.muscariello
2015-04-22 15:44 ` [Bloat] " Eric Dumazet
2015-04-22 16:35 ` MUSCARIELLO Luca IMT/OLN
2015-04-22 17:16 ` Eric Dumazet
2015-04-22 17:24 ` Steinar H. Gunderson
2015-04-22 17:28 ` MUSCARIELLO Luca IMT/OLN
2015-04-22 17:45 ` MUSCARIELLO Luca IMT/OLN
2015-04-23 5:27 ` MUSCARIELLO Luca IMT/OLN
2015-04-23 6:48 ` Eric Dumazet
[not found] ` <CAH3Ss96VwE_fWNMOMOY4AgaEnVFtCP3rPDHSudOcHxckSDNMqQ@mail.gmail.com>
2015-04-23 10:08 ` jb
2015-04-24 8:18 ` Sebastian Moeller
2015-04-24 8:29 ` Toke Høiland-Jørgensen
2015-04-24 8:55 ` Sebastian Moeller
2015-04-24 9:02 ` Toke Høiland-Jørgensen
2015-04-24 13:32 ` jb
2015-04-24 13:58 ` Toke Høiland-Jørgensen
2015-04-24 16:51 ` David Lang
2015-04-25 3:15 ` Simon Barber
2015-04-25 4:04 ` Dave Taht
2015-04-25 4:26 ` Simon Barber
2015-04-25 6:03 ` Sebastian Moeller
2015-04-27 16:39 ` Dave Taht
2015-04-28 7:18 ` Sebastian Moeller
2015-04-28 8:01 ` David Lang
2015-04-28 8:19 ` Toke Høiland-Jørgensen
2015-04-28 15:42 ` David Lang
2015-04-28 8:38 ` Sebastian Moeller
2015-04-28 12:09 ` Rich Brown
2015-04-28 15:26 ` David Lang
2015-04-28 15:39 ` David Lang
2015-04-28 11:04 ` Mikael Abrahamsson
2015-04-28 11:49 ` Sebastian Moeller
2015-04-28 12:24 ` Mikael Abrahamsson
2015-04-28 13:44 ` Sebastian Moeller
2015-04-28 19:09 ` Rick Jones
2015-04-28 14:06 ` Dave Taht
2015-04-28 14:02 ` Dave Taht
2015-05-06 5:08 ` Simon Barber
2015-05-06 8:50 ` Sebastian Moeller
2015-05-06 15:30 ` Jim Gettys
2015-05-06 18:03 ` Sebastian Moeller
2015-05-06 20:25 ` Jonathan Morton
2015-05-06 20:43 ` Toke Høiland-Jørgensen
2015-05-07 7:33 ` Sebastian Moeller
2015-05-07 4:29 ` Mikael Abrahamsson
2015-05-07 7:08 ` jb
2015-05-07 7:18 ` Jonathan Morton
2015-05-07 7:24 ` Mikael Abrahamsson
2015-05-07 7:40 ` Sebastian Moeller
2015-05-07 9:16 ` Mikael Abrahamsson
2015-05-07 10:44 ` jb
2015-05-07 11:36 ` Sebastian Moeller
2015-05-07 11:44 ` Mikael Abrahamsson
2015-05-07 13:10 ` Jim Gettys
2015-05-07 13:18 ` Mikael Abrahamsson
2015-05-07 13:14 ` jb
2015-05-07 13:26 ` Neil Davies
2015-05-07 14:45 ` Simon Barber
2015-05-07 22:27 ` Dave Taht [this message]
2015-05-07 22:45 ` Dave Taht
2015-05-07 23:09 ` Dave Taht
2015-05-08 2:05 ` jb
2015-05-08 4:16 ` David Lang
2015-05-08 3:54 ` Eric Dumazet
2015-05-08 4:20 ` Dave Taht
2015-05-08 13:20 ` [Bloat] DSLReports Jitter/PDV test Rich Brown
2015-05-08 14:22 ` jb
2015-05-07 7:37 ` [Bloat] DSLReports Speed Test has latency measurement built-in Sebastian Moeller
2015-05-07 7:19 ` Mikael Abrahamsson
2015-05-07 6:19 ` Sebastian Moeller
2015-04-25 3:23 ` Simon Barber
2015-04-24 15:20 ` Bill Ver Steeg (versteb)
2015-04-25 2:24 ` Simon Barber
2015-04-23 10:17 ` renaud sallantin
2015-04-23 14:10 ` Eric Dumazet
2015-04-23 14:38 ` renaud sallantin
2015-04-23 15:52 ` Jonathan Morton
2015-04-23 16:00 ` Simon Barber
2015-04-23 13:17 ` MUSCARIELLO Luca IMT/OLN
2015-04-22 18:22 ` Eric Dumazet
2015-04-22 18:39 ` [Bloat] Pacing --- was " MUSCARIELLO Luca IMT/OLN
2015-04-22 19:05 ` Jonathan Morton
2015-04-22 15:59 ` [Bloat] RE : " Steinar H. Gunderson
2015-04-22 16:16 ` Eric Dumazet
2015-04-22 16:19 ` Dave Taht
2015-04-22 17:15 ` Rick Jones
2015-04-19 12:14 ` [Bloat] " Toke Høiland-Jørgensen
-- strict thread matches above, loose matches on Subject: below --
2015-04-19 12:56 jb
2015-04-19 13:10 ` Toke Høiland-Jørgensen
2015-04-19 13:53 ` jb
2015-04-19 15:38 ` Toke Høiland-Jørgensen
2015-04-19 16:38 ` Toke Høiland-Jørgensen
2015-04-19 17:15 ` Mikael Abrahamsson
2015-04-19 17:43 ` Dave Taht
2015-04-19 19:22 ` Dave Taht
2015-04-23 17:03 ` Dave Taht
2015-04-23 18:04 ` Mikael Abrahamsson
2015-04-23 18:08 ` Jonathan Morton
2015-04-23 20:19 ` jb
2015-04-23 20:39 ` Dave Taht
2015-04-24 21:45 ` Rich Brown
2015-04-25 1:14 ` jb
2015-04-23 21:44 ` Rich Brown
2015-04-23 22:22 ` Dave Taht
2015-04-23 22:29 ` Dave Taht
2015-04-24 1:58 ` Rich Brown
2015-04-24 2:40 ` Dave Taht
2015-04-24 3:20 ` Jim Gettys
2015-04-24 3:39 ` Dave Taht
2015-04-24 4:04 ` Dave Taht
2015-04-24 4:17 ` Dave Taht
2015-04-24 16:13 ` Rick Jones
2015-04-24 5:00 ` jb
2015-04-27 16:28 ` Dave Taht
2015-04-24 16:09 ` Rick Jones
2015-04-24 13:49 ` Pedro Tumusok
2015-04-23 22:51 ` David Lang
2015-04-24 1:38 ` Rich Brown
2015-04-24 4:16 ` Mikael Abrahamsson
2015-04-24 4:24 ` Dave Taht
2015-04-19 17:45 ` Toke Høiland-Jørgensen
2015-04-19 18:26 ` Jonathan Morton
2015-04-19 18:30 ` Toke Høiland-Jørgensen
2015-04-19 19:15 ` Jonathan Morton
2015-04-20 3:15 ` Aaron Wood
2015-04-20 7:00 ` jb
[not found] ` <CACQiMXbF9Uk3H=81at-Z9a2fdYKrRtRorSXRg5dBcPB8-aR4Cw@mail.gmail.com>
2015-04-20 8:11 ` jb
2015-04-19 19:19 ` Mikael Abrahamsson
2015-04-19 21:57 ` Rich Brown
2015-04-19 23:21 ` jb
2015-04-20 14:51 ` David Lang
2015-04-20 15:51 ` Dave Taht
2015-04-20 16:15 ` Dave Taht
2015-04-19 0:57 Rich Brown
2015-04-19 4:01 ` Dave Taht
2015-04-20 14:33 ` Colin Dearborn
2015-04-19 8:29 ` Dave Taht
2015-04-19 8:38 ` Dave Taht
2015-04-19 12:21 ` jb
2015-04-19 9:17 ` MUSCARIELLO Luca IMT/OLN
2015-04-19 12:03 ` jb
2015-04-19 10:53 ` dikshie
2015-04-19 12:11 ` jb
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://lists.bufferbloat.net/postorius/lists/bloat.lists.bufferbloat.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAA93jw5r9TvfgKcHPtqfk8kqzE4hyAcwFggJ7MsDuTic8m7d=Q@mail.gmail.com' \
--to=dave.taht@gmail.com \
--cc=bloat@lists.bufferbloat.net \
--cc=simon@superduper.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox