Internet Protocol (IP)
The IP protocol is a network layer protocol responsible for transporting data between network devices and for handling IP addressing. IP is a connectionless protocol, meaning that data delivery is not guaranteed; it takes the best-effort approach.
Transmission Control Protocol (TCP)
TCP functions at the transport layer of the OSI model and is a connection-oriented protocol that uses IP as its network protocol. Being connection-oriented means that TCP establishes a mutually acknowledged session between two hosts before communication takes place. TCP provides reliability to IP communications. Specifically, TCP adds features such as flow control, sequencing, and error detection and correction. For this reason, higher-level applications that need guaranteed delivery use TCP rather than its lightweight and connectionless brethren, the User Datagram Protocol (UDP).
User Datagram Protocol (UDP)
UDP operates at the transport layer of the OSI model and performs functions similar to that of TCP, with one notable difference; UDP is a connectionless protocol and does not guarantee data delivery. Both TCP and UDP use IP as its transport protocol.
Because UDP does not need to guarantee data delivery it is much more efficient than TCP, so for applications that don't need the added features of TCP, UDP is much more economical in terms of bandwidth and processing effort. A good example of UDP is an online radio station that sends data but does not confirm data delivery.