QUIC (Quick UDP Internet Connections) adalah protokol yang meningkatkan kecepatan akses klien, terutama pada jaringan lemah atau saat perangkat sering berpindah antara jaringan Wi-Fi dan jaringan seluler. Protokol ini memungkinkan multiplexing tanpa perlu koneksi ulang, sehingga meningkatkan efisiensi akses sumber daya dan mengamankan transmisi data.
Ikhtisar QUIC
QUIC, juga dikenal sebagai Quick UDP Internet Connections, menyediakan tingkat keamanan setara SSL dan menawarkan berbagai keunggulan, termasuk multiplexing. Protokol ini memberikan performa luar biasa pada jaringan yang tidak andal serta mampu mempertahankan layanan meskipun terjadi kehilangan paket signifikan dan latensi jaringan tinggi. Pada lapisan aplikasi, QUIC memungkinkan penerapan berbagai algoritma pengendalian kemacetan tanpa memerlukan dukungan dari sistem operasi atau kernel, sehingga lebih fleksibel dibandingkan TCP dan cocok untuk layanan yang mengalami bottleneck akibat optimisasi TCP.
Pertumbuhan pesat layanan baru, seperti video pendek dan siaran langsung (live streaming), telah menciptakan permintaan tinggi akan bandwidth tinggi dan latensi rendah. Protokol QUIC secara efektif dapat mengatasi isu seperti kemacetan jaringan dan video tersendat, meningkatkan efisiensi akses sumber daya audio dan video, serta mengamankan transmisi data.
Jenis protokol QUIC yang didukung
ALB mendukung gQUIC dan iQUIC. Protokol HTTP/3 adalah protokol lapisan aplikasi yang dibangun di atas iQUIC dan terutama mengandalkan iQUIC untuk mengimplementasikan fitur-fitur seperti multiplexing, pengendalian kemacetan, deteksi kehilangan, dan pengiriman ulang. HTTP/3 membangun koneksi klien lebih cepat dan menghilangkan blokir kepala antrian (head-of-line blocking) pada aliran multiplexed.
Application Load Balancer (ALB) mendukung versi gQUIC Q46, Q43, dan Q39, serta versi HTTP/3 h3.
Negosiasi HTTP/3
Setelah Anda mengaktifkan QUIC Upgrade, ALB mengiklankan protokol HTTP/3 dan gQUIC kepada klien. ALB memberikan prioritas lebih tinggi pada HTTP/3, mendorong klien yang mendukung untuk pertama kali mencoba koneksi HTTP/3 ke instans ALB.
-
Jika klien tidak dapat membangun koneksi HTTP/3, klien tersebut akan kembali menggunakan HTTPS atau HTTP/2.
-
Klien yang mendukung HTTP/3 menggunakan cookie cache terkait HTTP/3.
-
Mengaktifkan atau menonaktifkan peningkatan QUIC tidak memengaruhi koneksi klien ke instans ALB.
Dukungan diiklankan dalam header respons HTTP Alt-Svc. Nilai header alt-svc adalah:
Alt-Svc : h3=":$quic_port"; ma=3600,quic=":$quic_port"; v="46,43,39"; ma=3600
Saat peningkatan QUIC diaktifkan, klien Anda mungkin kembali ke HTTPS atau HTTP/2 dalam beberapa situasi alih-alih melakukan negosiasi HTTP/3. Situasi tersebut meliputi:
-
Versi HTTP/3 yang didukung oleh klien tidak kompatibel dengan versi HTTP/3 yang didukung oleh ALB.
-
ALB mendeteksi bahwa trafik UDP diblokir atau dibatasi lajunya (rate-limited), sehingga mencegah HTTP/3 berfungsi.
-
Klien tidak mendukung HTTP/3 dan karena itu tidak mencoba melakukan negosiasi koneksi HTTP/3.
Persyaratan client
-
Jika Anda menggunakan browser Chrome, Anda dapat langsung mengirim permintaan QUIC ke ALB.
-
Untuk mengakses sumber daya melalui QUIC menggunakan browser Chrome, Anda harus menggunakan versi Chrome tertentu:
-
Versi gQUIC tertinggi yang didukung oleh ALB adalah Q46, yang sesuai dengan Chrome versi 74 hingga 81.
-
Versi HTTP/3 tertinggi yang didukung oleh ALB adalah h3, yang sesuai dengan Chrome 87 dan versi setelahnya.
-
-
Jika Anda menggunakan klien lain, seperti aplikasi yang dikembangkan sendiri, klien tersebut harus mengintegrasikan pustaka jaringan yang mendukung protokol QUIC, seperti lsquic-client, Cronet, ngtcp2, atau quiche.
Kasus penggunaan
Ketika klien yang menggunakan Chrome mengakses instans ALB, instans ALB meneruskan permintaan ke server backend berdasarkan nama domain—seperti example.com—yang terikat pada sertifikat pendengar.
-
Jika pendengar HTTPS dan pendengar QUIC keduanya dikonfigurasi, ALB memberikan prioritas pada pendengar QUIC. Dalam kasus ini, jika Anda memasukkan nama domain
example.comyang terikat sertifikat di browser Chrome, instans ALB meneruskan permintaan klien ke kelompok server default RS1 melalui pendengar QUIC yang dikonfigurasi. -
Jika pendengar QUIC tidak tersedia, ALB secara otomatis kembali ke pendengar HTTPS terkait. Dalam kasus ini, jika Anda memasukkan nama domain
example.comyang terikat sertifikat di browser Chrome, instans ALB meneruskan permintaan klien ke kelompok server default RS1 melalui pendengar HTTPS yang dikonfigurasi.
Prasyarat
-
Anda telah membuat instans ALB. Untuk informasi lebih lanjut, lihat Buat dan kelola instans ALB.
-
Anda telah membuat kelompok server bernama RS1. Untuk informasi lebih lanjut, lihat Buat dan kelola kelompok server.
-
Anda telah menambahkan instans ECS bernama ECS01 ke kelompok server RS1 dan men-deploy layanan video Nginx di atasnya.
-
Anda telah men-deploy Sertifikat server SSL pada instans ALB. Sertifikat tersebut terikat pada nama domain
example.com.
Langkah 1: Buat pendengar QUIC
Masuk ke Konsol ALB.
-
Di bilah navigasi atas, pilih wilayah tempat instans ALB dideploy.
-
Pada halaman Instances, temukan instans target dan klik ID-nya. Di tab Listener, klik Create Listener.
-
Di wizard Configure Listener, lengkapi pengaturan berikut dan klik Next.
Topik ini hanya menjelaskan parameter yang relevan dengan contoh ini. Anda dapat menggunakan nilai default untuk parameter lain atau menyesuaikannya sesuai kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Tambahkan pendengar QUIC.
Parameter
Deskripsi
Listener Protocol
Pilih protokol untuk pendengar.
Untuk contoh ini, pilih QUIC.
Listener Port
Masukkan port yang digunakan untuk menerima permintaan dan meneruskannya ke server backend.
Range port yang valid adalah 1 hingga 65535.
Catatan -
Di wizard Configure SSL Certificate, pilih sertifikat server dan klik Next.
-
Di wizard Select Server Group, pilih Server, pilih kelompok server, tinjau informasi server backend, lalu klik Next.
-
Di wizard Configuration Review, konfirmasi pengaturan dan klik Submit.
Langkah 2: Buat pendengar HTTPS
Saat membuat pendengar HTTPS, aktifkan peningkatan QUIC dan asosiasikan dengan pendengar QUIC yang telah Anda buat.
-
Di halaman Instances, temukan instans tempat Anda membuat pendengar QUIC di Langkah 1 dan klik ID-nya.
-
Di tab Instance Details, klik tab Listener dan klik Create Listener.
-
Di wizard Configure Listener, lengkapi pengaturan berikut dan klik Next.
Topik ini hanya menjelaskan parameter yang relevan dengan contoh ini. Anda dapat menggunakan nilai default untuk parameter lain atau menyesuaikannya sesuai kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Tambahkan pendengar HTTPS.
Parameter
Deskripsi
Listener Protocol
Pilih protokol untuk pendengar.
Untuk contoh ini, pilih HTTPS.
Listener Port
Masukkan port yang digunakan untuk menerima permintaan dan meneruskannya ke server backend. Biasanya, protokol HTTP menggunakan port 80 dan protokol HTTPS menggunakan port 443.
Range port yang valid adalah 1 hingga 65535.
Untuk contoh ini, masukkan 443.
CatatanPort pendengar harus unik dalam satu instans load balancer yang sama.
Advanced Settings
Klik Modify untuk membuka pengaturan lanjutan.
QUIC Upgrade
Pilih apakah akan mengaktifkan peningkatan QUIC.
Untuk contoh ini, aktifkan peningkatan QUIC dan pilih pendengar QUIC yang telah dibuat dari daftar drop-down Associated QUIC Listeners.
-
Di wizard Configure SSL Certificate, pilih sertifikat server dan klik Next.
-
Di wizard Select Server Group, pilih Server, pilih kelompok server, tinjau informasi server backend, lalu klik Next.
-
Di halaman Configuration Review, konfirmasi pengaturan dan klik Submit.
Langkah 3: Konfigurasikan resolusi DNS
Gunakan rekaman CNAME untuk memetakan example.com ke nama domain publik instans ALB.
-
Masuk ke Konsol Application Load Balancer (ALB).
-
Di bilah navigasi atas, pilih wilayah.
-
Pilih instans ALB tempat Anda ingin mengonfigurasi resolusi DNS dan salin nama DNS-nya.
-
Ikuti langkah-langkah berikut untuk menambahkan rekaman CNAME:
CatatanJika nama domain Anda tidak terdaftar di Alibaba Cloud, Anda harus terlebih dahulu menambahkan nama domain tersebut ke konsol DNS Alibaba Cloud sebelum dapat mengonfigurasi pengaturan DNS. Untuk informasi lebih lanjut, lihat Kelola nama domain. Jika nama domain Anda terdaftar di Alibaba Cloud, lanjutkan ke langkah-langkah berikut.
-
Masuk ke Konsol DNS Alibaba Cloud.
-
Di halaman Public Zone, temukan nama domain yang ingin Anda kelola dan klik Settings di kolom Actions.
-
Di halaman Settings, klik Add Record.
-
Di panel Add Record, konfigurasikan parameter berikut untuk menyelesaikan konfigurasi rekaman CNAME, lalu klik OK.
Parameter
Deskripsi
Record Type
Pilih CNAME dari daftar drop-down.
Hostname
Awalan nama domain Anda.
Query Source
Pilih Default.
Record Value
Masukkan nama DNS instans ALB yang telah disalin.
TTL
TTL (Time To Live) adalah durasi penyimpanan cache rekaman DNS di server DNS. Untuk contoh ini, gunakan nilai default.
Catatan-
Rekaman CNAME baru berlaku segera. Perubahan pada rekaman CNAME yang sudah ada akan berlaku setelah TTL rekaman cache di server DNS lokal berakhir. TTL default adalah 10 menit.
-
Jika terjadi konflik saat menambahkan rekaman, gunakan hostname yang berbeda. Untuk informasi lebih lanjut, lihat Aturan untuk rekaman DNS yang bertabrakan.
-
-
Langkah 4: Verifikasi hasil
Untuk memverifikasi konfigurasi, masukkan example.com di browser untuk mengakses instans ALB. Hal ini akan menampilkan layanan video Nginx yang dideploy di server backend ECS01 dalam kelompok server RS1.
-
Saat pendengar HTTPS dan pendengar QUIC keduanya dikonfigurasi, masukkan nama domain
example.comyang terikat sertifikat di browser Anda dan tekanF12. Protokol untuk halaman web saat ini adalah HTTP/3 dan waktu responsnya adalah 93 ms.
-
Saat pendengar QUIC tidak tersedia, masukkan nama domain
example.comyang terikat sertifikat di browser Anda dan tekanF12. Protokol untuk halaman web saat ini adalah HTTP/2 dan waktu responsnya adalah 148 ms.
Pengujian menunjukkan bahwa penggunaan HTTP/3 dengan instans ALB mempercepat akses klien ke layanan video di server backend.