pic on gprs
TCP protocol is designed for reliability. It has several states (closed, open, listen). Several packets are sent in both ways in order to change the state. After a connection is established, for every data packet sent in one way, there is an acknowledge packet sent back. This is used to control the reliability of the transmission. If one side does not receive an acknowledge for a packet (packet was lost), it will retransmit it after a time. However, this has its costs, the traffic will be increased with the control data.
On the other side the UDP protocol is designed for speed. There are no connection states, and a packet is sent without expecting any kind of confirmation. The packet may or may not arrive at the destination, and the sender has no way to be aware of this. This is appropriate for data where you can afford some losses (ex. video streaming).
/pisoiu