The Recursive InterNetwork Architecture

The principles behind RINA, were first presented by John Day in his book “Patterns in Network Architecture: A return to Fundamentals”. This work is a start afresh, taking into account lessons learned in the 35 years of TCP/IP’s existence, as well as the lessons of OSI’s failure and the lessons of other network technologies of the past few decades, such as CYCLADES, DECNET or XNS.

RINA takes as a point of departure the basic premise that “networking is inter-process communication (IPC) and only IPC”. Networking provides the means by which processes on separate computer systems communicate, generalizing the model of local inter-process communications. In an operating system, to allow two processes to communicate, IPC requires certain functions such as locating processes, determining permissions, passing information, allocating resources and managing memory. We may call this part of the Operating System dedicated to provide IPC Services an IPC Facility. Similarly, two application processes residing on different systems communicate and share state information by utilizing the services of a Distributed IPC Facility (DIF). Figure 1 shows different examples of application processes A and B communicating i) within a single system, ii) between two directly connected systems and iii) between two systems connected by an intermediate system dedicated to doing IPC (i.e. a router). Each scenario requires one or more DIFs, each one optimized for providing IPC services over a certain scope (local, single link, network). Networking can be defined as a distributed application dedicated to provide IPC services to other applications.

Figure 1: Inter Process Communication over different scopes

A DIF is an organizing structure, grouping together application processes that provide IPC services and are configured under the same policies. A DIF can be seen as what we generally refer to as a “layer”. According to this view, networking is not a layered set of different functions but rather a single layer of distributed IPC that repeats over different scopes, i.e. providing the same functions/mechanisms but tuned under different policies to operate over different ranges of the performance space (e.g. capacity, delay, loss). Figure 2 illustrates an example of the RINA architecture. Each DIF provides IPC services over a limited scope. First level DIFs operate on top of a physical medium, and their policies are optimized to deal with the particularities of the physical medium. First level DIFs provide IPC services to second level DIFs, and so on. The protocols at each layer are the same; they just use a different configuration (i.e. policies) to fulfill the particular requirements of the layer. In essence a DIF is just a distributed application, whose members (application processes called IPC processes) are specialized towards providing distributed IPC services. Therefore DIFs are not structurally different to any other distributed application, they just perform a very concrete task.

Figure 2: An example of the RINA architecture. Vertical rectangles represent systems (machines), black solid lines physical interconnections, horizontal rectangles represent DIFs and circles represent processes. Solid circles are IPC processes, each color is associated to the membership of different DIFs.

In short, RINA has the following features:

  • It builds on a very basic premise, yet fresh perspective that networking is not a layered set of different functions but rather a single layer of distributed Inter-Process Communication (IPC) that repeats over different scopes. Each instance of this repeating IPC layer implements the same functions/mechanisms but policies are tuned to operate over different ranges of the performance space (e.g. capacity, delay, loss).
  • It is based on a comprehensive theory of networking; it does not represent another patch, or point-solution to a piece of the problem. RINA does not propose to simply add a new “session layer” to perform some extra functionality for bridging ISP networks. Instead it takes a clean slate approach and begins with a comprehensive general theory of IPC where the number of IPC layers (DIFs) may vary at different parts of the Internet depending on the range of the resource allocation problem that must be addressed. The greater the operating ranges in a network, the more IPC layers it may have. Thus configuring the appropriate number of IPC layers allows for more predictable services to be delivered to users.
  • This repeating structure scales indefinitely, thus it avoids current problems of growing routing tables, and supports features such as multi-homing and mobility, with little or no cost. By indefinitely we mean that the nature of RINA does not impose any limits. There may, of course, be physical limits and other constraints.
  • An application process using a DIF only knows the name of the destination application process. It has no knowledge of addresses and there are no so-called “well-known ports”. Joining a DIF requires that the new member must be authenticated according to the policies of this particular facility. This yields a far more secure architecture.
  • Stacking DIFs on top of each other allows networks to be built from smaller and more manageable layers of limited scope. This divide-and-conquer strategy gives providers more resource management options than just over-provisioning. It also provides the basis for operating subnetworks at much higher utilization than the 30% – 40% in the current Internet.
  • RINA leverages the well-known concept of separating mechanism from policy in operating systems. Applying this separation to network protocols allows a DIF to provide a common minimal set of mechanisms that once instantiated with the appropriate policies allows any transport solution to be realized. Not only the transport functions of a DIF benefit from this approach, but also other ones such as management, authentication or access control; making the DIF a fully-configurable container capable of effectively operating on top of heterogeneous physical medias and to provide differentiated levels of QoS to different types of applications.
  • The distributed IPC facility that we propose here, can be configured to not only provide the fundamental services of the traditional networking lower layers but also the services of application relaying (e.g. mail distribution and similar services), transaction processing, content distribution and peer-to-peer. This removes the barrier created by the Transport Layer in the current Internet, opening potential new markets for ISPs to provide IPC services directly to their customers leveraging their expertise in resource management of lower layers.
  • Perhaps the most surprising, it turns out that private networks (with private addresses) are the norm. IPC processes are identified by addresses internal to the DIF and public networks are simply a degenerate case of a private network. This lays the foundation for major competition and innovation and avoids the rigidness of the current Internet structure. There’s not just a single network where everybody has to be attached to; with RINA network operators, service providers and users have a choice of which networks to provide and which networks to join.