Hacker News new | ask | show | jobs
by lwheelock 3170 days ago
How is this practical considering known incompatibilities with traditional ECN and most enterprise environments include inter connectivity with systems out of the “controlled environment”?

The demand for this type of congestion control is seemingly driven by top of rack topology used in cloud architecture.

It would then stand to reason that hardware manufacturers would better solve variable queuing requirements in the switch than developing protocol support known to have a major incompatibility and potentially introduce interoperability problems between vendors in mixed networks.

3 comments

First, DCTCP will degrade gracefully if ECN isn't working. Ok, so you won't get the early warning about congestion. But eventually congestion would cause packet loss, and DCTCP would react to it appropriately.

Second, Linux allows setting the congestion control algorithm per-route. So you could set up DCTCP for communicating with the IPs in the same data center, and use the default CC algorithm for everything else. And what if you can't use/don't want to use per-route settings? Well, you'll generally have two classes of machines anyway. Frontends that can communicate with the outside world, and backends that can't. So you could set up different congestion control based on the role of the machine.

Solving this in the switches seems tricky. Sure, per-flow rather than global or per-port queues could be used to solve the mice vs. elephants problem. But it does not help with TCP incast unless you also add huge buffers. You want switches to be simple, fast and cheap. A switch with per-flow queueing and huge buffers seems like the opposite.

> The demand for this type of congestion control is seemingly driven by top of rack topology used in cloud architecture.

That's one heck of a use-case.

It's more expensive to solve things in the switch (although I know how to make it cheaper...) so if you can handle the limitations of DCTCP then it's a good solution. I can definitely imagine that deep-buffer VOQ switches would be less expensive than DCTCP in heterogeneous enterprise datacenters.