On Mon, Feb 26, 2007 at 05:18:03PM +0800, Gautam John wrote:
> Saw this post on his Hyderabad talk:
> 
> http://gauteg.blogspot.com/2007/02/vint-cerfs-talk-in-hyderabad.html

A lot of the original design for the protocols didn't address several
basic issues.

- the network was small and irregular
- transfer speed was well below relativistic
- logic was electronics, not photonics

If you fire photons in a fiber FIFO, very much like sending
information by firing tracer bullets into the night, you want
to make the routing decision while the packet headers are still
streaming past you. It is a switch, not a router. Because of timing,
you need pretty shallow logic, since invididual gate delays add up.
Worse, you don't want to convert photons to electrons and back,
so you preferrably would do this with photonic gates, which are expensive
in numbers and power dissipation (NLO usually appears at higher fluxes).

The idea is to make an astonishingly dumb network, one that is
basically only a thin decoration upon this universe's basic laws.
Once you fire your stream of tracer bullets, they go on own power,
until they hit a node somewhere, and have to be redirected on the
fly to a different sky segment.

I've once experimented with node layout on global scale (where the
geometry is the surface of a sphere, or a concentric thick shell, and
you can actually build a local-knowledge only routing scheme which
is quick enough. Basically, you don't store global routes, but 
deviations of the local lattice defects from perfection. The node
address is a binary string representing the current node position
(something like a polar coordinate system, but with a Gray-like
encoding with local bit flips and no addressing singularities).
I was thinking about using a hierarchical addressing scheme to
switch to individual gravitational assemblies (Earth/Moon, Sun,
galactic system, etc).

Incidentally, the same addressing scheme works on very small
scale (die, wafer), too.

I did a (very bad and purple, I was dumb, 1994/95) writeup on 
http://leitl.org/oldcontent/ui22204/.html/txt/8uliw.txt
(I think I did manage to do a fairy well kook impersonation
here)?

Definition and Performance of n-grids.

A perfect n-grid consists of 2^n nodes, each having 2*n links.
From any node only links to nodes differing in binary offsets
from self node are allowed. Provided, the wiring constraints are
sufficient, the self ID arises from neighbour IDs
deterministically. E.g. in 8-grid: 256 nodes, 0-node has +-1 +-2
+-4 +-8 +-16 +-32 +-64 +-128. Since links reaching out beyond ID
space are considered void, 0-node has links to
1,2,4,8,16,32,64,128-nodes.


+------+---------------------------+
| Total| Distance in node-node hops|
| Nodes| 0  1  2  3  4  5  6  7  8 |
+------+---------------------------+
|   1  | 1  0  0  0  0  0  0  0  0 | Number of nodes
|   2  | 1  1  0  0  0  0  0  0  0 | having the minimum
|   4  | 1  2  1  0  0  0  0  0  0 | distance in hops
|   8  | 1  3  3  1  0  0  0  0  0 | (Pascal triangle for
|  16  | 1  4  6  4  1  0  0  0  0 |  nondefective n-grids)
|  32  | 1  5 10 10  5  1  0  0  0 |
|  64  | 1  6 15 20 15  6  1  0  0 |
| 128  | 1  7 21 35 35 21  7  1  0 |
| 256  | 1  8 28 56 70 56 28  8  1 |
+------+---------------------------+

/* ************************************* */

Consider the Bresenham line drawing algorithm. It decides which
pixel to choose from several neighbours using only the knowledge
where it is now and where it has to go. To make it work the
lattice/grid has to be regular and each element to have an
unique ID/addressing. If we use a regular higher-dimensional
grid and a higher Bresenham homologue it will obviously work.
Even better, very high degrees of defectivity can be tolerated.
The probability of a blockage goes almost down to zero with
increasing number of dimensions. Detection of the blockage
condition is trivial: the path begins to show a small periode
(due to routing artefacts). A tiny FIFO of a path will do. A
random kick will often solve the problem. If not, an exhaustive
local search will do. But is it worth the trouble? Packet
lossage is usually handled transparently by a protocol.)

I refer to this scheme as higher-dimensional Bresenham routing
or simply grassrouting, because of its simplicity.
          ^^^^^^^^^^^^
The boolean hypercube (n-cube) a member of the hypergrid or the
n-grid family, will be our model case.

The n-grid/n-cube.

Imagine a standard three-dimensional cube with an edge of length
1, the first node lying at coordinates (0,0,0), the second at
(0,0,1), the third ... (0,1,0), (0,1,1), (1,0,0), (1,0,1),
(1,1,0) and the eighth at (1,1,1) (see picture). It is a member

    Y
    |       Z
    |      /
 011| o--------o 111
    |/|  /    /|
