Skip to main content

Noordung ServiceLink Protocols Stack

warning

This protocol specification is currently a Work in Progress. The architectural concepts, frame structures, and bit-level arrangements detailed on this page are under heavy development and are highly subject to breaking changes without notice.

The Noordung ServiceLink Protocols (NSLP) stack is a modular communication framework designed to provide a standardized method for transferring data structures between devices. It abstracts the underlying transmission medium, allowing for consistent and predictable data exchange regardless of the physical layer in use.

Overview

The primary goal of NSLP is to strictly decouple the application payload (the structs you want to send) from the physical layer (how they traverse the wire), while providing fundamental networking capabilities.

By defining a uniform underlying packet structure and well-known transmission protocols, NSLP ensures reliable, efficient, and standardized packet delivery across any system.

Key Features

  • Seamless Struct Transfer: NSLP encapsulates data structures into a strictly defined packet format. It handles the serialization and deserialization automatically, allowing developers to focus on application logic rather than byte-level transfer details.
  • Medium-Agnostic Architecture: While originally designed for serial communication, the stack is entirely independent of the physical medium. Whether you are using UART, CAN bus, or TCP, the upper-level packet logic remains completely unchanged.
  • Two-Tier Addressing: The stack natively handles both network and application-level routing. Source address and Destination address identifiers enable seamless communication across complex multi-device network topologies. Meanwhile, Source port and Destination port fields ensure the payload is delivered to the exact process or code block meant to handle it.
  • Adaptable Reliability: The stack implements data integrity where it is needed most. Depending on the specific transmission protocols used, built-in mechanisms like strict framing and checksums ensure your data arrives uncorrupted, regardless of the raw medium's hardware limitations.

The Protocol Layers

Taking heavy inspiration from the OSI model, NSLP is divided into distinct, decoupled layers. This separation of concerns ensures that lower layers can reliably process and route data without needing to understand the upper-layer context.

Link Layer is responsible for transmitting L2 packets over the chosen physical medium. Because raw mediums differ vastly in their capabilities, L1 is defined by medium-specific protocols. For example:

  • NSLP/UART: Defines byte framing and CRC mechanisms for continuous serial streams.
  • NSLP/CAN-FD: Defines how the NSLP packet headers are mapped/split into CAN message IDs and handles aggressive packet fragmentation.

Layer 2 - Network layer

Network Layer is responsible for segmenting L3 packets into manageable MTU (Maximum Transmission Unit) sizes and handling fundamental networking logic (device addressing).

Layer 3 - Transport layer

Transport Layer governs delivery policies. It adapts to developer's specific delivery requirements. For example:

  • SL-TCP: guaranteed delivery for critical data.
  • SL-UDP: low-latency, unacknowledged delivery for fast streams.

Layer 4 - Application layer

Application Layer handles the actual data payloads. This includes custom user structures or specialized protocols which further abstract payload structure. For example:

  • SL-SP (ServiceLink Synchronization Protocol): manages packet timestamping and device time-sync.