Cloudflare het 'n module geïmplementeer om HTTP / 3 in NGINX te ondersteun

Cloudflare Maatskappy voorberei module om ondersteuning te bied vir die HTTP/3-protokol in NGINX. Die module word gemaak in die vorm van 'n byvoeging oor die biblioteek wat in Cloudflare ontwikkel is quiche met die implementering van die vervoerprotokol QUIC en HTTP/3. Die quiche-kode is in Rust geskryf, maar die NGINX-module self is in C geskryf en kry toegang tot die biblioteek deur dinamiese koppeling te gebruik. Ontwikkelings oopmaak onder die BSD-lisensie.

Om te monteer, laai net af kol na nginx 1.16 en kode quiche-biblioteke, en herbou dan nginx met opsies "--with-http_v3_module --with-quiche=../quiche". Wanneer gebou word, moet TLS-ondersteuning gebaseer wees op die BoringSSL-biblioteek ("--with-openssl=../quiche/deps/boringssl"), die gebruik van OpenSSL word nog nie ondersteun nie. Om verbindings te aanvaar, moet jy die luisteraanwysing met die "quic"-vlag by die instellings voeg (byvoorbeeld, "luister 443 quic hergebruikverslag").

Van die kliënt se kant af is HTTP/3-ondersteuning reeds bygevoeg by eksperimentele weergawes van Chrome Canary en die krulhulpmiddel. Aan die bedienerkant was dit tot nou toe vereis om selfstandig te gebruik toets implementerings. Die vermoë om HTTP / 3 in nginx te verwerk, sal die ontplooiing van bedieners met HTTP / 3-ondersteuning aansienlik vereenvoudig en toetsimplementering van die nuwe protokol meer toeganklik maak. Die voorkoms van gereelde ondersteuning vir HTTP / 3 in nginx verwag om in die 1.17.x-tak vir 6-12 maande.

Onthou dat HTTP/3 die gebruik van die QUIC-protokol as 'n vervoer vir HTTP/2 standaardiseer. Protokol QUIC (Quick UDP Internet Connections) is sedert 2013 deur Google ontwikkel as 'n alternatief vir TCP + TLS vir die web, wat probleme oplos met lang opstel- en onderhandelingstye vir verbindings in TCP en om vertragings in die geval van pakkieverlies tydens data-oordrag uit te skakel. QUIC is 'n byvoeging tot die UDP-protokol wat multipleksing van veelvuldige verbindings ondersteun en enkripsiemetodes bied gelykstaande aan TLS/SSL.

Die belangrikste kenmerke SNEL:

  • Hoë sekuriteit, soortgelyk aan TLS (in werklikheid bied QUIC die vermoë om TLS oor UDP te gebruik);
  • Stroomintegriteitsbeheer om pakkieverlies te voorkom;
  • Die vermoë om onmiddellik 'n verbinding tot stand te bring (0-RTT, in ongeveer 75% van die gevalle, data kan onmiddellik versend word nadat 'n verbindingsopstelpakkie gestuur is) en verseker minimale vertragings tussen die stuur van 'n versoek en die ontvangs van 'n antwoord (RTT, Round Trip Time) ;
  • Moenie dieselfde volgordenommer gebruik wanneer 'n pakkie herversend word nie, wat jou toelaat om onduidelikheid te vermy in die bepaling van die ontvangde pakkies en ontslae te raak van time-outs;
  • Pakkieverlies beïnvloed slegs die aflewering van die stroom wat daarmee geassosieer word en stop nie die aflewering van data in strome wat parallel oor die huidige verbinding versend word nie;
  • Foutregstellingnutsgoed wat vertragings as gevolg van herversending van verlore pakkies verminder. Gebruik van spesiale foutkorreksiekodes op die pakkievlak om situasies te verminder wat heruitsending van verlore pakkiedata vereis.
  • Die grense van die kriptografiese blokke is in lyn met die grense van die QUIC-pakkies, wat die impak van pakkieverlies op die dekodering van die inhoud van die volgende pakkies verminder;
  • Geen probleme met die blokkering van die TCP-tou nie;
  • Verbindings-ID-ondersteuning om heraansluitingstyd vir mobiele kliënte te verminder;
  • Moontlikheid om gevorderde meganismes vir verbinding oorlading beheer te koppel;
  • Die gebruik van bandwydte-voorspellingstegnieke in elke rigting om die optimale intensiteit van die stuur van pakkies te verseker, wat voorkom dat dit in 'n toestand van opeenhoping inrol, waarin daar 'n verlies aan pakkies is;
  • Waarneembaar groei werkverrigting en deurset in vergelyking met TCP. Vir videodienste soos YouTube, is daar getoon dat QUIC video-weerkaatsingsoperasies met 30% verminder.
  • Bron: opennet.ru

Voeg 'n opmerking