Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Should app-guide really recommend DCTCP? #44

Open
Ealdwulf opened this issue May 23, 2023 · 5 comments
Open

Should app-guide really recommend DCTCP? #44

Ealdwulf opened this issue May 23, 2023 · 5 comments

Comments

@Ealdwulf
Copy link

I'm not completely familiar with the context in which these trials will run, but if it's expected to be over the public internet then it doesn't seem like a good idea to recommend DCTCP as a congestion control.

@VMatrix1900
Copy link

DCTCP can be used as the scalable congestion control in L4S safely.

@Ealdwulf
Copy link
Author

Ealdwulf commented Jun 7, 2023

@VMatrix1900 , RFC9332 says "Prague fixes a number of problems with the Linux DCTCP code that make it unsuitable for the public Internet". Do you know if those problems have been fixed? (Even if they have, it would probably be wise for this doc to recommend only using the versions subsequent to the fix)

@VMatrix1900
Copy link

@Ealdwulf I got your point. I am not aware if the problem in the Linux DCTCP is an Linux implementation issue or inherent to DCTCP RFC. AFAIK, Windows server and FreeBSD both implement DCTCP even before Linux.

@Ealdwulf
Copy link
Author

There is a bit more information in rfc9330:
Section 2: "Although DCTCP as-is functions well over wide-area round-trip times (RTTs), most implementations lack certain safety features that would be necessary for use outside controlled environments, like data centres (see Section 6.4.3)"

Section 6.4.2: "DCTCP needs some safety concerns to be fixed for general use over the public Internet (see Section 4.3 of the L4S ECN spec [RFC9331]), but DCTCP is not on by default, so these issues can be managed within controlled deployments or controlled trials."

That sounds like the issues also affect other implementations. I suspect it would be simplest just to remove the reference to DCTCP, but at the least it should only recommend it for controlled environments.

@VMatrix1900
Copy link

Got it.
From Section 4.3: "In uncontrolled environments, monitoring MUST be implemented to support detection of problems with an ECN-capable AQM at the path bottleneck that appears not to support L4S and that might be in a shared queue. Such monitoring SHOULD be applied to live traffic that is using Scalable congestion control. Alternatively, monitoring need not be applied to live traffic, if monitoring with test traffic has been arranged to cover the paths that live traffic takes through uncontrolled environments.

A function to detect the above problems with an ECN-capable AQM MUST also be implemented and used."

DCTCP does not implement such a function. I agree that DCTCP should only be recommended in controlled environments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants