good succint answer there Granite.
UDP doesn't have any error correction in the protocol. Programs that use it can have error correction, but its not in the protocol. UDP is basically shouting out and you don't care if someone heard you or not.
TCP has error correction, not needed in programs that use it because of this. TCP is more like a conversation.. You say a, b, and c, in sequence and the other end says the last thing I got in the sequence was b.. so you sart back over with c, d and e, and the other end says he got everything in sequence up to e, then you go f, g, and h.. ad nausium.