Berikut ini kutipan dari Sam Jansen dari komentar di gafferongames.com :
Berbicara sebagai peneliti jaringan dan bukan pengembang game, kesimpulan untuk tidak pernah menggunakan TCP dan UDP bersama tampaknya agak kuat. TCP hanya akan mengalami kehilangan paket jika mengirim terlalu banyak data; dalam beberapa hal seperti data UDP yang Anda kirim. Perbedaannya adalah Anda tidak memiliki kendali langsung pada kecepatan pengiriman TCP, ini tersembunyi bagi Anda.
Jika Anda hanya perlu mengirim beberapa data yang dapat diandalkan dan tidak ingin khawatir tentang pengiriman ulang dan menerapkan protokol yang andal, dan Anda tahu tarifnya akan rendah, maka tidak akan ada masalah dengan menggunakan TCP dan UDP.
Hubungannya tidak terlalu rumit di antara keduanya: TCP hanya meningkatkan laju pengirimannya (jika ada data untuk dikirim) sampai ia kehilangan paket, dalam hal ini memutar kembali tarifnya, kemudian mulai meningkatkan tarifnya lagi (ini waktu lebih lambat). Ketika peningkatan laju menyebabkan hilangnya paket, sangat mungkin untuk mencapai aliran data lain juga, termasuk paket UDP Anda.
Makalah Karakteristik Paket UDP Rugi: Pengaruh Lalu Lintas TCP mendapatkan hasilnya dengan membuka beberapa koneksi TCP sekaligus dan membanjiri jaringan dengan data. Hal ini menyebabkan kemacetan yang diikuti oleh sinkronisasi global , yang keduanya menyebabkan paket terjatuh. Jelas, klien gim tidak akan membuka selusin koneksi sekaligus dan membanjiri jaringan dengan data, sehingga hasilnya Anda akan berbeda.
Untuk menjawab pertanyaan Anda:
Saya bertanya-tanya apakah masuk akal untuk menggunakan TCP dan UDP pada saat yang sama, tetapi untuk hal-hal yang berbeda [...]
Ya, ini adalah hal yang dapat diterima untuk dilakukan dengan asumsi Anda tetap dalam batas bandwidth Anda.
- TCP untuk mengirim informasi yang dikirim jarang, tetapi harus dijamin akan tiba dengan andal. Seperti pembaruan skor, nama pemain, atau bahkan lampu nyala / mati di dunia game.
Saat menggunakan TCP dan UDP, Anda harus selalu memilih untuk mengirim sebanyak mungkin melalui UDP dan sesedikit mungkin melalui TCP.
Sekarang, saya bertanya kepada Anda: Apakah benar-benar perlu untuk mengirim skor, nama pemain, dan keadaan cahaya di atas TCP? Meskipun benar bahwa Anda perlu menerima data ini pada akhirnya, apakah benar bahwa Anda perlu menerima data ini secara ketat dan tepat sekali?
Mungkin tidak.
UDP berfungsi dengan baik untuk kasus-kasus ini, dan Quake 3 adalah contoh yang bagus tentang caranya.
Jadi, apa contoh yang baik dari TCP bersama UDP? Nah, pikirkan kotak obrolan game. Pembaruan untuk kotak obrolan ini (yaitu, baris teks baru) harus dikirim dengan baik dan benar-benar berurutan. Dengan demikian, TCP cocok.