TCP and UDP are both transport-level protocols. TCP is designed to provide reliable communication across a variety of reliable and unreliable networks and internets.

UDP provides a connectionless service for application-  level procedures. Thus, UDP is basically an unreliable service; delivery and duplicate protection are not guareented.