New tech_page

RINA is a Simple, Common, but Highly Customizable Network Architecture

It is a return to the basics of the general principles in computer networking with the objective to be applicable to every usage, while solving all the inherited issues of the legacy technologies

RINA is based on the fundamental principle that networking is Inter-Process Communication (IPC)

Preliminary Information

What is a network architecture?

The rules and standards that every device must follow to access the Internet and to communicate over a network.

It is what supports the exchange of data between distributed applications.

Today the prevalent network protocol architecture is the "Internet protocol suite".

What is a process?

A program in execution.

Some processes are parts of the operating system, while others are applications that are running.

In a Windows computer, pressing Ctrl-Alt-Del launches the Task Manager, which displays all running processes.

What is an Inter-Process Communication (IPC)?

Some processes, that are working at the same time in the operating system, may need to communicate with each other. For example, if a user listens to music, writes a document and prints another document at the same time, different processes will be running and will need to cooperate with each other so that all tasks can run smoothly without clashing with each other.

This cooperation requires a mechanism that allows processes to exchange data between each other and synchronize their actions: the Inter-Process communication (IPC).

How Does IPC Apply to RINA?​

In the usual case, 2 processes in a single host use IPC to cooperate

If the processes are in 2 different hosts linked together by a wire (e.g. an Ethernet cable), they should still be able to use IPC to communicate.

The same applies if the processes are in several distinct hosts linked by a router in the middle over a wire (Ethernet) or a wireless medium (WiFi).

The only difference is that in the last 2 cases you could experience loss or delay, so you would need to put in place mechanisms such as error control or flow control, to check what you receive.

If the processes are in 2 different hosts linked together by a wire (e.g. an Ethernet cable), they should still be able to use IPC to communicate.

The same applies if the processes are in several distinct hosts linked by a router in the middle over a wire (Ethernet) or a wireless medium (WiFi).

The only difference is that in the last 2 cases you could experience loss or delay, so you would need to put in place mechanisms such as error control or flow control, to check what you receive.

Icon Left Rounded

Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast

What is the Network?

  • Provides IPC services
  • Executes in computers running operating systems (PCs, laptops, routers, sensors, smartphones, switches…)
  • Has instances distributed through many machines, exchanging information and collaborating
  • Just like distributed applications, such as the Web, Skype or email: they are programs running on more than one computer and communicating through a network
The network can in turn be described as a particular class of distributed applications, specialized to provide IPC services to other distributed applications.
In RINA, we call this application a Distributed IPC Facility or a DIF​

Frequently Asked Questions

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Two application processes residing on different systems communicate and share state information by utilizing the services of a DIF.

The DIF (as it is a distributed application), in turn, can use the services of another DIF. This constitutes the recursivity in RINA. 

The number of DIFs is determined by the number of scopes: a direct link, a network, an internetwork… There is a need to isolate scopes both for security, performance and scalability reasons.

The processes of the DIF are called IPC Processes (IPCP).

It is not the machines who communicate but the applications, and even more specifically the processes,  inside them.

An application can request communication services to another application by specifying the destination application name and the characteristics required for the service (such as loss, delay, in-order delivery…), without having to know the internal details of the network (DIF) that is providing this communication service, and without having to know where the destination application is executing. Not knowing where the application is executing makes security in RINA more robust.

What are RINA's characteristics?

Common structure

A single repeating layer: the Distributed IPC Facility (DIF).

Common API

The IPC services are defined by the DIF API.

Variable number of scopes

The number of DIFs is decided by the network designer, depending on the number of scopes (link, network, internetwork…).

Common structure

A single repeating layer: the Distributed IPC Facility (DIF).

QoS model

Applications - including other DIFs - can request IPC flows with certain characteristics (such as loss, delay, in-order delivery) via the API.

Recursivity

Each DIF provides IPC services to applications (which can be other DIFs) on top.

Customized functions

All DIFs have the same basic functions, but they can be customized to the operating environment for which they have been designed.