Mikael,
I'll try to explain better how I'm hoping to use DSCP temporarily
without needing to solve the Diffserv interconnect problem...
On 06/08/15 21:38, Mikael Abrahamsson wrote:
On Tue, 4 Aug 2015, Bob Briscoe wrote:
*Combining ECT(0) and CE with a globally assigned DSCP solely during
initial deployment of L4S seems the least worst choice.
Having the same bits in the header mean different things in
combination with DSCP seems like a really hard to get deployed
Internet-wide.
I said /local-use/ DSCP.
The deployment scenario I am imagining is that ISPs would deploy the
coupled dualQ in the bottlenecks either side of their access network.
Ie. at the BRAS, HFC-node or RNC in the downstream and at the
residential gateway, cable modem or mobile terminal in the upstream.
Initially L4S would use a combination of ECN and local-use DSCP to
classify traffic into the L4S queue to give its own CDNs and services
low loss, low latency scalable service.
The ISP would deploy the modifications to DCTCP (working title: "TCP
Prague") on their caches and servers, in set-top boxes associated with
their services, in mobile devices they resell, etc. All these hosts
would send packets with the local-use DSCP to take advantage of their
own L4S service.
Any host could also attempt to use the DSCP inter-domain, but it would
most likely get bleached at any interconnect point. End systems could
still use TCP Prague, but it would have to fall-back to Cubic (or Reno)
if ECN marking was preceded by an RTT increase - implying it was in a
classic ECN queue.
Once most end systems that supported classic ECN also supported TCP
Prague, I envisage that ISPs could classify all ECN packets into their
L4S queue without also checking the DSCP.
I don't believe anyone who says the Diffserv interconnect mess is going
to be solved, so I believe the above eventual use of ECN for an e2e
service is more realistic.
ECN is just now gaining traction and seems like it might actually see
real deployment. Repurposing those bits just now would most likely
just cause confusion.
Yes, already in the earlier postings on this thread I had listened to
all the flaming, and decided I had to suggest a way to distinguish L4S
ECN from classic ECN.
I started using ECN when it first appeared in the Linux kernel around
2001 or whenever it was. I had to immediately turn it off because some
firewalls dropped those packets. Now almost 15 years later after this
sitting in the operating systems for at least 10 years, we're now
getting to a point where we're ready to start turning it on widely
because things do not break when it's turned on.
Don't hold your breath. There are already more types of breakage out
there than there are combinations of the 4 ECN bits in the TCP and IP
headers. This is why, IMO it's important to get the network operators
interested in deploying ECN - a lot of the ECN breakages are in kit
that they have deployed. So they need to want to deploy ECN really badly
themselves in order to clean up all that mess.
So whatever you come up with now that requires host stack changes,
expect 5-10 years at least until it can be deployed. This means you
have to be really sure this is what you actually want before you start
to push for deployment. Also, deployment impacts should be taken a lot
into account when deciding what to do.
I'm well aware of the timescales involved. This is why I am never
interested in piddling incremental performance improvements.
So how sure are you that L4S as it currently stands is the way to go?
If you think you're going to invent something new in 2-3 years, then
please wait until then. Experimentation is all fine and dandy, but
until we can actually get DSCP codepoints working on Internet-wide
scale, this approach isn't feasable for that use-case (which for me is
close to "the only" use-case).
L4S is intended to be a broad class of service (much like BE - it is
intended to contain all sorts of stuff, not just TCP Prague:
unresponsive flows, semi-responsive flows with a minimum rate, DNS, RPC,
every possible different flavour of 1/p congestion response, new forms
of faster slow-start, etc etc. I've seen all sorts of ideas from others
that I am hoping can be introduced into this new service. And, as you
might have guessed, I've got a few of my own too.
For instance, one of the main features of accurate ECN feedback is to be
a generic (dumb) reflector of ECT(1) ECT(0) or CE markings so that
senders can introduce new behaviours without everyone having to keep
deploying new receivers. Please review
draft-kuehlewind-tcpm-accurate-ecn-04 to ensure we get it right - a good
feedback reflector has to be nearly as generic as the IP layer.
My proposal has been before that we should try to get 7 DSCP
codepoints deployed by using 000xxx, and nudge providers to
incrementally just not bleach them and treat them as BE in their core
networks, so we can use them on the edge to influence AQM there.
We have demonstrated that once you fix TCP and isolate it from old TCP,
pretty much any dumb AQM (even a step threshold) gives /all/ traffic
pretty much as good service as AF or even EF (ultra-low delay, near-zero
loss). If this brave new world is true (we are still testing wider and
wider parameter spaces), there will be little point in using Diffserv
just so one packet can overtake another, when you've hardly got a queue
to overtake.
Diffserv has two main purposes:
i) reducing queuing delay for a limited subset of traffic and
ii) protecting important (e.g. valuable) traffic from heavy discard
during anomalies (e.g. config mistakes, attacks).
L4S or something like it should consign i) to the history. Diffserv will
still be necessary for ii), which is mostly seen in single-domain
scenarios. If valuable traffic does cross an interconnect, the ISPs will
make local arrangements to re-mark it as they do today.
So, if we're going to invent new meaning of ECN bits in combination
with DSCP, then that needs to be coupled with work of getting some
DSCP working Internet-wide in a fashion that someone actually believes
will work out, as in actually getting significant Internet-wide
deployment.
I hope I've explained better how I'm hoping to use DSCP temporarily
without having to solve the Diffserv interconnect problem.
Bob
--
________________________________________________________________
Bob Briscoe http://bobbriscoe.net/
_______________________________________________
aqm mailing list
aqm@ietf.org
https://www.ietf.org/mailman/listinfo/aqm