010 o--------o | 110   A 3-cube with binary labeled
    | |/     | |       nodes in a cartesian coordinate
 001| o------|-o 101   system
    |/       |/
    o--------o-------X
  000      100

of the boolean n-cube homologue sequence with total number of
nodes being 2^n. Thus one can label the nodes with a binary
integer 0,..,(2^n)-1. Alternatively, one can say there a space
of IDs for each n-cube. If we consider a single reference node
in a boolean n-cube, it is connected to n nodes _with binary
offsets_ (2^i). The sign of the offset is derived from the
binary count pattern bit sequence. This is a constructive
definition. (Look up connectivity matrix of boolean 5-cube way
down. Note that it contains _four_ 3-cubes).

 This table represents the 3-cube:

 ref. Binary Signs  binary     connected
 ID   Count         Offsets    IDs
 +---+-----+------+-----------+-------+  (alt.:
 | 0 | 000 |  +++ |  +4 +2 +1 | 4 2 1 |   perfect
 | 1 | 001 |  ++- |  +4 +2 -1 | 5 3 0 |   shuffle
 | 2 | 010 |  +-+ |  +4 -2 +1 | 6 0 3 |   stages (1,2,3)
 | 3 | 011 |  +-- |  +4 -2 -1 | 7 1 2 |   of the initial
 | 4 | 100 |  -++ |  -4 +2 +1 | 1 6 5 |   ref. ID)
 | 5 | 101 |  -+- |  -4 +2 -1 | 2 7 4 |
 | 6 | 110 |  --+ |  -4 -2 +1 | 3 4 7 |
 | 7 | 111 |  --- |  -4 -2 -1 | 4 5 6 |
 +---+-----+------+-----------+-------+

This boolean n-cube is a peculiar beast. On the one hand it is a
very orthogonal structure, easily reasoned upon mathematically.
The signs/offsets look after themselves, it is a
recursive/fractal structure (each n-cube consist of 2
interconnected (via (n-1) number of links) (n-1)-type subcubes),
etc. Routing in it resembles binary search: the first step
brings one halfway there, the second halfway again, etc. We
descend the binary cluster hierarchy until we arrive at the
0-cube (single node). The "distance distribution versus
dimensionality" table is the Pascal triangle, by the way. It can
derive its own ID from wiring constraints and the other IDs it
is directly connected to. (This is a crucial point). Etc.
Routing in a perfect n-cube runs roughly: "going from the left,
find the first bit in destination ID differing from source ID.
Move message packet to the according subcube via direct link
(there is only one). Repeat until you reach outer (rightmost)
bit. Bingo." This can be coded in some 10 assembly statements or
implemented via a very primitive logic. If a part of the links
is missing (the n-cube is defective) we have to visit all the
nodes which should have links to the second subcube until we can
prove the task impossible.

The n-grid, on the other hand, can be considered a better n-cube
(is a superset of it). We can derive it from the n-cube by
making link offsets symmetrical. Links which would reach out of
ID space can be either wrapped around (circular space) or
considered void/free (open space/grid region). See connectivity
table below. Routing is again completely trivial. You just
choose the link which distance (arithmetical ID difference) is
smallest and shove the packet through. In a perfect n-grid, this
works every time and is moreover the best possible algorithm.
Especially, if the near-range order (shortest offsets) is highly
preserved, this scheme works also for severely defective n-grids
(there is a lot of space in those higher dimensions). If the
message _blocks_ (its path has a periode/loop) we can circumvent
the blockage either giving the message packet a random kick or
executing a plan, subsequently visiting all the nodes which
should have links in this direction in ever-increasing
distances.

Connectivity Tables of 5-cube and 5-grid (2^5=32 nodes each)

# means a link,
- means there is no link.

Note that the n-cube is contained in the n-grid (as it is a
superset). The n-cube has a fractal/recursive makeup: it
contains two interconnected (n/2 links) (n-1)-cubes. A n-grid
node has (2n-1) links as compared to the n-cube (free links are
not shown). Two (n-1) subgrids are connected by (2n-1) links as
compared by n links in the n-cube. The simple n-grid routing
algorithm does not work for the n-cube (it blocks/loops in most
cases). Moreover, if the _farthest_ link of each node (n-cube)
is cut, the cube collapses into 2 unconnected (n-1) cubes. This
does not happen to the n-grid. Notice that a defective structure
(some links missing) still routes all right because of built-in
redundancy (which is higher in the n-grid).

The n-grid is a superset of the n-cube. Each node has

boolean 5-cube                    5-grid (open-space version.
                                          free links not shown)

