October 6th, 2003, 01:38 PM
Lost UDP Packet?
I know that DNS uses UDP but what happens if a DNS packet is lost. Is there some process like automatic recovery and does this cause a problem and if yes then how is it resolved?
I'll be highly obliged if someone can answer me the above query. Thanks in advance...
Beware Clarity! A person talking to you in clear language is clearly using obsolete ideas.
October 6th, 2003, 02:33 PM
Because UDP is a connectionless protocol, if a packet gets dropped the endpoint has no way of knowing wether it was received or not, so it won't get retransmitted if it was dropped.
There isn't any automatic recovery method that I know of.
(This same reason is why I will not upgrade a router or switch remotely, unless the TFTP server is on the same subnet...another topic for another day. )
hope this answered your question.
October 6th, 2003, 03:45 PM
If your looking for a reliable protocol that will give you the status of your packet use TCP. UDP itself cannot notify you of a lost packet. Though some UDP oriented protocols can do so.
[gloworange]And then it happened... a door opened to a world... rushing through the phone line like heroin through an addict\'s veins, an electronic pulse is sent out, a refuge from the day-to-day incompetencies is sought... a board is found. \"This is it... this is where I belong...\" I know everyone here... even if I\'ve never met them, never talked to them, may never hear from them again... I know you all...[/gloworange]
October 6th, 2003, 03:51 PM
Yeah okay - When you talk about DNS using UDP, I assume you are meaning DNS queries...so my response is based on DNS queries..
1) Tekno is correct: "Because UDP is a connectionless protocol, if a packet gets dropped the endpoint has no way of knowing wether it was received or not, so it won't get retransmitted if it was dropped. "
2) Your DNS client (nslookup / dig etc..) may be capable of retrying a query if no response is received with a given time frame. So I guess that provides some recovery!
Extract of dig man page:
The retry and time options affect the retransmission strategy
used by the resolver library when sending datagram queries.
The algorithm is as follows:
for i = 0 to retry - 1
for j = 1 to num_servers
wait((time * (2**i)) / num_servers)
Take a look at you client documentation - it should contain more info on how is works