Hierarchy, Force Monopoly, and Geodesic Societies

sunder sunder at sunder.net
Sun Apr 11 14:43:15 PDT 2004


Jim Dixon wrote:

> The term is used because most or all trees in the region where the English
> language originated are shaped just like that: they have a single trunk
> which forks into branches which may themselves fork and so on.  These
> branches do not connect back to one another.

I believe the real issue here is one of being able to stretch your mind 
into seeing things from different points of view.  This is the reason I 
brought in the quasi-mystical quote about the sphere whose center is 
everywhere.

To see if you'd be able to go beyond your already rich knowledge and gain 
new benefit from another way of looking at it.  (IMHO, it's important to be 
able to change POV's at will, it keeps you flexible and able to learn new 
ways of dealing with data by conversion.)


In real life, the roots of a tree resemble it's branches buried 
underground, in an almost mirror image.  A tree that terminates where the 
trunk meets the ground would fall.  The only real tree resembling this, is 
one where logger's saw was applied. :)  So we're already not discussing a 
real tree.

The idealized mathematical definition of a tree doesn't quite a real tree 
any more than do B-Trees, B+/-Trees, nor red/black trees, or our debated 
friend, the internet.

> The Internet doesn't resemble a tree at all.  It is characterized by many
> cross-connections, which form cycles.  These are introduced deliberately
> by network engineers, because tree-like networks are unreliable.  

Of course. It's called redundancy and its goal is to eliminate as many 
single points of failure as possible.  But from the point of view of one 
node talking to another, these aren't considered, I'll explain why.

Firstly, don't confuse cycles with redundancy for high availability.  These 
are two different things.

Let's explain why we have multiple connections and what types of these you 
can expect.  There are two common types of multiple connections:

A) Two links to the same ISP:  In terms of redundancy for the purposes of 
being fault tolerant, only one of the multiple links is ever used.  With 
most ISP's, when you negotiate a contract for a backup connection, it's 
with the understanding that you'll only use it when the main one goes down.

B) You have multiple connections to different ISP's (possibly with peering 
contracts, etc.)  In this case when a node at your location tries to 
contact some other node on the internet, it's traffic doesn't go over ALL 
of your connections - it takes only a single path.  [Ok, if your routers 
are correcting for an outage, then perhaps you'll see different paths being 
taken, but this is just the routing tables/routers settling or converging.]

If both case A and case B, a single node in your location will see the 
entire internet as a tree with the root of that tree being the default 
gateway.  (i.e. go back to doing traceroutes.)  In the case of a 
multi-homed machine, or machine that participates in routing, it itself 
becomes the root of the tree.

There are other cases but those are rare, and likely flawed.


Now on to cycles and the whole reason for this debate:

The whole point of many/most routing algorithms is to GET RID OF cycles. 
After you've done this, you're left with a tree.

Loops/cycles are so anathema to the workings of tcp/ip, that one of the 
fields in IP packets has been added to help eliminate: the TTL.  The only 
reason for a TTL value is to prevent packets that are going around in 
circles from congesting all the routers involved in the loop.  (Only later 
did traceroute exploit this into helping provide you with a map of where 
your packets went.)

This is why EIGRP, RIP, etc. use various mechanisms to explicitly prevent 
routing loops (and BGP to aggregate routes.)  Routing loops are damage, 
they are by definition not desirable.

At the data link layer (switches/hubs), this is why you want to use the 
Spanning Tree Protocol.  Notice that name: Spanning *TREE* Protocol.  After 
STP is done, you're left with a data link layer ->TREE< - not a cyclical 
graf.  STP is even more important for LAN's than on the internet since 
there's no TTL on ethernet frames:  a single broadcast, were it to be 
allowed to loop, could saturate your switches to the point of killing your LAN!


What all this says to me is that a cycle is a circle, and that failover/ 
parallel links should be collapsed (and are by routing protocols) to a 
single link.

Once you eliminate cycles, and you do so in real life, you go back to a 
tree.  You only see the alternate paths used when failover or routing 
errors occur.


Yes, I agree with you, if your POV is "The Big Picture" above from space, 
which includes all links, even the unused redundant ones, it's certainly 
not a tree.

At the same time, I also disagree with you.  If your POV is a single host, 
it sees the internet as a tree.  In fact, one of the properties of trees is 
that you "pick up" any leaf node and designate it as the root.  (Doesn't 
work too well on a B+Tree when you're trying to do searches,  but, the 
result is still a tree - not balanced any longer, but a tree.)

:)





More information about the cypherpunks-legacy mailing list