- QUIC protokolünün Linux çekirdeğine resmen entegre edilmesine yönelik ilk yama gönderildi
- Amaç, mevcut TCP'nin sahip olduğu sınırlamaları (gecikme, head-of-line blocking, ara cihazların neden olduğu protokol katılaşması vb.) iyileştirmek
- QUIC, UDP tabanlı olarak çoklu akış desteği ve uçtan uca şifreleme sunuyor; çekirdeğe alınması halinde daha geniş platform ve donanım kullanımının önü açılabilir
- İlk çekirdek içi uygulamanın performansı mevcut TCP ve çekirdek TLS'e kıyasla daha düşük ölçüldü, ancak gelecekte donanım offloading ve optimizasyonlarla performansın artması bekleniyor
- Şu anda Samba, çekirdek tabanlı SMB/NFS, curl gibi projelerde destek tartışmaları aktif biçimde sürüyor, ancak ana dala birleşmesi zaman alacak gibi görünüyor
QUIC protokolünün ortaya çıkış arka planı ve TCP'nin sınırlamaları
- QUIC, mevcut internette TCP'nin taşıdığı çeşitli sorunları çözmek amacıyla geliştirildi
- TCP bağlantı sürecindeki 3-way handshake kaynaklı gecikme, yetersiz çoklu akış desteği ve paket kaybına bağlı head-of-line blocking gibi sorunlar web kullanım deneyimini düşürüyor
- TCP meta verileri şifrelenmeden iletildiği için bilgi sızıntısı riski bulunuyor; ayrıca internetteki middlebox'lar bağlantı bilgisine dayanarak trafiği filtreliyor ve bu da protokol katılaşmasına (ossification) yol açıyor
- TCP'yi iyileştirme girişimleri de (ör. Multipath TCP) mevcut TCP gibi davranmadan düzgün çalışamıyor
QUIC'in özellikleri ve teknik avantajları
- QUIC, UDP üzerinde çalışır ve bağlantı kurulurken ayrı bir 3-way handshake olmadan hızlı bağlantı kurulumu sağlayabilir
- Paket kaybının tüm akışı etkilememesi için çoklu akış aktarım tasarımı benimsenmiştir
- QUIC ile ilgili aktarım verileri her zaman uçtan uca şifrelenir (TLS tabanlı), böylece ara cihazlar iç mesajlara erişemez
- UDP paketlerinin geçebildiği bir ağ ortamında QUIC de normal şekilde çalışabilir
Linux çekirdeğinde QUIC entegrasyon yamasının özeti
- Sunulan yamada IPPROTO_QUIC adlı yeni bir protokol türü tanıtılıyor ve mevcut socket() sistem çağrısı kullanılabiliyor
- TCP'ye benzer şekilde bind(), connect(), listen(), accept() gibi çağrılar kullanılabiliyor, ancak sonrasındaki işleme biçiminde farklılıklar var
- TLS oturum yönetimi ile kimlik doğrulama/şifreleme süreci kullanıcı alanında işleniyor; bağlantıdan sonra her iki uçta da TLS handshake tamamlanmadan veri gönderimi ve alımı yapılamıyor
- İlk bağlantının ardından TLS müzakere sonuçları önbelleğe alınarak, iki sistem yeniden bağlandığında hız önemli ölçüde artırılabiliyor
Performans açısından zorluklar ve beklentiler
- Gönderilen çekirdek içi QUIC uygulaması, performans açısından mevcut çekirdek TLS ve TCP karşısında henüz geride kalıyor
- Çekirdek içi TLS'e kıyasla verim 3 kat daha düşük; şifreleme devre dışı bırakıldığında bile TCP'ye göre verim en fazla 4 kat daha düşük
- Bunun nedenleri arasında segmentation offloading desteğinin olmaması, gönderim yolunda ek veri kopyalama ve başlık şifreleme süreci gösteriliyor
- Gelecekte donanım offloading desteği eklenir ve çekirdek içi uygulama optimize edilirse performansın artması bekleniyor
Benimsenme durumu ve ileriye dönük görünüm
- Samba sunucu/istemcisi, çekirdek SMB ve NFS dosya sistemleri, curl gibi çeşitli projelerde çekirdek içi QUIC desteği aktif olarak tartışılıyor
- Yama yaklaşık 9.000 satır büyüklüğünde ve şu anda yalnızca düşük seviye destek kodunu içeriyor. Tam uygulama için ek yamalar planlanmış durumda
- Kod incelemesi ve birleştirme tartışmaları daha yeni başladı; gerçek kullanım için daha fazla zamana ihtiyaç duyulacağı öngörülüyor
- Yakın zamanda Homa protokolünün çekirdeğe alınmasının 9 ay boyunca 11 gönderim gerektirdiği düşünüldüğünde, QUIC'in de ana dala 2026'dan sonra girmesi bekleniyor
Henüz yorum yok.