Enable QUIC transport protocol for DCV on head node
- Dominant language
- Python
- Stars
- 888
- Forks
- 314
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 43
Description
DCV on the head node leverages the default transport protocol configuration of WebSockets over TCP, but it can support QUIC with minor backwards-compatible configuration change.
I enable QUIC by default as my users are up to 300msec from our preferred Parallel Cluster region and experience significant latency, jitter & packet loss, which are far more tolerable using QUIC.
Regardless, given the [performance improvements](https://www.youtube.com/watch?v=FDQumi0lPvA&t=285s), I think the project should consider [enabling QUIC](https://docs.aws.amazon.com/dcv/latest/adminguide/enable-quic.html) by default, but at the very least make it optional, given that the worst-case outcome is any network or client issues when attempting QUIC simply result in graceful fallback to the existing TCP-based connections.
One complication is that QUIC is only supported using the DCV thick client, not via web browser.
Proposed changes required:
1. Set `enable-quic-frontend=true` in /etc/dcv/dcv.conf
2. Add UDP/ from in the head node security group
3. Update `pcluster dcv-connect` to test for & launch the thick client after fetching session credentials
Contributor guide
Research direction
Start with the /etc/dcv/dcv.conf change, the head-node security-group rule, and the pcluster dcv-connect entry point named in the issue. Verify how DCV session credentials are fetched and how thick-client versus browser connections are handled; done means QUIC is enabled, UDP access is configured, and dcv-connect preserves browser/TCP fallback.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, python
- Domain
- cli, cloud, networking
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100