Messages can be encrypted. Headers copied from original { network, src, dst, msgid } Also, don't encrypt RESTRICT or GATHER messages?

Before:

SEER/1.0 COMMAND
network: FloodWatch/simple
msgid: 1234
type: HTTP
group: h1
event: SET
Content-Length: 40

1234567890123456789012345678901234567890

After:

SEER/1.0 COMMAND
network: FloodWatch/simple
msgid: 1234
encrypted: 1
Content-Length: xyz

[Encrypted version of before message]

Control Node and Experiment Nodes

COMMAND - control node (singular) to all experiment nodes in group (plural), sent as a single multicast packet

SEER/1.0 COMMAND
network: FloodWatch/simple
msgid: N
type: X
group: Y
event: Z
Content-Length: 1234

string=value; string=value; 

REPORT - experiment node (singular) to controlling node (singular), communicated over a TCP connection.

SEER/1.0 REPORT
network: FloodWatch/simple
lastid: N
node: X
type: (COUNTERS, STATE, LOG, FILE)
Content-Length: 2345

124576239487562938475629834756298374569

At startup, each experiment node looks up

Between Control Nodes

RESTRICT - one hop only, only accepted as first message on a connection and must be the first,

not encrypted

SEER/1.0 RESTRICT
network: [project/experiment, *]

INFO - broadcast info on who my neighbors are and what pieces they are responsible for

SEER/1.0 INFO
network: FloodWatch/simple
src: XXYYZZ
msgid: ID
neighbors: AABBCC, DDEEFF, GGHHII
Content-Length: 12345

NodeX,NodeY,NodeZ
1.2.3.4,5.6.7.8,9.0.1.2

POST - push data from a control node (singular) to other control nodes (plural), used for data pieces that can change but not on any predictable pattern and without a default value from every node, could be multiple times in a second and then not again for an hour.

SEER/1.0 POST
network: FloodWatch/simple
src: XXYYZZ
msgid: ID
type: (State, Log, File, Command)
Content-Length: 2345

<DATA>

GET - control node (singular) requests data from some control node (singular)

SEER/1.0 GET
network: FloodWatch/simple
src: XXYYZZ
msgid: ID
dst: XXYYZZ
type: Graph
args: 10.1.2.2

GATHER - control node (singular) requests the data type from all control nodes (plural)

SEER/1.0 GATHER
network: FloodWatch/simple
src: XXYYZZ
msgid: ID
type: Summary

REPLY - reply with the data requested in a GET or GATHER message

SEER/1.0 REPLY
network: FloodWatch/simple
src: XXYYZZ
dst: XXYYZZ
msgid: Id from request message
Content-Length: 2345

<DATA>