Компания Cloudflare реализира модул за поддръжка на HTTP/3 в NGINX

Компания Cloudflare подготви модул за осигуряване на поддръжка на протокола HTTP/3 в NGINX. Модулът е реализиран под формата на надстройка над библиотеката, развивана от Cloudflare quiche с реализиране на транспортния протокол QUIC и HTTP/3. Кодът на quiche е написан на Rust, но самият модул за NGINX е написан на C и използва библиотеката чрез динамично свързване. Разработванията отворени под лиценз BSD.

За компилиране е достатъчно да изтеглите пач към nginx 1.16 и код библиотеката quiche, след което да преработите nginx с опциите "--with-http_v3_module --with-quiche=../quiche". При компилиране поддръжката на TLS трябва да се основава на библиотеката BoringSSL ("--with-openssl=../quiche/deps/boringssl"), използването на OpenSSL все още не се поддържа. За приемане на връзки в настройките трябва да се добави директивата listen с флага "quic" (например "listen 443 quic reuseport").

В клиентския софтуер поддръжката на 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 г. от компания Google като алтернатива на връзката 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

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster