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, which require Google Chrome 74 to 81.
ALB supports version h3 of HTTP/3, which requires Google Chrome 87 or later.
Use scenarios
Scenario | Description |
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: |
Prerequisites
An ALB instance is created. For more information, see Create an ALB instance.
At least one SSL server certificate is deployed on the ALB instance.
A backend server group is created. For more information, see Create and manage a server group.
Procedures
This topic describes two procedures to show you how to add a QUIC listener. You can choose one as needed.
Manual creation: You can create a QUIC listener and configure advanced features based on business requirements.
Quick creation: You can use a template to quickly create a QUIC listener. You only need to specify a listener protocol, a listener port, a server certificate, and a backend server group.
Manual creation
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 NLB 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.
Parameter
Description
Listener Protocol
Select a listener protocol.
In this example, QUIC is selected.
Listener Port
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.
NoteOn the same ALB instance, the ports of listeners that use the same protocol must be unique. HTTP listeners and HTTPS listeners must use different ports.
Listener Name
Enter a name for the listener.
Tag
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.
Advanced Settings
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.
Compression
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:
text/xml
,text/plain
,text/css
,application/javascript
,application/x-javascript
,application/rss+xml
,application/atom+xml
,application/xml
, andapplication/json
.Add HTTP Header
You can select the following options:
Add SLB-ID to Retrieve ALB ID
: Add the SLB-ID header to preserve the ID of the ALB instance.Add X-Forwarded-Proto to Retrieve Listening Protocol
: Add the X-Forwarded-Proto header to preserve the listener protocol.Add X-Forwarded-Port to Retrieve Listening Port
: Add the X-Forwarded-Port header to preserve 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.
If no server certificate is available, click Create SSL Certificate to create one. For more information, see Purchase an SSL certificate and Upload an SSL certificate.
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.
Quick creation
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.
Parameter
Description
Listener Protocol
Select a listener protocol. QUIC is selected in this example.
Listener Port
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.
Server Certificate
Select a server certificate from the drop-down list.
If no server certificate is available, click Create SSL Certificate to create one. For more information, see Purchase an SSL certificate and Upload an SSL certificate.
Resource Group
Select a resource group for the server group.
Server Group
Configure the Server Type parameter and select a server group based on the specified server type.