1.3.5 Exchanging Application Messages
After establishing connections with one or more neighbors, a node is ready to send and receive application messages. If per-message security is configured, each message is first processed for security before further processing. All application messages received are forwarded to all connected neighbors, except to the neighbor from whom the message is received.
All nodes receive all messages addressed to the mesh, even if some of the messages are only intended for a subset of the mesh.
Each message is identified by a unique message ID that is generated by the node that initially creates the message. Because a particular node can receive a message multiple times as a result of having multiple neighbors, this message ID is used to detect and discard all duplicate messages.
Outgoing messages (called flood messages) are created by adding a Peer Channel Protocol header to the message (see section 2.2.3.7) and then sending the messages to the corresponding ChannelType URI.