Zum Hauptinhalt springen

3. Design of the QUIC Transmission Machinery (Design der QUIC-Übertragungsmechanik)

Alle Übertragungen in QUIC werden mit einem Paketebenen-Header (Packet-Level Header) gesendet, der das Verschlüsselungsniveau (Encryption Level) angibt und eine Paketsequenznummer (Packet Sequence Number, im Folgenden als Paketnummer Packet Number bezeichnet) enthält. Das Verschlüsselungsniveau gibt den Paketnummernraum (Packet Number Space) an, wie in Abschnitt 12.3 von [QUIC-TRANSPORT] beschrieben. Paketnummern wiederholen sich niemals innerhalb eines Paketnummernraums während der Lebensdauer einer Verbindung. Paketnummern werden innerhalb eines Raums in monoton steigender Reihenfolge (Monotonically Increasing Order) gesendet, um Mehrdeutigkeiten zu vermeiden. Es ist erlaubt, dass einige Paketnummern niemals verwendet werden, wodurch absichtliche Lücken (Intentional Gaps) entstehen.

Dieses Design macht es unnötig, zwischen Übertragungen und Neuübertragungen zu unterscheiden; dies beseitigt erhebliche Komplexität aus der Interpretation von TCP-Verlusterkennungsmechanismen durch QUIC.

QUIC-Pakete können mehrere Frames unterschiedlicher Typen enthalten. Die Wiederherstellungsmechanismen (Recovery Mechanisms) stellen sicher, dass Daten und Frames, die eine zuverlässige Zustellung erfordern, bestätigt oder als verloren erklärt und bei Bedarf in neuen Paketen gesendet werden. Die in einem Paket enthaltenen Frame-Typen beeinflussen die Wiederherstellungs- und Überlastkontrolllogik (Recovery and Congestion Control Logic):

  • Alle Pakete werden bestätigt, obwohl Pakete, die keine bestätigungsauslösenden Frames (Ack-Eliciting Frames) enthalten, nur zusammen mit bestätigungsauslösenden Paketen bestätigt werden.

  • Long-Header-Pakete (Long Header Packets), die CRYPTO-Frames enthalten, sind für die Leistung des QUIC-Handshakes kritisch und verwenden kürzere Timer für Bestätigungen.

  • Pakete, die Frames außer ACK- oder CONNECTION_CLOSE-Frames enthalten, zählen zu den Überlastkontrollgrenzen (Congestion Control Limits) und werden als im Flug befindlich (In Flight) betrachtet.

  • PADDING-Frames führen dazu, dass Pakete zu den Bytes im Flug (Bytes in Flight) beitragen, ohne direkt das Senden einer Bestätigung zu verursachen.