HTTP/3 explained
  • README
  • English
    • Why QUIC
      • Remember HTTP/2
      • TCP head of line blocking
      • TCP or UDP
      • Ossification
      • Secure
      • Reduced latency
    • Process
      • IETF
      • Experience from HTTP/2
      • Status
    • Protocol features
      • UDP
      • Reliable
      • Streams
      • In Order
      • Fast handshakes
      • TLS 1.3
      • Transport and application
      • HTTP/3 over QUIC
      • Non-HTTP over QUIC
    • How QUIC works
      • Connections
      • Connections use TLS
      • Streams
      • 0-RTT
      • Spin Bit
      • User space
      • API
    • HTTP/3
      • HTTPS:// URLs
      • Bootstrap with Alt-svc
      • QUIC streams and HTTP/3
      • Prioritization
      • Server push
      • Comparison with HTTP/2
    • Common criticism
    • The specifications
    • QUIC future
  • Español
    • Por qué QUIC
      • ¿Te acuerdas de HTTP/2?
      • Bloqueo de cabeza de línea TCP
      • TCP o UDP
      • Osificación
      • Seguro
      • Datos tempranos
    • Proceso
      • IETF
      • La experiencia de HTTP/2
      • Estado
    • Características del protocolo
      • UDP
      • Transferencias de datos fiables
      • Flujos múltiples
      • Entrega en orden
      • Rápido establecimiento de comunicación
      • TLS 1.3
      • Nivel de transporte y aplicación
      • HTTP/3 sobre QUIC
      • No-HTTP sobre QUIC
    • Cómo funciona QUIC
      • Conexiones
      • TLS
      • Flujos
      • 0-RTT
      • Spin Bit
      • Espacio de usuario
      • API
    • HTTP/3
      • HTTPS:// URLs
      • Alt-svc
      • Flujos de QUIC y HTTP/3
      • Priorización
      • Push del servidor
      • Comparación con HTTP/2
    • Críticas habituales
    • Especificaciones
    • QUIC v2
  • Deutsch
    • Warum QUIC
      • Erinnerst du dich an HTTP/2?
      • TCP Head-of-line blocking
      • TCP oder UDP
      • Ossifikation
      • Sicherheit
      • Reduzierte Latenz
    • Prozess
      • IETF
      • Erfahrungen von HTTP/2
      • Status
    • Eigenschaften des Protokolls
      • UDP
      • Zuverlässige Datenübertragung
      • Streams
      • In-Order Ausliefung
      • Schnelle Handshakes
      • TLS 1.3
      • Transport und Anwendung
      • HTTP/3 über QUIC
      • Nicht-HTTP über QUIC
    • Wie QUIC funktioniert
      • Verbindungen
      • Verbindungen verwenden TLS
      • Streams
      • 0-RTT
      • Spin Bit
      • User-space
      • API
  • فارسی
    • چرا QUIC
      • آیا HTTP/2 را به یاد دارید؟
      • مسدود کننده سرِ صف TCP
      • TCP یا UDP
      • استخوان‌سازی (fa/Ossification)
      • امن
      • تأخیرِ کاهش یافته
    • پردازش
      • کارگروه مهندسی اینترنت (fa/IETF)
      • تجربه از HTTP/2
      • وضعیت
    • ویژگی‌های پروتکل
      • UDP
      • مطمئن
      • جریان‌ها
      • منظم
      • دست‌دهی‌های سریع
      • TLS 1.3
      • انتقال و کاربرد
      • پروتکل HTTP/3 بر روی QUIC
      • غیر HTTP بر روی QUIC
    • پروتکل QUIC چطور کار می‌کند
      • اتصال‌ها
      • اتصال‌ها از TLS استفاده می‌کنند
      • جریان‌ها
      • زمان تأخیر چرخشی صفر (fa/0-RTT)
      • بیت چرخشی
      • فضای کاربر
      • رابط برنامه‌نویسی کاربردی (fa/API)
    • پروتکل انتقال ابرمتن نگارش ۳ (fa/HTTP/3)
      • نشانی وب‌های HTTPS://
      • بوت اِسترپ با سرایندِ Alt-svc
      • جریان‌های QUIC و HTTP/3
      • اولویت بندی
      • فشارِ سرور
      • مقایسه با HTTP/2
    • نقدگریِ مرسوم
    • مشخصات
    • پروتکل QUIC نسخه ۲
  • Français
    • Pourquoi QUIC
      • Souvenez-vous de HTTP/2 ?
      • Blocage de tête de ligne TCP
      • TCP ou UDP
      • Ossification
      • Sécurisé
      • Latence réduite
    • La procédure
      • IETF
      • Expérience depuis HTTP/2
      • Statut
    • Caractéristiques du protocole
      • UDP
      • Fiable
      • Flux
      • Dans l'ordre
      • Handshakes rapides
      • TLS 1.3
      • Transport et application
      • HTTP/3 sur QUIC
      • Non-HTTP sur QUIC
    • Comment QUIC fonctionne
      • Connexions
      • Les connexions utilisent TLS
      • Flux
      • 0-RTT
      • Spin Bit
      • Espace utilisateur
      • API
    • HTTP/3
      • URLs HTTPS://
      • Amorçage avec Alt-svc
      • Flux QUIC et HTTP/3
      • Priorisation
      • Push serveur
      • Comparaison avec HTTP/2
    • Critique générale
    • Les spécifications
    • QUIC v2
  • Italiano
    • Perché QUIC
      • Ricordi HTTP/2 ?
      • Blocco ad inizio linea, "TCP head of line blocking"
      • TCP o UDP
      • Ossificazione
      • Sicuro
      • Latenza ridotta
    • Evoluzione
      • IETF
      • Esperienza da HTTP/2
      • Status
    • Caratteristiche del protocollo
      • UDP
      • Affidabile
      • Streams
      • Ordinato
      • Negoziazioni veloci
      • TLS 1.3
      • Trasporto e applicazione
      • HTTP over QUIC
      • Non-HTTP over QUIC
    • Come funziona QUIC
      • Connessioni
      • Connessioni su TLS
      • Streams
      • 0-RTT
      • Bit Rotante
      • User space
      • API
    • HTTP/3
      • URLs in HTTPS://
      • Bootstrap via Alt-svc
      • Gli streams QUIC e HTTP/3
      • Prioritizzazione
      • Server push
      • Paragone con HTTP/2
    • Critiche comuni
    • Le specifiche
    • QUIC v2
  • 日本語
    • なぜ QUIC なのか
      • HTTP/2、覚えていますか?
      • TCP head-of-line ブロッキング
      • TCP か UDP か
      • 硬直化
      • セキュア
      • レイテンシの軽減
    • これまでの歩み
      • IETF
      • HTTP/2 からの経験
      • 現在の状況
    • プロトコルの機能
      • UDP 上の転送プロトコル
      • 高信頼性のデータ転送
      • コネクションは複数のストリームを扱う
      • 到着順序の保証
      • 素早いハンドシェイク
      • TLS 1.3
      • トランスポートとアプリケーションレベル
      • HTTP/3 over QUIC
      • Non-HTTP over QUIC
    • QUIC の仕組み
      • コネクション
      • 接続で TLS を使う
      • ストリーム
      • 0-RTT
      • Spin Bit
      • ユーザー空間
      • API
    • HTTP/3
      • HTTPS:// の URL
      • Alt-svc を使ったブートストラップ
      • QUIC ストリームと HTTP/3
      • プライオリティ制御
      • Server push
      • HTTP/2 と比較した HTTP/3
    • よくある疑問点
    • The specifications (ja/仕様)
    • QUIC v2
  • 한국어
    • 왜 QUIC인가
      • HTTP/2를 기억하는가?
      • TCP HOL(ko/head of line) 블로킹
      • TCP or UDP
      • 고착화(ko/Ossification)
      • 안전
      • 감소된 지연시간
    • 과정
      • IETF
      • HTTP/2에서의 경험
      • 상태
    • 프로토콜 기능
      • UDP
      • 신뢰성
      • 스트림
      • 순서에 맞는 전송
      • 빠른 핸드쉐이크
      • TLS 1.3
      • 전송 계층과 애플리케이션 계층
      • QUIC을 통한 HTTP/3
      • QUIC을 통한 HTTP가 아닌 프로토콜
    • QUIC의 동작 방식
      • 연결
      • TLS을 사용하는 연결
      • 스트림
      • 0-RTT
      • 스핀 비트
      • 사용자 영역
      • API
    • HTTP/3
      • HTTPS:// URL
      • Alt-svc로 부트스트랩하기
      • QUIC 스트림과 HTTP/3
      • 우선순위 정하기
      • 서버 푸시
      • HTTP/3과 HTTP/2의 비교
    • 일반적인 비판
    • 명세
    • QUIC v2
  • Română
    • De ce QUIC
      • Vă mai aduceți aminte de HTTP/2?
      • Blocarea vârfului stivei în TCP
      • TCP sau UDP
      • Osificarea
      • Securitate
      • Timp de așteptare redus
    • Procesul
      • IETF
      • Experiența acumulată cu HTTP/2
      • Starea curentă
    • Funcționalitățile protocolului
      • UDP
      • Fiabilitate
      • Fluxuri
      • În aceeași ordine
      • Handshakes rapide
      • TLS 1.3
      • Nivelurile de aplicație și de transfer
      • HTTP/3 peste QUIC
      • Non-HTTP peste QUIC
    • Cum funcționează QUIC
      • Conexiuni
      • Conexiunile folosesc TLS
      • Fluxuri
      • 0-RTT
      • Spin Bit
      • User space
      • API
    • HTTP/3
      • Adresele HTTPS://
      • Bootstrap cu Alt-svc
      • Fluxurile QUIC și HTTP/3
      • Prioritizare
      • Server push
      • Comparația cu HTTP/2
    • Critici comune
    • Specificația
    • QUIC v2
  • 简体中文
    • 导言
    • 为什么需要QUIC
      • 回顾HTTP/2
      • TCP队头阻塞
      • 用TCP还是UDP
      • 协议僵化
      • 安全性
      • 减少延迟
    • 协议进展
      • IETF
      • HTTP/2的经验
      • 标准化进展情况
    • 协议特点
      • 基于UDP
      • 可靠性
      • 数据流
      • 有序交付
      • 快速握手
      • TLS 1.3
      • 传输层与应用层协议
      • QUIC之上的HTTP协议
      • QUIC之上的非HTTP协议
    • QUIC工作原理
      • 连接
      • 使用TLS的连接
      • 数据流
      • 0-RTT
      • 旋转比特位
      • 用户空间实现
      • API
    • HTTP/3
      • HTTPS:// URL
      • 使用Alt-svc自举
      • QUIC流与HTTP/3
      • 优先度
      • 服务器推送
      • 与HTTP/2的比较
    • 常见批评
    • 技术标准
    • QUIC v2
  • 繁體中文
    • 導言
    • 為什麼是QUIC
      • 回顧HTTP/2
      • TCP隊頭阻塞
      • TCP還是UDP
      • 協定僵化
      • 安全性
      • 減少延遲
    • 協定的進展
      • IETF
      • 從HTTP/2得到的經驗
      • 目前的狀況
    • 協定的功能
      • 基於UDP的傳輸層協定
      • 高度可靠的傳輸
      • 串流
      • 有序交付
      • 快速交握
      • TLS 1.3
      • 傳輸層與應用層協定
      • HTTP/3 over QUIC
      • Non-HTTP over QUIC
    • QUIC運作原理
      • 連接
      • 使用TLS的連接
      • QUIC串流
      • 0-RTT
      • Spin Bit
      • 用户空間
      • API
    • HTTP/3
      • HTTPS:// URL
      • 使用Alt-svc進行引導
      • QUIC串流與HTTP/3
      • 優先次序
      • 伺服器推送
      • 與HTTP/2的比較
    • 常見的錯誤批評
    • 技術標準
    • QUIC v2
