Internet Control Message Protocol (ICMP) is a protocol that occurs on the fly during data transit. This protocol has features to ping the destination, notify of unreachable hosts, as well as handling congestion with too much data transmitting. The protocol can slow data traffic down so data can be delivered or find new routes to deliver data. Packets time to live notifications are also given for undelivered data.
Transmission Control Protocol (TCP) is a protocol that is connection based. The protocol ensures delivery, and the receiver are correct through a series of handshakes. TCP is referred to as a more reliable protocol as data is monitored during transmission to make sure the data being delivered correct.
User Datagram Protocol (UDP) Considered an unreliable communication protocol based on the fact there is no check to see if the data was received. This protocol is meant for faster data transmission like streaming or other heavy data loads.