Random Addresses allow a completely decentralized global network.

  1. Assume every computer doing Random Addressing (RA) has several (typically at least 3) data connections (modem, ethernet line over the garden wall, line-of-sight laser, IP link,...) to other RA computers.
  2. Every RA computer generates a (large) random number as its own address.
  3. Every RA computer builds up TWO routing tables.
    1. A table of routes to "near" connection-wise computers. (ie. the RA for the neighbours computer and the neighbours neighbour and the.... upto N_n levels deep.
    2. A table of routes to "near" ADDRESS-wise computers. Each RA computer must store routes to all other RA's it is aware of that are less than a distance, addresswise, D away from its own RA.

      It may pay to treat the RA as a point in an N dimensional Euclidean space, then addresswise distance just becomes N-dimensional Euclidean distance. I still need to think of a good way of choosing N.

      (Footnote : The two routing tables may be regarded as "dual-space" views of the network. Each computer can see a small region around itself in both of the spaces. The neighbourhood depth N_n and the address space distance D must be chosen large enough so that the routing can be done reasonably efficiently. (The spheres of view of the source should contain a computer which has the destination in one of its spheres of view)

  4. If a computer receives from a neighbour, or generates by itself a packet of information, it must route the packet to an appropriate neighbour as follows.
    1. It should read the RA from the destination header on the Packet.
    2. It should lookup in its address-wise routing table to see if it has a known route to the destination.
    3. If the packet has a route, check to see which is shorter.
    4. If it has no known route, it should find, in the connection-wise table, that computer which is closest address-wise to the required destination, and route the packet there.
  5. The routing tables are built up by...
    1. The first or "path-finder" packet will gather routing information as it goes along.
    2. The two routing tables will be built up by scanning the routing information of all packets passing by.
    3. Direct neighbours must be informed of changes in connections, and of routes to RA's falling within that neighbours addresswise sphere of view.

Flourishes.

Such a anarchy of cooperative computers must be built from the ground up under the paranoid assumption that it is under hostile attack from :-

So the following flourishes may be added....

  1. Error correcting codes over multiple paths. If N possible routes present themselves, a packet of information must be divided into N=M+R packets where the original packet may be deduced from any M packets arriving safely at the destination. This has several advantages....
  2. Anti-spoofing and privacy. The RA's can be chosen to be a Public key. Every parcel of information can be first signed by the originating private key and encrypted with the destination public key (destination RA). At the destination the parcel can be decrypted with the destination private key and the origin and contents verified with the sources public key (source RA).
  3. Latency time over so many hops is likely to be a killer. Therefore sliding window protocols are a necessity.

Comments, queries and conversation.


This page hosted by GeoCities Get your own Free Home Page