Cloudflare ji bo piştgiriya HTTP/3 di NGINX de modulek bicîh kiriye

Şirketa Cloudflare amade kirin module ji bo protokola HTTP/3 di NGINX de piştgirî peyda bikin. Module wekî pêvekek pirtûkxaneya ku ji hêla Cloudflare ve hatî pêşve xistin hatî çêkirin quiche bi pêkanîna protokola veguhastinê ya QUIC û HTTP/3. Koda quiche bi Rust ve hatî nivîsandin, lê modula NGINX bixwe bi C-yê hatî nivîsandin û bi karanîna girêdana dînamîkî digihîje pirtûkxaneyê. Pêşketinên vekirî di bin lîsansa BSD de.

Ji bo komkirinê, tenê dakêşin pîvaz ji nginx 1.16 û koda pirtûkxaneyên quiche, paşê nginx bi vebijarkên "-with-http_v3_module -with-quiche=../quiche" ji nû ve ava bikin. Dema ku çêdibe, divê piştgirîya TLS li ser bingeha pirtûkxaneya BoringSSL ("--with-openssl=../quiche/deps/boringssl") be, bikaranîna OpenSSL hîn jî nayê piştgirî kirin. Ji bo pejirandina girêdanan, hûn hewce ne ku dîrektîfa guhdarîkirinê ya bi ala "quic" li mîhengan zêde bikin (mînak, "guhdarî 443 quic reuseport").

Di nermalava xerîdar de, piştgiriya HTTP/3 jixwe li avahiyên ceribandinê yên Chrome Canary û kargêriya curl hatiye zêdekirin. Li alîyê serverê, heya nuha hewce bû ku ji hev veqetandî, sînorkirî bikar bînin pêkanînên testê. Qabiliyeta pêvajoya HTTP/3 di nginx de dê bicîhkirina serverên bi piştgirîya HTTP/3 bi girîngî hêsan bike û dê pêkanîna ceribandina protokola nû hêsantir bike. Di nginx de derketina piştgiriya standard ji bo HTTP/3 tê texmîn kirin di şaxê 1.17.x de ji bo 6-12 mehan.

Bînin bîra xwe ku HTTP/3 karanîna protokola QUIC wekî veguheztina HTTP/2 standardîze dike. Protokol QUIC (Têkiliyên Înternetê yên Zû UDP) ji sala 2013-an vir ve ji hêla Google ve wekî alternatîfek ji kombînasyona TCP+TLS ya ji bo Webê ve hatî pêşve xistin, pirsgirêkên bi sazkirina dirêj û demên muzakereyê yên ji bo girêdanên di TCP-ê de çareser dike û derengmayînên dema ku pakêt di dema veguheztina daneyê de winda dibin ji holê radike. QUIC pêvekek protokola UDP-yê ye ku pirrengkirina girêdanên pirjimar piştgirî dike û rêbazên şîfrekirinê yên wekî TLS/SSL peyda dike.

sereke taybetmendiyên QUIC:

  • Ewlekariya bilind a mîna TLS (bi bingehîn QUIC şiyana karanîna TLS li ser UDP peyda dike);
  • Kontrola yekbûna herikînê, pêşîgirtina windabûna pakêtê;
  • Hêza sazkirina tavilê têkiliyek (0-RTT, bi qasî 75% bûyeran de dane dikare tavilê piştî şandina pakêta sazkirina girêdanê were veguheztin) û di navbera şandina daxwazek û wergirtina bersivê de derengiya hindiktirîn peyda bike (RTT, Dema Rêwîtiya Dor);
  • Dema ku pakêtek ji nû ve veguhezîne heman jimareya rêzê bikar neynin, ev yek ji nezelaliyê di naskirina pakêtên wergirtî de diparêze û ji dema derbasbûnê xilas dibe;
  • Wendakirina pakêtek tenê bandorê li radestkirina çemê ku pê re têkildar e dike û radestkirina daneyan di çemên paralel ên ku bi pêwendiya heyî ve têne veguheztin rawestîne;
  • Taybetmendiyên rastkirina xeletiyê ku derengiyên ji ber veguheztina pakêtên winda kêm dikin. Bikaranîna kodên rastkirina xeletiya taybetî di asta pakêtê de ji bo kêmkirina rewşên ku ji nû ve veguheztina daneya pakêtê ya windakirî hewce dike.
  • Sînorên blokên krîptografîk bi sînorên pakêtê yên QUIC re têne hev kirin, ku bandora windabûna pakêtê li ser deşîfrekirina naveroka pakêtên paşîn kêm dike;
  • Pirsgirêkên astengkirina rêza TCP-ê tune;
  • Piştgiriya ji bo nasnavê girêdanê, ku dema ku hewce dike ku ji bo xerîdarên mobîl ji nû ve girêdanê saz bike kêm dike;
  • Ihtîmala girêdana mekanîzmayên kontrolkirina tevliheviya pêwendiya pêşkeftî;
  • Teknolojiyên pêşbînkirina rêwerziya per-rêveberiyê bikar tîne da ku pê ewle bibe ku pakêt bi rêjeyên çêtirîn têne şandin, pêşî li qelişîna wan û sedema windabûna pakêtê digire;
  • Lê haytê mezinbûnî performansa û berbi li gorî TCP. Ji bo karûbarên vîdyoyê yên wekî YouTube, QUIC hate destnîşan kirin ku dema ku vîdyoyan temaşe dike 30% operasyonên rebufferkirinê kêm dike.
  • Source: opennet.ru

Add a comment