1 puan yazan GN⁺ 2024-06-25 | 1 yorum | WhatsApp'ta paylaş

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.
    1. Arabelleği boşaltmak: Tıkanıklık kontrolü ile kuyrukları algılar ve iletim hızını düşürür.
    2. Veriyi akışlara bölmek: Her akış bağımsız olarak iletilir.
    3. 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üşü

  1. 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.
  2. QUIC'in avantajları: QUIC, UDP'nin dezavantajlarını telafi ederken yüksek performans da sunar. Özellikle gerçek zamanlı video akışı için uygundur.
  3. 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.
  4. 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.
  5. 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

 
GN⁺ 2024-06-25
Hacker News görüşü
  • TCP'nin sorunları: TCP, yüksek bant genişliği ve düşük gecikme gerektiren ortamlarda birçok soruna sahip. Düşük bant genişlikli, yüksek gecikmeli ağlarda da verimsizdir.
  • UDP kullanım örnekleri: Yüksek frekanslı sensör verisi akışında UDP kullanılıyor ve QUIC aracılığıyla sorunları çözen örnekler de var.
  • UDP'nin terminolojisi: UDP'yi "güvenilmez" yerine "best effort" olarak tanımlamak daha uygun.
  • Akış soyutlamasının sorunu: Akış soyutlaması programları kırılgan hale getirir ve bağlantı koptuğunda toparlanma yavaştır. Datagram tabanlı yaklaşım daha verimli olabilir.
  • UDP paket düşürme: Ağ tıkanıklığında UDP paketleri önce düşürülür. QUIC'in yeniden iletim sorununa değiniliyor.
  • Tık tuzağı başlık: Hacker News yönergelerine uymak için makale başlığını özgün kaynaktan alma çabası.
  • TCP ve UDP farkı: TCP güvenilirlik, UDP ise hız ve verimlilik sağlar. Her protokolün özellikleri anlaşılmalı ve buna göre kullanılmalıdır.
  • Datagram tabanlı kullanım örnekleri: Yerel keşif, broadcast, paket kapsülleme gibi durumlarda datagram kullanımı uygundur.
  • Datagram kullanım önerisi: Oturum tabanlı bağlantılar yaygın olsa da datagram kullanımı da faydalıdır. Ağ iletişiminin düşük seviyeli yönlerini öğrenmek için iyi bir fırsattır.