Quick UDP Internet Connections (QUIC) ist ein universelles Transportschichtprotokoll, das aufgrund seiner Flexibilität, integrierten Sicherheit, weniger Leistungsprobleme und schnelleren Akzeptanz das Transmission Control Protocol (TCP) ersetzen soll. QUIC wurde ursprünglich von Google entwickelt und verwendet das User Datagram Protocol (UDP) als Low-Level-Transportmechanismus zum Verschieben von Paketen zwischen Client und Server. Insbesondere enthält QUIC 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 inhärente Einschränkungen von TCP zu lösen, die die Leistung und das Benutzererlebnis beeinträchtigen.
APIs sind das „öffentliche Gesicht“ von Anwendungen. Sie zeigen die Funktionen an, die sie ausführen, die Informationen, die sie bereitstellen können, und definieren das richtige Format für Anfragen. Wenn ein Entwickler die API für eine Anwendung erstellt und verfügbar macht, können andere Anwendungen mit ihr kommunizieren.
In vielen Fällen sparen APIs Entwicklern wertvolle Zeit, da sie häufig verwendete Funktionen sofort verfügbar machen. Anstatt die Funktionalität einer vorhandenen Anwendung zu duplizieren, können Entwickler die Funktionalität in ihre Anwendungen integrieren, indem sie die API der vorhandenen Anwendung aufrufen.
Allgemeine Übersicht über HTTP-Transportstapel
Das Ziel von QUIC besteht darin, ein leistungsstarkes, zuverlässiges und sicheres Transportprotokoll für HTTP/3 bereitzustellen (obwohl QUIC auch für Nicht-HTTP-Verkehr geeignet ist).
Wenn QUIC für Sie völlig neu ist, empfehlen wir Ihnen, sich das folgende Einführungsvideo anzusehen.
UDP ist ein einfaches, leichtes Protokoll, das keinen komplexen Drei-Wege-Handshake wie TCP benötigt, um die erste Verbindung herzustellen. 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 wesentlichen Funktionen fehlen.
QUIC ist einzigartig, weil es die Vorteile der UDP- und TCP-Protokolle vereint. Während es verbindungslos ist und UDP als Transportprotokoll auf niedriger Ebene nutzt, um 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 Paketzustellung garantieren. Es übernimmt die Aufgaben der Identifizierung verlorener Daten und der Durchführung erneuter Übertragungen, um ein nahtloses Benutzererlebnis zu gewährleisten.
QUIC integriert TLS außerdem als integralen Bestandteil und nicht als zusätzliche Schicht wie dies bei HTTP/1.1 und HTTP/2 der Fall ist. Diese Einbindung stellt sicher, dass die Nachrichten standardmäßig verschlüsselt sind.
Das folgende Diagramm zeigt die grundlegende Anatomie eines QUIC-Netzwerks. Wie im Diagramm zu sehen ist, sind die logischen Objekte, die HTTP/3-Anfragen, -Antworten oder beliebige Anwendungsdaten enthalten, QUIC- Streams. Für die Übertragung zwischen Netzwerkendpunkten werden QUIC-Streams in mehrere logische Schichten verpackt.
Anatomie eines QUIC-Streams
Von außen nach innen betrachtet sind die logischen Ebenen und Objekte:
Ein TLS-Handshake stellt eine sichere Verbindung zwischen Client und Server her. Die von QUIC bereitgestellte Verschlüsselung erfordert TLS v1.3 . Wie im Diagramm unten zu sehen ist, behält QUIC die TLS-„Content-Schicht“ bei, die die kryptografischen Schlüssel bereitstellt, ersetzt jedoch die „Record-Schicht“ durch einen eigenen Transportmechanismus.
QUIC verlässt sich außerdem auf TLS zur Authentifizierung und Aushandlung von Parametern, die für die Sicherheit und Leistung entscheidend sind. Anstelle einer strikten Schichtung arbeiten die beiden Protokolle zusammen: QUIC verwendet den TLS-Handshake, um eine sichere Verbindung herzustellen, während TLS die von QUIC bereitgestellte Zuverlässigkeit, geordnete Zustellung und Aufzeichnungsebene nutzt.
Auf hoher Ebene 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 zielt darauf ab, die Leistung von Webanwendungen zu verbessern, indem die Latenz reduziert und die Datenübertragung über unzuverlässige Netzwerke verbessert wird. Zu ihren Vorteilen zählen:
Sehen Sie sich die folgenden Ressourcen an, um mehr über die QUIC+HTTP/3-Implementierung von NGINX und andere Möglichkeiten zu erfahren, wie Sie QUIC+HTTP/3 für eine schnellere und effizientere Kommunikation nutzen können.