So guys, continuing with the discussion of user datagram protocol, the user datagram protocol that
is UDP is an unreliable protocol.
UDP don't care of the packets or datagrams has actually reached the destination or not.
So you can see in the diagram on the right hand side, suppose the sender s sends the datagram D one
and the datagram D two.
Right?
And suppose the datagram d two gets lost somewhere on the internet.
So what reaches on the destination machine?
R is only the datagram D one.
Right.
So UDP protocol on the sending side actually do not care at all whether the datagram that it injected
into the network has actually reached the recipient or not.
It leaves the datagrams on their own fate.
If a datagram D2 is lost in the network, then it is lost forever.
So it is for this reason that the application which wants to exchange data with each other, must make
use of UDP protocol for data communication only when the applications are data loss insensitive.
That is if on a lossy network, even if some datagrams get lost, then it do not cause any significant
performance or significant loss of information.
Example of such applications may be video streaming or audio streaming.
ET cetera.
In these types of applications, even if some datagrams happen to loss.
The recipient process would hardly detect any noticeable change.
Then going forward, the UDP protocol do not guarantee ordered delivery of datagrams.
UDP don't care if datagrams that is injected into the network actually reaches the destination in the
same order in which they were generated by the sending application.
The out of order reception of datagrams on the receiving process can actually lead to certain problems.