—
QUIC is a modern transport protocol designed to improve how applications communicate across today’s Internet.
It is most commonly associated with HTTP/3.
Traditional HTTPS commonly uses:
HTTP/2 → TLS → TCP → IP
HTTP/3 changes this architecture to:
HTTP/3 → QUIC → UDP → IP
QUIC runs over UDP, but it is much more than simple UDP communication.
QUIC provides many transport functions traditionally associated with TCP, including:
- Reliable delivery
- Loss recovery
- Congestion control
- Flow control
- Connection management
- Multiple independent streams
It also integrates TLS 1.3 into the connection-establishment process.
This combination allows QUIC to provide faster connection setup, stream independence, connection migration, encryption by default, and improved behavior across changing network conditions.

—
What Is QUIC?
QUIC is a connection-oriented transport protocol that operates over UDP.
Although UDP itself does not provide reliable delivery, QUIC adds its own transport mechanisms above UDP.
These mechanisms include:
- Reliable data delivery
- Packet-loss detection
- Retransmission
- Congestion control
- Connection-level flow control
- Stream-level flow control
- Connection migration
- Cryptographic protection
QUIC is best known as the transport used by HTTP/3, but other protocols can also use QUIC.
Examples include:
- HTTP/3
- DNS over QUIC
- WebTransport
- CONNECT-UDP-based applications
- Applications using QUIC DATAGRAM
Where QUIC Fits in the Protocol Stack

Why QUIC Uses UDP
UDP provides a simple datagram transport that allows QUIC logic to operate primarily in user space.
This gives QUIC implementations more flexibility to evolve without depending entirely on operating-system TCP behavior.
QUIC then adds the transport capabilities applications require.
—
How QUIC Establishes a Connection
One of the most important differences between QUIC and traditional TCP-based HTTPS is how the connection is established.
Traditional HTTPS commonly requires separate transport and security establishment.
QUIC integrates transport setup and TLS 1.3 much more closely.
Traditional TCP and TLS Establishment
A traditional secure connection conceptually requires:
- TCP connection establishment.
- TLS negotiation.
- Application data transfer.

QUIC Connection Establishment
QUIC combines transport and security negotiation.
A new QUIC connection commonly exchanges Initial and Handshake packets before moving to normal protected application traffic.

Understanding 1-RTT
For a new connection, QUIC is designed to establish secure application communication with fewer sequential setup steps than the traditional TCP-plus-TLS model.
This can improve application startup latency, especially on higher-latency networks.
Understanding 0-RTT
A returning client may be able to send early application data using 0-RTT when session information from a previous connection is available.
0-RTT can reduce latency further.
However, early data has security considerations.
Optional Retry
QUIC can also use a Retry process to validate the client address before the server commits significant resources or sends a large response.
This can help reduce certain amplification risks.

—
QUIC Packets, Streams and Multiplexing
QUIC communication contains different packet types and multiple logical streams.
Understanding streams is especially important because they are one of the major reasons HTTP/3 behaves differently from HTTP/2 over TCP.
QUIC Packet Types
QUIC uses long-header packets during connection establishment.
Common packet types include:
- Initial
- 0-RTT
- Handshake
- Retry
After connection establishment, normal protected communication commonly uses short-header 1-RTT packets.

What Is a QUIC Stream?
A QUIC connection can contain multiple logical streams.
Streams may be:
- Bidirectional
- Unidirectional
Each stream can carry its own application data.
HTTP/3 uses QUIC streams to carry requests, responses, control information, and other protocol data.
HTTP/2 Head-of-Line Behavior
HTTP/2 already provides multiplexing.
However, all HTTP/2 streams normally share one TCP byte stream.
If TCP loses required earlier data, later data may need to wait until the missing bytes are recovered.
This can affect multiple application streams using the connection.
How QUIC Improves This
QUIC provides independent transport streams.
Loss affecting one stream does not necessarily prevent available data from another independent stream from progressing.

