private-octopus / picoquic

Minimal implementation of the QUIC protocol
MIT License
523 stars 153 forks source link

Only disconnect on idle timeout, not on packet losses #1582

Closed huitema closed 7 months ago

huitema commented 7 months ago

Add tests to reproduce issue #1581.

Fix the issue by removing the automatic disconnect on "too many losses". However, fixing that makes other tests fail, because it now takes longer to detect a disconnect, and also because too many packets are sent before noticing the disconnect.

Fix the "too many packets" issue by revising the formula for exponential increase of RTO upon successive repeat. Mitigate the "too long to notice" somewhat by capping the RTO to at most idle-timeout divided b 12.

Fix tests in accordance with stated formulas.

Close #1581