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

Use QUIC as second option for client/server protocol #628

Open
kaetemi opened this issue Nov 5, 2020 · 3 comments
Open

Use QUIC as second option for client/server protocol #628

kaetemi opened this issue Nov 5, 2020 · 3 comments

Comments

@kaetemi
Copy link
Member

kaetemi commented Nov 5, 2020

The client/server protocol mainly consists of lossy position updates and lossless event impulses. Currently these are sent over a fixed rate UDP-based protocol.

QUIC would simplify sending the event impulses in a separate stream, decreasing latency and increasing bandwidth (both for the impulse events, and freeing up bandwidth in the position update packets.) It'd also enhance connection recovery.

@kaetemi
Copy link
Member Author

kaetemi commented Feb 21, 2022

Prioritized since Ryzom Forge team is interested in speeding up string transfer.

Plan is to keep the existing UDP packet format, and send that over QUIC as unreliable datagram instead.

Then flag any messages (IOS mainly) which can be sent out-of-band to be sent directly over the QUIC reliable stream.

https://quicwg.org/datagram/draft-ietf-quic-datagram.html

@kaetemi kaetemi added this to the Ryzom Core 5 milestone Feb 22, 2022
@kaetemi kaetemi modified the milestones: Ryzom Core 5, Ryzom Core 4.1 Feb 20, 2023
@kaetemi
Copy link
Member Author

kaetemi commented Feb 20, 2023

Can implement this without breaking compatibility. Use the same trick as SBS, run the service on a port offset of 2000 -5000.

Only the msg.xml changes to flag which messages can go over secondary streams will need to be shifted to 5.0, so the checksum is not broken.

@kaetemi kaetemi self-assigned this Feb 21, 2023
kaetemi added a commit that referenced this issue Feb 24, 2023
kaetemi added a commit that referenced this issue Feb 24, 2023
kaetemi added a commit that referenced this issue Feb 24, 2023
…g datagram buffers (todo), connection works, ingame ui keeps saying Probing on both UDP and QUIC (known bug), ref #628
@kaetemi
Copy link
Member Author

kaetemi commented Feb 25, 2023

QUIC connection datagram support is implemented and working for testing purposes on development targets. Next step is to support additional streams for the larger impulse data (mainly from IOS and DSS).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

1 participant