—
Connection IDs and Connection Migration
Traditional TCP communication is closely associated with a network 5-tuple:
- Source IP address
- Source port
- Destination IP address
- Destination port
- Protocol
If the client address changes significantly, the original TCP connection normally cannot simply continue unchanged.
QUIC introduces Connection IDs.
What Is a Connection ID?
A Connection ID, commonly called a CID, identifies a QUIC connection independently of relying only on the network 5-tuple.
This enables useful behavior when the network path changes.
Mobile Network Example
A common example is a mobile device moving between Wi-Fi and cellular connectivity.

Why This Helps Mobile Applications
Connection migration can be useful for:
- Streaming
- Mobile APIs
- Long downloads
- Video communication
- Network roaming
- NAT rebinding
—
QUIC Flow Control, Loss Recovery and Datagrams
QUIC includes sophisticated transport-control mechanisms.
These help maintain reliability while allowing independent streams to progress.
Flow Control
QUIC provides both:
- Connection-level flow control
- Stream-level flow control
This prevents a sender from overwhelming the receiving endpoint.

Loss Recovery
QUIC tracks packet delivery and acknowledgements.
It can detect packet loss and retransmit data as necessary.
QUIC acknowledgements can represent ranges of received packets.
The practical concept is:
Lost reliable QUIC data is recovered without requiring every independent application stream to stop progressing.
Congestion Control
QUIC also performs congestion control.
The exact algorithm can depend on the implementation.
QUIC should therefore not automatically be described as using one specific congestion-control algorithm.
QUIC DATAGRAM
Reliable delivery is important for many applications.
But some real-time applications prefer receiving the newest information instead of waiting for retransmission of old information.
QUIC can support an optional DATAGRAM capability for unreliable delivery.

—
HTTP/3 Over QUIC
HTTP/3 uses QUIC as its transport.
HTTP concepts remain familiar.
Applications still use:
- GET
- POST
- Headers
- Requests
- Responses
- Status codes
The major difference is how those messages are transported.
HTTP/2 Transport
1HTTP Request2HTTP/23TLS4TCP5IP6Server
HTTP/3 Transport
1HTTP Request2HTTP/33QUIC4UDP5IP6Server
QPACK
HTTP/2 uses HPACK for HTTP header compression.
HTTP/3 uses QPACK.
QPACK is designed for the independent-stream model provided by QUIC.
ALPN
HTTP/3 is negotiated using application-protocol negotiation during the QUIC TLS process.
A common HTTP/3 ALPN identifier is:
h3
Typical Ports
HTTP/3 commonly uses:
UDP 443
Traditional HTTPS commonly uses:
TCP 443
This is why servers normally keep both available.
1HTTP/3 Client2QUIC3UDP 4434Web Server5HTTP/2 Client6HTTP/1.1 Client7TLS8TCP 443
—
Real-World QUIC Use Cases
QUIC is particularly useful where latency, connection changes, or multiple simultaneous data streams matter.
Web Applications and CDNs
HTTP/3 can benefit:
- Websites
- APIs
- Content-delivery networks
- Mobile websites
- Global applications
- Sites with many independent resources
Mobile Applications
QUIC connection migration can help applications operating across:
- Wi-Fi
- 4G
- 5G
- Changing NAT mappings
- Roaming network paths
Streaming and Real-Time Applications
Applications may combine reliable streams and unreliable datagrams.
Possible examples include:
- Real-time communication
- Gaming
- Interactive applications
- Telemetry
- Low-latency metadata
DNS over QUIC
DNS over QUIC provides encrypted DNS transport using QUIC.
1DNS Client2QUIC3UDP4DNS Resolver5DNS Response
CONNECT-UDP and MASQUE
HTTP-based proxy mechanisms can also transport UDP communication.
A simplified architecture is:
1Client2HTTP Connection3CONNECT-UDP4Proxy5UDP Traffic6Target UDP Service
—
QUIC Advantages and Limitations
QUIC provides important improvements, but engineers should understand both the benefits and operational challenges.
Major Advantages
| Capability | Practical Benefit |
|---|---|
| TLS 1.3 integration | Secure communication is built into QUIC |
| Reduced connection setup | Faster application startup in suitable conditions |
| 0-RTT option | Early data for suitable resumed connections |
| Independent streams | Reduces cross-stream transport blocking |
| Connection IDs | Supports connection migration |
| User-space implementation | Easier protocol evolution |
| QUIC DATAGRAM | Optional unreliable transport |
| HTTP/3 | Modern HTTP transport over QUIC |
Operational Challenges
| Area | Consideration |
|---|---|
| UDP | Some networks block or limit UDP |
| Visibility | Much transport information is encrypted |
| Firewall | UDP 443 must be allowed |
| Load Balancer | QUIC support must be verified |
| CPU | Encryption and transport processing consume resources |
| MTU | Path-MTU behavior is important |
| 0-RTT | Replay risk must be considered |
| Monitoring | TCP-only monitoring is insufficient |
| Migration | Network devices must handle path changes correctly |
—
Testing QUIC and HTTP/3
Do not assume that a website is using HTTP/3 simply because it loads successfully.
Verify the protocol.
Check curl Capabilities
Run:
curl -V
Look for HTTP/3 capability.
Force HTTP/3
If curl supports HTTP/3:
curl --http3-only -I https://example.com/
This test is useful because it should fail if HTTP/3 cannot be established rather than silently using HTTP/2.
Prefer HTTP/3 With Fallback
curl --http3 -I https://example.com/
Browser Testing
Open the website in a modern browser.
Then:
- Open Developer Tools.
- Select Network.
- Enable the Protocol column.
- Reload the page.
- Inspect the request protocol.
Possible values include:
h3
h2
http/1.1
Capture QUIC Traffic
On Linux:
sudo tcpdump -i any udp port 443 -w quic-capture.pcap
Open the capture using Wireshark.
Useful display filters include:
quic
For HTTP/3 dissection where available:
http3

