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

No way to explicitly communicate an ack delay #912

Closed
ianswett opened this issue Nov 12, 2017 · 4 comments
Closed

No way to explicitly communicate an ack delay #912

ianswett opened this issue Nov 12, 2017 · 4 comments
Labels
-recovery -transport design An issue that affects the design of the protocol; resolution requires consensus. has-consensus An issue that the Chairs have determined has consensus, by canvassing the mailing list.

Comments

@ianswett
Copy link
Contributor

Currently the recovery draft specifies a default ack delay of 25ms, which may be slightly too low in some environments and much too high in others(ie: datacenters). In order to implement efficient loss recovery, the peer needs to know what ack delay is being used. This should be communicated via transport params.

A similar proposal exists to add this to TCP, we should ensure it exists in QUIC as well.
https://www.ietf.org/proceedings/97/slides/slides-97-tcpm-tcp-options-for-low-latency-00.pdf

@martinthomson martinthomson added the design An issue that affects the design of the protocol; resolution requires consensus. label Nov 12, 2017
@ianswett
Copy link
Contributor Author

Discussion at IETF 100 included noting that this needs to be the max ack delay, and not an effort to communicate the exact delay in all circumstances. Also, if it's in transport params, then it's not encrypted. There was interest in communicating this to better inform TLP, however.

@pravb
Copy link

pravb commented Nov 16, 2017

Yes this is a deficiency in TCP and makes TLP less effective in cases where there is a single tail packet outstanding. I would request that we at least communicate the max ACK delay value in transport parameters. I would think communicating any changing values over time is optional and I would be fine with that not being included in V1. I also think it is likely that most implementations will simply pick a constant value for ACK delay rather than a dynamically tuned one.

@pravb
Copy link

pravb commented Nov 16, 2017

I don't want to conflate this with another related issue but communicating the maximum stretch ACking value back to sender can also be useful to implement ACK clocked congestion control like Reno. Today TCP implementations are using different thresholds for ABC and in many cases are sub-optimally growing the cwnd.

ianswett added a commit that referenced this issue Dec 5, 2017
* Specify MaxAckDelay for TLP and RTO

Closes #981 and #912 
* Add RTO rationale

* Comments

* s/ack/ACK
@ianswett ianswett changed the title No way to communicate a change in ack delay No way to explicitly communicate an ack delay Jan 16, 2018
@janaiyengar
Copy link
Contributor

Closing this in favor of #981

@mnot mnot added the has-consensus An issue that the Chairs have determined has consensus, by canvassing the mailing list. label Mar 5, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-recovery -transport design An issue that affects the design of the protocol; resolution requires consensus. has-consensus An issue that the Chairs have determined has consensus, by canvassing the mailing list.
Projects
None yet
Development

No branches or pull requests

5 participants