Note that both TCP and UDP are built on top of IP, so it's TCP/IP vs. UDP/IP that we're talking about here. In the simplest terms, TCP is a reliable, connection-oriented protocol, while UDP is a connectionless, unreliable protocol. UDP is for sending individual datagrams which may get lost, arrive out of order, or otherwise not form any kind of dependable sequence. TCP is for the more formal kind of "connect to another machine, send a string, receive a string back, close the connection" kind of networking. The price you pay for reliablity, of course, is performance. TCP has a lot more overhead than UDP, and doesn't work well on dodgy network links.