Cloudflare telah mengimplementasikan modul untuk mendukung HTTP/3 di NGINX

Perusahaan Cloudflare siap modul untuk memberikan dukungan untuk protokol HTTP/3 di NGINX. Modul ini dirancang sebagai tambahan pada perpustakaan yang dikembangkan oleh Cloudflare quiche dengan penerapan protokol transport QUIC dan HTTP/3. Kode quiche ditulis dalam Rust, tetapi modul NGINX sendiri ditulis dalam C dan mengakses perpustakaan menggunakan tautan dinamis. Perkembangan membuka di bawah lisensi BSD.

Untuk merakit, cukup unduh tambalan ke nginx 1.16 dan kode perpustakaan quiche, lalu bangun kembali nginx dengan opsi “—with-http_v3_module —with-quiche=../quiche”. Saat membangun, dukungan TLS harus didasarkan pada perpustakaan BoringSSL (“--with-openssl=../quiche/deps/boringssl”), penggunaan OpenSSL belum didukung. Untuk menerima koneksi, Anda perlu menambahkan arahan mendengarkan dengan tanda “quic” ke pengaturan (misalnya, “listen 443 quic reuseport”).

Dalam perangkat lunak klien, dukungan HTTP/3 telah ditambahkan ke versi eksperimental Chrome Canary dan utilitas curl. Di sisi server, sampai saat ini perlu menggunakan yang terpisah, terbatas implementasi tes. Kemampuan untuk memproses HTTP/3 di nginx akan menyederhanakan penerapan server dengan dukungan HTTP/3 secara signifikan dan akan membuat implementasi pengujian protokol baru lebih mudah diakses. Munculnya dukungan standar untuk HTTP/3 di nginx diharapkan di cabang 1.17.x selama 6-12 bulan.

Ingatlah bahwa HTTP/3 menstandarkan penggunaan protokol QUIC sebagai transport untuk HTTP/2. Protokol QUIC (Koneksi Internet UDP Cepat) telah dikembangkan oleh Google sejak tahun 2013 sebagai alternatif kombinasi TCP+TLS untuk Web, memecahkan masalah dengan waktu penyiapan dan negosiasi yang lama untuk koneksi dalam TCP dan menghilangkan penundaan ketika paket hilang selama transfer data. QUIC adalah perpanjangan dari protokol UDP yang mendukung multiplexing beberapa koneksi dan menyediakan metode enkripsi yang setara dengan TLS/SSL.

Utama fitur CEPAT:

  • Keamanan tinggi mirip dengan TLS (pada dasarnya QUIC menyediakan kemampuan untuk menggunakan TLS melalui UDP);
  • Kontrol integritas aliran, mencegah kehilangan paket;
  • Kemampuan untuk membuat koneksi secara instan (0-RTT, pada sekitar 75% kasus, data dapat dikirim segera setelah mengirim paket pengaturan koneksi) dan memberikan penundaan minimal antara pengiriman permintaan dan penerimaan respons (RTT, Round Trip Time);
  • Tidak menggunakan nomor urut yang sama saat mengirimkan ulang sebuah paket, yang menghindari ambiguitas dalam mengidentifikasi paket yang diterima dan menghilangkan batas waktu;
  • Hilangnya suatu paket hanya mempengaruhi pengiriman aliran yang terkait dengannya dan tidak menghentikan pengiriman data dalam aliran paralel yang dikirimkan melalui koneksi saat ini;
  • Fitur koreksi kesalahan yang meminimalkan penundaan akibat pengiriman ulang paket yang hilang. Penggunaan kode koreksi kesalahan khusus pada tingkat paket untuk mengurangi situasi yang memerlukan transmisi ulang data paket yang hilang.
  • Batas-batas blok kriptografi diselaraskan dengan batas-batas paket QUIC, yang mengurangi dampak kehilangan paket pada decoding isi paket berikutnya;
  • Tidak ada masalah dengan pemblokiran antrian TCP;
  • Dukungan untuk pengidentifikasi koneksi, yang mengurangi waktu yang diperlukan untuk membuat koneksi ulang untuk klien seluler;
  • Kemungkinan menghubungkan mekanisme kontrol kelebihan koneksi tingkat lanjut;
  • Menggunakan teknik prediksi throughput per arah untuk memastikan tingkat penerusan paket yang optimal, mencegah kemacetan dan kehilangan paket;
  • Jelas pertumbuhan kinerja dan throughput dibandingkan dengan TCP. Untuk layanan video seperti YouTube, QUIC telah terbukti mengurangi operasi rebuffering saat menonton video sebesar 30%.
  • Sumber: opennet.ru

Tambah komentar