Path: utzoo!utgpu!watmath!clyde!att!rutgers!ucsd!sdcsvax!ucsdhub!hp-sdd!ncr-sd!ncrlnk!uunet!mcvax!ukc!dcl-cs!aber-cs!pcg From: pcg@aber-cs.UUCP (Piercarlo Grandi) Newsgroups: comp.mail.misc Subject: Re: Another example why not to re-route Summary: Domain names are NOT routes. You still need routes... Message-ID: <321@aber-cs.UUCP> Date: 3 Dec 88 21:05:31 GMT References: <989@tank.uchicago.edu> <360@lakart.UUCP> Reply-To: pcg@cs.aber.ac.uk (Piercarlo Grandi) Distribution: eunet,world Organization: CS Dept., University College of Wales, Aberystwyth, UK Lines: 89 X-Disclaimer: Any statement is purely personal. In article <360@lakart.UUCP> dg@lakart.UUCP (David Goodenough) writes: N.B. Just in case the message DOES start looping (e.g. garp thinks the cheapest way to decwrl is thru lakart, with a broken path out of here) I keep a check on message ID's for all letters passing thru, on the fourth time of seeing, they are returned to sender, along the reply path that came in originally. i.e. the data file looks like: XX00010030@pallio.UUCP 1 pallio!dg where the 1 is the count of times I've seen the message. The problem with dynamic routing (because rerouting, peeking, or what else you call this hideous sin :-> is dynamic adaptive routing) is that it requires a cooperative, distributed adaptive routing algorithm, just like old ARPAnet. And devising one that fits the UUCP mould is not easy. And having it adopted by everybody is even less easy. As all rerouters always say: "if only we kept up to date maps everywhere" (read: distributed routing database maintenance in realtime), and "if only we had a good algorithm to avoid loops, losses, etc..." (read: distributed dynamic adaptive routing with local knowledge). To make dynamic routing possible you have to have a way to ensure that all sites have the same software, all sites cooperate in the distributed updating of the routing database, all sites cooperate in running the distributed adaptive routing algorithm. This may be possible on the internet (maybe :->). It cannot be done, by definition, on USENET, which is a loose band of independent sites. In article <360@lakart.UUCP> dg@lakart.UUCP (David Goodenough) also writes: Of course, as soon as we all follow killer's lead, and lakart becomes lakart.boston.ma.us, and pallio becomes pallio.lakart.boston.ma.us then bang paths become a thing of the past. Now if someone could tell me how to do this ..... This is again the old, tired confusion, apparent in another part of your article as well, between names and routes. First of all, domainization, I will repeat here for the NTH time, is only a way to help have unique names, and, even in its limited purpose, requires some central administration. Thank goodness this is lightweight enough that USENET can live with it. Domainization can also be extended to imply name service where b.a is the holder of the map for *.b.a, and route service where b.a is the gateway to *.b.a; note that often both choices are appallingly inefficient, as proximity in the domain space does not imply any proximity in the connectivity space. A bang path, and this is something that very few people realize, is BOTH a NAMING device and a ROUTING device. It is NOT JUST A ROUTING DEVICE. In particular, since host names need not be unique, a given host is named by a bang path, not by the host name alone. It is just a coincidence that a bang path can be also used as a route, just as it is a coincidence that a domain name can be used as a route. Given this, your rules of clipping a bang path if you find your site name or one of your neighbours' in the path are quite wrong, because there might be MANY sites with the same host name. What would you do with a message reaching you with a further path like "uunet!enea!lakart!carlsson"? In other words bang paths are just like unix filesystem paths, but there is no root. Domain based names at least have a root (well, approximately) and therefore ambiguities cannot exist. Note that in a sense domain based names are paths, paths in the name space, just like bang names are; if one assumes that the connectivity space is shaped like the name space, both may be used as routes, The differences between domain and bang paths are first that the former have a tree shaped namespace (arguably a DAG shaped namespace, but many frown at allowing this), the latter are paths through an arbitrary unrooted graph, and second that normally domain paths are good for naming and bad for routing, and bang paths viceversa. routespace paths, and bang paths viceversa. The complete solution is: use domain names for unique identification of hosts, use bang paths for routing, do generate bang routes at the source, statically, do not do dynamic routing (unless among consenting sites that can be relied upon to maintain among them consistent distributed map databases and distributed adaptive routing algorithms, i.e. within the internet), and do not rely on domain names to locate map servers or to do routing. -- Piercarlo "Peter" Grandi INET: pcg@cs.aber.ac.uk Sw.Eng. Group, Dept. of Computer Science UUCP: ...!mcvax!ukc!aber-cs!pcg UCW, Penglais, Aberystwyth, WALES SY23 3BZ (UK)