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

One-way delay timestamps / RTTs vs. hard-coded constant values #1693

Open
joergdeutschmann-i7 opened this issue May 17, 2024 · 1 comment
Open

Comments

@joergdeutschmann-i7
Copy link

client_parameters.enable_time_stamp = 3;

picoquic allows the use of one-way delays. These are then also used for the samples.
uint64_t samples[PICOQUIC_MIN_MAX_RTT_SCOPE];
} picoquic_min_max_rtt_t;

(IMHO these are not RTTs any more, but one-way delays, but this is just a question of variable names.)
In other places, these one-way delays are then used for comparison with hard-coded RTT thresholds, e.g.,
if (cubic_state->rtt_filter.rtt_filtered_min > PICOQUIC_TARGET_SATELLITE_RTT) {

We wonder if this could cause problems... 🤔

@huitema
Copy link
Collaborator

huitema commented May 17, 2024

Yes. It is a bit of a mess. And getting that right will be more urgent if we actually deploy multipath. There is a lot of confusion there, because the time measurements are used for both loss detection and congestion control or pacing. For loss detection, we use RACK. It relies primarily on out of order detection, and timer precision does not matter too much. But for congestion control, we need precision.

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