TCP - это транспортный протокол передачи данных. Чтобы передать пакеты, ему нужно заранее установить соединение с сетью. После передачи пакета, протокол будет требовать отчета о передачи, успешно или не успешно. Контролирует нагруженность сети. Поэтому этот протокл считается более безопасным, надежным.
UDP - это тоже транспортный протокол передачи данных. Чтобы передать пакеты, ему не нужно заранее ничего устанавливать. Отправил пакеты, а что дальше с ними будет - без разницы. Ничего не контролирует, ничего не просит взамен, не гарантирует доставку пакета. Естественно, менее надежен, но поэтому более быстрый. Поэтому его используют для передачи больших данных, где допускаются "помехи". Например, фото, видео, аудио информация, клиент онлайн игры.
ВОт наглядный пример
Про эти протоколы есть 2 отличных анекдота, подчеркивающих их суть:
"Я знаю отличную шутку про UDP, но не факт, что она до вас дойдет."
"Я знаю отличную шутку про TCP, но если она до вас не дойдет, то я повторю."