> On Jan 9, 2018, at 7:56 PM, Phil Budne via cctalk <cctalk@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
> use.

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.

        paul

Reply via email to