—
Practical QUIC Learning Examples
The following exercises make QUIC behavior easier to understand.
Example 1 — HTTP/3 Works Until UDP Is Blocked
Begin with a test site supporting:
- HTTP/3 over UDP 443
- HTTP/2 over TCP 443
Force HTTP/3:
curl --http3-only -I https://example.com/
In a controlled lab, temporarily block UDP 443.
Run the HTTP/3-only test again.
Then run a normal HTTPS request.

Example 2 — Observe Multiple HTTP/3 Requests
Open a page containing:
- Images
- JavaScript
- CSS
- API requests
Use the browser Network panel.
Enable the Protocol column.
Observe which requests use h3.
Example 3 — Test Connection Migration
Use a mobile device on Wi-Fi.
Start a long transfer using an application known to support QUIC.
Then disable Wi-Fi and allow the device to switch to cellular connectivity.
Observe whether the transfer continues.

—
Troubleshooting QUIC and HTTP/3
Troubleshoot QUIC systematically.
Do not begin by assuming the web server or application is broken.
HTTP/2 Works but HTTP/3 Does Not
HTTP/2 and HTTP/3 use different transport protocols.
HTTP/2 commonly uses TCP 443.
HTTP/3 commonly uses UDP 443.
Therefore, the complete UDP path must be checked.

