Compare and contrast TCP and UDP.

Are there any additional components that could be added to the IPv4 protocol to enhance its usefulness?