Glossary

From Ouroboros
Revision as of 13:21, 12 October 2023 by Dimitri (talk | contribs)
Jump to navigation Jump to search

Under contruction This page is under construction  

Broadcast Flow
A broadcast flow is the abstraction for a packet stream that is sent from a source node to all other nodes in a network. Broadcast flows are implemented by a Broadcast Layer.
Broadcast IPCP
A type of IPCP that is used to build Broadcast Layers
Broadcast Layer
A Layer consisting of Broadcast IPCPs.
Connection
Connection establishment
EFCP
The protocol inside RINA IPCPs that is responsible for enabling IPC. It is a 2-component protocol consisting of the Data Transfer Protocol (DTP) and a Data Transfer Control protocol (DTCP) which share a state vector.
Enrollment
The action of adding an IPCP or a set of IPCPs to a Layer.
Flow
A flow is the abstraction for a packet stream between a number of application processes. Ouroboros makes a clear distinction between Unicast flows and Broadcast flows.
Flow Allocation
The process of creating a flow between two processes.
Flow Allocator
The component in the IPCP that is responsible for flow allocation, managing flow state and congestion avoidance.
Flow Descriptor
A handle used by an application to manipulate and read/write from/to flows, similar to a file descriptor for files.
Flooding
The algorithm that takes a packet on the incoming flow and then sends it out on all other (outgoing) flows. Flooding is the main algorithm implemented by the Data Transfer component of a Broadcast IPCP.
Forwarding
Any algorithm that takes as input a destination address and gives as output a set of flows. The forwarding algorithm is the main algorithm in the Data Transfer component of the unicast IPCP.
IPC
See Inter-Process Communication
IPCP
See Inter-Process Communication Process
Inter-Process Communication
Inter-Process Communication Process
Layer / layer
The Ouroboros model is subdivided in layers (lowercase), with similar intent as the TCP/IP model (5 layers) or OSI (7 layers) model which it aims to improve upon.
Ouroboros is multi-Layered (capitalized), allowing networks to overlay each other. There are 2 types of Layers: Unicast Layers and Broadcast Layers, consisting of Unicast IPCPs and Broadcast IPCPs respectively. Note that they can't be mixed (a Unicast IPCP can't enroll with a Broadcast IPCP), but it is of course possible for a program to implement both the Unicast and Broadcast IPCP functionality. The different use of layer/Layer can be initially confusing, and have considered other options such as stratum, but for the time being, we stick to Layer / layer.
Process
In the Ouroboros framework, the instantiation of a program. It is logically identified by a local Process Identifier (PID), which on POSIX systems maps directly to the process ID (pid).
Program
In the Ouroboros framework, the code (for instance a compiled binary or a script) that can be executed as a Process.
Raw Flow
A best-effort Unicast Flow between two peers without any QoS guarantees.
Routing
Any algorithm that can construct a distance function to all other nodes in a Unicast Layer. The literature discerns at least 3 classes of Routing algorithms: geometric, link-state and distance/path-vector.
The output of a routing algorithm is needed to construct a forwarding algorithm. The routing algorithm is the main algorithm in the routing component of the unicast IPCP.
Unenrollment
The action of removing an IPCP or a set of IPCPs to a Layer.
Unicast Flow
A unicast flow is a point-to-point packet stream between two processes. A flow is identified at each end by a flow descriptor. A unicast flow is implemented as a network flow between two unicast IPCPs. A network flow is identified by a 4-tuple <source address, source EID, destination address, destination EID>. The Endpoint Identifiers (EIDs) are agreed upon during Flow Allocation. A Unicast Flow is not implying an application protocol.
Unicast IPCP
Unicast Layer


Whatevercast
A proposed RINA concept for the unification of unicast, anycast, multicast and broadcast. The RINA DIF will resolve the correct set of destination nodes based on the whatevercast name and a set of rules associated with it. Our attempt at implementing whatevercast led to us formulating the Ouroboros multicast conjecture.