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

.


_______________________________________________
Bloat mailing list
[email protected]
https://lists.bufferbloat.net/listinfo/bloat

Reply via email to