Xref: utzoo comp.mail.uucp:3176 comp.mail.misc:1937 Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!tut.cis.ohio-state.edu!att!cbnews!mark From: mark@cbnews.ATT.COM (Mark Horton) Newsgroups: comp.mail.uucp,comp.mail.misc Subject: Re: rewriting FROM: lines Message-ID: <6982@cbnews.ATT.COM> Date: 30 May 89 17:54:06 GMT References: <31051@sri-unix.SRI.COM> <160@zebra.UUCP> Reply-To: mark@cbnews.ATT.COM (Mark Horton) Organization: AT&T Bell Laboratories Lines: 124 In article <160@zebra.UUCP> Vernon C. Hoxie writes: >In article <31051@sri-unix.SRI.COM>, Jim Thompson writes: >> >> UUCP (and 'bang addressing') are a really stupid way of doing things. >> Hence, foo@bar.UUCP is (almost) as bad as bar!foo. I have no idea >> which 'bar' you mean. foo@bar.baz.{com,edu,org,net,...} Does tell me >> which 'bar' you mean, and I have some hope of delivering it. > > I have been confused for a long time about how to interpret >domain names. "Bang" pathes seem quite logical in that they describe the >step by step path from one user to another. In fact, bang pathes are used >in domain addressing until we get to that weird stuff at the end. Suddenly >the logical sequence of names is inverted so that the users name precedes >the machine or whatever is inferred. That flip in logic is what makes me >think of domain addressing as "stupid". Ah, a true religious debate. If we can refrain from damning the blasphemers for a few moments, and look at the technical issues, it will become clearer. Vernon points out the difference in left-to-right and right-to-left addressing styles. Bangs are left-to-right (first!next!..!last!user) and domains are right-to-left (user@local..org.country). There is well established precedent for both: telephone numbers are left-to-right, and postal addresses are right-to-left. Which is best? On pure technical grounds, it doesn't matter. However, when you get mixtures of the two, bad things happen. This is why standardization is crucial. Hybrid addresses like foo!bar@mumble.com can be (and are) interpreted both ways, often wrong. Life is further complicated by the UK, which has a sideways notation user@country.admd.org..local. In networking, there are three key concepts: names, addresses, and routes. A "name" is a high level, user guessable way to identify a person, machine, or other entity. For example, "Mark Horton". Names may be ambiguous, especially when abbreviated "M Horton". Names can be made unambiguous by adding more information. "Mark Randolph Horton who works for AT&T in Columbus Ohio and whose SSN is 1234567890" An "address" is a medium level, unambiguous way to identify *where something is*. For example, "Room 234, 1234 Main St, Columbus Ohio, USA". Addresses depend on the underlying technology, and one entity can have several addresses, e.g. postal, latitude/longitude. A "route" amounts to giving directions to get to an address. "Get on I-70 eastbound, drive to Columbus and take the 4th street offramp, turn north on 4th, turn east on Main, drive until you see a building with 1234 on it, park the car, go in the side door, up the stairs to the 2nd floor, down the B hallway to room 234." Routes tend to be different, depending on where the entity following the directions is starting from. Routes are usually tied to the underlying technology. Various computer entities that might have names, addresses, and/or routes include people, mailboxes, machines, modems, terminals, and so on. For email mailboxes, since mailboxes are often described by a person or login and a machine, there is sometimes a mixture of these three descriptions for both people and machines. Bang paths are routes for machines. If the last entity in the bang path is a login name, it becomes a route to get to a person's mailbox. Dotted IP addresses, like 192.11.2.1, are addresses for machines. Datakit dialstrings, such as oh/cbh/cblpf, are also addresses, although they are nicer because they use character strings instead of numbers. Domains, like cblpf.att.com, are names for machines. It is possible to map a machine name cblpf.att.com into a machine address, like 192.11.2.1 or oh/cbj/cblpf, and from there into a route like att!cblpf. cblpf is also a machine name, although it's likely to be ambiguous. Mailboxes may have an address (e.g. a login on a particular machine). Sometimes a name server can provide a mapping from names to addresses. The AT&T post database will map "mark.horton" into "cblpf!mark", for example. Thus, you can get various mixtures of descriptions in email targets: ucbvax!att!cblpf!mark route mark@cblpf.att.com address @ named machine, e.g. address mark.horton@att.com name on named domain, e.g. name All three of these forms will work, although the first one only works if you have a connection to ucbvax (or if your machine can fake it.) In general, users usually prefer names to addresses, and addresses to routes. routes are easier for computers to deal with than addresses (a mapping is required), and addresses are easier than names (two mappings may be needed.) There are other reasons to prefer names to addresses, and addresses to routes. Names tend to follow people around when they change addresses. (When I moved from cbosgd to cblpf, my name stayed the same.) Replies to names and addresses are easy: just leave the text alone. If you've seen some of the stuff mailx/Mail has to do to bang paths on carbon copies to get replies delivered, you'll appreciate the simplicity of names and addresses. The replying machine has to look at the header (possibly broken by intermediate machines) and guess what the path on a Cc: line meant to the sender. Names and addresses are sometimes longer than routes, just like full phone numbers are longer than extensions. Sometimes people prefer to type the route if they know it, and it's shorter. This is when it's a good idea to have an aliasing mechanism for even higher level names that are local to a user: $ cat .mailrc alias frank frank.n.stein@att.com $ mailx frank Names, addresses, and routes will always be around. Names need to be mapped into addresses, and addresses need to be mapped into routes, internally to the machine. But the world is steadily moving away from routes (which were implemented first) through addresses (which have been around for some time) to names (which are just now starting to get serious use) as the preferred means of sending email to people. There are, however, so many different standards and dialects, that there is much confusion in the meantime. Each standard and dialect has a large cult of faithful followers. Just like religions. Mark Horton (no, I don't use the Bourne-again shell)