Cloudflare telah melaksanakan modul untuk menyokong HTTP / 3 dalam NGINX

Syarikat Cloudflare disediakan modul untuk menyediakan sokongan untuk protokol HTTP/3 dalam NGINX. Modul ini direka bentuk sebagai tambahan kepada perpustakaan yang dibangunkan oleh Cloudflare quiche 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 buka di bawah lesen BSD.

Untuk memasang, muat turun sahaja tampalan ke nginx 1.16 dan kod 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 pelaksanaan ujian. 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 dijangka untuk di cawangan 1.17.x selama 6-12 bulan.

Ingat bahawa HTTP/3 menyeragamkan penggunaan protokol QUIC sebagai pengangkutan untuk HTTP/2. Protokol QUIC (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 ciri- 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 pertumbuhan 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

Tambah komen