2005-06-29

Absolute and relative names

Before DNS was heard of, there was the Arpanet HOSTS.TXT file, which specified absolute names for the small subset of connected computers on the Arpanet, and then there was UUCP naming. Since UUCP-style names are dead or the nearest thing to it, I will explicate.

Once upon a time, if you weren't lucky enough to be on the Arpanet, you typically addressed your email something like this:

host1!host2!host3!...!hostn!username

Interpreted as routing instructions, this meant to pass the email to the computer named host1, which would pass it to the computer named host2, which ... would pass it to the computer named hostn for delivery to hostn's local user named username. Well and good.

But what was the source of these names: host1, host2, etc.? They had a purely local interpretation. Thus, host1 was the name of that particular computer according to your local computer, which had names for all the computers it could reach directly. And host2 in turn was the name of that second computer according to host1. Your computer might have a completely different name for host2, or no name at all. And as for hostn, that name might be known only to hostn-1. There was neither in principle nor in practice any central registry like DNS where these names could be looked up.

This system, while theoretically completely general, had an obvious practical difficulty: how did you give someone your email address short of actually sending an email? As an email traveled through the system, the sender's address was continuously transformed by prepending the local name of the last relay, thus making it possible to reply (provided naming was sufficiently reciprocal, as sometimes it was not). But how to specify it in the first place?

In practice, people tended to specify "bang paths" (bang = !) from certain "well-known hosts" such as ihnp4, seismo, ucbvax, decvax. (I name them so that old-timers can have the pleasure of seeing these hostnames once again.) So if you knew, as people generally did, the correct bang path from your system to the well-known hosts, you could prepend that to your intended recipient's partial bang path, and hopefully the mail got through.

There was some effort made to map the system as a directed graph with named links with attached costs, and a program called pathalias was used to rewrite the bang paths into cheaper routes with the same effect. But the mapping effort, being post hoc, never quite caught up with reality, and mail loops whereby hosta routed an email to hostb, which routed it back to hosta, were far from rare.

The DNS, on the other hand, grew out of the inability of all Arpanet (later Internet) hosts to keep up with the growth of the HOSTS.TXT file, and the administrative difficulties of managing such a large but flat absolute name space. Converting the name space to a hierarchy, and writing a distributed hierarchical implementation, made the DNS sufficiently scalable to support the many-orders-of-magnitude larger Internet of today.

For many a year, the domainists and bangists met and did intellectual battle on the fields of Usenet. Pathalias was even modified to understand bang paths that contained domain names, but bang paths were finally sent to the scrap heap by the invention of the ISP, which allowed even leaf computers to be effectively, if intermittently, on the Internet. And now though sometimes our email addresses are annoyingly long, or short but arbitrary, and even from time to time still contain the dreaded %-hack (which is not documented anywhere, including here), we can even put them on our business cards, along with those other absolute names, our postal addresses and worldwide telephone numbers.

Shall relative names return? Who is willing to stand up and be counted?

3 comments:

Florian Hars said...

Yes, and then during the transition, programs would get confused whether foo!bar!baz@qux.com really meant (foo!bar!baz)@qux.com (i.e. baz%bar%foo@qux.com) or foo!bar!(baz@qux.com) ...

Here is an article (in german) I filed during that time about a mail delivery gone wild.

Sean B. Palmer said...

Wait... who's asking for relative addresses again?

Jay Carlson said...

I'll ask for relative addresses when DNS dies. Given how random the International Conspiracy to Assign Network Names is, who can tell when that will be?

The other scenario is cybernetic natural disaster. Think ham radio operators.

Some of my first posts to usenet had some truly bizarre mail-to-news gateways in them. Like "From: @foovax1.bitnet:me%nic.foo. ..@cunyvm.cuny.edu". That's according to google groups. I remember much more flailing around with DECnet "::" addressing. The dots are a pain. I'm happy Google is dutifully keeping my 15 year old BITNET addresses free from spam.