Kompania Cloudflare për të siguruar mbështetje për protokollin HTTP/3 në NGINX. Moduli është realizuar si një shtesë mbi bibliotekën që po zhvillohet në Cloudflare me realizimin 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 i qaset bibliotekës përmes lidhjes dinamike. Arritjet në bazë të licencës BSD.
Për mbledhjen mjafton të shkarkoni në nginx 1.16 dhe bibliotekën quiche, pas së cilës duhen riçmontuar nginx me opsionet "—with-http_v3_module —with-quiche=../quiche". Gjatë mbledhjes, mbështetja TLS duhet të bazohet në bibliotekën BoringSSL ("—with-openssl=../quiche/deps/boringssl"), përdorimi i OpenSSL akoma nuk është mbështetur. Për të pranuar lidhjet, në konfigurim duhet të shtohet direktiva listen me flamurin "quic" (për shembull, "listen 443 quic reuseport").
Në softuerin klient, mbështetja për HTTP/3 tashmë është shtuar në nënversionet eksperimentale të Chrome Canary dhe në utilitarin curl. Në anën e serverit, akoma kërkohej të përdoren implementime testuese të kufizuara . Mundësia për përpunimin e HTTP/3 në nginx do të lejojë ndjeshëm thjeshtimin e vendosjes së serverëve me mbështetje HTTP/3 dhe do të bëj më të lehtë implementimin e testueshëm të protokollit të ri. Shfaqja e mbështetjes standarde për HTTP/3 në nginx në degën 1.17.x brenda 6-12 muajve.
Le të përkujtojmë se HTTP/3 standardizon përdorimin e protokollit QUIC si transport për HTTP/2. Protokolli (Quick UDP Internet Connections) që nga viti 2013 është zhvilluar nga kompania Google si alternativë ndaj kombinimit TCP+TLS për Web-in, duke zgjidhur problemet me kohën e gjatë të vendosjes dhe negociatës së lidhjeve në TCP dhe duke eliminuar vonesat gjatë humbjes së paketave gjatë transmetimit të të dhënave. QUIC është një shtesë mbi protokollin UDP, duke mbështetur shumëzimin e disa lidhjeve dhe duke siguruar metoda enkriptimi, ekuivalente me TLS/SSL.
Main QUIC:
- Siguri e lartë, e ngjashme me TLS (në thelb QUIC ofron mundësinë e përdorimit të TLS mbi UDP);
- Kontrolli mbi integritetin e rrjedhës, që parandalon humbjen e pacakove;
- Mundësia për të vendosur një lidhje menjëherë (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ë rendit për dërgimin përsëri të paketës, që lejon shmangien e dyshimeve në përcaktimin e paketave të marra dhe eliminimin e kohëve të pritjes;
- Humorja e paketës ndikon vetëm në dërgesën e fluksit lidhur me të dhe nuk ndalon dërgimin e të dhënave në flukset që dërgohen paralelisht nëpërmjet lidhjes aktuale;
- Mjetet për korrigjimin e gabimeve, që minimizojnë vonesat për shkak të dërgimit përsëritës të paketave të humbura. Përdorimi i kodeve speciale për korrigjimin e gabimeve në nivelin e paketës për të reduktuar situatat që kërkojnë dërgim përsëritës të të dhënave të paketës së humbur.
- Kufijtë e bllokave kriptografikë janë përputhur me kufijtë e paketave QUIC, duke zvogëluar ndikimin e humbjeve të paketave në dekodimin e përmbajtjes së paketave të ardhshme;
- Mungesa e problemeve me bllokimin e radhës TCP;
- Mbështetje për identifikuesin e lidhjes, që lejon zvogëlimin e kohës për vendosjen e lidhjes përsëritëse për klientët mobilë;
- Mundësia e lidhjes së mekanizmave të zgjeruar të kontrollit të ngarkesës së lidhjes;
- Përdorimi i teknikave të parashikimit të kapacitetit në çdo drejtim për të siguruar intensitetin optimal të dërgimit të paketave, duke parandaluar rënien në një gjendje ngarkese, ku humbjet e paketave vërehen;
- Rritje të dukshme performancës dhe kapacitetit, në krahasim me TCP. Për shërbimet video, si YouTube, përdorimi i QUIC ka treguar një ulje të operacioneve të ripërtypjes gjatë shikimit të videove me 30%.
Burimi: opennet.ru
