Monday, November 3, 2008

Development of the DNS

I have set up BIND and MS DNS servers before, but never thought about DNS from a research perspective. Also, before reading this paper, I didn't realize that the HOSTS.TXT file was the primary address resolution mechanism for the Internet before DNS came around.

I thought that the paper was written well, focusing on the parts of the problem that were interesting from a [distributed] systems perspective, and thus has that sort of timeless feeling that so many of the classic systems paper seem to have, as valuable for its historical perspective as it is for the systems principles it presents.

The paper covers the basics of how DNS works, some of the design trade offs the engineers faced and finishes with three discussions, surprises, what worked, what didn't work. I very much enjoyed this layout.

Some other thoughts/nitpicks:
  • It is interesting that "provide tolerable performance" came last on the list of design assumptions behind DNS.
  • I thought the negative caching surprise was very cool, and it had never occurred to me that DNS used such a mechanism.
  • Their discussion of using datagrams (UDP?) and not TCP was confusing. On the one hand they see much better performance, but on the other hand they realize that they are reinventing much of TCP.
  • in 5.4, they say that when root servers return the name of a host they also pass the ip address of that host for free. which sort of queries does this apply to? wouldn't it be a name resolution query, in which case the ip address of the host was passed as input? I know I am simply missing something here.
  • Interesting point in 5.5 about how Administrators might choose short TTLs in a misguided move to get their changes (which are rare) to take effect rapidly.

No comments: