Skip to content

Networking

Mikayla edited this page Dec 20, 2025 · 10 revisions
image

Network Architecture

Version 2 and later of the network architecture identifies devices using their unique computer ID's rather than the channel they are configured to use. This allows using only 5 channels for the whole system, which are common across all the configured devices. The default channels are shown in the diagram above and the table below. On multiplayer servers, it is highly encouraged (and necessary if there is more than one system) to not use the default channels, as having two systems on the same network will cause undesirable behavior, such as devices linking to the wrong system.

Name Default Channel Purpose
SVR_CHANNEL 16240 Channel for all devices to send messages to the supervisor
PLC_CHANNEL 16241 Channel for messages from the supervisor to the reactor PLCs
RTU_CHANNEL 16242 Channel for messages from the supervisor to the RTU gateways
CRD_CHANNEL 16243 Channel for messages from the supervisor to the coordinator
PKT_CHANNEL 16244 Channel for messages from the supervisor/coordinator to pocket computers

HMAC Message Authentication

Caution

Please DO NOT USE A PASSWORD THAT YOU ACTUALLY USE FOR ANYTHING ELSE! Facility authentication keys are not securely stored, so anyone with access to the server's file system or the computer can view them.

Message authentication is a user-configurable feature for wireless connections in this system that's enabled if an authentication key is provided. Note, computing hashes and serializing the messages takes some additional processing time, though it appears to be worst case in the 10s of milliseconds. Coordinator status packets are the largest, so those take the longest, giving those 10-20ms hash/verify times.

This is authentication, not encryption. Data is still sent in plain text, but it has a message authentication key sent with it that is used to verify that the message contents were not modified and packets are from a trusted device part of the same system.

From Wikipedia: https://en.wikipedia.org/wiki/HMAC

In cryptography, an HMAC (sometimes expanded as either keyed-hash message authentication code or hash-based message authentication code) is a specific type of message authentication code (MAC) involving a cryptographic hash function and a secret cryptographic key. As with any MAC, it may be used to simultaneously verify both the data integrity and authenticity of a message.
HMAC can provide authentication using a shared secret instead of using digital signatures with asymmetric cryptography. It trades off the need for a complex public key infrastructure by delegating the key exchange to the communicating parties, who are responsible for establishing and using a trusted channel to agree on the key prior to communication.

In this case, this prevents message forgery, which then prevents false status information, unauthorized commands, etc.

Wired and Wireless Networking

The system supports both wireless and wired communications modems. These can be used individually or in tandem to provide redundancy, which is ideal for wired networks due to the chance of wires being broken.

A link discovery protocol is used on each communications modem to detect the presence of the Supervisor. This supports failing over between different interfaces, as broken network cables or modems on the Supervisor could be detected. Link establish requests are only sent to the Supervisor if the link is detected as up.

Homepage

  1. User Manual
    1. System Setup Guide
      1. Device Layout
        1. Coordinator Displays
      2. Connecting to Mekanism Machines
      3. Application Installation
        1. Space Requirements
        2. Installation
        3. Updating
        4. Uninstalling
      4. SCADA Network
        1. Network Channels
        2. Network Connectivity
      5. Setup & Configuration
        1. Supervisor Setup
        2. Coordinator Setup
        3. Reactor PLC Setup
        4. RTU Gateway Setup
      6. Initial Startup
    2. Configurator Tools
      1. Supervisor Configurator
      2. Coordinator Configurator
      3. Reactor PLC Configurator
      4. RTU Gateway Configurator
      5. Pocket Configurator
    3. Redstone Waste Setup Guide
    4. TL;DR Quickstart
    5. FAQ and Common Problems
    6. Colorblind Accessibility
    7. Annunciator Panels
    8. Alarms
    9. System Views
      1. Main View Screen
      2. Valve & Flow Screen
      3. Unit View Screens
    10. Operating Procedure
    11. Status Messages
    12. Glossary
  2. Computer Applications
    1. Reactor PLC
      1. Front Panel
      2. Non-Networked Mode
      3. RPS
      4. PLC Emergency Coolant
    2. RTU Gateway
      1. Front Panel
    3. Supervisory Computer
      1. Front Panel
    4. Coordinator Computer
      1. Front Panel
    5. Pocket
      1. Home and Navigation
      2. Connectivity
      3. Main Applications
      4. System Details and Testing
  3. Notable System Components
    1. Co-routine Threading
    2. Project File Layout/Overview
    3. PPM - Protected Peripherals Manager
    4. RSIO - Redstone I/O
    5. Utility Classes
    6. Networking
  4. Notes
    1. Known Issues
    2. Process Closed Loop Controller
    3. Project Files and Layout
    4. Alternative Installation Strategies
  5. Investigations
    1. Startup Rate High
    2. Reactor Temperature Calculation
  6. References & Resources
    1. CC: Tweaked Character Set
    2. Mekanism API Notes
    3. Design & Regulatory References
  7. Legacy
    1. coord.settings File
    2. config.lua Files
      1. Supervisor config.lua
      2. Coordinator config.lua
      3. Reactor PLC config.lua
      4. RTU Gateway config.lua

Clone this wiki locally