-##-#---#-------#---------------  -##-#---#-------#---------------
#--#-#---#-------#--------------  #-##-#---#-------#--------------
#--#--#---#-------#-------------  ##-##-#---#-------#-------------
-##----#---#-------#------------  -##-##-#---#-------#------------
#----##-----#-------#-----------  #-##-##-#---#-------#-----------
-#--#--#-----#-------#----------  -#-##-##-#---#-------#----------
--#-#--#------#-------#---------  --#-##-##-#---#-------#---------
---#-##--------#-------#--------  ---#-##-##-#---#-------#--------
#--------##-#-----------#-------  #---#-##-##-#---#-------#-------
-#------#--#-#-----------#------  -#---#-##-##-#---#-------#------
--#-----#--#--#-----------#-----  --#---#-##-##-#---#-------#-----
---#-----##----#-----------#----  ---#---#-##-##-#---#-------#----
----#---#----##-------------#---  ----#---#-##-##-#---#-------#---
-----#---#--#--#-------------#--  -----#---#-##-##-#---#-------#--
------#---#-#--#--------------#-  ------#---#-##-##-#---#-------#-
-------#---#-##----------------#  -------#---#-##-##-#---#-------#
#----------------##-#---#-------  #-------#---#-##-##-#---#-------
-#--------------#--#-#---#------  -#-------#---#-##-##-#---#------
--#-------------#--#--#---#-----  --#-------#---#-##-##-#---#-----
---#-------------##----#---#----  ---#-------#---#-##-##-#---#----
----#-----------#----##-----#---  ----#-------#---#-##-##-#---#---
-----#-----------#--#--#-----#--  -----#-------#---#-##-##-#---#--
------#-----------#-#--#------#-  ------#-------#---#-##-##-#---#-
-------#-----------#-##--------#  -------#-------#---#-##-##-#---#
--------#-------#--------##-#---  --------#-------#---#-##-##-#---
---------#-------#------#--#-#--  ---------#-------#---#-##-##-#--
----------#-------#-----#--#--#-  ----------#-------#---#-##-##-#-
-----------#-------#-----##----#  -----------#-------#---#-##-##-#
------------#-------#---#----##-  ------------#-------#---#-##-##-
-------------#-------#---#--#--#  -------------#-------#---#-##-##
--------------#-------#---#-#--#  --------------#-------#---#-##-#
---------------#-------#---#-##-  ---------------#-------#---#-##-

/* ************************ */



Notice that the maximum distance increases with log2(total
nodes) and both the average as overwhelming majority distance
even with 0.5*log2(total nodes). The function peaks very sharply
for halfway distances.

GrassRouting.

The router is an incarnation of a minimalist packet switched
GrassRouter, utilizing a higher dimensional smart Bresenham
homologue upon an low-defect higher dimensional node lattice,
called the n-grid. Packet switched networks offer excellent
performance particularly for very large networks. Packet
switched hypergrid routing allows an efficient, fault tolerant,
purely local knowledge routing and ID derivation scheme, the
Dynamic ID Derivation (DID).

The node adress (ID) space is binary, offering 2^n addressable
nodes for n bit IDs. In perfect n-grids, each node has only
direct links to nodes with symmetrical binary offsets to own ID.
In defective grids a large fraction of the links may be missing.
E.g. the well-known boolean hypercube is a defective n-grid
topology. Especially highly conserved near-range order offers
still offers excellent performance. Since logically near (short
offset) links are also physically shorter, when n-grid is mapped
to 2-space (wafer) or 3-space (module), this is fortunate.

ID space is not toroidal or wrap around, but open, offering free
links for real-world I/O. For that, serial to parallel link
adaptors or modified I/O 8/ULIW variants are needed. Each n-grid
is recursively defined by two interconnected (n-1)-grids. Each
packet is routed by descending the recursive n-grid hierarchy
until it arrives at 0-grid, the single node. ID subspaces are
defined in terms of binary masks, starting with zero (zero
additional information is needed to pinpoint an object), over 1,
2, 4 etc. Broadcast or WALL message flooding (via message
cloning) is usually limited to subspaces. Notice that the
address subspace n-subspace is identical to total n-grid ID
space, they are congruent.

Provided, the wiring constraints are sufficient, and the direct
IDs are visible through links, own (self) ID is deterministic.
Due to high lattice orthogonality and n-grid redundancy, high
degrees of defectivity (fraction of shot vs. intact links) are
tolerated without DID impairment and good routing performance.

-- 
Eugen* Leitl <a href="http://leitl.org";>leitl</a> http://leitl.org
______________________________________________________________
ICBM: 48.07100, 11.36820            http://www.ativel.com
8B29F6BE: 099D 78BA 2FD3 B014 B08A  7779 75B0 2443 8B29 F6BE

Attachment: signature.asc
Description: Digital signature

Reply via email to