Cloudflare ื”ื˜ืžื™ืขื” ืžื•ื“ื•ืœ ืœืชืžื™ื›ื” ื‘-HTTP/3 ื‘-NGINX

ื—ื‘ืจืช Cloudflare ืžื•ึผื›ึธืŸ ืžื•ื“ื•ืœ ืœืกืคืง ืชืžื™ื›ื” ืขื‘ื•ืจ ืคืจื•ื˜ื•ืงื•ืœ HTTP/3 ื‘-NGINX. ื”ืžื•ื“ื•ืœ ืชื•ื›ื ืŸ ื›ืชื•ืกืคืช ืœืกืคืจื™ื™ื” ืฉืคื•ืชื—ื” ืขืœ ื™ื“ื™ Cloudflare ืงื™ืฉ ืขื ื™ื™ืฉื•ื ืคืจื•ื˜ื•ืงื•ืœ ื”ืชื—ื‘ื•ืจื” QUIC ื•-HTTP/3. ืงื•ื“ ื”ืงื™ืฉ ื›ืชื•ื‘ ื‘-Rust, ืืš ืžื•ื“ื•ืœ NGINX ืขืฆืžื• ื›ืชื•ื‘ ื‘-C ื•ื ื™ื’ืฉ ืœืกืคืจื™ื™ื” ื‘ืืžืฆืขื•ืช ืงื™ืฉื•ืจ ื“ื™ื ืžื™. ื”ืชืคืชื—ื•ื™ื•ืช ืœึดืคึฐืชื•ึนื—ึท ืชื—ืช ืจื™ืฉื™ื•ืŸ BSD.

ื›ื“ื™ ืœื”ืจื›ื™ื‘, ืคืฉื•ื˜ ื”ื•ืจื“ ืชื™ืงื•ืŸ ืœ-nginx 1.16 ื• ืฆื•ืคืŸ ืกืคืจื™ื•ืช ืงื™ืฉ, ื•ืœืื—ืจ ืžื›ืŸ ื‘ื ื” ืžื—ื“ืฉ ืืช nginx ืขื ื”ืืคืฉืจื•ื™ื•ืช "โ€”with-http_v3_module โ€”with-quiche=../quiche". ื‘ืขืช ื”ื‘ื ื™ื™ื”, ืชืžื™ื›ืช TLS ืฆืจื™ื›ื” ืœื”ืชื‘ืกืก ืขืœ ืกืคืจื™ื™ืช BoringSSL ("--with-openssl=../quiche/deps/boringssl"), ื”ืฉื™ืžื•ืฉ ื‘-OpenSSL ืขื“ื™ื™ืŸ ืื™ื ื• ื ืชืžืš. ื›ื“ื™ ืœืงื‘ืœ ื—ื™ื‘ื•ืจื™ื, ืขืœื™ืš ืœื”ื•ืกื™ืฃ ืืช ื”ื•ืจืืช ื”ื”ืื–ื ื” ืขื ื”ื“ื’ืœ "ืžื”ื™ืจ" ืœื”ื’ื“ืจื•ืช (ืœื“ื•ื’ืžื”, "ื”ืื–ื ื” 443 ืžื”ื™ืจ ื“ื™ื•ื•ื— ื—ื•ื–ืจ").

ื‘ืชื•ื›ื ืช ืœืงื•ื—, ืชืžื™ื›ื” ื‘-HTTP/3 ื›ื‘ืจ ื ื•ืกืคื” ืœื‘ื ื™ื™ืช ื ื™ืกื•ื™ื™ื ืฉืœ Chrome Canary ื•ื›ืœื™ ื”ืฉื™ืจื•ืช curl. ื‘ืฆื“ ื”ืฉืจืช, ืขื“ ืขื›ืฉื™ื• ื”ื™ื” ืฆื•ืจืš ืœื”ืฉืชืžืฉ ื‘ื ืคืจื“, ืžื•ื’ื‘ืœ ื™ื™ืฉื•ืžื™ ื‘ื“ื™ืงื”. ื”ื™ื›ื•ืœืช ืœืขื‘ื“ HTTP/3 ื‘-nginx ืชืคืฉื˜ ืžืฉืžืขื•ืชื™ืช ืืช ื”ืคืจื™ืกื” ืฉืœ ืฉืจืชื™ื ืขื ืชืžื™ื›ื” ื‘-HTTP/3 ื•ืชื”ืคื•ืš ืืช ื”ื˜ืžืขืช ื”ื‘ื“ื™ืงื” ืฉืœ ื”ืคืจื•ื˜ื•ืงื•ืœ ื”ื—ื“ืฉ ืœื ื’ื™ืฉื” ื™ื•ืชืจ. ื”ื•ืคืขืชื” ืฉืœ ืชืžื™ื›ื” ืกื˜ื ื“ืจื˜ื™ืช ืขื‘ื•ืจ HTTP/3 ื‘-nginx ืฆืคื•ื™ ื‘ืกื ื™ืฃ 1.17.x ืœืžืฉืš 6-12 ื—ื•ื“ืฉื™ื.

