paulkoning at comcast.net
Wed Jan 10 09:15:10 CST 2018
> On Jan 9, 2018, at 7:56 PM, Phil Budne via cctalk <cctalk at classiccmp.org> wrote:
> (*) "A Network For 10s?" possibly based on a VERY early spec for
> DECnet. It may have used link-state routing. I don't think routing
> in DECnet appeared before Phase III; Between Phase II systems you
> needed to use a passthru service, and ended up hand specifying routes,
> like in the UUCP world: A::B::C:: -- DECnet routing (at least up to
> Phase IV) was distance vector (within an area, I think node zero was
> designated to be a route to an inter-area router). The ONE nice thing
> I remember about Phase IV is that an area could span multiple Ethernet
> links, so you didn't have to waste a "network number" on each Ether
> segment the way you had to use a Class-C in TCP/IP before subnetting.
> I've wondered how much longer the IPv4 address space might have lasted
> if there hadn't been a constraint that each network link have its own
> network number (and each interface be uniquely addressable).
DECnet phase 1 was point to point, usually described as RSX only though there is a DECnet-8 document that describes it.
DECnet phase 2 is also point to point except for "intercept" nodes which do routing (by node name -- not number). As I understand it, intercept was intended for PDP-10/20 systems where the front end would be the intercept, but that may be a misunderstanding on my part. I worked on DECnet/E, which neither asked for nor offered intercept. An intercept node is more than a router, actually; it keeps connection state (NSP state) so it can disconnect connections whose destination has gone away. Note that Phase 2 NSP doesn't do timeout and retransmit, because it works on a "reliable" datalink (DDCMP).
DECnet phase 3 adds distance vector routing, NSP now has timeout and retransmit. 255 nodes max, no hierarchy. Still only point to point (X.25 was added).
DECnet phase 4 adds hierarchy, Ethernet support. This is where the infamous "high order MAC address" hack was concocted. And yes, areas are not subnets, for that matter addresses are node addresses, not interface addresses, in all versions of DECnet. That made a bunch of things much cleaner while complicating a few others. Phase 4 is still distance vector, now with two instances: one for routing within the area, one for routing among areas. The latter is present only in area routers. And yes, in the within-area routing table, node number 0 is the alias for "any destination outside this area".
> DECnet Phase V encompassed ISO, and might have included IS-IS,
> which Rhea Perlman had a hand in (while at DEC?). XNS (and hence
> Netware) had 32-bits network number (host/node address was 48 bits
> (ethernet address) and might also have had longer legs for global
Phase 5 adopted OSI ES-IS (network layer) and TP-4 (transport layer). ISO didn't have a routing protocol; their theory was that the world is X.25-ish stuff where telcos do the routing in a proprietary way. That was obviously nonsense, so the DECnet architecture team created a link state routing protocol inspired by earlier IP work, with a lot of fixes to deal with failures. That was then adopted by OSI as IS-IS, and further tweaked to become OSPF.
A bit of obscure history: When she first arrived at DEC (1981?), Radia proposed a link state routing protocol for what would be phase 4. That wasn't adopted because it was considered too complicated by the VMS team; instead "phase 3e (3 extended)" was created by a straightforward hack of phase 3, and that is what we now know as phase 4. But the packet headers in Radia's proposal were retained for the Eternet case, which is where the "long headers" come from with a whole pile of fields with strange names that are for practical purposes simply reserved values. When we outgrew phase 4 and link state was dusted off again, OSI had become relevant so a new design was created on that basis. So the link state algorithm is in IS-IS but the packet formats and addressing are entirely different from the previous "long header" Ethernet stuff.
All DECnet versions from phase 3 onward were one phase backward compatible. Phase 2 wasn't backward compatible with phase 1; the packet formats are rather different. I'm not sure why this wasn't done; perhaps no one thought it would be interesting. No DEC product that I know of was multiple-phase backward compatible and no spec says how to do that, but it isn't actually hard; my Python based router does so.
More information about the cctalk