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

feat: congestion window control #131

Closed
wants to merge 5 commits into from
Closed

Conversation

AnoldGH
Copy link

@AnoldGH AnoldGH commented Feb 16, 2025

No description provided.

@AnoldGH
Copy link
Author

AnoldGH commented Feb 16, 2025

To inform congestion control about packet losses we need to modify/append ExpressR API. One approach is to introduce an additional retry callback function triggered upon timeouts instead of immediately retrying.

@AnoldGH
Copy link
Author

AnoldGH commented Feb 19, 2025

Issues Identified:

  1. Decoupled Retransmission and Congestion Control:
    The current design handles retransmission via ExpressR, which is decoupled from congestion window size. This causes congestion mitigation to happen slowly and introduces overheads in strategies (e.g. to ensure cwnd increases once per RTT).

  2. Limited Reliability Guarantee
    ExpressR retries a fixed number of times before discarding the result. This offers only partial reliability and likely leads to the failure observed in this experiment.

  3. Interest Generation tied to seqnum:
    New interests are expressed strictly based on sequence number ordering, which does not align well with a QUIC-like window model.

I think a refactoring is needed to address these limitations. Hence I will close this PR and submit a new one when more work is ready.

@AnoldGH AnoldGH closed this Feb 19, 2025
@pulsejet
Copy link
Collaborator

Sorry I haven't had time yet to do a proper review yet, but this looks on the right track!

Please feel free to propose changes to existing APIs like expressr if needed

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

Successfully merging this pull request may close these issues.

None yet

2 participants