What is AMNETD?
AMNETD is a software system which can be used to add support for mesh messaging to any XMPP system. This support is used to provide resilient messaging between mobile or fixed devices using an IETF standard XMPP protocol.
Figure 1 - AMNETD System Architecture
What are the features?
AMNETD provides the following features as a layer above a standard XMPP system:
- Store and forward messaging
o Messages are sent to devices within the network mesh and may be stored within the nodes local persistent message store if the recipient of the message is not currently connected to the mesh. The message will be delivered when the device is reconnected to the mesh.
- Message receipts (XEP-0184)
o Receipts are sent to the message sender when the message is received by the endpoint.
- Auto discovery of devices present in the mesh
o The system will automatically discover nodes on the mesh network through support for multicast DNS (mDNS).
Figure 2 - AMNETD Node Architecture
Messages are delivered using the following algorithm:
- If there is an existing connection between the sending node and the recipient then the message is delivered using that connection.
- Otherwise the message is broadcast to all nodes connected to the sending node.
- If a message is received at a node, the AMNETD system running on that node will determine if a receipt for that message exists in its local message store. If it does exist in the store then the message is discarded. If the message is not discarded, the system will determine if the message is addressed to that node. If the message is destined for that node it will be delivered to the local XMPP client and a receipt message will be generated. Otherwise the message is broadcast to all adjacent nodes.
Figure 3 - XMPP Message Traversing AMNET System
mov Software 2009