ื ื–ื›ื™ืจ ืฉ-HTTP/3 ืžื™ื™ืงืจ ืืช ื”ืฉื™ืžื•ืฉ ื‘ืคืจื•ื˜ื•ืงื•ืœ QUIC ื›ืชื—ื‘ื•ืจื” ืขื‘ื•ืจ HTTP/2. ื ื•ื”ืœ QUIC (Quick UDP Internet Connections) ืคื•ืชื— ืขืœ ื™ื“ื™ ื’ื•ื’ืœ ืžืื– 2013 ื›ื—ืœื•ืคื” ืœืฉื™ืœื•ื‘ TCP+TLS ืขื‘ื•ืจ ื”ืื™ื ื˜ืจื ื˜, ืคืชืจื•ืŸ ื‘ืขื™ื•ืช ืขื ื–ืžื ื™ ื”ื’ื“ืจื” ื•ืžืฉื ื•ืžืชืŸ ืืจื•ื›ื™ื ืขื‘ื•ืจ ื—ื™ื‘ื•ืจื™ื ื‘-TCP ื•ืžื‘ื˜ืœ ืขื™ื›ื•ื‘ื™ื ื›ืืฉืจ ืžื ื•ืช ืื•ื‘ื“ื•ืช ื‘ืžื”ืœืš ื”ืขื‘ืจืช ื”ื ืชื•ื ื™ื. QUIC ื”ื•ื ื”ืจื—ื‘ื” ืฉืœ ืคืจื•ื˜ื•ืงื•ืœ UDP ื”ืชื•ืžืš ื‘ืจื™ื‘ื•ื™ ืฉืœ ืžืกืคืจ ื—ื™ื‘ื•ืจื™ื ื•ืžืกืคืง ืฉื™ื˜ื•ืช ื”ืฆืคื ื” ืฉื•ื•ืช ืขืจืš ืœ-TLS/SSL.

