Pre-release of nginx with support for QUIC and HTTP/3

NGINX Company announced announces the start of testing implementations of QUIC and HTTP/3 protocols in the HTTP server and proxy nginx. The implementation is based on Draft 27 of the IETF-QUIC specification and is available through a separate repository, branched from release 1.19.0. The code is distributed under a BSD license and does not overlap with the previously proposed HTTP/3 implementation for nginx from Cloudflare, which is a separate project.

Support for HTTP/3 in nginx is marked as experimental, as not all features of the protocol are implemented. However, nginx can already be used to respond to simple HTTP/3 requests over QUIC and to upload/download large files. Some of the currently missing protocol capabilities include version negotiation, ECN and congestion control, structured logs, recovery mode (QUIC recovery, flow and congestion control), NAT Rebinding, mobile addresses, Server push, and data attachment (trailer). Basic support for processing ACK packets and flow control is also proposed, which requires further development. Not all standard requirements are met.

To activate HTTP/3, nginx needs to be built with the http_v3_module and an additional 'listen' directive with the 'http3' flag must be added to create a listening UDP socket. For example:
listen 443 ssl; # TCP socket for HTTP/1.1

server {
listen 443 http3 reuseport; # UDP socket for QUIC+HTTP/3
ssl_protocols TLSv1.3; # TLS 1.3 is mandatory in QUIC

ssl_certificate ssl/www.example.com.crt;
ssl_certificate_key ssl/www.example.com.key;
add_header Alt-Svc 'quic=":443"'; # indication of QUIC availability

add_header QUIC-Status $quic; # Header with the QUIC usage status
(Quick UDP Internet Connections) has been developed by Google since 2013 as an alternative to the TCP+TLS stack for the Web, solving issues with long connection setup and negotiation times in TCP, and eliminating delays due to packet loss during data transmission. QUIC serves as an overlay on the UDP protocol, supporting multiplexing of multiple connections and providing encryption methods equivalent to TLS/SSL. On the client-side, experimental support for HTTP/3 has already been added to
}

It should be noted that HTTP/3 standardizes the use of the QUIC protocol as a transport for HTTP/2. The protocol QUIC NGINX Company has announced the start of testing Curl, Firefox and Chromium.

Pre-release of nginx with support for QUIC and HTTP/3

Key Features QUIC:

  • High security comparable to TLS (essentially QUIC provides the option to use TLS 1.3 over UDP);
  • Stream integrity control that prevents packet loss;
  • The ability to establish a connection instantly (0-RTT, allowing data to be sent immediately after sending the connection establishment packet in about 75% of cases) and ensure minimal delays between sending a request and receiving a response (RTT, Round Trip Time);
    Pre-release of nginx with support for QUIC and HTTP/3
  • Not reusing the same sequence number for retransmitted packets, which helps avoid ambiguity in determining received packets and eliminates timeouts;
  • Packet loss only affects the delivery of the associated stream and does not halt the delivery of data in parallel streams sent over the current connection;
  • Error correction mechanisms that minimize delays caused by retransmitting lost packets. Utilizing special error correction codes at the packet level to reduce situations requiring the retransmission of lost packet data.
  • The boundaries of cryptographic blocks are aligned with the boundaries of QUIC packets, reducing the impact of packet loss on the decoding of subsequent packet contents;
  • No queue blocking issues as with TCP;
  • Support for connection identifiers that reduce the time needed to establish a reconnection for mobile clients;
  • The possibility of incorporating advanced congestion control mechanisms;
  • The use of bandwidth prediction techniques in each direction to ensure optimal packet transmission intensity, preventing a fall into a state of congestion where packet loss occurs;
  • Significant increase in performance and throughput compared to TCP. For video services like YouTube, the application of QUIC has shown a 30% reduction in rebuffering events during video playback.

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster