Syarikat Cloudflare untuk menyediakan sokongan untuk protokol HTTP/3 dalam NGINX. Modul ini direka bentuk sebagai tambahan kepada perpustakaan yang dibangunkan oleh Cloudflare dengan pelaksanaan protokol pengangkutan QUIC dan HTTP/3. Kod quiche ditulis dalam Rust, tetapi modul NGINX itu sendiri ditulis dalam C dan mengakses perpustakaan menggunakan pautan dinamik. Perkembangan di bawah lesen BSD.
Untuk memasang, muat turun sahaja ke nginx 1.16 dan perpustakaan quiche, kemudian bina semula nginx dengan pilihan “—with-http_v3_module —with-quiche=../quiche”. Semasa membina, sokongan TLS hendaklah berdasarkan pustaka BoringSSL (“--with-openssl=../quiche/deps/boringssl”), penggunaan OpenSSL belum lagi disokong. Untuk menerima sambungan, anda perlu menambah arahan dengar dengan bendera "quic" pada tetapan (contohnya, "dengar 443 quic reuseport").
Dalam perisian pelanggan, sokongan HTTP/3 telah ditambahkan pada binaan percubaan Chrome Canary dan utiliti curl. Di sisi pelayan, sehingga kini perlu menggunakan berasingan, terhad . Keupayaan untuk memproses HTTP/3 dalam nginx akan memudahkan penggunaan pelayan dengan sokongan HTTP/3 dengan ketara dan akan menjadikan pelaksanaan ujian protokol baharu lebih mudah diakses. Kemunculan sokongan standard untuk HTTP/3 dalam nginx di cawangan 1.17.x selama 6-12 bulan.
Ingat bahawa HTTP/3 menyeragamkan penggunaan protokol QUIC sebagai pengangkutan untuk HTTP/2. Protokol (Sambungan Internet UDP Pantas) telah dibangunkan oleh Google sejak 2013 sebagai alternatif kepada gabungan TCP+TLS untuk Web, menyelesaikan masalah dengan persediaan yang panjang dan masa rundingan untuk sambungan dalam TCP dan menghapuskan kelewatan apabila paket hilang semasa pemindahan data. QUIC ialah lanjutan daripada protokol UDP yang menyokong pemultipleksan berbilang sambungan dan menyediakan kaedah penyulitan yang setara dengan TLS/SSL.
Utama CEPAT:
- Keselamatan tinggi, serupa dengan TLS (sebenarnya, QUIC menyediakan keupayaan untuk menggunakan TLS melalui UDP);
- Kawalan integriti aliran untuk mengelakkan kehilangan paket;
- Keupayaan untuk mewujudkan sambungan serta-merta (0-RTT, dalam kira-kira 75% kes, data boleh dihantar serta-merta selepas menghantar paket persediaan sambungan) dan memastikan kelewatan minimum antara menghantar permintaan dan menerima respons (RTT, Masa Pergi Balik) ;
- Jangan gunakan nombor urutan yang sama semasa menghantar semula paket, yang membolehkan anda mengelakkan kekaburan dalam menentukan paket yang diterima dan menyingkirkan tamat masa;
- Kehilangan paket hanya menjejaskan penghantaran aliran yang berkaitan dengannya dan tidak menghentikan penghantaran data dalam aliran yang dihantar selari melalui sambungan semasa;
- Alat pembetulan ralat yang meminimumkan kelewatan akibat penghantaran semula paket yang hilang. Penggunaan kod pembetulan ralat khas pada peringkat paket untuk mengurangkan situasi yang memerlukan penghantaran semula data paket yang hilang.
- Sempadan blok kriptografi diselaraskan dengan sempadan paket QUIC, yang mengurangkan kesan kehilangan paket pada penyahkodan kandungan paket berikutnya;
- Tiada masalah dengan menyekat baris gilir TCP;
- Sokongan ID Sambungan untuk mengurangkan masa penyambungan semula untuk pelanggan mudah alih;
- Kemungkinan untuk menyambungkan mekanisme lanjutan untuk kawalan beban lampau sambungan;
- Menggunakan teknik ramalan jalur lebar dalam setiap arah untuk memastikan keamatan optimum penghantaran paket, menghalang rolling ke dalam keadaan kesesakan, di mana terdapat kehilangan paket;
- Boleh dilihat prestasi dan daya pengeluaran berbanding dengan TCP. Untuk perkhidmatan video seperti YouTube, QUIC telah ditunjukkan dapat mengurangkan operasi penimbalan semula video sebanyak 30%.
Sumber: opennet.ru
