Посылая UDP пакет, вы его посылаете в неизвестность. В отличии от TCP, где и для приемника, и для передатчика есть некий алгиритм поддержания и перепосылки пакетов.
Если ввести аналогию с бусинками, то UDP - кидание бусинок в корзину, где корзины может и не быть.
А TCP - спускание бусинок по протянутой веревочке. В этом случае, прежде чем спускать бусинки - нужно протянуть веревочку (handshake).
Веревочки считать легко, в отличии от одиночных бусинок.
Но в случае с UDP мы можем посчитать корзинки на принимающей стороне если ее кто-то поставил (открыл)
К каких-то случаях нам можно не заботиться, слушает кто нас или нет, просто швыряем камешки налево и направо, в надежде, что нас кто-то да услышит. Мы не тратим ресурсы на то, что если кучка бусинок где-то залипла, то нам нужно их перепослать, а на принимающей стороне правильно собрать, если пришло не в том порядке, чем посылали.
PS. Кофе мой?