UUCP Bang Paths Live!

We’re doing pretty much everything electronically at Ecole Polytechnique these days, having over the past couple of years introduced electronic signatures on traditional paperworks (Convention de Stages, for example …)

But, the other day, I actually got a physical letter, addressed to me. The reasons above makes this is a “blast from the past” in and by itself — but, this physical letter got into my hands with a considerable delay as it was misrouted – literally to the opposite side of campus, where I rarely go, and I came across it by almost accident.

The letter literally carried the complete routing path that it had taken, from the board of directors and down – and the letter had faithfully been delivered along that routing path and ended up, therefore, at the wrong location: my administrative attachment (as it appears in the corporate directory) may be LIX, but my functional office location is not in LIX but in DEI.

There’s a lesson here about the importance of Locator-ID separation, about why IP addresses indicate (only!) a “point of attachment on the Internet”, and why a different name-space is necessary for identifying a “service that users need to access” (corollary: this is also why, no!, it’s not a bug that IPv6 addresses are hard to remember — it’s a feature!)

Fortunately it was a letter which – if it had been an email – would have had “FYI” in the subject and been routed straight to “Archives” had it come electronically. Indeed, my first action was to scan the content, then feed it to the office shredder.

But, it did make me reminisce: I am just old enough to have actually used UUCP Email for a short amount of time in the early 90’es. UUCP – Unix-to-Unix-Copy – was a (for its time) cool tool that allowed copying a file from one Internet connected system (=computer) to another — for example, copy a file into the mailbox of another user at a remote system. But, at the time, dial-up connections prevailed and not every system was connected to the Internet at all time. A clever trick was, therefore, the use of “bang-paths” to indicate both email destinations and the path to get to them, separated by “bangs” (exclamation points!). A “bang path” would look something like this:

…!wellknownsite!foovax!barvax!user

The initial … (often omitted, sometimes included) would imply “whatever path the sender would need to copy the mail to “wellknownsite” (which, presumably, would be both well known and well connected and widely accessible) — and from there the mail would be copied to the machine “foovax” (when the line between foovax and wellknownsite was dialled up), and on to “barvax” (when a dial-up connection between “foovax” and “barvax” was established). Once on “barvax”, the mail would be copied into the mailbox “user”.

Bill Karwin actually has a great recount of UUCP Email, as an operator at the time, which definitely is worth a read.

Anyways, UUCP was a clever system, which dealt with “disconnected networks” (something which, today, remains somewhat of a research topic) but also had the “flaw” of having the physical location of the mailbox of the user tied to both the logical name, and to the way that emails was routed.

As the Internet grew better connected, and DNS emerged with all its magic mapping between symbolic (user-facing) names and (location-indicating) IP Addresses, CNAMEs and MX Records, modern email service, and the user@example.com email address format, emerged.

I honestly cannot remember the (at the time) “bang path” to my email box — I used it for a very short amount of time. But, at least, I now know what some people use as my (current) real-world “bang-path” at Ecole Polytechnique – and I should probably make a point of either updating it, or making sure to consult it from time to time.