ื”ืขื™ืงืจื™ ืชื›ื•ื ื•ืช QUIC:

  • ืื‘ื˜ื—ื” ื’ื‘ื•ื”ื” ื‘ื“ื•ืžื” ืœ-TLS (ื‘ืขืฆื QUIC ืžืกืคืง ืืช ื”ื™ื›ื•ืœืช ืœื”ืฉืชืžืฉ ื‘-TLS ืขืœ UDP);
  • ื‘ืงืจืช ืฉืœืžื•ืช ื–ืจื™ืžื”, ืžื ื™ืขืช ืื•ื‘ื“ืŸ ืžื ื•ืช;
  • ื”ื™ื›ื•ืœืช ืœื™ืฆื•ืจ ื—ื™ื‘ื•ืจ ืžื™ื™ื“ื™ (0-RTT, ื‘ื›-75% ืžื”ืžืงืจื™ื ื ื™ืชืŸ ืœื”ืขื‘ื™ืจ ื ืชื•ื ื™ื ืžื™ื“ ืœืื—ืจ ืฉืœื™ื—ืช ื—ื‘ื™ืœืช ื”ื’ื“ืจืช ื”ื—ื™ื‘ื•ืจ) ื•ืœืกืคืง ืขื™ื›ื•ื‘ื™ื ืžื™ื ื™ืžืœื™ื™ื ื‘ื™ืŸ ืฉืœื™ื—ืช ื‘ืงืฉื” ืœืงื‘ืœืช ืชื’ื•ื‘ื” (RTT, Round Trip Time);
  • ืื™ ืฉื™ืžื•ืฉ ื‘ืื•ืชื• ืžืกืคืจ ืจืฆืฃ ื‘ืขืช ืฉื™ื“ื•ืจ ื—ื•ื–ืจ ืฉืœ ื—ื‘ื™ืœื”, ืžื” ืฉืžื•ื ืข ืื™ ื‘ื”ื™ืจื•ืช ื‘ื–ื™ื”ื•ื™ ืžื ื•ืช ืฉื”ืชืงื‘ืœื• ื•ื ืคื˜ืจ ืžืคืกืงื™ ื–ืžืŸ;
  • ืื•ื‘ื“ืŸ ืžื ื” ืžืฉืคื™ืข ืจืง ืขืœ ืžืกื™ืจืช ื”ื–ืจื ื”ืงืฉื•ืจ ืืœื™ื” ื•ืื™ื ื• ืžืคืกื™ืง ืืช ืžืกื™ืจืช ื”ื ืชื•ื ื™ื ื‘ื–ืจืžื™ื ืžืงื‘ื™ืœื™ื ื”ืžื•ืขื‘ืจื™ื ื“ืจืš ื”ื—ื™ื‘ื•ืจ ื”ื ื•ื›ื—ื™;
  • ืชื›ื•ื ื•ืช ืชื™ืงื•ืŸ ืฉื’ื™ืื•ืช ื”ืžืžื–ืขืจื•ืช ืขื™ื›ื•ื‘ื™ื ืขืงื‘ ืฉื™ื“ื•ืจ ื—ื•ื–ืจ ืฉืœ ืžื ื•ืช ืื‘ื•ื“ื•ืช. ืฉื™ืžื•ืฉ ื‘ืงื•ื“ื™ ืชื™ืงื•ืŸ ืฉื’ื™ืื•ืช ืžื™ื•ื—ื“ื™ื ื‘ืจืžืช ื”ื—ื‘ื™ืœื” ื›ื“ื™ ืœืฆืžืฆื ืžืฆื‘ื™ื ื”ื“ื•ืจืฉื™ื ืฉื™ื“ื•ืจ ื—ื•ื–ืจ ืฉืœ ื ืชื•ื ื™ ืžื ื•ืช ืฉืื‘ื“ื•.
  • ื’ื‘ื•ืœื•ืช ื‘ืœื•ืงื™ื ืงืจื™ืคื˜ื•ื’ืจืคื™ื™ื ืžื™ื•ืฉืจื™ื ืขื ื’ื‘ื•ืœื•ืช ืžื ื•ืช QUIC, ืžื” ืฉืžืคื—ื™ืช ืืช ื”ื”ืฉืคืขื” ืฉืœ ื”ืคืกื“ื™ ืžื ื•ืช ืขืœ ืคืขื ื•ื— ื”ืชื•ื›ืŸ ืฉืœ ืžื ื•ืช ืขื•ืงื‘ื•ืช;
  • ืื™ืŸ ื‘ืขื™ื•ืช ืขื ื—ืกื™ืžืช ืชื•ืจ TCP;
  • ืชืžื™ื›ื” ื‘ืžื–ื”ื” ื—ื™ื‘ื•ืจ, ืฉืžืคื—ื™ืช ืืช ื”ื–ืžืŸ ืฉืœื•ืงื— ืœื™ืฆื™ืจืช ื—ื™ื‘ื•ืจ ืžื—ื“ืฉ ืขื‘ื•ืจ ืœืงื•ื—ื•ืช ื ื™ื™ื“ื™ื;
  • ืืคืฉืจื•ืช ืœื—ื™ื‘ื•ืจ ืžื ื’ื ื•ื ื™ ื‘ืงืจืช ื’ื•ื“ืฉ ื‘ื—ื™ื‘ื•ืจ ืžืชืงื“ืžื™ื;
  • ืžืฉืชืžืฉ ื‘ื˜ื›ื ื™ืงื•ืช ื—ื™ื–ื•ื™ ืชืคื•ืงื” ืœื›ืœ ื›ื™ื•ื•ืŸ ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ืฉืžื ื•ืช ื ืฉืœื—ื•ืช ื‘ืงืฆื‘ื™ื ืื•ืคื˜ื™ืžืœื™ื™ื, ื•ืœืžื ื•ืข ืžื”ืŸ ืœื”ื™ืขืฉื•ืช ืขืžื•ืก ื•ืœื’ืจื•ื ืœืื•ื‘ื“ืŸ ืžื ื•ืช;
  • ืžื•ึผืจึฐื’ึธืฉื ืฆึฐืžึดื™ื—ึธื” ื‘ื™ืฆื•ืขื™ื ื•ืชืคื•ืงื” ื‘ื”ืฉื•ื•ืื” ืœ-TCP. ืขื‘ื•ืจ ืฉื™ืจื•ืชื™ ื•ื™ื“ืื• ื›ื’ื•ืŸ YouTube, ื”ื•ื›ื— ื›ื™ QUIC ืžืคื—ื™ืช ืืช ืคืขื•ืœื•ืช ื”ื”ื“ื—ื” ื‘ืขืช ืฆืคื™ื™ื” ื‘ืกืจื˜ื•ื ื™ื ื‘-30%.
  • ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”