Мой опыт работы с UDP и TCP выглядит следующим образом:
- UDP значительно быстрее . мы говорим на 2 порядка.
- В проводных сетях потеря пакетов UDP составляет менее 1%
- В беспроводной сети потеря пакетов UDP может легко достигать 80%, а физическое расстояние до маршрутизатора имеет значение: вы потеряете 20% пакетов с расстояния в фут и 50% с расстояния в 20 футов.
Так что UDP хорош для несущественных вещей. Например, если в вашей игре бегают 2 чувака, и игрок A получает текущие координаты и скорость игрока B через UDP каждые 100 миллисекунд, игрок A может некоторое время экстраполировать, не уходя слишком далеко. Если, с другой стороны, у игрока А есть фулл-хаус, а у игрока Б - флеш-рояль, ситуация другая.
В моем проекте я использовал UDP в качестве основной схемы связи, при этом каждый получатель отправлял назад уведомление. Если связь не удалась дольше, чем X, я прибегнул к TCP.