A method, and computer program product for providing dynamically tunneling
over an unreliable protocol or a reliable protocol based on network
conditions is presented. A connection between a source device and a
destination device is established using a reliable protocol. An attempt
is then made to utilize an unreliable protocol to communicate between the
source device and the destination device. When the attempt to utilize an
unreliable protocol is successful, then the unreliable protocol is used
to transmit data between the source device and the destination device.
When the attempt to utilize the unreliable protocol is unsuccessful, then
the reliable protocol connection is used to transmit data between the
source device and the destination device.