Cloudflare-ը NGINX-ում HTTP / 3-ին աջակցելու մոդուլ է ներդրել

Cloudflare ընկերություն պատրաստված մոդուլը NGINX-ում HTTP/3 արձանագրությանը աջակցություն տրամադրելու համար: Մոդուլը նախագծված է որպես Cloudflare-ի կողմից մշակված գրադարանի հավելում Quiche QUIC և HTTP/3 տրանսպորտային արձանագրության ներդրմամբ։ Քիչի կոդը գրված է Rust-ով, բայց NGINX մոդուլն ինքնին գրված է C-ով և մուտք է գործում գրադարան՝ օգտագործելով դինամիկ կապ: Զարգացումներ բացել BSD լիցենզիայի ներքո:

Հավաքելու համար պարզապես ներբեռնեք patch դեպի nginx 1.16 և կոդը quiche գրադարանները, ապա վերակառուցեք nginx-ը «—with-http_v3_module —with-quiche=../quiche» տարբերակներով։ Կառուցելիս TLS աջակցությունը պետք է հիմնված լինի BoringSSL գրադարանի վրա (“--with-openssl=../quiche/deps/boringssl”), OpenSSL-ի օգտագործումը դեռ չի աջակցվում: Միացումներ ընդունելու համար դուք պետք է կարգավորումներին ավելացնեք «quic» դրոշակով լսելու հրահանգը (օրինակ՝ «listen 443 quic reuseport»):

Հաճախորդի ծրագրակազմում HTTP/3-ի աջակցությունն արդեն ավելացվել է Chrome Canary-ի փորձարարական կառուցվածքներին և curl utility-ին: Սերվերի կողմից, մինչ այժմ անհրաժեշտ էր օգտագործել առանձին, սահմանափակ թեստային իրականացումներ. HTTP/3-ը nginx-ում մշակելու հնարավորությունը զգալիորեն կհեշտացնի HTTP/3 աջակցությամբ սերվերների տեղակայումը և ավելի մատչելի կդարձնի նոր արձանագրության թեստային իրականացումը։ HTTP/3-ի ստանդարտ աջակցության առաջացումը nginx-ում սպասվում է 1.17.x մասնաճյուղում 6-12 ամսով։

Հիշեցնենք, որ HTTP/3-ը ստանդարտացնում է QUIC արձանագրության օգտագործումը որպես HTTP/2-ի փոխադրում: Արձանագրություն QUIC (Quick UDP Internet Connections) մշակվել է Google-ի կողմից 2013 թվականից՝ որպես համացանցի համար TCP+TLS համակցության այլընտրանք՝ լուծելով TCP-ում կապերի երկար կարգավորումների և բանակցությունների ժամանակի հետ կապված խնդիրները և վերացնելով տվյալների փոխանցման ընթացքում փաթեթների կորստի ժամանակ ձգձգումները: QUIC-ը UDP արձանագրության ընդլայնումն է, որն աջակցում է բազմաթիվ կապերի մուլտիպլեքսավորմանը և ապահովում է գաղտնագրման մեթոդներ, որոնք համարժեք են TLS/SSL-ին:

Հիմնական առանձնահատկությունները QUIC:

  • Բարձր անվտանգություն, որը նման է TLS-ին (ըստ էության, QUIC-ն ապահովում է TLS-ի օգտագործման հնարավորությունը UDP-ի միջոցով);
  • Հոսքի ամբողջականության վերահսկում, փաթեթների կորստի կանխարգելում;
  • Անմիջապես կապ հաստատելու հնարավորություն (0-RTT, դեպքերի մոտավորապես 75%-ում տվյալները կարող են փոխանցվել կապի կարգավորումների փաթեթն ուղարկելուց անմիջապես հետո) և ապահովել հարցում ուղարկելու և պատասխան ստանալու միջև նվազագույն ուշացումներ (RTT, Կլոր ուղևորության ժամանակ);
  • Միևնույն հաջորդական համարը չօգտագործել փաթեթը վերահաղորդելիս, ինչը խուսափում է ստացված փաթեթների նույնականացման հարցում անորոշությունից և ազատվում է ժամանակի ընդմիջումից.
  • Փաթեթի կորուստը ազդում է միայն դրա հետ կապված հոսքի առաքման վրա և չի դադարեցնում տվյալների առաքումը ընթացիկ կապի միջոցով փոխանցվող զուգահեռ հոսքերով.
  • Սխալների ուղղման առանձնահատկություններ, որոնք նվազագույնի են հասցնում կորցրած փաթեթների վերահաղորդման պատճառով հետաձգումները: Փաթեթի մակարդակում սխալների ուղղման հատուկ կոդերի օգտագործումը՝ կորցրած փաթեթային տվյալների վերահաղորդում պահանջող իրավիճակները նվազեցնելու համար:
  • Կրիպտոգրաֆիկ բլոկի սահմանները համահունչ են QUIC փաթեթների սահմաններին, ինչը նվազեցնում է փաթեթների կորուստների ազդեցությունը հետագա փաթեթների բովանդակության վերծանման վրա.
  • TCP հերթի արգելափակման հետ կապված խնդիրներ չկան.
  • Կապի նույնացուցիչի աջակցություն, որը նվազեցնում է շարժական հաճախորդների համար վերամիացում հաստատելու ժամանակը.
  • Միացման գերբեռնվածության վերահսկման առաջադեմ մեխանիզմների միացման հնարավորություն;
  • Օգտագործում է յուրաքանչյուր ուղղության թողունակության կանխատեսման տեխնիկան՝ ապահովելու փաթեթների վերահասցեավորման օպտիմալ տեմպերը՝ կանխելով գերբեռնվածությունը և փաթեթների կորուստը.
  • Ըմբռնելի աճը կատարումը և թողունակությունը՝ համեմատած TCP-ի հետ: Ցույց է տրվել, որ վիդեո ծառայությունների համար, ինչպիսին է YouTube-ը, QUIC-ը 30%-ով նվազեցնում է ռեբուֆերացման գործողությունները տեսանյութեր դիտելիս:
  • Source: opennet.ru

Добавить комментарий