UDP с ACK. Попробуй TCP; он делает все это и даже больше.
Если вы действительно хотите сделать это вручную, посмотрите на скользящее окно. Короче говоря, вы можете отправлять несколько сообщений одновременно и ожидать много ACK (вместо отправки и ожидания ACK). То, как вы будете действовать после истечения времени ожидания ACK (не получено), зависит от вас. Если вы отправляете видеокадры, вы можете игнорировать их. С другой стороны, вы можете переслать только те пакеты, которые не были подтверждены ACK, или переслать все после последнего истекшего ACK.
Википедия описывает протокол скользящего окна здесь .
Визуальная демонстрация по этой ссылке: http://www.osischool.com/protocol/Tcp/slidingWindow/index.php