Quick UDP Internet Connections (QUIC) is an ideal protocol for improving network quality and addressing video staling issues in scenarios with weak network signals or frequent switch between Wi-Fi and cellular networks. You can use QUIC to accelerate the delivery of audio and video content while maintaining data security during transmission. This topic describes how to add a QUIC listener to an Application Load Balancer (ALB) instance to encrypt data transmission. QUIC listeners can forward QUIC requests.
Introduction to QUIC
QUIC provides the same level of security as SSL, and supports connection multiplexing. In scenarios of weak connections, high network latency, and high packet loss rate, QUIC ensures service availability. QUIC can implement different congestion control algorithms at the application layer regardless of the operating system or kernel. Compared with TCP, QUIC supports flexible adjustments based on service requirements. QUIC is a suitable alternative when TCP optimization encounters bottlenecks.
As short videos and live streaming services become more popular, streaming platforms require high bandwidth and low network latency to meet business requirements. QUIC can minimize network latency, reduce video buffering, accelerate the delivery of audio and video content, and secure data transfer.
Supported QUIC protocol types
ALB supports gQUIC and iQUIC. HTTP/3 is an application-layer protocol based on iQUIC. HTTP/3 uses iQUIC to implement multiplexing, congestion control, packet loss detection, and retransmission. HTTP/3 supports faster connection establishment, eliminates head-of-line blocking issues, and supports connection migration in scenarios of client IP address changes.
ALB supports gQUIC versions Q46, Q43, and Q39 and Chrome 74 to 81.
ALB supports HTTP/3 (h3) and Chrome 87 to 114.
Use only a QUIC listener
All clients must support HTTP/3.
Use a QUIC listener together with an HTTPS listener
ALB negotiates with clients to preferentially use HTTP/3. If HTTP/3 is not supported by a client, HTTPS or HTTP/2 is used.
For more information, see the following topics:
This topic describes two procedures to show you how to add a QUIC listener. You can choose one as needed.
Step 1: Create a listener
To create a QUIC listener, perform the following steps:
Log on to the ALB console.
Use one of the following methods to open the listener configuration wizard:
On the Instances page, find the ALB instance that you want to manage and click Actions in the Create Listener column.
On the Instances page, click the ID of the ALB instance that you want to manage. On the Listener tab, click Create Listener.
On the Configure Listener wizard page, set the following parameters and click Next.
Select a listener protocol.
In this example, QUIC is selected.
Select the port on which the ALB instance listens. The ALB instance listens on the port and forwards requests to backend servers.
Valid values: 1 to 65535.Note
The ports on which an ALB instance listens must be unique.
Enter a name for the listener.
Configure the Tag Key and Tag Value parameters to add a tag. You can add one or more tags.
After you specify tags, you can filter listeners by tag on the Listener tab.
You can click Modify to configure the advanced settings.
Idle Connection Timeout Period
Specify a timeout period for idle connections. Unit: seconds. Valid values: 1 to 60. To specify a longer timeout period,
go to the Quota Center console.
If no request is received within the specified timeout period, ALB closes the connection. When another request is received, ALB establishes a new connection.
Connection Request Timeout
Specify a request timeout period. Unit: seconds. Valid values: 1 to 180. To specify a longer timeout period, go to the Quota Center console.
If no response is received from the backend server within the request timeout period, ALB returns the HTTP 504 error code to the client.
If you enable compression, specific types of files are compressed. If you disable compression, no file is compressed.
Brotli supports all file types. GZIP supports the following file types:
Add HTTP Header
You can select the following options:
Add SLB-ID to Retrieve ALB ID: Add the SLB-ID header to store the ID of the ALB instance.
Add X-Forwarded-Proto to Retrieve Listening Protocol: Add the X-Forwarded-Proto header to store the listener protocol.
Add X-Forwarded-Port to Retrieve Listening Port: Add the X-Forwarded-Port header to store the listener port.
Step 2: Add an SSL certificate
Configure an SSL certificate to ensure that data transmission is encrypted and the identities of users are verified by a trusted authority. For more information, see Certificate Management Service.
In the Configure SSL Certificate step, select a server certificate or click Create SSL Certificate in the Server Certificate drop-down list to purchase a new certificate. Click Next.
Step 3: Select a server group
In the Select Server Group step, select a server group, view the backend servers, and then click Next.
Step 4: Review the configuration
In the Configuration Review step, confirm the configurations and click Submit.
If you select this method, you only need to specify a listener protocol, a listener port, a server certificate, and a server group.
- Log on to the ALB console.
In the top navigation bar, select the region where the ALB instance resides.
On the Instances page, find the ALB instance that you want to manage and click its ID.
Click the Listener tab. On the Listener tab, click Quick Create Listener.
In the Quick Create Listener dialog box, configure the parameters and click OK. The following table describes the parameters.
Select a listener protocol. QUIC is selected in this example.
The frontend port that is used to receive and forward requests to backend servers.
You can select a commonly used port, or enter a port number. Valid values: 1 to 65535.
Select a server certificate from the drop-down list.
Select a resource group for the server group.
Configure the Server Type parameter and select a server group based on the specified server type.