1.6 KiB
1.6 KiB
argh Networking Specification
This document describes how packets are sent through the network of nodes, how packets are structured, etc.
Overview
Underlying network protocol
All connections are using unencrypted (TODO) websockets as the underlying network procol.
How a packet travels through the network
(TODO)
Packet Flow
Network A
.~~~~~~~~~~~~~~~~~~~~~.
( )
( Client ——> Node —————.
( | ) |
'~~~~~~~~~~~~~~~|~~~~~' |
| |
Network B | |
.~~~~~~~~~~~~~~~|~~~~~~~~|~~~~~~~~~~~~~~~~.
( v v )
( Client <—— Node <=> Node ——> Client )
( | | )
'~~~~~~~~~~~~~~~|~~~~~~~~|~~~~~~~~~~~~~~~~'
| |
| '————.
Network C | |
.~~~~~~~~~~~~~~~|~~~~~. :———> other Networks
( v ) |
( Client <—— Node ——————————'
( Client <————| )
( Client <————| )
( ... <————' )
( )
'~~~~~~~~~~~~~~~~~~~~~'
Packet Structure
NOTE
Not yet implemented.
A complete packet is a MessagePack-encoded dictionary with the following fields:
field | type | description |
---|---|---|
uuid |
bytes | 16-byte big endian uuid |
body |
bytes | The message body |
(TODO)
The client who sends the packet to the first node must already provide a complete packet. Nodes solely verify & relay packets.