Subject: should retry have unique ID

From: "Eric A. Hall" <[email-masked]>
Date: Sun, 11 Jun 2000 13:08:24 -0700

I'm wondering what the group experience is in regard to Identifiers on
retry queries. Should each retry have a different Identifier? Nobody
seems to do this today (limited testing) but I'm wondering if that's the
proper behavior.

Scenario: client sends query to server-a for resolution, but server-a is
behind a slow connection and so it takes >5s to get an answer or
server-a is down/unreachable for some reason, so client also sends the
query to server-b for resolution. With all of the implementations that I
have tested, the queries to server-a and server-b both have the same
Identifier. Should they? How does the client tell the answers apart, or
does it even need to?

Surely there are some scenarios where the data is different or where
some other form of selection needs to occur. I will assume that
resolvers are using IP addresses or some other data to match the answers
up when multiple responses are received and some form of selection needs
to be made. It seems that given the nature of proxies and firewalls and
so forth that these kinds of data points are not always entirely
reliable, and become less so as time goes by.

If that's the case, then why not just use different Identifiers in the
messages? Has experience shown this is not necessary, or does everybody
view multiple responses with the same Identifier as noise and discarded?

1035 is vague at best on the precise rules associated with this field so
I am wondering what experience has shown. Thanks for any data.

-- 
Eric A. Hall                                      http://www.ehsco.com/
Internet Core Protocols        http://www.oreilly.com/catalog/coreprot/

to unsubscribe send a message to [email-masked] with
the word 'unsubscribe' in a single line as the message text body.

---

From: [email-masked]
Date: Mon, 12 Jun 2000 22:56:11 +1000

> Identifier. Should they? How does the client tell the answers apart, or

	It can tell the answers apart by looking at the IP address the
	response comes from not that it needs to as it is looking for a
	answer and both servers should be providing the same view of the
	world.

> to be made.

	In general the first answer recieved is processed provided it has
	come from an address the query was sent to.  Subsequent answers are
	discarded either a the kernel level or at the application layer.

> It seems that given the nature of proxies and firewalls and

	No.  They actually are getting better as answers which are not
	expected are discarded and people complain when the DNS does not
	work so bugs tend to get fixed fast.

> view multiple responses with the same Identifier as noise and discarded?

	Different ID's for the same question are not necessary.  This does
	not mean however that an implementation that chooses to use
	different ID's is broken.  Using different ID's per IP is a way 
	of allowing more queries to be in progress at once than using a
	single ID space.

	It is good form however to use the same ID to the same server as
	this allows the server to discard multiple queries if it is still
	processing the original query.

> I am wondering what experience has shown. Thanks for any data.

	Mark
--
Mark Andrews, Nominum Inc.
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: [email-masked]

---

From: Rob Austein <[email-masked]>
Date: Wed, 21 Jun 2000 18:35:02 -0400

[Too much time on the road lately, hence the delayed response.]

The one observation I'd add to Mark's comments is that unique IDs can
be useful if one is attempting to do careful measurement of round trip
times, eg if one is implementing a TCP-like retransmission algorithm.