Friday, September 19th, 2008
One of the nice performance features in Google Chrome is the DNS pre-resolving technique that asynchronously does DNS lookups to seed the cache, at appropriate times. For example, based on links in a page, search suggestions, your favourite end points at startup.
The article goes into the details, and this is a long running discussion.
This Simple Failover article (PDF) talks about how DNS servers cache lookups at the various levels. The Operating System itself does some caching, proxies can do more, and applications such as browsers also cache even more:
It has been suggested that some ISPs configure their DNS servers to cache all DNS records for a minimum period (such as 60 minutes) in an attempt to reduce DNS network traffic.
This may have been the case in the past, but this does not appear to be very common today, probably because more and more web sites and Internet services depend on quick updates to DNS records.
DNS network packets are extremely compact and take up very little bandwidth compared to everything else we send across the Internet, so this is not a good place to look for bandwidth savings anyway.
“www.cnn.com” is one example of a well-known larger web site, which depends on low TTL values to enable quick changes to their web site (they currently use DNS TTL values of 5 minutes). Also, many small web-sites today depend on low TTL values because they run on ADSL or cable connections with dynamic IP addresses, and therefore require frequent DNS updates (when their IP address changes)
Microsoft Windows 2000 and later includes a DNS cache – the “DNS Client” service. You can display the contents of this DNS cache by typing “IPCONFIG /displaydns” at a command prompt, or clear it by typing “IPCONFIG /flushdns”. This DNS cache honors TTLs as described earlier in this document, and so this does not cause any caching beyond the original TTL.
Internet Explorer 4, 5, and 7 by default caches all DNS record for a period of 30 minutes no matter what the TTL value is. This means that there is up to a 30-minute delay before they will discover DNS
This of course only affects visitors who have visited the web site immediately before a DNS update. New visitors or return visitors who closed their browser or waited more than 30 minutes since their last visit are not affected.
It is possible to adjust the length of time I.E. caches DNS records by updating a registry setting on the client machine. But this is of course only practical in an intranet scenario.
Internet Explorer v. 6 does not cache DNS A-record responses. It only caches DNS CNAME-record responses. Simple Failover only uses DNS A-records. This means that this browser version practically discover DNS changes made by Simple Failover instantly.
All versions of the Firefox and Mozilla/Netscape browsers since mid 2004 by default cache all DNS records for 1 minute no matter what the TTL value is. This means that they will discover DNS changes within one minute. Earlier versions of Mozilla/Netscape browsers cache all DNS records for 15 minutes no matter what the TTL value is.
Posted by Dion Almaer at 7:21 am