The correct option is D It does three way handshake before sending datagrams
UDP is connectioness protocol, so it doesn't establish connection. Three way handshake is done by transport layer.
A. UDP is a stateless protocol thus, useful in servers which answer small queries of large number of clients as it doesn't need to store the state of each client. Thus, UDP is suitable for broadcast and unidirectional communication.
B. Three way handshake is performed by TCP before establishing the connection in which it first sends SYN packet then SYN-ACK is received, then ACK packet is sent. UDP is a connectionless protocol and thus, doesn't to perform 3 way handshake.
C. IP tunneling is a communication channel between two different kind of networks. It is used to connect islands of IPv6 across the IPv4 internet by encapsulating the packets in the frame format of IPv4. Remote procedure call is when a program causes a subroutine to run in another address space. This address space can be on server. It is a request response protocol and thus,
UDP is suitable for it. Datagrams are also useful as UDP is a packet stream protocol.
D. TCP retransmits the errorneous packets from source to destination while UDP discards them.