Powered by GitBook
On this page
  • 흐름 제어
  • 스트림 식별자
  • 스트림 동시성
  • 데이터 보내기와 받기
  • 스트림의 우선순위

Was this helpful?

Export as PDF
  1. 한국어
  2. QUIC의 동작 방식

스트림

QUIC 스트림은 경량이면서 순서가 있는 바이트 스트림 추상화를 제공한다.

QUIC에는 두가지 기본 스트림 타입이 있다.

  • 단방향 스트림은 한쪽으로 데이터를 전달한다. 즉, 스트림을 시작한 쪽에서 피어로 전달된다.

  • 양방향 스트림은 양쪽으로 데이터를 보낼 수 있다.

두 엔드포인트가 두 타입의 스트림을 모두 만들 수 있고 스트림은 다른 스트림과 상호배치된 데이터를 동시에 보낼 수 있고 취소할 수도 있다.

QUIC 연결을 통해 데이터를 보낼 때 하나 이상의 스트림을 사용한다.

흐름 제어

스트림은 개별적으로 흐름 제어가 되므로 엔드포인트가 메모리 사용을 제한할 수 있고 백프레셔(back pressure)를 적용할 수도 있다. 스트림의 생성도 흐름 제어가 되고 각 피어는 일정 시간 동안 받고자 하는 최대 스트림 ID를 정의할 수 있다.

