QUIC is a transport protocol that runs over UDP, encrypts every connection with TLS 1.3 and carries HTTP/3. The IETF published it as RFC 9000 in May 2021. Google started the project in 2012 to replace the TCP plus TLS pair that HTTPS pages had relied on for decades. You're probably using QUIC right now: Chrome has had it on for all users since version 93, and Edge, Firefox and Safari use it whenever a site offers HTTP/3. When a network blocks UDP, the browser quietly falls back to TCP. That fallback explains most of what people run into, from the "Experimental QUIC protocol" flag in Chrome to the ERR_QUIC_PROTOCOL_ERROR page.
What is QUIC protocol and how does it work?
The QUIC protocol does the jobs of TCP and TLS in a single layer on top of UDP. It opens an encrypted connection in one round trip, splits data into independent streams, tags each connection with an ID that survives a network change, and ships inside apps such as Chrome instead of the operating system.
A normal HTTPS load over TCP needs two handshakes: TCP first, then TLS 1.3. That's two round trips before the first request leaves. QUIC carries the TLS 1.3 handshake inside its own first packets, so the request goes out after one. On a repeat visit the client can send data immediately, which RFC 9000 calls 0-RTT.
- Encryption is built in. RFC 9001 says clients must not offer any TLS version older than 1.3. Our guide to SSL and TLS protocol versions walks through that handshake.
- Streams are independent. TCP delivers bytes strictly in order, so one lost packet holds up everything behind it (head-of-line blocking). In QUIC, a lost packet delays only its own stream.
- A connection ID replaces the address pair. When your phone moves from Wi-Fi to 4G and your public IP address changes, a QUIC connection can continue on the new path. In RFC 9000, only the client can migrate.
- It lives in the app. TCP is built into operating system kernels and middleboxes, which Chromium gives as the reason TCP changes are so hard to deploy. Chrome can ship a newer QUIC with a normal browser update.
QUIC vs TCP: the main differences
QUIC vs TCP comes down to where reliability and encryption live. TCP is a kernel protocol that guarantees ordered delivery and needs TLS on top for encryption. QUIC rebuilds reliability on UDP, encrypts by default and treats each stream separately. Outside the web, TCP is still the default.
| Feature | TCP + TLS 1.3 | QUIC |
|---|---|---|
| Runs on | IP directly | UDP |
| Round trips before the first request | 2 | 1, or 0 on a repeat visit |
| Encryption | Optional, added by TLS | Always on, TLS 1.3 only |
| One lost packet | Stalls the whole connection | Stalls one stream |
| Network change (new IP) | Connection restarts | Can continue |
| Implemented in | Operating system kernel | The app or browser |
| Firewalls | Allowed almost everywhere | Blocked on some networks |
Email, SSH and file transfers still run on TCP, and QUIC isn't designed to replace them. Both use the same idea of ports, covered in our explainer on TCP and UDP port numbers.
What is HTTP/3?
HTTP/3 is the version of HTTP that runs over QUIC, published by the IETF as RFC 9114 in June 2022. HTTP/1.1 and HTTP/2 run over TCP, so loading a site over HTTP/3 is the main way your browser ends up on QUIC. Requests and responses look the same; only the transport changes.
A browser can't know in advance that a server speaks HTTP/3. The first visit usually goes over HTTP/2, and the response carries an Alt-Svc header with the token h3. The browser then tries QUIC, usually on UDP 443. If UDP is blocked, RFC 9114 says clients should go back to HTTP over TCP. HTTP/3 also replaces HPACK header compression with QPACK (RFC 9204). According to W3Techs, 40.9% of all websites used HTTP/3 in October 2026.
Which browsers and services support HTTP/3?
Every major browser uses QUIC when a site supports HTTP/3. Chromium's QUIC page says Chrome added RFC 9000 support in version 90 and enabled it for all users in version 93. Edge runs on Chromium. Mozilla began turning HTTP/3 on by default with Firefox 88 in 2021, and current Safari versions support it too.
Google's own services are the best-known QUIC users: Cisco's Umbrella documentation names Gmail and YouTube as services that break when QUIC can't pass its proxy. Cloudflare announced HTTP/3 support in September 2019. DNS over QUIC (RFC 9250) uses the same transport for DNS queries.
How to check if a website uses HTTP/3
Open the browser's developer tools and check the Protocol column in the Network tab. h3 means HTTP/3 over QUIC; h2 means HTTP/2 over TCP. The check takes about 30 seconds, needs no extension and works on any page, including sites you run yourself.
- In Chrome or Edge, press F12 (Cmd+Option+I on a Mac) and open Network.
- Right-click a column header and tick Protocol if it's hidden.
- Reload the page and read the Protocol value.
- If you see
h2, reload once more. The browser often learns about HTTP/3 from the first response.
Firefox's Network panel shows HTTP/3 the same way. From a terminal, curl --http3 -I https://example.com works only if your curl was built with HTTP/3 support.
Is QUIC safe? Pros and drawbacks
QUIC is safe to leave on. Every QUIC connection is encrypted with TLS 1.3, there is no unencrypted mode, and most transport header fields are encrypted too, so equipment along the path can't easily read or change them. The trade-offs are 0-RTT replay risk and traffic that some filters can't inspect.
- 0-RTT data has no protection against replay, as RFC 9000 states. Servers should accept only requests that are safe to repeat in those first packets.
- Firewalls and web-filtering proxies find encrypted UDP harder to inspect. Many companies block UDP 443 so browsers fall back to TCP; Cisco Umbrella recommends disabling QUIC so requests route through its proxy.
- Older routers and some networks handle UDP poorly. Pages still load over TCP, without the QUIC benefits.
- QUIC can cost more server CPU than TCP, because packet handling runs in the application.
QUIC doesn't hide which site you visit. The first Initial packets use keys anyone can derive (RFC 9001, section 5.2), so the domain name can still be read on the network. The website also still sees your IP. If that's the goal, look at the ways to hide your IP address.
ERR_QUIC_PROTOCOL_ERROR: causes and fixes
ERR_QUIC_PROTOCOL_ERROR is a Chrome error shown when a QUIC connection breaks and the browser can't recover. The cause is usually something between you and the site that blocks or alters UDP, such as a firewall, antivirus, VPN or office network. Less often, the site's own QUIC setup is broken.
| Symptom | Likely cause | What to try |
|---|---|---|
| Many sites fail | Security software, VPN or work network blocking UDP | Pause the software briefly or try another network; at work, ask IT |
| Only one or two sites fail | Broken QUIC setup on that server | Try incognito and mobile data; if it fails everywhere, it's the site |
| Incognito works | A browser extension | Turn extensions off one at a time |
| All home devices fail, mobile data works | Router handling UDP 443 badly | Restart the router, then log in to your router and check firewall options |
Turning QUIC off works as a test. If the error stops, UDP is blocked somewhere on your path, and the fix belongs there.
How to disable QUIC in Chrome, Firefox and on a network
To disable QUIC in Chrome, open chrome://flags/#enable-quic, set "Experimental QUIC protocol" to Disabled and relaunch. Most people shouldn't. QUIC is on by default, and a working connection gains nothing when you turn it off. Do it only to diagnose an error or when a network administrator asks.
- Firefox: in
about:config, setnetwork.http.http3.enabledto false and restart. - Managed Chrome: set the
QuicAllowedpolicy to Disabled; Google's policy page says leaving it unset allows QUIC. Edge has its own QUICAllowed Group Policy. - Whole network: block outbound UDP 443 on the firewall, and browsers fall back to TCP.
When you're done testing, set the Chrome flag back to Default. Default means QUIC is on.
Frequently asked questions
Does QUIC use UDP?
Yes. QUIC sends all its packets over UDP and adds its own reliability, ordering and congestion control on top. UDP was chosen because routers and firewalls already pass it, while a brand-new transport protocol would be dropped by many of them.
What is "Experimental QUIC protocol" in Chrome?
It's a chrome://flags entry left over from the years when QUIC was a Google experiment. The label never changed after QUIC became a standard. Default means QUIC is on, as it has been for everyone since Chrome 93. Old tips that tell you to set it to Enabled for speed no longer change anything.
Is QUIC faster than TCP?
Usually, in two cases: opening a new connection, where it saves a round trip, and on networks that lose packets, such as a weak mobile signal. On a stable wired connection the difference is small. Be wary of any single "X times faster" figure; results depend on the network and the server.
Does QUIC use port 443?
Usually, yes, but on UDP. HTTPS over TCP also uses port 443, and firewalls treat TCP 443 and UDP 443 as separate rules. That's why a network can allow normal HTTPS while blocking QUIC. A server can advertise HTTP/3 on another UDP port, though most keep 443.
Should I disable QUIC?
No, unless you're troubleshooting or your IT team requires it. With QUIC off, Chrome loads every site over HTTP/2 on TCP, so nothing breaks. You do lose the faster connection setup and the smoother handover between Wi-Fi and mobile data.








