Canonical simplification of networking and the Internet


Was accepted 09 Feb 2005 in partial fulfillment for MS(CS)
advisor Jason Nieh
pdf (pages 115-118 temporarily suppressed for intellectual property reasons)


A canonical (i.e. fundamental theoretical) form of networking, guaranteeing

It essentially eliminates the coordinated Layer 3 address space, as shown on the right, where the thick arrows indicate the simplification achieved. The figure also compares FARA, which calls for two sets of coordinated number spaces instead of one, echoing the (failed) Nimrod idea of the 1990s (RFC 1992) in postulating dynamic mappings from a second set of mobile ids, and with absolutely no assurance of a fundamental improvement in terms of either addressing or routing, the two basic functions expected of a networking architecture. The idea of using names directly as addresses has been also promoted in Stanford's TRIAD project, but that scheme is one of relative addressing by names, i.e. like the historical UUCP with no form of absolute addresses, and once again, no fundamental improvements are offered with respect to addressing or routing. A computationless and coordination-free absolute network address space is the fundamental contribution.

The first four key properties listed are obtained by exploiting three fundamental properties of a tree graph structure:

(To compare, only the second property is exploited in NIRA.) NAT inversion The generality and full Layer 3 compatibility, without Layer 3 end to end addressing dependence (see RFC 2775 Internet Transparency) is illustrated by the second figure, which shows how a client host a in private network A can be simultaneously connected to an external host at address (a Google address) and a second host within A given exactly the same numeric address with A. The trick is to use a virtual IP address for the external host at A's gateway gA, thus mapping external hosts to virtual internal addresses. This is an exact inverse of NAT, which maps internal hosts to the external network address space. This was in fact inspired by the virtual memory addressing in (most versions of) Unix, in which each process gets its own virtual address space wherein external resources can be differently mapped, as shown by the next figure below right. Correspondingly, NAT can be compared to bank switched addressing of memory, used in embedded system design and has the spirit of mainframe architecture and programming. Virtual addressing, as opposed to NAT

The immediate catch is how to get a global tree structure going without coordination. This is partly addressed by two further properties of the tree graph structure:

and partly by the facts that there is already an inherent hierarchy of service (a provider wouldn't subscribe to one of its own subscribers or a descendent thereof for the same service), and that each provider-subscriber relation is necessarily embodied by a physical and logical network link which needs to be only pair-wise link-local coordination.

Relation to TCP/IP and OSI layer model Other issues that have been addressed include:

The remaining figure explains how this approach fits in the evolution of networking. While TCP/IP effectively combines Layers 5, 6 and 7 into a single application layer over TCP/UDP transport, the present approach uses Layers 2, 3 and 4 for its tree links (treating TCP (or SCTP) roughly as SSCOP in ATM). The principal layers of software in a modern (Unix, Windows) host are also shown for analogy.

Last change: 2006.04.22 21:52:38. papers  licensing  news  contact  Please revisit - this site & i continue to evolve.