Quick UDP Internet Connections (QUIC) ist ein allgemeines Transportschichtprotokoll, das das Transmission Control Protocol (TCP) durch seine Flexibilität, eingebaute Sicherheit, geringere Leistungsprobleme und schnellere Akzeptanz ersetzen soll. QUIC wurde ursprünglich von Google entwickelt und verwendet das User Datagram Protocol (UDP) als Low-Level-Transportmechanismus für die Übertragung von Paketen zwischen Client und Server. QUIC beinhaltet auch Transport Layer Security (TLS) als integralen Bestandteil und nicht als zusätzliche Schicht wie HTTP/1.1 und HTTP/2.
HTTP/3, basierend auf QUIC, ist die dritte Hauptversion des Hypertext Transfer Protocol (HTTP) und wurde 2022 als IETF-Standard übernommen. QUIC+HTTP/3 wurden entwickelt, um die mit TCP verbundenen Einschränkungen zu beseitigen, die die Leistung und das Benutzererlebnis beeinträchtigen.
APIs sind das „öffentliche Gesicht“ von Anwendungen, sie zeigen die Funktionen, die sie ausführen und die Informationen, die sie bereitstellen können, und definieren das richtige Format von Anforderungen. Wenn ein Entwickler die API für eine Anwendung erstellt und offenlegt, ermöglicht er anderen Anwendungen die Kommunikation mit ihr.
In vielen Fällen sparen APIs den Entwicklern wertvolle Zeit, da sie häufig genutzte Funktionen leicht verfügbar machen. Anstatt die Funktionalität einer bestehenden Anwendung zu duplizieren, können Entwickler die Funktionalität in ihre Anwendungen integrieren, indem sie die API der bestehenden Anwendung aufrufen.
Allgemeiner Überblick über HTTP-Transport-Stacks
Das Ziel von QUIC ist es, ein hochleistungsfähiges, hochzuverlässiges und hochsicheres Transportprotokoll für HTTP/3 bereitzustellen (obwohl QUIC auch für Nicht-HTTP-Datenverkehr geeignet ist).
Wenn QUIC für Sie völlig neu ist, empfehlen wir Ihnen, sich das folgende Einführungsvideo anzusehen.
UDP ist ein einfaches, leichtgewichtiges Protokoll, das keinen komplexen Drei-Wege-Handschlag wie TCP benötigt, um die erste Verbindung aufzubauen. Diese Einfachheit macht UDP schnell und verbindungslos, bedeutet aber auch, dass ihm im Vergleich zu TCP die für eine zuverlässige und sichere Kommunikation erforderlichen Funktionen fehlen.
QUIC ist einzigartig, weil es die Vorteile von UDP- und TCP-Protokollen vereint. Während es verbindungslos ist und UDP für das Low-Level-Transportprotokoll nutzt, um die Verbindungs- und Transportverzögerungen zu reduzieren, ist es in den höheren Schichten verbindungsorientiert, da es die Verbindungsaufbau- und Verlusterkennungsfunktionen von TCP neu implementiert, die die Paketübermittlung garantieren. Es übernimmt die Aufgaben der Identifizierung verlorener Daten und der Vervollständigung von erneuten Übertragungen, um eine problemlose Benutzererfahrung sicherzustellen.
QUIC beinhaltet TLS als integralen Bestandteil und nicht als zusätzliche Schicht wie bei HTTP/1.1 und HTTP/2. Dadurch wird sichergestellt, dass die Nachrichten standardmäßig verschlüsselt sind.
Das folgende Diagramm zeigt den grundlegenden Aufbau eines QUIC-Netzwerks. Wie im Diagramm zu sehen ist, sind die logischen Objekte, die HTTP/3-Anforderungen, Antworten oder Anwendungsdaten enthalten, QUIC-Streams. Für die Übertragung zwischen Netzwerkendpunkten werden QUIC-Streams in mehrere logische Schichten eingeschlossen.
Anatomie eines QUIC-Streams
Von außen nach innen betrachtet sind die logischen Schichten und Objekte folgende:
Ein TLS-Handschlag sorgt für eine sichere Verbindung zwischen Client und Server. Die von QUIC bereitgestellte Verschlüsselung erfordert TLS v1.3. Wie im folgenden Diagramm zu sehen ist, behält QUIC die TLS-„Inhaltsschicht“ bei, die die kryptografischen Schlüssel bereitstellt, ersetzt aber die „Datensatzschicht“ durch seinen eigenen Transportmechanismus.
QUIC stützt sich auch auf TLS für die Authentifizierung und die Aushandlung von Parametern, die für die Sicherheit und die Leistung von entscheidender Bedeutung sind. Anstelle einer strikten Schichtung arbeiten die beiden Protokolle zusammen: QUIC verwendet den TLS-Handschlag, um eine sichere Verbindung herzustellen, während TLS die von QUIC bereitgestellte Zuverlässigkeits-, Zustellungs- und Aufzeichnungsschichten nutzt.
Allgemein gesehen gibt es zwei Hauptinteraktionen zwischen den TLS- und QUIC-Komponenten:
QUIC TLS ist eine Variante von TLS, die speziell für das QUIC-Protokoll entwickelt wurde. Derzeit gibt es zwei Optionen für Benutzer, die HTTP/3-Unterstützung in QUIC TLS suchen:
QUIC+HTTP/3 zielen darauf ab, die Leistung von Webanwendungen zu verbessern, indem sie die Latenzzeit verkürzen und die Datenübertragung über unzuverlässige Netzwerke verbessern. Zu ihren Vorteilen gehören:
In den folgenden Ressourcen erfahren Sie mehr über die QUIC+HTTP/3-Implementierung von NGINX und andere Möglichkeiten, wie Sie QUIC+HTTP/3 für eine schnellere und effizientere Kommunikation nutzen können.