Saya punya pertanyaan tentang UDP. Untuk konteks, saya sedang mengerjakan game aksi real-time.
Saya sudah membaca sedikit tentang perbedaan antara UDP dan TCP dan saya merasa saya memahaminya dengan baik, tetapi ada satu bagian yang tidak pernah terasa benar, dan itu keandalan , dan secara khusus ucapan terima kasih . Saya mengerti bahwa UDP tidak menawarkan keandalan secara default (yaitu paket dapat dibatalkan atau tiba tidak sesuai pesanan). Ketika beberapa keandalan diperlukan, solusi yang saya lihat (yang masuk akal secara konseptual) adalah dengan menggunakan ucapan terima kasih (yaitu server mengirim paket ke klien, dan ketika klien menerima pesan itu, ia mengirim kembali pengakuan ke server) .
Apa yang terjadi ketika pengakuan dijatuhkan?
Dalam contoh di atas (satu server mengirim paket ke satu klien), server menangani kemungkinan kehilangan paket dengan mengirim kembali paket setiap frame sampai ucapan terima kasih diterima untuk paket-paket itu. Anda masih bisa mengalami masalah bandwidth atau pesan out-of-order, tetapi murni dari perspektif packet-loss, server dicakup.
Namun, jika klien mengirim pemberitahuan yang tidak pernah tiba, server tidak akan punya pilihan selain berhenti mengirim pesan itu, yang dapat merusak permainan jika informasi yang terkandung dalam paket itu diperlukan. Anda dapat mengambil pendekatan yang mirip dengan server (yaitu terus mengirim ucapan terima kasih hingga Anda menerima ack untuk ack?), Tetapi pendekatan itu akan membuat Anda berulang kali bolak-balik (karena Anda memerlukan ack untuk ack untuk ack untuk ack? dan seterusnya).
Saya merasa logika dasar saya benar di sini, yang membuat saya memiliki dua opsi.
- Kirim paket pengakuan tunggal dan berharap yang terbaik.
- Kirim beberapa paket ucapan terima kasih (mungkin 3-4) dan berharap yang terbaik, dengan asumsi bahwa tidak semuanya akan dijatuhkan.
Apakah ada jawaban untuk masalah ini? Apakah saya salah paham secara mendasar tentang sesuatu? Apakah ada jaminan menggunakan UDP yang tidak saya sadari? Saya merasa ragu untuk bergerak maju dengan terlalu banyak kode jaringan sampai saya merasa nyaman karena logika saya sehat.