Look at section 22.4 of Steven's Unix Network Programming, "When to Use UDP Instead of TCP".
Also, see this other SO answer about the misconception that UDP is always faster than TCP.
What Steven's says can be summed up as follows:
- Use UDP for broadcast and multicast since that is your only option ( use multicast for any new apps )
- You can use UDP for simple request / reply apps, but you'll need to build in your own acks, timeouts and retransmissions
- Don't use UDP for bulk data transfer.