Compania Cloudflare për të siguruar mbështetje për protokollin HTTP/3 në NGINX. Moduli është realizuar si një shtesë mbi bibliotekën që zhvillohet në Cloudflare me implementimin e protokollit të transportit QUIC dhe HTTP/3. Kodi quiche është shkruar në gjuhën Rust, por vetë moduli për NGINX është shkruar në gjuhën C dhe lidhet me bibliotekën përmes lidhjes dinamike. Punimet nën licencën BSD.
PĂ«r ndĂ«rtimin e tij, mjafton tĂ« shkarkoni nĂ« nginx 1.16 dhe bibliotekĂ«n quiche, pas tĂ« cilit duhet tĂ« r builds nginx me opsionet "âwith-http_v3_module âwith-quiche=../quiche". GjatĂ« ndĂ«rtimit, mbĂ«shtetje TLS duhet tĂ« bazohet nĂ« bibliotekĂ«n BoringSSL ("âwith-openssl=../quiche/deps/boringssl"), pĂ«rdorimi i OpenSSL ende nuk mbĂ«shtetet. PĂ«r tĂ« pranuar lidhjet, duhet tĂ« shtoni direktivĂ«n listen me flagun "quic" (pĂ«r shembull, "listen 443 quic reuseport").
Nga programi klient, mbështetja për HTTP/3 është tashmë e shtuar në ndërtimet eksperimantale të Chrome Canary dhe utilitarit curl. Nga ana e serverit, ende është kërkuar të përdoren realizime të kufizuara për . Mundësia për përpunimin e HTTP/3 në nginx do të lehtësojë në mënyrë të konsiderueshme shpërndarjen e serverëve me mbështetje për HTTP/3 dhe do ta bëjë më të lehtë testimin e implementimit të protokollit të ri. Shfaqja e mbështetjes së zakonshme për HTTP/3 në nginx në degën 1.17.x brenda 6-12 muajve.
Kujtojmë se HTTP/3 e standardizon përdorimin e protokollit QUIC si transport për HTTP/2. Protokolli (Quick UDP Internet Connections) është duke u zhvilluar nga kompania Google që nga viti 2013 si një alternativë për kombinimin e TCP+TLS për Web, duke adresuar problemet me kohën e gjatë të lidhjes dhe pajtimit në TCP dhe duke eliminuar vonesat gjatë humbjes së pakove gjatë procesit të transferimit të të dhënave. QUIC është një shtesë mbi protokollin UDP, e cila mbështet shumë lidhje dhe ofron metoda enkriptimi ekvivalente me TLS/SSL.
Ndryshimet kryesore QUIC:
- Siguri e lartë, e ngjashme me TLS (në thelb, QUIC ofron mundësinë e përdorimit të TLS mbi UDP);
- Kontrolli i integritetit të rrjedhës, duke parandaluar humbjen e paketave;
- Mundësia për të vendosur menjëherë një lidhje (0-RTT, në rreth 75% të rasteve, të dhënat mund të transmetohen menjëherë pas dërgimit të paketës së vendosjes së lidhjes) dhe të sigurojë vonesa minimale midis dërgimit të kërkesës dhe marrjes së përgjigjes (RTT, Round Trip Time);
- Mos përdorimi i numrit të njëjtë të sekuencës në ripërsëritjen e paketës, duke shmangur kështu dyshimet në përcaktimin e paketave të pranuara dhe duke eliminuar vonesat;
- humbja e paketave ndikon vetëm në dërgesën e lidhur me grupe të caktuara dhe nuk ndalon dërgimin e të dhënave në grupe paralelisht të transferuara përmes këtij lidhjeje;
- Mjetet për korrektionin e gabimeve, të cilat minimizojnë vonesat për shkak të ripërsëritjes së paketimeve të humbura. Përdorimi i kodeve speciale të korrekcioni të gabimeve në nivelin e paketës për të reduktuar situatat që kërkojnë ripërsëritjen e të dhënave të paketave të humbura.
- Kufijtë e blloqeve kriptografike janë rreshtuar me kufijtë e pakove QUIC, duke zvogëluar ndarjen e humbjeve të pakove në dekodimin e përmbajtjes së pakove të ardhshme;
- Mungesa e problemeve me bllokimin e radhës TCP;
- Mbështetje për identifikimin e lidhjes, që lejon të shkurtohet koha e vendosjes së lidhjes së re për klientët e lëvizshëm;
- Aftësia për të lidhur mekanizma të avancuar të kontrollit të mbingarkesës së lidhjes;
- Përdorimi i teknikave të parashikimit të kapacitetit në çdo drejtim për të garantuar intensitetin optimal të dërgimit të paketeve, duke parandaluar rënien në një gjendje mbipopullimi, ku vërehet humbja e paketeve;
- Dukshëm e performancës dhe kapacitetit krahasuar me TCP. Për shërbimet video, si YouTube, aplikimi i QUIC ka treguar një reduktim të operacioneve të rifillimit gjatë shikimit të videove me 30%.
Burimi: opennet.ru