Check:
- Client HTTP/3 support
- UDP 443 firewall policy
- Enterprise firewall
- Cloud security group
- Network ACL
- NAT
- Load balancer
- Server firewall
- QUIC server listener
curl Does Not Support HTTP/3
Check:
curl -V
If HTTP/3 capability is unavailable, use:
- An HTTP/3-capable curl build
- A compatible browser
- A dedicated QUIC test client
High CPU Usage
Investigate:
- Connection rate
- TLS handshakes
- Packet rate
- Encryption workload
- QUIC implementation
- Logging
- NIC offload support
- GSO/GRO
- Application processing
Works on Mobile but Not Corporate Network
Compare the traffic path.
A corporate environment may:
- Block UDP 443
- Rate-limit UDP
- Force proxy usage
- Restrict unknown QUIC traffic
The same server may work correctly from a mobile connection.
Unexpected Disconnects During Network Changes
Investigate:
- Idle timeout
- NAT timeout
- Connection ID handling
- Path validation
- Load-balancer behavior
- Firewall state tracking
Wireshark Shows Limited Application Information
Much of QUIC is encrypted.
This is expected.
For deeper lab analysis, consider:
- Server logs
- Application logs
- qlog
- TLS key logging where supported
- Wireshark with appropriate keys
MTU and Datagram Problems
QUIC relies on UDP datagrams.
Path-MTU behavior therefore matters.
Possible symptoms include:
- Small transfers working
- Large transfers stalling
- Intermittent failure
- Problems only through VPN
- Problems on specific networks
Investigate:
- Interface MTU
- VPN overhead
- Tunnel overhead
- IPv4 vs IPv6
- ICMP handling
- Firewall behavior
- Load balancer
- QUIC path-MTU behavior
1Verify Client2Check UDP 4433Verify Server Listener4Check Firewall5Check Load Balancer or NAT6Capture Traffic7Review QUIC Logs8Check MTU9Check Resources10Verify Application11Retest
—
QUIC Deployment Best Practices
QUIC should normally be introduced alongside existing HTTPS rather than replacing it immediately.
Keep TCP and UDP 443 Available
For HTTP/3:
UDP 443
For HTTP/2 and HTTP/1.1:
TCP 443
This provides fallback when UDP is unavailable.
Monitor Protocol Adoption
Track:
| Metric | Why It Matters |
|---|---|
| HTTP Version | Shows h3 vs h2 vs http/1.1 usage |
| QUIC Success | Shows successful connection establishment |
| QUIC Failure | Identifies UDP or handshake issues |
| RTT | Measures network latency |
| Packet Loss | Shows network quality |
| CPU | Measures QUIC and crypto workload |
| UDP Drops | Detects local or network drops |
| Fallback Rate | Shows how often clients fall back |
| MTU Issues | Identifies path problems |
| Migration | Useful for mobile applications |
Roll Out Gradually
For larger environments:
- Enable HTTP/3 for a controlled group.
- Measure success and failure rates.
- Compare latency.
- Compare CPU usage.
- Check UDP packet loss.
- Review fallback behavior.
- Expand deployment after validation.
Treat 0-RTT Carefully
Use early data only after reviewing:
- Application behavior
- Replay risk
- Authentication
- State-changing operations
- Backend behavior
—
Summary
QUIC is a modern secure transport protocol operating over UDP.
Its most widely known application is HTTP/3.
The basic architectural change is:
HTTP/2 → TLS → TCP
compared with:
HTTP/3 → QUIC → UDP
QUIC provides:
- Integrated TLS 1.3 security
- Faster connection-establishment capabilities
- Reliable data delivery
- Loss recovery
- Congestion control
- Flow control
- Independent streams
- Reduced cross-stream head-of-line blocking
- Connection migration
- Connection IDs
- Optional QUIC DATAGRAM support
QUIC is useful for:
- HTTP/3
- Web applications
- CDNs
- Mobile applications
- APIs
- Real-time applications
- DNS over QUIC
- Modern proxy and tunneling architectures
However, successful deployment also requires attention to:
- UDP 443
- Firewall policy
- Load balancer support
- CPU
- Encryption
- MTU
- Monitoring
- 0-RTT security
- Network-path behavior
—
Glossary
| Term | Meaning |
|---|---|
| QUIC | Secure connection-oriented transport protocol implemented over UDP |
| CID | Connection ID used to identify a QUIC connection independently of only the network 5-tuple |
| HTTP/3 | HTTP transported over QUIC |
| 0-RTT | Early application data during connection resumption |
| 1-RTT | Normal fully protected QUIC application communication |
| QPACK | HTTP/3 header-compression mechanism |
| QUIC Stream | Reliable logical stream inside a QUIC connection |
| QUIC DATAGRAM | Optional unreliable datagram capability |
| DoQ | DNS over QUIC |
| ALPN | Application-Layer Protocol Negotiation |
| MASQUE | HTTP-based proxy and tunneling technologies |
| CONNECT-UDP | Mechanism for proxying UDP traffic through HTTP |
| qlog | Logging format commonly used for QUIC observability |
—
Useful Links and References
SanchitGurukul Static Resources
Related SanchitGurukul Article
Official External References
Your feedback matters
Was this post helpful?
Discussion
0 approved comments
No approved comments yet. You can start the discussion below.
Leave a Comment
No login is required. Name and email are used for moderation/security. Your email is never displayed publicly. All comments require administrator approval.
Discover more from SanchitGurukul
Subscribe to get the latest posts sent to your email.