Cloudflare ื”ืื˜ ื™ืžืคึผืœืึทืžืขื ืึทื“ ืึท ืžืึธื“ื•ืœืข ืฆื• ืฉื˜ื™ืฆืŸ ื”ื˜ื˜ืคึผ / 3 ืื™ืŸ NGINX

ืงืœืึธื•ื“ืคืœืึทืจืข ืคึฟื™ืจืžืข ืฆื•ื’ืขื’ืจื™ื™ื˜ ืžืึธื“ื•ืœืข ืฆื• ืฆื•ืฉื˜ืขืœืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ HTTP / 3 ืคึผืจืึธื˜ืึธืงืึธืœ ืื™ืŸ NGINX. ื“ืขืจ ืžืึธื“ื•ืœืข ืื™ื– ื“ื™ื–ื™ื™ื ื“ ื•ื•ื™ ืึทืŸ ืึทื“ื™ืฉืึทืŸ ืฆื• ื“ืขืจ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ื“ืขื•ื•ืขืœืึธืคึผืขื“ ื“ื•ืจืš Cloudflare quiche ืžื™ื˜ ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ QUIC ืื•ืŸ HTTP/3 ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืคึผืจืึธื˜ืึธืงืึธืœ. ื“ื™ ืงื•ื•ื™ื˜ืฉืข ืงืึธื“ ืื™ื– ื’ืขืฉืจื™ื‘ืŸ ืื™ืŸ ืจื•ืกื˜, ืึธื‘ืขืจ ื“ื™ NGINX ืžืึธื“ื•ืœืข ื–ื™ืš ืื™ื– ื’ืขืฉืจื™ื‘ืŸ ืื™ืŸ C ืื•ืŸ ืึทืงืกืขืก ื“ื™ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืžื™ื˜ ื“ื™ื ืึทืžื™ืฉ ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’. ื“ื™ื•ื•ืขืœืึทืคึผืžืึทื ืฅ ืขืคืขื ืขืŸ ืื•ื ื˜ืขืจ ื“ื™ BSD ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ.

ืฆื• ืึทืกืขืžื‘ืึทืœ, ื ืึธืจ ืืจืืคืงืืคื™ืข patch ืฆื• nginx 1.16 ืื•ืŸ ืงืึธื“ืขืงืก quiche ืœื™ื™ื‘ืจืขืจื™ื–, ืื•ืŸ ืจื™ื‘ื™ืœื“ nginx ืžื™ื˜ ื“ื™ ืึธืคึผืฆื™ืขืก "-with-http_v3_module -with-quiche=../quiche". ื•ื•ืขืŸ ืื™ืจ ื‘ื•ื™ืขืŸ, TLS ืฉื˜ื™ืฆืŸ ื–ืึธืœ ื–ื™ื™ืŸ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ BoringSSL ื‘ื™ื‘ืœื™ืึธื˜ืขืง ("--with-openssl=../quiche/deps/boringssl"), ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ OpenSSL ืื™ื– ื ืึธืš ื ื™ืฉื˜ ื’ืขืฉื˜ื™ืฆื˜. ืฆื• ืึธื ื ืขืžืขืŸ ืงืึทื ืขืงืฉืึทื ื–, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืœื™ื™ื’ืŸ ื“ื™ ื”ืขืจืŸ ื“ื™ืจืขืงื˜ื™ื•ื• ืžื™ื˜ ื“ื™ "ืฉื ืขืœ" ืคืึธืŸ ืฆื• ื“ื™ ืกืขื˜ื˜ื™ื ื’ืก (ืœืžืฉืœ, "ื”ืขืจืŸ 443 ืงื•ื•ื™ืง ืจื™ื•ืกืคึผืึธืจื˜").

