Juniper Networks Interview Question

difference between TCP and UDP. How to choose between them when you are developing any application. How can you incorporate reliability over UDP ? What would be difference between ACK in TCP and UDP?