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.
- Mengosongkan buffer: mendeteksi antrean melalui kontrol kemacetan dan mengurangi kecepatan pengiriman.
- Membagi data menjadi stream: setiap stream dikirim secara independen.
- 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⁺
- 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.
- Kelebihan QUIC: QUIC menutupi kelemahan UDP sambil tetap memberikan performa tinggi. Terutama cocok untuk streaming video real-time.
- Masalah bufferbloat: saat jaringan padat, menumpuk paket di antrean dapat merusak timeliness. Untuk menghindarinya, diperlukan kontrol kemacetan.
- Batasan datagram: datagram cocok untuk transmisi real-time, tetapi ketika diperlukan keandalan dan jaminan urutan, protokol seperti QUIC adalah pilihan yang lebih baik.
- 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
Komentar Hacker News