quicwg / base-drafts

Internet-Drafts that make up the base QUIC specification
https://quicwg.org
1.63k stars 204 forks source link

Congestion control section in recovery should be self-contained #3088

Closed jrudolph closed 4 years ago

jrudolph commented 5 years ago

It starts like this:

QUIC's congestion control is based on TCP NewReno {{?RFC6582}}.

The next sections below roughly describe the behavior of different phases of congestion control. More concrete pseudo-code is only given in the Appendix later on but it's not linked from the original section.

On first reading, I missed the Appendix and felt the text lacking for concrete enough explanations to implement the feature. The question is what to describe where and what the authoritative definitions should be. If you know the NewReno RFC by heart you can probably make the right inferences to figure out how everything should work in comparison but is that how it should be?

An alternative (more convenient for the reader / skimmer) approach could be to mention NewReno only in passing and then provide a complete and self-contained description of the algorithms in the congestion control section directly, maybe even inlining the pseudo-code. If that is deemed to verbose and would bore readers that know enough about those algorithms already, it would be good to provide some guidance how to read the algorithm and what the assumptions are in the introductory paragraph about congestion control.

ianswett commented 5 years ago

The intent is that the text is complete without reading the referenced RFCs or pseudocode, so I think this section needs more text and possibly some inlined pseudo-code.

ianswett commented 4 years ago

Hi @jrudolph I wrote #3463 which fixes some obvious errors I found, but I think more could be done.

Can you take a look and tell me what other points you'd like added or moved up from the pseudocode?