UDP можно рассматривать как обозначающий «Ненадежный протокол дейтаграмм». Так что это сразу объясняет вашу проблему: вам нужна надежность, то есть услуга, которую не обеспечивает базовый протокол. Возможно, вам также нужен контроль перегрузки, поскольку отсутствие сетевых буферов является источником перегрузки точно так же, как и отсутствие пропускной способности.
Решение состоит в том, чтобы использовать что-то отличное от UDP или добавить контроль над надежностью и перегрузкой поверх UDP; подтверждение и ограничение скорости, по существу.
Возможные замены для UDP включают TCP и SCTP. SCTP был бы хорош, потому что он имеет режим дейтаграмм, поэтому вам не нужно преобразовывать протокол для работы с потоками. Смотрите здесь: http://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol