- Patch pertama untuk mengintegrasikan protokol QUIC secara resmi ke kernel Linux telah diajukan
- Tujuannya adalah memperbaiki keterbatasan TCP yang ada saat ini, seperti latensi, head-of-line blocking, dan kekakuan protokol akibat perangkat perantara
- QUIC berbasis UDP dan menyediakan dukungan multi-stream serta enkripsi end-to-end, sehingga jika diadopsi ke kernel, peluang pemanfaatan di platform dan perangkat keras yang lebih luas akan meningkat
- Kinerja implementasi awal di kernel terukur masih lebih rendah dibandingkan TCP yang ada dan kernel TLS, tetapi peningkatan performa di masa depan diharapkan melalui hardware offloading dan optimasi
- Saat ini, pembahasan dukungan di Samba, SMB/NFS berbasis kernel,
curl, dan lainnya berlangsung aktif, tetapi penggabungan ke mainline diperkirakan masih membutuhkan waktu
Latar belakang kemunculan protokol QUIC dan keterbatasan TCP
- QUIC dibuat untuk mengatasi berbagai masalah yang dimiliki TCP di internet saat ini
- Latensi akibat 3-way handshake dalam proses koneksi TCP, kurangnya dukungan multi-stream, serta fenomena head-of-line blocking akibat kehilangan paket menurunkan pengalaman penggunaan web
- Metadata TCP dikirim tanpa enkripsi sehingga ada risiko kebocoran informasi, dan middlebox di internet memfilter lalu lintas berdasarkan informasi koneksi tersebut, yang kemudian berkembang menjadi ossification protokol
- Upaya peningkatan TCP, seperti Multipath TCP, juga berada dalam situasi di mana ia tidak dapat berfungsi normal kecuali menyamar sebagai TCP lama
Karakteristik QUIC dan keunggulan teknisnya
- QUIC berjalan di atas UDP, dan dapat membangun koneksi dengan cepat tanpa 3-way handshake terpisah dalam proses koneksinya
- Desain transmisi multi-stream diterapkan agar kehilangan paket tidak memengaruhi seluruh stream
- Data transport terkait QUIC selalu dienkripsi secara end-to-end (berbasis TLS), sehingga perangkat perantara tidak dapat mengakses pesan internal
- Jika lingkungan jaringan memungkinkan paket UDP lewat, maka QUIC juga dapat berfungsi dengan normal
Ikhtisar patch integrasi QUIC di dalam kernel Linux
- Dalam patch yang diajukan, tipe protokol baru bernama IPPROTO_QUIC diperkenalkan, sehingga system call
socket() yang ada dapat dimanfaatkan
- Mirip dengan TCP, pemanggilan seperti
bind(), connect(), listen(), dan accept() dapat digunakan, tetapi ada perbedaan pada cara pemrosesan berikutnya
- Manajemen sesi TLS serta proses autentikasi/enkripsi ditangani di ruang pengguna, dan setelah koneksi dibuat, TLS handshake harus diselesaikan di masing-masing sisi sebelum pengiriman dan penerimaan data dapat dilakukan
- Setelah koneksi awal, hasil negosiasi TLS dapat di-cache sehingga kecepatan saat menyambung kembali antara dua sistem bisa meningkat secara signifikan
Tantangan performa dan prospeknya
- Implementasi QUIC di dalam kernel yang diajukan masih menunjukkan kelemahan performa dibandingkan kernel TLS dan TCP yang ada
- Dibandingkan in-kernel TLS, throughput-nya kurang dari sepertiga; bahkan saat enkripsi dinonaktifkan pun throughput dapat tertinggal hingga 4 kali dibandingkan TCP
- Penyebab yang disebut antara lain tidak adanya dukungan segmentation offloading, tambahan penyalinan data pada jalur pengiriman, serta proses enkripsi header
- Ke depan, bila dukungan hardware offloading ditambahkan dan implementasi in-kernel dioptimalkan, performanya diperkirakan akan meningkat
Status adopsi dan prospek ke depan
- Pembahasan tentang dukungan QUIC in-kernel berlangsung aktif di berbagai proyek seperti server/klien Samba, kernel SMB dan filesystem NFS, serta
curl
- Patch ini berukuran sekitar 9.000 baris dan saat ini hanya mencakup kode dukungan tingkat rendah. Implementasi lengkapnya telah diumumkan akan menyusul melalui patch tambahan
- Pembahasan code review dan penggabungan baru saja dimulai, sehingga diperkirakan masih membutuhkan waktu sebelum bisa digunakan secara nyata
- Mengingat preseden terbaru bahwa penggabungan protokol Homa ke kernel memerlukan 11 kali pengajuan selama 9 bulan, QUIC juga diperkirakan baru akan masuk mainline setelah 2026
Belum ada komentar.