ืื™ืŸ ืงืœื™ืขื ื˜ ื•ื•ื™ื™ื›ื•ื•ืืจื’, ื”ื˜ื˜ืคึผ / 3 ืฉื˜ื™ืฆืŸ ืื™ื– ืฉื•ื™ืŸ ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฆื• ื™ืงืกืคึผืขืจืžืขื ืึทืœ ื‘ื•ื™ืขืŸ ืคื•ืŸ ืงืจืึธื•ื ืงืึทื ืึทืจื™ ืื•ืŸ ื“ื™ ืงืขืจืœ ื ื•ืฆืŸ. ืื•ื™ืฃ ื“ื™ ืกืขืจื•ื•ืขืจ ื–ื™ื™ึทื˜, ื‘ื™ื– ืื™ืฆื˜ ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ื ื•ืฆืŸ ื‘ืึทื–ื•ื ื“ืขืจ, ืœื™ืžื™ื˜ืขื“ ืคึผืจื•ื‘ื™ืจืŸ ื™ืžืคึผืœืึทืžืึทื ืฅ. ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืคึผืจืึธืฆืขืก ื”ื˜ื˜ืคึผ / 3 ืื™ืŸ nginx ื•ื•ืขื˜ ื‘ืื˜ื™ื™ื˜ื™ืง ืคืึทืจืคึผืึธืฉืขื˜ืขืจืŸ ื“ื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืคื•ืŸ ืกืขืจื•ื•ืขืจืก ืžื™ื˜ ื”ื˜ื˜ืคึผ / 3 ืฉื˜ื™ืฆืŸ ืื•ืŸ ื•ื•ืขื˜ ืžืึทื›ืŸ ื“ื™ ืคึผืจื•ื‘ื™ืจืŸ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ื ื™ื™ึทืข ืคึผืจืึธื˜ืึธืงืึธืœ ืžืขืจ ืฆื•ื˜ืจื™ื˜ืœืขืš. ื“ื™ ื™ืžืขืจื“ื–ืฉืึทื ืก ืคื•ืŸ ื ืึธืจืžืึทืœ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื”ื˜ื˜ืคึผ / 3 ืื™ืŸ nginx ื’ืขืจื™ื›ื˜ ืฆื• ืื™ืŸ ื“ื™ 1.17.x ืฆื•ื•ื™ื™ึทื’ ืคึฟืึทืจ 6-12 ื—ื“ืฉื™ื.

ืฆื•ืจื™ืงืจื•ืคืŸ ืึทื– ื”ื˜ื˜ืคึผ / 3 ื ืึธืจืžืึทืœื™ื™ื–ื™ื– ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ื“ื™ QUIC ืคึผืจืึธื˜ืึธืงืึธืœ ื•ื•ื™ ืึท ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืคึฟืึทืจ ื”ื˜ื˜ืคึผ / 2. ืคึผืจืึธื˜ืึธืงืึธืœ QUIC (ืฉื ืขืœ ื•ื“ืคึผ ืื™ื ื˜ืขืจื ืขื˜ ืงืึทื ืขืงืฉืึทื ื–) ืื™ื– ื“ืขื•ื•ืขืœืึธืคึผืขื“ ื“ื•ืจืš Google ื–ื™ื ื˜ 2013 ื•ื•ื™ ืึทืŸ ืึธืœื˜ืขืจื ืึทื˜ื™ื•ื• ืฆื• ื“ื™ TCP + TLS ืงืึธืžื‘ื™ื ืึทืฆื™ืข ืคึฟืึทืจ ื“ื™ ื•ื•ืขื‘, ืกืึทืœื•ื•ื™ื ื’ ืคึผืจืึธื‘ืœืขืžืก ืžื™ื˜ ืœืึทื ื’ ืกืขื˜ืึทืคึผ ืื•ืŸ ืคืึทืจื”ืึทื ื“ืœื•ื ื’ ืฆื™ื™ื˜ ืคึฟืึทืจ ืงืึทื ืขืงืฉืึทื ื– ืื™ืŸ ื˜ืงืคึผ ืื•ืŸ ื™ืœื™ืžืึทื ื™ื™ื˜ื™ื ื’ ื“ื™ืœื™ื™ื– ื•ื•ืขืŸ ืคึผืึทืงื™ืฅ ื–ืขื ืขืŸ ืคืึทืจืคืึทืœืŸ ื‘ืขืฉืึทืก ื“ืึทื˜ืŸ ืึทืจื™ื‘ืขืจืคื™ืจืŸ. QUIC ืื™ื– ืึท ืคืึทืจืœืขื ื’ืขืจื•ื ื’ ืคื•ืŸ ื“ื™ UDP ืคึผืจืึธื˜ืึธืงืึธืœ ื•ื•ืึธืก ืฉื˜ื™ืฆื˜ ืžื•ืœื˜ื™ืคึผืœืขืงืกื™ื ื’ ืคื•ืŸ ืงื™ื™ืคืœ ืงืึทื ืขืงืฉืึทื ื– ืื•ืŸ ื’ื™ื˜ ืขื ืงืจื™ืคึผืฉืึทืŸ ืžืขื˜ื”ืึธื“ืก ืขืงื•ื•ื™ื•ื•ืึทืœืขื ื˜ ืฆื• TLS / SSL.

