QUIC (Quick UDP Internet Connections) แแ แแก แแ แแขแแแแแ UDP-แแก แแแแแ, แ แแแแแแช แแฎแแ แก แฃแญแแ แก TCP, TLS แแ HTTP/2-แแก แงแแแแ แแแฎแแกแแแแแแแแก แแ แฌแงแแแขแก แแแ แแ แแแแแแแแก. แแแก แฎแจแแ แแ แฃแฌแแแแแแ แแฎแแ แแ โแแฅแกแแแ แแแแแขแฃแโ แแ แแขแแแแแก, แแแแ แแ แแก แแแแ แฎแแแแ แแญแแ แแแแก แแฅแกแแแ แแแแแขแฃแ แแขแแแก: แแแแแแแแ แแแ 7 แฌแแแแ แแแขแแ แแแแแแแแ แแแแก. แแ แฎแแแก แแแแแแแแแแแจแ แแ แแขแแแแแแ แแแ แจแแซแแ แกแขแแแแแ แขแแ แฅแชแแแ, แแแแ แแ แแแแแช แคแแ แแแ แแแแ แชแแแแ. แแแแแแแแแ, QUIC แแแแแแงแแแแแ แแกแแแ แแแแแแขแแแแก แแแแ , แ แแแแ แแชแแ Google แแ Facebook, แ แแแ แแแแฉแฅแแ แแก แขแ แแคแแแ แแ แจแแแแชแแ แแก แจแแคแแ แฎแแแแแ แแแแแแฃแ แฅแกแแแแแจแ, แแ IETF-แแ แแแแแแชแฎแแแ แแ แแขแแแแแแก แฉแแแแแแ HTTP/3 แกแขแแแแแ แขแแก แกแแคแฃแซแแแแ (แแแฃแฎแแแแแแ แแแแกแ, แ แแ HTTP/2 แแงแแแแแก
แแแแชแแคแชแแ
QUIC แจแแแฃแจแแแแ, แ แแแแ แช แซแแแแ TCP-แแก แจแแแชแแแแแ, แ แแแแแแช แแแแแแแแ แแแแแ แจแแฅแแแแแ แแงแ แแแแแแ แแแ แแแแก แกแแแแแแแแ แฅแกแแแแแแกแแแแก. TCP แแฌแแแแก แแแแแขแแแก แแแแแแแแแแ แแแแ, แแกแ แ แแ, แแฃ แแ แแ แแแแแขแ แแแแแแ แแแแ, แแแแแ แ แแแ แฉแแ แแแแ (
แแแแแแแแ QUIC แแแ แแแแแแแก TCP แฉแแแแชแแแแแแก แแ TLS 1.3-แแก แแแแแแแแแขแแชแแแก, แงแแแแ แแแแจแแ แ แงแแแแแแแแก แแแจแแคแ แฃแแแ แแ แแกแแแ แขแ แแคแแแแก แแแจแแคแแ แ แฃแคแ แ แแแแแแ แแ แแ แแก, แแแแ แ แแก HTTPS-แแ แแแแแแแก. แแแ แแ แแแแกแ, QUIC แแแแแ แแแแแ แแแแแแแชแแแก แแแแแแ, แ แแแแแ TCP แกแขแแแแก แกแ แฃแแ แฉแแแแชแแแแแ แแแกแญแแ แแแแ แแแ แแแแกแแแ.
HTTP/2-แจแ แแฃแแขแแแแแฅแกแแ แแแแก แแฎแแ แแแญแแ แแก แแแฃแฎแแแแแแ, แแแแแแ แ แฎแแแแก แแแแแแแแแก แแ แแแแแแ แแแ แฉแ แแแแแขแแแแก แฌแแกแ แแแจแ แแแฌแแแแแแก แแฃแชแแแแแแแแแก แแแแ. QUIC แแแแแ แแแแแ UDP-แแก แแแแแ, แแแแขแแ แแแก แแ แแแชแแแจแ แแ แแฅแแก แแแแแแแแ แแ แแแแแขแแแแก แกแแแฃแแแแแ แแแแแ แแแแก แแแแแแแ แแกแแชแแแแแแแ, แแกแแแ แแแแแแ แแแแ แแ แจแแแซแแแแ แจแแแชแแแแแก "แแแแแแแแแแก" แแแฌแแแแแก, แ แแช แฃแแ แฃแแแแแงแแคแก แญแแ แแ แ แแแแแแแแแก. แแแ แแ แแแแกแ, QUIC แงแแคแก แแแแแแแแฃแ แ แแแก แแ แแแแ แซแแคแแ แกแฎแแแแแกแฎแแ แขแแแแก แแแแฎแแแแแกแแแแก แแ แแ แแแแจแแ แแก แคแแ แแแแแจแ. แแแ แแแแ, แแฃ แแแแแขแ แแแแแแ แแแแ, แแ แแแแแแแแ แจแแแซแแแแ แฌแแ แแแแจแแแก แแฎแแแแ แแ แแ แ แแแแกแแแแก (แแแแแแแแแ, แแแแแ แแขแฃแแ แคแแแแแก แแแแแชแแแแกแแแแก):
แแแแแแงแแแแ
แแแแแแแแ แแแแแ, QUIC แแแแแแแแ แแ Google-แจแ แแ แซแแ แแแแแแ แแแ แแแแฃแแ แแงแ แแแแแแแแแก แจแแแแแ แแแแแกแแงแแแแแแแ. 2013 แฌแแแก แแแ แแแแแแชแ IETF-แก แกแขแแแแแ แขแแแแชแแแกแแแแก (แ แแแแแแช แฏแแ แแแแแ แแ แซแแแแแแ) แแ แแฎแแ แงแแแแแก แจแแฃแซแแแ แแแแแฌแแแแแแ แแแแฆแแก แแ แแขแแแแแแก แจแแแฃแจแแแแแแจแ แจแแแแแแแแแแแแ, แ แแช แแแแแ. IETF แกแแแฃแจแแ แฏแแฃแคแ แแฌแงแแแก แงแแแแแฌแแแฃแ แจแแฎแแแแ แแแก, แ แแแแแก แแ แแกแแช แแแแขแแแชแแแแ แแฎแแแ แกแขแแแแแ แขแ แแ แแแแแฎแแแแแ แกแแแฎแแแแแ. QUIC-แแก แแก แแแแแแแแแขแแชแแ แแแแแแแ แแแแแแ แแ แแแก แกแแคแฃแซแแแแแ แฎแแแแ HTTP/3 แกแขแแแแแ แขแแก แกแแ แขแแคแแชแแ แแแ.
แฏแแ แฏแแ แแแแ แแ แแ แแก แกแแฃแแแ แ HTTP/3 แแแแแแ แแ แแขแแแแแแ แฉแแ แแแแแ, แ แแแแแ แแก แฏแแ แแ แแแกแ แฃแแแแฃแแ แแ แแแแฅแแแก แแ แแ แแก แแฎแแ แแแญแแ แแแ:
แแแแ แแ QUIC แจแแแซแแแแ แแแแฎแแ แชแแแแแแก แ แแแแ แช แขแ แแแกแแแ แขแ แแแแแแแชแแแกแ แแ แกแแ แแแ แก แจแแ แแก, แ แแช แฌแแ แแแขแแแแ แแแแแแแ Uber-แจแ:
Uber-แแก แแแแแแขแแ แ QUIC-แแก แแแแแ แแแแแ
QUIC-แแก แฌแแ แแแขแแแแ แฉแแกแแ แแแแแ แแ แแแแแแแชแแแก แแฃแจแแแแแก แแแกแแฃแแฏแแแแกแแแแแ แชแฃแแ แแแแจแแ แแก แแแ แแแแจแ, แฉแแแ แจแแแชแแแแแ แซแแแแ แกแขแแแ (HTTP/2 TLS/TCP-แแ) QUIC แแ แแขแแแแแแ. แฉแแแ แแแแแแแงแแแแ แฅแกแแแแก แแแแแแแแแแ
แแ แแแแขแ แกแแฅแแ แแแแแแกChromium แแ แแแฅแขแแแ , แ แแแแแแช แจแแแชแแแก แแ แแขแแแแแแก แแ แแแแแแแฃแ , Google แแแ แกแแแก - gQUIC. แแก แแแแแแแแแขแแชแแ แแกแแแ แแฃแแแแแแ แแฎแแแฌแแแ, แ แแแ แแแแชแแแก แฃแแฎแแแกแ IETF แกแแแชแแคแแแแชแแ.แฉแแแ แแแ แแแแแ แแแแแแ แแแแแแ Cronet แฉแแแแก Android แแแแแจแ QUIC-แแก แแฎแแ แแแญแแ แแก แแแกแแแแขแแแแแ. แแแขแแแ แแชแแ แแแแฎแแ แชแแแแแ แแกแ, แ แแ แแแฅแกแแแแแฃแ แแ แจแแแชแแ แแแฃแแแงแ แแแแ แแชแแแก แฎแแ แฏแแแ. แแแแก แแแชแแแแ, แ แแ แแแแแแแแ แจแแชแแแแแก แซแแแแ แฅแกแแแแก แกแขแแแ, แ แแแแแแช แแงแแแแแแ แแแแแแแแแแแก
OkHttp , แฉแแแ แแแแฅแแก Cronet แแแขแแแ แแ แแแฃแแ OkHttp API แฉแแ แฉแแก แฅแแแจ. แแ แแแแ แแแขแแแ แแชแแแก แแแแฎแแ แชแแแแแแแ, แฉแแแ แแแแแแแ แแแแชแแแแ แชแแแแแแแแแ แฉแแแแก แฅแกแแแฃแ แแแ แแแจแ (แ แแแแแแกแแช แแงแแแแแแแแแแแแแแแแ ) API แแแแแแ.Android แแแฌแงแแแแแแแแแแก แแแแแแแแก แแกแแแแกแแ, แฉแแแ แแแแแงแแแแ Cronet Uber-แแก แแแแแจแ iOS-แแ, แ แแช แฎแแแก แฃแจแแแก HTTP แขแ แแคแแแก แฅแกแแแแแแ.
API แแแแแงแแแแแNSURL แแ แแขแแแแแ . แแก แแแกแขแ แแฅแชแแ, แ แแแแแแช แแแฌแแแแแฃแแแ iOS แคแแแแแก แแแแ , แแแฃแจแแแแแก แแ แแขแแแแแแก แกแแแชแแคแแแฃแ URL แแแแแชแแแแแก แแ แฃแแ แฃแแแแแงแแคแก Cronet-แแก แแแขแแแ แแ แแแแก แฉแแแแก iOS แแแแแแแชแแแแจแ แแแแจแแแแแแแแแ แแแแ แแชแแแก แฎแแ แฏแแแแก แแแ แแจแ.
แแฆแแแฃแแแ
แฃแแแแ แแแแแแ แแแ แแแแญแแ แแก QUIC แแแแจแแ แแแ Google Cloud lb-แแก แแแจแแแแแแ, แ แแแแแแช
แแแกแแแแแ แ แแ แแ แแก, แ แแ Google Cloud แแจแแแแแแ แแ แแฃแจแแแแก Google-แแก แแแแ แจแแแฃแจแแแแแฃแ แแ แแขแแแแแแแ, แแแแ แแ แ แ แแ แแก แแแขแแ แแแขแแแ?
แแแแแฅแกแ
แแ แช แแกแ แแแแ แฎแแแก แฌแแ CloudFlare
curl -O https://nginx.org/download/nginx-1.16.1.tar.gz
tar xvzf nginx-1.16.1.tar.gz
git clone --recursive https://github.com/cloudflare/quiche
cd nginx-1.16.1
patch -p01 < ../quiche/extras/nginx/nginx-1.16.patch
แแฅ แจแแแแซแแแแ แแแแแแแจแแ แแ แแฅแแแแ แแแแฃแแแแ แกแแญแแ แแแแแก แจแแแแฎแแแแแจแ
./configure
--prefix=$PWD
--with-http_ssl_module
--with-http_v2_module
--with-http_v3_module
--with-openssl=../quiche/deps/boringssl
--with-quiche=../quiche
make
แ แฉแแแ แแฎแแแแ HTTP/3 แแฎแแ แแแญแแ แแก แฉแแ แแแ
events {
worker_connections 1024;
}
http {
server {
# Enable QUIC and HTTP/3.
listen 443 quic reuseport;
# Enable HTTP/2 (optional).
listen 443 ssl http2;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
# Enable all TLS versions (TLSv1.3 is required for QUIC).
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
# Request buffering in not currently supported for HTTP/3.
proxy_request_buffering off;
# Add Alt-Svc header to negotiate HTTP/3.
add_header alt-svc 'h3-27=":443"; ma=86400';
}
}
แฏแแ แแ แแ แแก แจแแกแแซแแแแแแ HTTP/3-แแ แแแแแแจแแ แแแ แฉแแแฃแแแแ แแ แแ แแฃแแแ แแแจแ, แแแแ แแ แจแแแแซแแแแ แแแแแแงแแแแ --enable-quic
, แแแแแแแ แแฅแแแแก แกแแ แแแ แแ แแ, แแแแแแแแแ, quic.rocks แกแแแขแแ แแ แจแแฎแแแแ แแแแจแแ แแก แขแแแก Developer Tools-แจแ:
HTTP/3-แแก แแแชแแแแ แฌแแ แแ http2+quic/99
, แแแแ แแ แแก แแ แกแแแแแแ แแแแแแ.
แกแฎแแ แขแแฅแแแแแแแแแ
- QUIC แแกแแแ แแฎแแ แก แฃแญแแ แก
LiteSpeed (แ แแแแแแช แคแแแกแแฃแแก แฃแแแแจแแ แแแแแแ HTTP/3-แแก แกแแจแฃแแแแแแ แแแแ แแฃแ แแแฃแ แแ) แแ แแ แแแ แแกแฃแแCaddy . Apache-แก แฏแแ แแ แจแแฃแซแแแ, แแแแ แแ แกแแแฃแจแแแแแ แแแแแแแแ แแแแกแกแ แฃแแ แกแแแ . - แแแแแฎแแแแฃแแแ 21 แแแแแแ แก
WebRTC แกแขแแแแแ แขแแก แแ แแแฅแขแ - แแฎแแแแ แแแแ แ แแฆแแก Microsoft แแแแฎแกแแ
msquic แแแแฎแแ แชแแแแแแแก แแแแ , แ แแแแแจแแช IETF แกแขแแแแแ แขแแก แงแแแแ แคแฃแแฅแชแแ แฏแแ แแ แแ แแก แฎแแแแแกแแฌแแแแแ, แแแแ แแ แแก แฃแแแ แแแแ แแแ แฆแแแแแ.
แแแกแแแแ
QUIC-แแก แแแแแ แ แแแขแแ แแกแ แแ แแกแขแแแแแฃแ แแ, แแแแ แแ แแแแ แแ แแ แแแแแแแแ แแแแก แแฃแจแแแแ แแแก แกแขแแแแแ แขแแแแชแแแแ. แแ แแขแแแแแแก แแฎแแแ แแแแแ แแแ แแแแฅแแแก แงแแแแแแแแฃแ แแ แฉแแแแแ แแ แงแแแแแฌแแแฃแ แแ แฃแคแ แ แแ แฃแคแ แ แแแขแ แแแแแแแแแ แ แแแ แฌแแฃแแแแฃแแแ, แ แแ QUIC แแ แแก แแแแแแแแ. แจแแกแแซแแแแแแแ แแ แแขแแแแแแก แฉแแ แแแ TCP แกแขแแแแก แแแแแแแ แแแ แกแแแแจแ, แ แแช แแแจแแแแก, แ แแ แแแ แ แแฃ แแแแแ แแแแแ แแแขแแ แแแขแ แแแแแแ แฃแคแ แ แกแขแแแแแฃแ แแ แกแฌแ แแค แแแแจแแ แแแแ.
แฃแแแ แจแแแแซแแแแ แแแแแแแคแแแฃแ แแ แแ QUIC แฃแ แแแแ แแฅแแแแแแ แแฅแแแแ แแแคแ แแกแขแ แฃแฅแขแฃแ แแกแแแแก แแ แแฃแแแแช แแ แแฃแแแ แแแก แแแกแชแแ - แแกแแแ แงแแแแ แแแแแแแแ แแ แแขแแแแแแก แแฎแแ แแแญแแ แแก แแแแแขแแแแก แแ แกแแแแแแแ แกแขแแขแแกแขแแแ caniuse-แแ แฃแคแ แ แแฎแแแ แฃแแ แแแฎแแแแ.
แฌแงแแ แ: www.habr.com