Cloudflare on ottanut käyttöön moduulin tukemaan HTTP / 3:ta NGINX:ssä

Cloudflare Company valmis moduuli tarjota tukea HTTP/3-protokollalle NGINX:ssä. Moduuli on suunniteltu lisäosaksi Cloudflaren kehittämään kirjastoon piirakka QUIC- ja HTTP/3-siirtoprotokollan käyttöönoton kanssa. Quiche-koodi on kirjoitettu rust-kielellä, mutta itse NGINX-moduuli on kirjoitettu C-kielellä ja käyttää kirjastoa dynaamisella linkityksellä. Kehitys avata BSD-lisenssillä.

Kokoaminen lataa vain läikkä nginx 1.16 ja koodi quiche-kirjastot, rakenna sitten nginx uudelleen vaihtoehdoilla "—with-http_v3_module —with-quiche=../quiche". Rakennettaessa TLS-tuen tulee perustua BoringSSL-kirjastoon (“--with-openssl=../quiche/deps/boringssl”), OpenSSL:n käyttöä ei vielä tueta. Hyväksyäksesi yhteydet, sinun on lisättävä asetuksiin kuunteluohje "quic"-lipulla (esimerkiksi "kuuntele 443 quic reuseport").

Asiakasohjelmistossa HTTP/3-tuki on jo lisätty Chrome Canaryn ja curl-apuohjelman kokeellisiin koontiversioihin. Palvelinpuolella tähän asti oli tarpeen käyttää erillistä, rajoitettua testata toteutuksia. Mahdollisuus käsitellä HTTP/3:a nginxissä yksinkertaistaa merkittävästi HTTP/3-tuella varustettujen palvelimien käyttöönottoa ja tekee uuden protokollan testaamisesta helpompaa. HTTP/3:n vakiotuen syntyminen nginxissä odotetaan 1.17.x haarassa 6-12 kuukautta.

Muista, että HTTP/3 standardoi QUIC-protokollan käytön HTTP/2:n siirtona. pöytäkirja QUIC (Quick UDP Internet Connections) on Googlen kehittämä vuodesta 2013 lähtien vaihtoehtona TCP+TLS-yhdistelmälle Webissä. Se ratkaisee TCP-yhteyksien pitkiin asennus- ja neuvotteluaikoihin liittyvät ongelmat ja eliminoi viiveitä pakettien katoamisesta tiedonsiirron aikana. QUIC on UDP-protokollan laajennus, joka tukee useiden yhteyksien multipleksointia ja tarjoaa TLS/SSL:ää vastaavia salausmenetelmiä.

Pääasiallinen ominaisuudet QUIC:

  • Korkea turvallisuus, joka muistuttaa TLS:ää (lähinnä QUIC tarjoaa mahdollisuuden käyttää TLS:ää UDP:n yli);
  • Virran eheyden valvonta, joka estää pakettien katoamisen;
  • Mahdollisuus muodostaa yhteys välittömästi (0-RTT, noin 75 %:ssa tapauksista tiedot voidaan lähettää välittömästi yhteydenmuodostuspaketin lähettämisen jälkeen) ja tarjota minimaaliset viiveet pyynnön lähettämisen ja vastauksen vastaanottamisen välillä (RTT, Round Trip Time);
  • Samaa järjestysnumeroa ei käytetä uudelleenlähetettäessä pakettia, mikä välttää epäselvyyden vastaanotettujen pakettien tunnistamisessa ja poistaa aikakatkaisut;
  • Paketin katoaminen vaikuttaa vain siihen liittyvän virran toimitukseen, eikä se pysähdy nykyisen yhteyden kautta lähetettävien rinnakkaisten virtojen datan toimittamiseen;
  • Virheenkorjausominaisuudet, jotka minimoivat kadonneiden pakettien uudelleenlähetyksestä johtuvat viiveet. Erityisten virheenkorjauskoodien käyttö pakettitasolla vähentämään tilanteita, jotka edellyttävät kadonneen pakettidatan uudelleenlähetystä.
  • Salauslohkojen rajat kohdistetaan QUIC-pakettirajojen kanssa, mikä vähentää pakettihäviöiden vaikutusta seuraavien pakettien sisällön dekoodaukseen;
  • Ei ongelmia TCP-jonojen estämisessä;
  • Tuki yhteystunnisteelle, joka lyhentää mobiiliasiakkaiden yhteyden muodostamiseen kuluvaa aikaa;
  • Mahdollisuus yhdistää kehittyneitä yhteyden ruuhkanhallintamekanismeja;
  • Käyttää suuntakohtaisia ​​suorituskyvyn ennustustekniikoita varmistaakseen, että paketit lähetetään optimaalisilla nopeuksilla, mikä estää niitä ruuhkautumasta ja aiheuttamasta pakettien katoamista;
  • Havaittava kasvu suorituskykyä ja suorituskykyä verrattuna TCP:hen. Videopalveluissa, kuten YouTubessa, QUIC:n on osoitettu vähentävän uudelleenpuskurointitoimintoja videoita katsottaessa 30 %.
  • Lähde: opennet.ru

Lisää kommentti