TCP and UDP are both transport-level protocols. TCP is designed to give reliable statement across a variety of reliable and unreliable networks and internets.
UDP gives a connectionless service for application-level procedures. Therefore, UDP is basically an unreliable service; delivery and duplicate protection are not guaranteed.