1 poin oleh GN⁺ 2024-06-25 | 1 komentar | Bagikan ke WhatsApp

Jangan pernah menggunakan datagram.

TCP vs UDP

  • Saat mengembangkan aplikasi internet, kita harus memilih antara TCP dan UDP.
  • TCP: menjamin pengiriman data yang andal.
  • UDP: menyediakan pengiriman data yang tidak andal.
  • Hampir tidak pernah ada kebutuhan akan transmisi yang tidak andal.

Properti

  • Rekayasa perangkat lunak berdiri di atas abstraksi berlapis.
  • Setiap lapisan menyediakan properti tertentu sehingga pengembang tidak perlu membangun ulang semuanya dari nol.
  • Pengembang harus memilih lapisan mana yang akan digunakan.

"Tidak andal"

  • Dalam sebuah pertemuan untuk merancang protokol video real-time, ada pendapat bahwa SUBSCRIBE harus dibuat tidak andal.
  • Yang sebenarnya dibutuhkan adalah timeliness.
  • Dalam video real-time, yang penting adalah mengirimkan data terbaru terlebih dahulu.

Datagram

  • Datagram (paket IP) adalah satuan data yang dikirim dari alamat sumber ke alamat tujuan.
  • Datagram bisa hilang atau tiba dalam urutan yang terbalik.
  • Alasan menggunakan datagram adalah karena saat jaringan padat, menjatuhkan paket sering kali merupakan pilihan yang lebih baik.

Antrean di internet

  • Saat jaringan padat, menjatuhkan paket adalah hal yang umum.
  • Menaruh paket ke dalam antrean dan mengirimkannya nanti dapat menimbulkan masalah bufferbloat.
  • Bufferbloat membuat semua paket menumpuk di antrean dan merusak timeliness.

Anda, pengembang aplikasi

  • Jika menggunakan UDP secara langsung, Anda bisa menghadapi berbagai masalah.
  • Jika membangun protokol transport sendiri di atas UDP, Anda harus mengimplementasikan retransmisi, kontrol kemacetan, dan lain-lain.
  • Menggunakan library QUIC adalah pilihan yang lebih baik.

Timeliness

  • Untuk mencapai timeliness, QUIC dapat digunakan.
    1. Mengosongkan buffer: mendeteksi antrean melalui kontrol kemacetan dan mengurangi kecepatan pengiriman.
    2. Membagi data menjadi stream: setiap stream dikirim secara independen.
    3. Memberi prioritas pada stream: stream yang penting dikirim lebih dahulu.

Pembelaan terhadap datagram

  • QUIC dan MoQ mendukung datagram.
  • Dukungan datagram penting untuk memungkinkan eksperimen.
  • Namun, penggunaan datagram bisa menjadi jebakan.

Kesimpulan

  • Aplikasi sebaiknya tidak dirancang di atas datagram.
  • Daripada membuat protokol video lain di atas UDP, lebih baik ikut serta dalam Media over QUIC.

Opini GN⁺

  1. Pentingnya timeliness: dalam aplikasi real-time, ketepatan waktu data sangat penting. UDP mungkin lebih cocok daripada TCP, tetapi tetap memerlukan pertimbangan tambahan seperti kontrol kemacetan.
  2. Kelebihan QUIC: QUIC menutupi kelemahan UDP sambil tetap memberikan performa tinggi. Terutama cocok untuk streaming video real-time.
  3. Masalah bufferbloat: saat jaringan padat, menumpuk paket di antrean dapat merusak timeliness. Untuk menghindarinya, diperlukan kontrol kemacetan.
  4. Batasan datagram: datagram cocok untuk transmisi real-time, tetapi ketika diperlukan keandalan dan jaminan urutan, protokol seperti QUIC adalah pilihan yang lebih baik.
  5. Pentingnya memilih teknologi: memilih protokol transport yang tepat sesuai kebutuhan aplikasi itu penting. Pilihan yang salah dapat menurunkan performa dan memperburuk pengalaman pengguna.

1 komentar

 
GN⁺ 2024-06-25
Komentar Hacker News
  • Masalah TCP: TCP memiliki banyak masalah di lingkungan yang membutuhkan bandwidth tinggi dan latensi rendah. Di jaringan dengan bandwidth rendah dan latensi tinggi pun tetap tidak efisien.
  • Kasus penggunaan UDP: Ada yang menggunakan UDP untuk streaming data sensor frekuensi tinggi, dan ada juga kasus menyelesaikan masalah lewat QUIC.
  • Istilah untuk UDP: Lebih tepat menjelaskan UDP sebagai "best effort" daripada "tidak andal".
  • Masalah abstraksi stream: Abstraksi stream dapat membuat program menjadi rapuh, dan pemulihan saat koneksi terputus berlangsung lambat. Pendekatan berbasis datagram bisa lebih efisien.
  • Packet drop UDP: Saat jaringan macet, paket UDP akan dijatuhkan lebih dulu. Ada juga pembahasan tentang masalah retransmisi di QUIC.
  • Judul clickbait: Upaya untuk mengikuti pedoman Hacker News bahwa judul artikel harus diambil dari judul asli.
  • Perbedaan TCP dan UDP: TCP memberikan keandalan, sedangkan UDP menawarkan kecepatan dan efisiensi. Karakteristik masing-masing protokol perlu dipahami sebelum digunakan.
  • Kasus penggunaan berbasis datagram: Penggunaan datagram cocok untuk local discovery, broadcast, dan enkapsulasi paket.
  • Rekomendasi penggunaan datagram: Koneksi berbasis sesi memang umum, tetapi penggunaan datagram juga bermanfaat. Ini adalah kesempatan yang baik untuk mempelajari aspek jaringan tingkat rendah.