XMPP works efficiently over medium and high speed networks. Many military deployments will use network links with poor and variable quality, such as SatCom and HF Radio, with high latency being a particular problem. M-Link products for Constrained Networks are designed to optimize operations over these networks.
M-Link for Constrained Networks is sold in two configurations:
- M-Link Constrained Network Server.
- M-Link Constrained Network Gateway.
M-Link Constrained Network Server
Usually deployed on a mobile unit (such as an aircraft or naval vessel), the M-Link Constrained Network Server supports local clients using the standard XMPP Client/Server protocol allowing for the use of any standards compliant XMPP client in constrained network situations. It communicates with other Constrained Network Servers and the M-Link Constrained Network Gateway using XEP-0361: Zero Handshake Server to Server Protocol and additionally supports “XEP-0365: Server to Server communication over STANAG 5066 ARQ”, used in conjunction with XEP-0361, to support XMPP communication over HF Radio.
M-Link Constrained Network Gateway
Used to exchange messages between systems running on high quality links and those running over constrained networks, the M-Link Constrained Network Gateway communicates with M-Link Constrained Network Servers using XEP-0361 (and XEP-0365 for HF Radio) and with XMPP servers over normal quality links using the standard XMPP Server/Server protocol, allowing units communicating over constrained links to be integrated with existing standard XMPP installations.
Management tools (such as Isode MLC) which make use of the Client/Server protocol can connect to the M-Link Constrained Network Gateway for the purposes of configuring and monitoring the system. No other use of this protocol is supported, in particular the M-Link Constrained Network Gateway does not support directly connected users.
For constrained network operations, Isode recommends operating a server-to-server connection over the unreliable link, rather than client/server. This allows users either side of the link to continue local operation in the event of a link failure.
In addition to this architectural approach, Isode’s XMPP products incorporate a number of features which make them suitable for deployment over constrained networks and/or unreliable links (including SatCom, HF and Wideband HF Radio).
Federated Multi-User Chat (FMUC)
Standard Multi-User Chat (MUC) relies on a stable link between the server that hosts the MUC room and the users who are participants in that room and are either connecting directly to that server or connecting indirectly via another server in federation with the host server. When users or groups of users are participating from a location with a constrained link to the host server, a link failure will disrupt their ability to communicate with participants, via MUC, on both sides of the break.
M-Link Constrained Network Gateway and Server support XEP-0298: Federated MUC for Constrained Environments, federating the provision of MUC, just as the distribution of XMPP servers federates the provision of 1:1 chat. More information on Federated Multi-User Chat can be found in the whitepaper [Federated Multi-User Chat: Efficient and Reliable Operation over Slow and Unreliable Networks].
M-Link enables the modification of the service provided to the end-users by means of traffic management. A range of options are available enabling the administrator to make the trade-off between service and performance.
Filtering Message Types and Message Elements
Removing information of low value to a particular deployment can improve performance for high-value traffic. M-Link allows for filtering and removal of:
- Message/Stanza Types: Such as the removal of chat state notifications or filtering of IQ (information query) stanzas, which clients use to gather information and negotiation protocol features and extensions.
- Message Elements (message folding): Such as the removal of extensions or the stripping of presence information.
Presence can be used to convey additional information beyond simple online/offline status, such as “extended away” or information on avatars. M-Link allows for presence folding in the same way that it does for message folding so that unnecessary information can be removed. An alternative approach is to completely strip presence information.
Stream Compression and Roster Versioning
M-Link supports both XEP-0138: Stream Compression and Roster Versioning (part of RFC 6121) so that when a client reconnects, the roster is only downloaded if it has changed.
HF Radio Support using STANAG 5066
STANAG 5066 is the NATO standard for running applications over HF Radio. Isode recommends the use of STANAG 5066 rather than TCP/IP for slow radio links (amongst other issues, the TCP windowing mechanism for flow control interacts badly with the very long HF turnaround times). Use of STANAG 5066 will result in performance and reliability increases for HF, VHF and UHF connections. Isode’s own modem-independent STANAG 5066 server, Icon 5066, is recommended for use with HF Radio networks.
The Isode whitepaper [Performance Measurements of Applications using IP over HF Radio] is a good starting point for those wishing to understand this area further.