[Bloat] DSLReports Speed Test has latency measurement built-in

MUSCARIELLO Luca IMT/OLN luca.muscariello at orange.com
Thu Apr 23 06:17:20 PDT 2015


On 04/23/2015 08:48 AM, Eric Dumazet wrote:
> Wait, this is a 15 years old experiment using Reno and a single test
> bed, using ns simulator.

from that paper to nowadays several other studies have been made
and confirmed those first results. I did not check all the literature 
though.

>
> Naive TCP pacing implementations were tried, and probably failed.

Except for the scaling levels that sch_fq is pushing to nowadays growth,
the concept was well analyzed in the past.

>
> Pacing individual packet is quite bad, this is the first lesson one
> learns when implementing TCP pacing, especially if you try to drive a
> 40Gbps NIC.

this is the main difference I think between 2000 and 2015 and main 
source of misunderstanding.

>
> https://lwn.net/Articles/564978/

is there any other documentation other than this article?

>
> Also note we use usec based rtt samples, and nanosec high resolution
> timers in fq. I suspect the ns simulator experiment had sync issues
> because of using low resolution timers or simulation artifact, without
> any jitter source.

I suspect that the main difference was that all packets were paced.
The rates of the first experiments were made at a very low rate compared 
to now
so the resolution was not supposed to be a problem.

> Billions of flows are now 'paced', but keep in mind most packets are not
> paced. We do not pace in slow start, and we do not pace when tcp is ACK
> clocked.
All right. I think this clarifies a lot to me. I did not find this 
information anywhere though.
I guess I need to go through the internals to find all the active 
features and possible
working configurations.

In short, by removing slow start + ack clocked phases, the mechanism 
avoids the cwnd-size
line rate burst of packets which has a high probability to experience a 
big loss phenomenon  somewhere
along the path and maybe in the same local NIC, not necessarily in the 
user access bottleneck.

This is something that happens in these days because of hardware 
assisted framing and very high speed NICs
like what you mention. But 15 years ago none of those things existed and 
TCP did not push such huge bursts.
In some cases I suspect no buffer today could accommodate such bursts 
and the loss would be almost sure.
Then I wonder why hardware assisted framing implementations did not take 
into account that.

I personally don't have the equipment to test in such cases but I see 
the phenomenon.

Still, I believe that Savage's approach would have the merit to produce 
very small queues
in the network (and all the benefits from that) but would be fragile, as 
reported, and require fq(_codel)
in the network, at least in the access, to create incentives to do that 
pacing.



>
> Only when someones sets SO_MAX_PACING_RATE below the TCP rate, we can
> eventually have all packets being paced, using TSO 'clusters' for TCP.
>
>
>
> On Thu, 2015-04-23 at 07:27 +0200, MUSCARIELLO Luca IMT/OLN wrote:
>> one reference with pdf publicly available. On the website there are
>> various papers
>> on this topic. Others might me more relevant but I did not check all of
>> them.
>> Understanding the Performance of TCP Pacing,
>> Amit Aggarwal, Stefan Savage, and Tom Anderson,
>> IEEE INFOCOM 2000 Tel-Aviv, Israel, March 2000, pages 1157-1165.
>>
>> http://www.cs.ucsd.edu/~savage/papers/Infocom2000pacing.pdf
>
> .
>



More information about the Bloat mailing list