Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site umcp-cs.UUCP Path: utzoo!linus!philabs!cmcl2!seismo!lll-crg!gymble!umcp-cs!zben From: zben@umcp-cs.UUCP (Ben Cranston) Newsgroups: net.mail Subject: More thoughts on mail relays Message-ID: <1813@umcp-cs.UUCP> Date: Fri, 11-Oct-85 06:38:04 EDT Article-I.D.: umcp-cs.1813 Posted: Fri Oct 11 06:38:04 1985 Date-Received: Tue, 15-Oct-85 03:04:24 EDT Distribution: net Organization: U of Maryland, Computer Science Dept., College Park, MD Lines: 150 Since I have had the luxury of doing little else but electronic mail for the past few years, and have been looking at it from a fairly global viewpoint (by this I mean avoiding "unix tunnel vision") I thought to clog up the net with a few random thoughts. If this seems a bit disconnected, consider that I have just read roughly 300 messages from this newsgroup, over the past eight hours or so. (Catching up is h*ll). One: since there are user agents and mail programs, there may be one or two levels of translation between what the user types to the mail agent in the way of addresses and what actually comes out the wire to the next site. One level of translation is done somewhere between the user agent and the mail delivery program, another is typified by the IBM VM/CMS NAMES facility or the VMS names thing - a mapping between a private universe of short rememberable names and the ugly strings we use to get from machine to machine. Even though we are a BitNet and ARPA Internet site, and not a UUCP site (I speak of UMD2.UMD.EDU/UMD2.BITNET here), I happen to like the bang syntax. Since I am a Christian, I read from left to right. I think the RFC822 forward syntax (@one,@two:user@three) is a real crock! The user%three%two@one syntax requires me to read from right to left. If we were doing things from a cognitive engineering/user friendly viewpoint, we would have the user talk bang to the mail agent, and have the delivery program do whatever translation is required for whatever connection we FIRST send the message through. In this spirit the examples given below are given in bang syntax, please feel free to translate to whatever you happen to like. Two: with mixed-syntax addresses like one!two!user@three there will always be the parse ambiguity. One of the terrible things about electronic mail is that to create a workable multihop address one needs to cobble together a form that not only is acceptable to the source and destination machines, but also to EVERY MACHINE THAT THE MESSAGE MUST PASS THROUGH! Given this constraint, I have no choice but to argue that ANY ADDRESS, AT ANY TIME, MUST BE CODED IN ONLY ONE SYNTAX. That is, we declare mixed mode addresses like the above as invalid. Three: now, let us contemplate a complex address that passes through two relays (inter-network gateways, er, ah, you know what I mean): gun!bullet!arpauucp!elf!wizard!uucpbnet!blue!user Note that though this address is given in bang format, gun and bullet are ARPA Internet sites, arpauucp is a gate, elf and wizard are UUCP sites, uucpbnet is a uucp to BitNet gate, and blue is a BitNet site. Presumably when the user at an ARPA Internet site types this address, the software translates it to: @gun,@bullet,@arpauucp,@elf,@wizard,@uucpbnet:user@blue before putting it out into the ARPA Internet. I also assume that at the gate site arpauucp the remainder of the address gets rewritten as: elf!wizard!uucpbnet!blue!user and that at the gate site uucpbnet the remainder of the address becomes: user@blue again. There are those here on the net who claim that ALL sites in the address must be known to EACH site in the path. Perhaps to substitute official names, as the 82x standards claim must be done in intersite communications. Perhaps even the authors of the RFCs thought that they could subsume UUCP and all the other networks within the domaining scheme. Regretably this is not now the case, and given the choice between a strict interpretation of the standard and having things WORK, I am inclined to bend the standard just a little bit. Some people tie the site lookup function to the exact syntax. If it is decided that the address is in bang form, they look in the UUCP list, if it is in @ form they look in the Internet list, etc. The problem with this approach is that it REQUIRES mixed-form addresses, and we are back to the old "do we parse ! or @ first" question. As an example to clarify these viewpoints, some would claim that the address: @gun.arpa,@bullet.arpa:user@blue.bitnet is prima facie illegal because .bitnet is not a recognized ARPA domain. While this may be true given a strict reading of the standards, and will work well if there ever IS a real .bitnet domain with an accessable nameserver, just by bending the rules a bit we can accept it now, and have mail WORK. Others cry "cruft" at this address: @gun,@bullet,@elf,user@wizard and would require the address be given as: @gun:elf!wizard!user@bullet so that "elf" is looked up in the UUCP list and not the ARPA list. By taking the viewpoint that addresses are syntactically changed at gates, but that site names in the list need not be known at the gates (except for the first one, the one we will forward to, of course), we get the best of both worlds. What this boils down to is this: if we ever WERE to want to completely process an address, looking up the sites, the universe or set of default domains or whatever would change at the point in the address a gate was mentioned. But, if we leave the substitution of the official name, the only reason we really need to LOOK at the site names, to be done incrementally at each gate, we never NEED to process site names beyond the first one. As an example: @gun.arpa,@bullet.arpa:user@blue.bitnet the software at "gun" never NEEDS to lookup "blue.bitnet". It might very well substitute "bullet-m16" as the official name for "bullet", but it can leave the lookup of "blue.bitnet" to site "bullet", which as a gate is presumed to have access to the .bitnet name list. Last: there seem to be sites out there that love to talk to multiple networks, but are less sanguine about playing by the rules. Every time a message comes through my Arpa-BitNet gateway with a header field like: From: Joe Luser my software drops a five page print file complaining that it can hardly cast this address into a BitNet address when it doesn't know ANYTHING about the .UUCP domain. Whatever cutesy site let this monstrousity into the Arpanet *SHOULD* have rewritten the address as something like: From: Joe Luser <@cutesy.ARPA:luser@podunk.UUCP> In which case my software would be satisfied that it knows how to get to "cutesy.ARPA" (never bothering trying to lookup "podunk.UUCP") and finally would rewrite the field something like: From: Joe Luser and replies would actually work! If somebody replied to the address, it would come back to me as: luser%podunk.UUCP%cutesy.ARPA@umd2 I would rewrite it as: @cutesy.ARPA:luser@podunk.UUCP "cutesy" would rewrite it as: podunk!luser QED. I am not holding my breath. Sigh. Well, at least I get three or four random samples a day of what my software is REALLY doing. Good for debugging and riding herd on the d*mn thing. -- Ben Cranston ...seismo!umcp-cs!zben zben@umd2.ARPA