Quick UDP Internet Connection (QUIC) adalah protokol jaringan yang dapat mempercepat akses klien, terutama dalam skenario dengan koneksi lemah atau sering beralih antara Wi-Fi dan jaringan seluler. QUIC mendukung multiplexing tanpa rekoneksi, mengurangi latensi, dan meningkatkan keamanan transfer data.
Pengenalan QUIC
QUIC menawarkan tingkat keamanan setara dengan SSL dan mendukung multiplexing koneksi. Dalam kondisi koneksi lemah, latensi tinggi, atau tingkat kehilangan paket tinggi, QUIC memastikan layanan tetap tersedia. Protokol ini juga mendukung berbagai algoritma pengendalian kemacetan di lapisan aplikasi tanpa bergantung pada sistem operasi atau kernel. Dibandingkan dengan TCP, QUIC lebih fleksibel dan cocok digunakan ketika optimisasi TCP mengalami hambatan.
Seiring meningkatnya popularitas video pendek dan layanan streaming langsung, platform streaming membutuhkan bandwidth tinggi dan latensi rendah untuk memenuhi persyaratan bisnis. QUIC membantu meminimalkan latensi, mengurangi buffering video, serta mempercepat pengiriman konten audio dan video secara aman.
Jenis protokol QUIC yang didukung
Application Load Balancer (ALB) mendukung gQUIC dan iQUIC. HTTP/3 adalah protokol lapisan aplikasi berbasis iQUIC. HTTP/3 menggunakan iQUIC untuk menerapkan multiplexing, pengendalian kemacetan, deteksi kehilangan paket, dan retransmisi. HTTP/3 mendukung pembentukan koneksi lebih cepat serta menghilangkan masalah head-of-line blocking.
ALB mendukung versi gQUIC Q46, Q43, dan Q39 serta HTTP/3 (h3).
Cara negosiasi versi HTTP bekerja
Jika pendengar HTTPS memiliki QUIC upgrade diaktifkan, ALB mengiklankan HTTP/3 dan gQUIC kepada klien. HTTP/3 memiliki prioritas lebih tinggi daripada gQUIC. Oleh karena itu, klien yang menggunakan HTTP/3 diprioritaskan saat membentuk koneksi dengan ALB.
Jika klien gagal membentuk koneksi dengan ALB melalui HTTP/3, HTTPS atau HTTP/2 digunakan sebagai alternatif.
Jika klien membentuk koneksi dengan ALB melalui HTTP/3, klien menggunakan cookie terkait HTTP/3.
ALB dapat memulai koneksi ke klien terlepas dari apakah peningkatan QUIC diaktifkan.
ALB menggunakan header respons HTTP Alt-Svc untuk mengiklankan protokol yang didukung kepada klien. Contoh kode berikut memberikan ilustrasi:
Alt-Svc : h3=":$quic_port"; ma=3600,quic=":$quic_port"; v="46,43,39"; ma=3600Setelah Anda mengaktifkan peningkatan QUIC untuk pendengar, klien mungkin menggunakan HTTPS atau HTTP/2 sebagai pengganti HTTP/3 dalam skenario berikut:
Versi HTTP/3 yang didukung oleh klien tidak kompatibel dengan versi HTTP/3 yang didukung oleh ALB.
ALB mendeteksi kemacetan lalu lintas UDP atau pembatasan laju yang mencegah HTTP/3 berfungsi.
Klien tidak mendukung HTTP/3 sehingga tidak memulai negosiasi HTTP/3.
Persyaratan klien
Jika menggunakan Google Chrome, Anda dapat langsung memulai permintaan QUIC ke ALB.
Sebelum menggunakan Google Chrome untuk mengakses pendengar QUIC, pastikan browser mendukung versi QUIC yang digunakan oleh ALB.
Versi gQUIC terbaru yang didukung oleh ALB adalah Q46, yang kompatibel dengan Google Chrome 74 hingga 81.
Versi HTTP/3 terbaru yang didukung oleh ALB adalah h3, yang kompatibel dengan Google Chrome 87 dan seterusnya.
Jika menggunakan klien lain, seperti aplikasi yang dikembangkan sendiri, klien tersebut harus diintegrasikan dengan pustaka jaringan yang mendukung QUIC, seperti LSQUIC Client, Cronet, ngtcp2, dan pustaka quiche.
Skenario contoh
Saat menggunakan Google Chrome untuk mengakses ALB, ALB meneruskan permintaan ke server backend berdasarkan nama domain example.com yang terkait dengan pendengar. Pendengar yang digunakan untuk mendistribusikan permintaan bervariasi dalam skenario berikut:
Jika pendengar HTTPS dan pendengar QUIC dikonfigurasikan, pendengar QUIC digunakan. Jika Anda mengakses
example.comdari browser, pendengar QUIC dari ALB mendistribusikan permintaan ke grup server backend default RS1.Jika pendengar QUIC tidak tersedia, pendengar HTTPS secara otomatis mengambil alih. Jika Anda mengakses
example.comdari browser, pendengar HTTPS dari ALB mendistribusikan permintaan ke grup server backend default RS1.
Prasyarat
Instansi ALB telah dibuat. Untuk informasi lebih lanjut, lihat Buat Instansi ALB.
Grup server bernama RS1 telah dibuat. Untuk informasi lebih lanjut, lihat Buat dan Kelola Grup Server.
Instansi Elastic Compute Service (ECS) bernama ECS01 telah ditambahkan ke grup server RS1. Layanan video NGINX dihosting di ECS01.
Sertifikat SSL telah diterapkan pada instansi ALB. Sertifikat tersebut terkait dengan nama domain
example.com.
Langkah 1: Buat pendengar QUIC
Masuk ke konsol ALB.
Di bilah navigasi atas, pilih wilayah tempat instansi ALB ditempatkan.
Di halaman Instances, klik ID instansi ALB yang ingin Anda kelola. Di tab Listener, klik Create Listener.
Di halaman panduan Configure Listener, atur parameter dan klik Next.
Lihat tabel berikut untuk mengatur parameter utama yang relevan dengan topik ini dan gunakan nilai default atau ubah nilai sesuai kebutuhan untuk parameter lainnya.
Parameter
Deskripsi
Listener Protocol
Pilih protokol pendengar.
Dalam contoh ini, QUIC dipilih.
Listener Port
Pilih port tempat instansi ALB mendengarkan. Instansi ALB mendengarkan pada port tersebut dan meneruskan permintaan ke server backend.
Nilai valid: 1 hingga 65535.
CatatanPada instansi ALB yang sama, port pendengar yang menggunakan protokol yang sama harus unik. Pendengar HTTP dan pendengar HTTPS harus menggunakan port yang berbeda.
Di langkah Configure SSL Certificate, pilih sertifikat server dan klik Next.
Di langkah Select Server Group, pilih Server Type, pilih grup server, lihat server backend, dan klik Next.
Di langkah Configuration Review, konfirmasi konfigurasi dan klik Submit.
Langkah 2: Buat pendengar HTTPS
Saat membuat pendengar HTTPS, aktifkan peningkatan QUIC dan asosiasikan pendengar QUIC yang telah Anda buat dengan pendengar HTTPS.
Di halaman Instances, temukan instansi ALB tempat Anda membuat pendengar QUIC di Langkah 1 dan klik ID-nya.
Di tab Instance Details, klik tab Listener dan klik Create Listener.
Di langkah Configure Listener, atur parameter berikut dan klik Next.
Lihat tabel berikut untuk mengatur parameter utama yang relevan dengan topik ini dan gunakan nilai default atau ubah nilai sesuai kebutuhan untuk parameter lainnya.
Parameter
Deskripsi
Listener Protocol
Pilih protokol pendengar.
Dalam contoh ini, HTTPS dipilih.
Listener Port
Masukkan port tempat instansi ALB mendengarkan. Instansi ALB mendengarkan pada port tersebut dan meneruskan permintaan ke server backend. Dalam contoh ini, port 443 digunakan. Pada umumnya, port 80 digunakan untuk HTTP dan port 443 digunakan untuk HTTPS.
Nilai valid: 1 hingga 65535.
CatatanPort tempat instansi ALB mendengarkan harus unik.
Advanced Settings
Anda dapat mengklik Modify di sebelah Pengaturan Lanjutan untuk mengonfigurasi pengaturan lanjutan.
QUIC Update
Tentukan apakah akan mengaktifkan peningkatan QUIC. Untuk menggunakan fitur ini, Anda harus memilih pendengar QUIC dari daftar drop-down Associated QUIC Listeners.
Jika tidak ada pendengar QUIC yang dibuat, klik Create Listener untuk membuat satu. Untuk informasi lebih lanjut, lihat Tambahkan pendengar QUIC.
ALB mendukung iQUIC dan gQUIC. Untuk informasi lebih lanjut, lihat Cara negosiasi versi HTTP bekerja.
Di langkah Configure SSL Certificate, pilih sertifikat server dan klik Next.
CatatanUntuk mengonfigurasi kebijakan keamanan TLS, klik Modify di sebelah Advanced Settings.
Di langkah Select Server Group, pilih Server Type, pilih grup server, lihat server backend, dan klik Next.
Di langkah Configuration Review, konfirmasi konfigurasi dan klik Submit.
Langkah 3: Buat catatan CNAME
Gunakan catatan CNAME untuk memetakan nama domain example.com ke nama domain publik ALB.
Masuk ke konsol ALB.
Di bilah navigasi atas, pilih wilayah.
Temukan instansi ALB yang ingin Anda kelola dan salin nama domainnya.
Buat catatan CNAME sebagai berikut:
CatatanJika nama domain Anda tidak didaftarkan menggunakan Alibaba Cloud Domains, Anda harus menambahkan nama domain Anda ke Alibaba Cloud DNS sebelum dapat mengonfigurasi catatan DNS. Untuk informasi lebih lanjut, lihat Kelola Nama Domain.
Masuk ke konsol Alibaba Cloud DNS.
Di halaman Authoritative DNS Resolution, temukan nama domain Anda dan klik DNS Settings di kolom Actions.
Di tab DNS Settings halaman detail nama domain, klik Add DNS Record.
Di panel Add DNS Record, konfigurasikan parameter dan klik OK. Tabel berikut menjelaskan parameter.
Parameter
Deskripsi
Record Type
Pilih CNAME dari daftar drop-down.
Hostname
Masukkan awalan nama domain.
DNS Request Source
Pilih Default.
Record Value
Masukkan CNAME, yaitu nama domain instansi ALB.
TTL Period
Pilih nilai time-to-live (TTL) untuk catatan CNAME agar disimpan di cache pada server DNS. Dalam contoh ini, nilai default digunakan.
CatatanSetelah Anda membuat catatan CNAME, catatan tersebut langsung berlaku. Setelah Anda memodifikasi catatan, catatan tersebut berlaku berdasarkan TTL catatan tersebut. Secara default, TTL adalah 10 menit.
Jika catatan CNAME yang ingin Anda buat bertentangan dengan catatan yang sudah ada, kami sarankan Anda menentukan nama domain lain. Untuk informasi lebih lanjut, lihat Aturan untuk Catatan DNS yang Bertentangan.
Langkah 4: Verifikasi hasil
Dalam contoh ini, klien Windows digunakan. Masukkan example.com di browser untuk mengakses instansi ALB. Dalam contoh ini, layanan video NGINX diterapkan di ECS01 di grup server RS1.
Jika pendengar HTTPS dan pendengar QUIC dikonfigurasikan, dan Anda memasukkan
example.comdi browser dan menekanF12, protokol halaman web saat ini ditampilkan sebagai HTTP/3. Waktu respons adalah 93 milidetik.
Jika pendengar QUIC tidak tersedia, dan Anda memasukkan
example.comdi browser dan menekanF12, protocol halaman web saat ini ditampilkan sebagai HTTP/2. Waktu respons adalah 148 milidetik.
Hasil menunjukkan bahwa HTTP/3 mempercepat akses klien ke layanan video.