Published on

QUIC Preferred Address

Authors

QUIC (Quick UDP Internet Connections) is a transport layer protocol developed by Google and standardized by the IETF. It aims to improve performance over traditional TCP and HTTP/2 by using UDP as its transport layer and implementing various optimizations. Cutting-edge CDN services (like us at Skip2) utilize it to serve data faster and more efficiently. You can read the official RFC here in the IETF Datatracker.

On top of boasting a significant performance improvement over previous transport protocols, QUIC brings additional features as well. The "preferred address" concept in QUIC refers to a feature that allows a QUIC connection to specify which IP address and port it prefers for future communications. This is useful in scenarios where a connection might be established using one IP address, but the endpoint would like to communicate using a different address in subsequent interactions. Conceptually, this feature would eliminate the need for CDNs and distributed applications to use Geo-DNS and Anycast services for controlling the flow of traffic.

Here’s how it works:

  1. Initial Connection: When a QUIC connection is established, it uses an initial set of IP addresses and ports for communication.

  2. Preferred Address Option: During or after the connection setup, the server (or client) can signal a "preferred address" to the peer. This preferred address can be used for future connections or for migrating the current connection to a new address.

  3. Future Communication: If the peer receives a preferred address, it can use this address for future connections, potentially improving performance or aligning with network policies.

The preferred address feature is particularly useful in environments where IP addresses might change due to network configurations, or in scenarios where endpoints move between different networks or devices. It helps maintain an optimized communication path.

By using the preferred address, QUIC can make more efficient use of network resources and reduce latency, enhancing the overall performance and reliability of connections. Once this feature becomes supported by browsers and web servers, we'll be here to implement and write about it!

Learn more

Sign up for our newsletter

Get Started