Asla datagram kullanmayın.
TCP vs UDP
- İnternet uygulamaları geliştirirken TCP ve UDP arasında seçim yapmak gerekir.
- TCP: Güvenilir veri aktarımını garanti eder.
- UDP: Güvenilir olmayan veri aktarımı sunar.
- Güvenilir olmayan aktarımın gerçekten gerekli olduğu durumlar neredeyse yoktur.
Özellikler
- Yazılım mühendisliği, birden çok soyutlama katmanı üzerine kuruludur.
- Her katman belirli özellikler sunar; böylece geliştiricilerin her şeyi en baştan yeniden inşa etmesi gerekmez.
- Geliştiriciler hangi katmanı kullanacaklarını seçmelidir.
"Güvenilir olmayan"
- Gerçek zamanlı video protokolü tasarlayan bir toplantıda, SUBSCRIBE işleminin güvenilir olmaması gerektiği yönünde bir görüş vardı.
- Aslında ihtiyaç duyulan şey zamanlılıktır.
- Gerçek zamanlı videoda en güncel veriyi öncelikli olarak iletmek önemlidir.
Datagram
- Datagram (IP paketi), kaynak adresten hedef adrese gönderilen veri birimidir.
- Datagramlar kaybolabilir veya sıraları karışabilir.
- Datagram kullanılmasının nedeni, ağ tıkanıklığı olduğunda paket düşürmenin daha iyi bir tercih olabilmesidir.
İnternetteki kuyruklar
- Ağ tıkandığında paket düşürmek yaygın bir durumdur.
- Paketleri kuyruğa alıp daha sonra iletmek bufferbloat sorununa yol açabilir.
- Bufferbloat, tüm paketlerin kuyrukta birikmesine neden olarak zamanlılığı bozar.
Siz, uygulama geliştiricisi
- UDP'yi doğrudan kullanırsanız çeşitli sorunlarla karşılaşabilirsiniz.
- UDP üzerinde kendi taşıma protokolünüzü kurmak için yeniden iletim, tıkanıklık kontrolü vb. mekanizmaları uygulamanız gerekir.
- Bir QUIC kütüphanesi kullanmak daha iyi bir seçimdir.
Zamanlılık
- Zamanlılık elde etmek için QUIC kullanılabilir.
- Arabelleği boşaltmak: Tıkanıklık kontrolü ile kuyrukları algılar ve iletim hızını düşürür.
- Veriyi akışlara bölmek: Her akış bağımsız olarak iletilir.
- Akışlara öncelik vermek: Önemli akışlar öncelikli olarak iletilir.
Datagram savunması
- QUIC ve MoQ datagramları destekler.
- Datagram desteği, deneylere izin vermek açısından önemlidir.
- Ancak datagram kullanımı bir tuzak olabilir.
Sonuç
- Uygulamalar datagram üzerine tasarlanmamalıdır.
- UDP üzerinde bir başka video protokolü daha oluşturmak yerine, Media over QUIC çalışmalarına katılmak daha iyidir.
GN⁺ görüşü
- Zamanlılığın önemi: Gerçek zamanlı uygulamalarda verinin zamanında ulaşması çok önemlidir. TCP yerine UDP daha uygun olabilir, ancak tıkanıklık kontrolü gibi ek değerlendirmeler gerekir.
- QUIC'in avantajları: QUIC, UDP'nin dezavantajlarını telafi ederken yüksek performans da sunar. Özellikle gerçek zamanlı video akışı için uygundur.
- Bufferbloat sorunu: Ağ tıkanıklığı sırasında paketleri kuyruğa yığmak zamanlılığa zarar verebilir. Bunu önlemek için tıkanıklık kontrolü gerekir.
- Datagramın sınırları: Datagramlar gerçek zamanlı iletim için uygun olsa da, güvenilirlik ve sıra garantisi gerektiğinde QUIC gibi protokoller daha iyi bir seçimdir.
- Teknoloji seçiminin önemi: Uygulamanın gereksinimlerine uygun doğru taşıma protokolünü seçmek önemlidir. Yanlış seçim, performans düşüşüne ve kullanıcı deneyiminin kötüleşmesine yol açabilir.
1 yorum
Hacker News görüşü