Glossary: Difference between revisions

From Ouroboros
Jump to navigation Jump to search
No edit summary
No edit summary
Line 66: Line 66:
;Name
;Name
:''also known as '''Service Name'''
:''also known as '''Service Name'''
:Just an ordinary string in some namespace that can be bound to a program or process.
:A non-descript string of characters in some namespace that can be bound to a program or process.


;Process
;Process

Revision as of 09:06, 13 October 2023

Under contruction This page is under construction  

Bind
The action of associating a name with a program or process. A process bound to a name will respond to incoming flow allocation requests for that name in that system. If a program is bound to a name, all subsequently instantiated processes will be bound to that name.
Broadcast Flow
A broadcast flow is the abstraction for a packet stream that is sent from a source node to a set of nodes. A Broadcast Flow is 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 as an active member.
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
IRMd
See Inter-Process Communication Resource Management Daemon
Inter-Process Communication (IPC)
Inter-Process Communication Process (IPCP)
Inter-Process Communication Resource Management Daemon (IRMd)
The IRMd is the central daemon that performs management functions for Ouroboros. It listens for management commands such as creating/destroying IPCPs, bootstrapping and enrolling IPCPs, binding programs and processes to service names and registering names with an IPCP.
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.
Name
also known as Service Name
A non-descript string of characters in some namespace that can be bound to a program or process.
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.