← Concepts

阅读中文版本

HTTP/3 QUIC Migration

HTTP/3 over QUIC migrates a connection when the client IP changes — WiFi to cellular — without re-handshaking, so a long download or call survives a network switch.

http

Definition

HTTP/3 QUIC migration is the connection migration feature of QUIC where a connection is identified by a connection ID rather than a 4-tuple, so that when the client IP or port changes the connection continues on the new path without re-handshaking, preserving long-lived streams across network transitions.

Context and scope

Applied in mobile video, VoIP, and any long-lived HTTP connection where the client moves between networks during a session.

Common misconceptions

  • Connection migration is just roaming — it is roaming at the transport layer, with the connection ID as the anchor; the similarity is intentional
  • Migration always keeps the connection alive — it keeps it alive if the new path works; a path change that the server cannot reach on the new IP still drops the connection

Anti-patterns

  • Binding the connection to the 4-tuple on the server side, defeating the migration that QUIC was designed to provide
  • Assuming migration is seamless and not handling the case where the new path has a different MTU and the packets fragment

Related concepts

Authoritative source

https://datatracker.ietf.org/doc/html/rfc9000

What it is

HTTP/3 QUIC migration is the connection migration feature of QUIC where a connection is identified by a connection ID rather than a 4-tuple, so that when the client IP or port changes the connection continues on the new path without re-handshaking, preserving long-lived streams across network transitions. Applied in mobile video, VoIP, and any long-lived HTTP connection where the client moves between networks during a session. The protocol’s semantics — safe versus unsafe, idempotent versus non-idempotent, cacheable versus non-cacheable — are contracts the client and intermediary rely on, and violating them breaks the web.

How it works

Headers carry the negotiation: content type, encoding, caching directives, and conditional request validators together let a client and server reach the cheapest correct response. Connection reuse eliminates handshake overhead; multiplexing removes head-of-line blocking; streaming avoids buffering the entire body. Each feature has a failure mode — keep-alive on a broken proxy, multiplexing with a misbehaving server — that must be detected and handled.

When to apply and pitfalls

Apply whenever a client and server communicate across a trust boundary the protocol already spans. The pitfall is treating HTTP as a transport and ignoring its semantics — POSTing a retrieval, marking a mutating request cacheable, or omitting the validator that would enable a 304. Intermediaries — CDNs, proxies — implement the standard literally, so semantic violations produce surprising behavior far from the origin.