Cloudflare NGINX жүйесінде HTTP/3 қолдау модулін енгізді

Cloudflare компаниясы дайындалған модуль NGINX жүйесінде HTTP/3 протоколына қолдау көрсету үшін. Модуль Cloudflare әзірлеген кітапханаға қосымша ретінде жасалған Квиз QUIC және HTTP/3 тасымалдау протоколын енгізумен. Киш коды Rust тілінде жазылған, бірақ NGINX модулінің өзі C тілінде жазылған және динамикалық байланыстыру арқылы кітапханаға қол жеткізеді. Әзірлеулер ашық BSD лицензиясы бойынша.

Құрастыру үшін жай жүктеп алыңыз патч nginx 1.16 және код киш кітапханаларын орнатыңыз, содан кейін nginx файлын “—with-http_v3_module —with-quiche=../quiche” опцияларымен қайта жасаңыз. Құру кезінде TLS қолдауы BoringSSL кітапханасына негізделуі керек («--with-openssl=../quiche/deps/boringssl»), OpenSSL пайдалануға әлі қолдау көрсетілмейді. Қосылымдарды қабылдау үшін параметрлерге «quic» жалаушасы бар тыңдау директивасын қосу керек (мысалы, «443 quic қайта пайдалану есебін тыңдау»).

Клиенттік бағдарламалық құралда HTTP/3 қолдауы Chrome Canary және curl утилитасының тәжірибелік жинақтарына қосылып қойған. Сервер жағында осы уақытқа дейін бөлек, шектеулі пайдалану қажет болды сынақтарды жүзеге асыру. Nginx жүйесінде HTTP/3 өңдеу мүмкіндігі HTTP/3 қолдауы бар серверлерді орналастыруды айтарлықтай жеңілдетеді және жаңа протоколды сынақтан өткізуді қол жетімді етеді. Nginx-те HTTP/3 стандартты қолдауының пайда болуы күтілуде 1.17.x филиалында 6-12 айға дейін.

Еске салайық, HTTP/3 QUIC протоколын HTTP/2 үшін тасымалдау ретінде пайдалануды стандарттайды. Протокол QUIC (Quick UDP Internet Connections) 2013 жылдан бері Google компаниясымен Интернетке арналған TCP+TLS тіркесіміне балама ретінде әзірленген, TCP жүйесіндегі қосылымдар үшін ұзақ орнату және келіссөздер уақыттары мәселелерін шешеді және деректерді тасымалдау кезінде пакеттер жоғалған кездегі кідірістерді болдырмайды. QUIC — бірнеше қосылымдарды мультиплекстеуді қолдайтын және TLS/SSL эквивалентті шифрлау әдістерін қамтамасыз ететін UDP протоколының кеңейтімі.

басты әсіресе ТЕЗ:

  • TLS-ке ұқсас жоғары қауіпсіздік (негізінен QUIC UDP арқылы TLS пайдалану мүмкіндігін береді);
  • Ағынның тұтастығын бақылау, пакеттердің жоғалуын болдырмау;
  • Қосылымды лезде орнату мүмкіндігі (0-RTT, шамамен 75% жағдайда деректерді қосылымды орнату пакетін жібергеннен кейін бірден беруге болады) және сұрауды жіберу мен жауап алу арасындағы ең аз кідірістерді қамтамасыз ету (RTT, бару уақыты);
  • Пакетті қайта жіберу кезінде бір реттік нөмірді пайдаланбау, бұл қабылданған пакеттерді анықтауда екіұштылықты болдырмайды және күту уақытынан құтылады;
  • Пакеттің жоғалуы онымен байланысты ағынның жеткізілуіне ғана әсер етеді және ағымдағы қосылым арқылы берілетін параллельді ағындардағы мәліметтерді жеткізуді тоқтатпайды;
  • Жоғалған пакеттерді қайта жіберуге байланысты кідірістерді азайтатын қателерді түзету мүмкіндіктері. Жоғалған пакеттік деректерді қайта жіберуді қажет ететін жағдайларды азайту үшін пакет деңгейінде арнайы қателерді түзету кодтарын пайдалану.
  • Криптографиялық блок шекаралары QUIC пакет шекараларымен сәйкестендіріледі, бұл келесі пакеттердің мазмұнын декодтау кезінде десте жоғалуларының әсерін азайтады;
  • TCP кезегін блоктауда проблемалар жоқ;
  • Ұялы клиенттер үшін қайта қосылуды орнатуға кететін уақытты азайтатын қосылым идентификаторын қолдау;
  • Жетілдірілген қосылымның кептелуін бақылау механизмдерін қосу мүмкіндігі;
  • Пакеттердің оңтайлы жылдамдықпен жіберілуін қамтамасыз ету, олардың кептелуіне және пакеттердің жоғалуына жол бермеу үшін әр бағыттағы өткізу қабілеттілігін болжау әдістерін пайдаланады;
  • Көрінетін ұлғайту TCP-мен салыстырғанда өнімділік пен өткізу қабілеттілігі. YouTube сияқты бейне қызметтері үшін QUIC бейнелерді көргенде кері қайтару әрекеттерін 30%-ға азайтатыны көрсетілген.
  • Ақпарат көзі: opennet.ru

пікір қалдыру