attachment-0001

<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Randy,<div><br><div><div>On May 11, 2012, at 10:47 AM, Randy Turner wrote:</div><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br></div><div>Yes, I understand your consumer dynamic scenario…In the "old" days, admins would configure a service name (like "printer,<a href="http://apple.com/">apple.com</a>") to return multiple IP addresses, and socket API recommendations say you're supposed to walk the list of returned addresses until you successfully connect to one. &nbsp;So there would be a slight delay if you were home and wanted to access imac27.mike.members.icloud.com (unless the home IP address was the first address returned).</div></div></blockquote><div><br></div>That's the issue - the DNS server supporting imac27.mike.members.icloud.com doesn't report what the *local* address is since it is usually in the private space (192.168. or 10.) which isn't something you want to publish (since it is likely you'd resolve and connect to that address but be talking to the wrong machine...)</div><div><br></div><div>We have specific ways of dealing with this for Bonjour-registered services - resolve the service instance name using mDNS (.local) first, then start a resolve on the BTMM domain 1 second later - so that we prefer local services over BTMM, but the same trick can't be safely used for hostnames in general and doesn't address things beyond the simple local/cloud naming issues.</div><div><br></div><div><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>It gets even more complicated if your DNS setup is dual-stack in which case you're returning both A and AAAA records, in which case local resolver policy may force a delay if clients try to resolve IPv6 before IPv4 or vice-versa.</div></div></blockquote><br></div><div>IPv4/IPv6 is only one dimension. Even your traditional multiple-addresses-per-hostname configuration suffers from the "what address should I use" problem. Some implementations try one address at a time in the order they are returned, others try *all* of the addresses simultaneously (parallel threads) which is just nasty IMHO and breaks a lot of load balancers.</div><div><br></div><div>By having the Printer return the host and port that the Client provided we eliminate the guessing by the Client and allow it to do some simple caching (i.e. this is the address that works for "<a href="http://foo.example.com">foo.example.com</a>", at least until my network environment changes) so that things work well.</div><br><div>
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Geneva; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Geneva; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Geneva; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Monaco; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>________________________________________________________________________</div><div>Michael Sweet, Senior Printing System Engineer, PWG Chair</div></div></span></div></span></div></span></span>
</div>
<br></div><br />-- 
<br />This message has been scanned for viruses and
<br />dangerous content by
<a href="http://www.mailscanner.info/"><b>MailScanner</b></a>, and is
<br />believed to be clean.
</body></html>