스트림 식별자

스트림 ID라고 부르는 부호없는 62비트 정수로 스트림을 식별한다. 스트림 ID의 최하위 2비트를 스트림(단방향이나 양방향이나)의 타입과 스트림을 시작한 쪽을 식별하는 데 사용한다.

스트림 ID의 최하위 비트(0x1)는 누가 스트림을 시작했는지를 식별한다. 클라이언트는 짝수의 스트림(최하위 비트가 0으로 설정된 스트림)을 초기화 하고 서버는 홀수의 스트림(최하위 비트가 1으로 설정된 스트림)을 초기화한다.

스트림 ID의 두 번째 하위 비트(0x2)는 단방향 스트림과 양방향 스트림을 구분한다. 단방향 스트림을 항상 이 비트를 1로 설정하고 양방향 스트림은 이 비트를 0으로 설정한다.

스트림 동시성

QUIC에서는 임의의 스트림이 다수 동시에 동작할 수 있다. 엔드포인드는 최대 스트림 ID를 제한해서 동시에 받아들이는 활성 스트림의 수를 제한한다.

엔드포인트마다 최대 스트림 ID를 설정하고 설정을 받는 피어에만 적용된다.

데이터 보내기와 받기

엔드포인트는 스트림을 사용해서 데이터를 보내고 받고 이는 스트림의 원래 목적이다. 스트림은 순서가 맞는 바이트 스트림 추상화다. 하지만 별도의 스트림은 원래 순서대로 전달되지 않는다.

스트림의 우선순위

스트림에 할당된 리소스의 우선순위가 제대로 설정되면 스트림 멀티플렉싱은 애플리케이션 성능에 상당한 영향을 준다. HTTP/2 같은 멀티플렉싱을 지원하는 다른 프로토콜의 경험에서 상당히 긍적적인 성능 효과를 보여주는 효율적인 우선순위 전략을 볼 수 있다.

QUIC 자체에서 우선순위를 결정하는 정보를 교환하는 프레임을 제공하지는 않는다. 대신 QUIC을 사용하는 애플리케이션에서 우선순위 정보를 받는데 의존한다. QUIC을 사용하는 프로토콜은 애플리케이션의 의미에 적합한 우선순위 스키마를 정의할 수 있다.

QUIC을 통해 HTTP/3을 사용할 때 우선순위는 HTTP 계층에서 동작한다.

PreviousTLS을 사용하는 연결Next0-RTT

Last updated 5 years ago

Was this helpful?