Glossary

From Ouroboros
Jump to navigation Jump to search

Under contruction This page is under construction  

Automated Repeat-reQuest (ARQ)
Packets are identified by a sequence number and acknowledged by the receiver. Lost packets are retransmitted, usually after receiving a number of duplicate ACKs or a certain timeout.
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
Shared state between two protocol machines.
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.
IP fragmentation problem
Retransmission logic is handled by TCP, so the loss of an single IP datagram results in the retransmission of all the fragments constituting a (potentially much larger) TCP frame, instead of just this lost datagram.
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.
RINA
Recursive InterNetwork Architecture
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.