On Mon, Sep 19, 2011 at 11:52 AM, Paul Hartman
<paul.hartman+gen...@gmail.com> wrote:
> On Sun, Sep 18, 2011 at 1:25 PM, András Csányi <sayusi.a...@gmail.com> wrote:
>> Dear All!
>>
>> I think Google Chrome/Chromium is an excellent browser and I have been
>> using it for a year or more. But there is one issue which is
>> disturbing me and I would like to know what is your experience.
>
> Maybe a different problem than what you're having, but in my
> experience Chromium is sensitive to DNS problems. When I use my ISP's
> DNS server, Chromium regularly fails to load pages. When I use my own
> local DNS resolver on my own machine, it works great...

* Chrome/Chromium does not internally cache DNS results. (Firefox, by
contrast, does)
* DNS communications occur over UDP, which is very fast from the
server's perspective, but carries no guarantee of delivery. (As a
coping mechanism, DNS resolvers retry after a timeout)

So what's happening:

Chromium sends a UDP packet asking for the A (or AAAA, depending)
record of whatever site it is you want to go see.

That UDP packet makes it through your local network, and exits through
your {,cable,DSL} modem. Noise on the line results in the loss of the
UDP packet. The target DNS server never hears about the request, so
never sends a reply.

Chromium will retry after a bit. (I think the default is 30s for the
first retry)

On the other hand, if you're running a recursing DNS server on your
local network, here's what happens:

Chromium sends a UDP packet to your local DNS server, asking fo the A
(or AAAA) record of the domain in question.

That UDP packet makes it across your reliable local network to your
local caching/recursing DNS server.

Your local DNS server sends a UDP packet to an upstream DNS server,
asking for the information you wanted. If that UDP packet doesn't
reach its destination, the DNS server will try again.

Once your local DNS server receives a reply, it caches the information
for as long as the DNS records TTL indicates it should.

So what happened to Chromium's initial request? If your local DNS
server's initial query didn't manage to swim upstream, then Chromium
probably timed out. You, the user, will probably try again.

By the time you try again, your local DNS server will probably have
received and cached the response from your _first_ query, and will
have an answer for you immediately; no need to send UDP packets out
over lossy internet connection.

-- 
:wq

Reply via email to