ื”ื•ื™ืคึผื˜ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืงื•ื•ื™ืง:

  • ื”ื•ื™ืš ื–ื™ื›ืขืจื”ื™ื™ื˜ ืขื ืœืขืš ืฆื• TLS (ื‘ื™ื™ืกื™ืงืœื™ QUIC ื’ื™ื˜ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื ื•ืฆืŸ TLS ืื™ื‘ืขืจ UDP);
  • ืœื•ื™ืคืŸ ืึธืจื ื˜ืœืขื›ืงื™ื™ึทื˜ ืงืึธื ื˜ืจืึธืœ, ืคึผืจืขื•ื•ืขื ื˜ื™ื ื’ ืคึผืึทืงืึทื˜ ืึธื ื•ื•ืขืจ;
  • ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื˜ื™ื™ืงืขืฃ ืคืึทืจืœื™ื™ื’ืŸ ืึท ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ (0-RTT, ืื™ืŸ ื‘ืขืขืจืขืš 75% ืคื•ืŸ ืงืึทืกืขืก ื“ืึทื˜ืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื˜ืจืึทื ืกืžื™ื˜ื˜ืขื“ ื’ืœื™ื™ืš ื ืึธืš ืฉื™ืงืŸ ื“ื™ ืงืฉืจ ืกืขื˜ืึทืคึผ ืคึผืึทืงืึทื˜) ืื•ืŸ ืฆื•ืฉื˜ืขืœืŸ ืžื™ื ื™ืžืึทืœ ื“ื™ืœื™ื™ื– ืฆื•ื•ื™ืฉืŸ ืฉื™ืงืŸ ืึท ื‘ืงืฉื” ืื•ืŸ ื‘ืึทืงื•ืžืขืŸ ืึท ืขื ื˜ืคืขืจ (ืจื˜ื˜, ืจืึธื•ื ื“ ื˜ืจื™ืคึผ ืฆื™ื™ื˜);
  • ื ื™ื˜ ื ื™ืฆืŸ ื“ื™ ื–ืขืœื‘ืข ืกื™ืงื•ื•ืึทื ืก ื ื•ืžืขืจ ื•ื•ืขืŸ ืจื™ื˜ืจืึทื ืกืžื™ื˜ื™ื ื’ ืึท ืคึผืึทืงืึทื˜, ื•ื•ืึธืก ืึทื•ื•ื•ื™ื“ื– ืึทืžื‘ื™ื’ื™ื•ืึทื˜ื™ ืื™ืŸ ื™ื™ื“ืขื ื˜ืึทืคื™ื™ื™ื ื’ ื‘ืืงื•ืžืขืŸ ืคึผืึทืงื™ืฅ ืื•ืŸ ื‘ืึทืงื•ืžืขืŸ ื‘ืึทืคืจื™ื™ึทืขืŸ ืคื•ืŸ ื˜ื™ื™ืžืึทื•ืฅ;
  • ืึธื ื•ื•ืขืจ ืคื•ืŸ ืึท ืคึผืึทืงืึทื˜ ืึทืคืขืงืฅ ื‘ืœื•ื™ื– ื“ื™ ืขืงืกืคึผืจืขืก ืคื•ืŸ ื“ื™ ื˜ื™ื™ึทืš ืคึฟืึทืจื‘ื•ื ื“ืŸ ืžื™ื˜ ืื™ื ืื•ืŸ ื˜ื•ื˜ ื ื™ืฉื˜ ื”ืึทืœื˜ืŸ ื“ื™ ืขืงืกืคึผืจืขืก ืคื•ืŸ ื“ืึทื˜ืŸ ืื™ืŸ ืคึผืึทืจืึทืœืขืœ ืกื˜ืจื™ืžื– ื˜ืจืึทื ืกืžื™ื˜ื˜ืขื“ ื“ื•ืจืš ื“ืขื ืงืจืึทื ื˜ ืงืฉืจ;
  • ื˜ืขื•ืช ืงืขืจืขืงืฉืึทืŸ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ื•ื•ืึธืก ืžื™ื ืึทืžื™ื™ื– ื“ื™ืœื™ื™ื– ืจืขื›ื˜ ืฆื• ืจื™ื˜ืจืึทื ืกืžื™ืกืกื™ืึธืŸ ืคื•ืŸ ืคืึทืจืคืึทืœืŸ ืคึผืึทืงื™ืฅ. ื ื™ืฆืŸ ืกืคึผืขืฆื™ืขืœืข ื˜ืขื•ืช ืงืขืจืขืงืฉืึทืŸ ืงืึธื•ื“ื– ืื•ื™ืฃ ื“ื™ ืคึผืึทืงืึทื˜ ืžื“ืจื’ื” ืฆื• ืจืขื“ื•ืฆื™ืจืŸ ืกื™ื˜ื•ืึทื˜ื™ืึธื ืก ื•ื•ืึธืก ื“ืึทืจืคืŸ ืจื™ื˜ืจืึทื ืกืžื™ืกืกื™ืึธืŸ ืคื•ืŸ ืคืึทืจืคืึทืœืŸ ืคึผืึทืงืึทื˜ ื“ืึทื˜ืŸ.
  • ืงืจื™ืคึผื˜ืึธื’ืจืึทืคื™ืง ื‘ืœืึธืง ื‘ืึทื•ื ื“ืจื™ื– ื–ืขื ืขืŸ ืึทืœื™ื™ื ื“ ืžื™ื˜ QUIC ืคึผืึทืงืึทื˜ ื‘ืึทื•ื ื“ืจื™ื–, ื•ื•ืึธืก ืจืึทื“ื•ืกืึทื– ื“ื™ ืคึผืจืึทืœ ืคื•ืŸ ืคึผืึทืงืึทื˜ ืœืึธืกืกืขืก ืื•ื™ืฃ ื“ื™ืงืึธื•ื“ื™ื ื’ ื“ื™ ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ืกืึทื‘ืกืึทืงื•ื•ืึทื ื˜ ืคึผืึทืงื™ืฅ;
  • ืงื™ื™ืŸ ืคืจืื‘ืœืขืžืขืŸ ืžื™ื˜ ื‘ืœืึทืงื™ื ื’ ืคื•ืŸ ื˜ืงืคึผ ืจื™ื™;
  • ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืงืฉืจ ืื™ื“ืขื ื˜ื™ืคื™ืฆื™ืจืŸ, ื•ื•ืึธืก ืจืึทื“ื•ืกืึทื– ื“ื™ ืฆื™ื™ื˜ ืขืก ื ืขืžื˜ ืฆื• ืคืึทืจืœื™ื™ื’ืŸ ืึท ืจื™ืงืึทื ืขืงืฉืึทืŸ ืคึฟืึทืจ ืจื™ืจืขื•ื•ื“ื™ืง ืงืœื™ื™ืึทื ืฅ;
  • ืžืขื’ืœืขื›ืงื™ื™ื˜ ืคื•ืŸ ืงืึทื ืขืงื˜ื™ื ื’ ืึทื•ื•ืึทื ืกื™ืจื˜ืข ืงืึทื ื“ื–ืฉืขืกื˜ืฉืึทืŸ ืงืึธื ื˜ืจืึธืœ ืžืขืงืึทื ื™ื–ืึทืžื–;
  • ื ื™ืฆื˜ ืคึผืขืจ-ื“ื™ืจืขืงื˜ ื˜ืจื•ืคึผื•ื˜ ืคืึธืจืงืึทืกื˜ื™ื ื’ ื˜ืขืงื ื™ืงืก ืฆื• ืขื ืฉื•ืจ ืึทื– ืคึผืึทืงื™ืฅ ื–ืขื ืขืŸ ื’ืขืฉื™ืงื˜ ืžื™ื˜ ืึธืคึผื˜ื™ืžืึทืœ ืจื™ื™ืฅ, ืคึผืจืขื•ื•ืขื ื˜ื™ื ื’ ื–ื™ื™ ืคื•ืŸ ืงืึทื ื“ื–ืฉืขืกื˜ื™ื“ ืื•ืŸ ืคืึทืจืฉืึทืคืŸ ืคึผืึทืงืึทื˜ ืึธื ื•ื•ืขืจ;
  • ืคึผืขืจืกืขืคึผื˜ืึทื‘ืึทืœ ื•ื•ืื•ืงืก ืคืึธืจืฉื˜ืขืœื•ื ื’ ืื•ืŸ ื˜ืจื•ืคึผื•ื˜ ืงืึทืžืคึผืขืจื“ ืžื™ื˜ TCP. ืคึฟืึทืจ ื•ื•ื™ื“ืขื ื‘ืึทื“ื™ื ื•ื ื’ืก ืึทื–ืึท ื•ื•ื™ ื™ืึธื•ื˜ื•ื‘ืข, QUIC ืื™ื– ื’ืขื•ื•ื™ื–ืŸ ืฆื• ืจืขื“ื•ืฆื™ืจืŸ ืจื™ื‘ื•ืคืขืจื™ื ื’ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ื•ื•ืขืŸ ื•ื•ืึทื˜ืฉื™ื ื’ ื•ื•ื™ื“ื™ืืก ืžื™ื˜ 30%.
  • ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’