aws / aws/aws-parallelcluster

Enable QUIC transport protocol for DCV on head node

Open
#6,143 2 comments 0 reactions 0 assignees View on GitHub
Backlog enhancement Feature Request
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.