XO: XMPP Overlay Service for Distributed Chat
Lass, Macker, Millar, Regli, Taylor
xmpp chat distributed serverless group communication
@article{lass:milcom-2010,
title={{XO}: {XMPP} Overlay Service for Distributed Chat},
author={Lass, R.N. and Macker, J. and Millar, D. and
Regli, W.C. and Taylor, I.},
inproceedings={Military Communications ({MILCOM})},
year={2010}
}
Multi-user chat not designed for MANET
- MUC management server
- TCP
- Inefficient use of shared links
XO adapts XMPP MUC to serverless multicast
- Provides standard XMPP TCP interfaces to wrap legacy clients and servers
Unmodified XMPP client connects to XOP (XO Proxy) agent
- XOP mediates XMPP protocol to XO multicast and discovery
- XOG (XO Gateway) bridges XOP MUC multicast to conventional XMPP MUC, i.e., standard servers
Related XMPP Extensions
- XEP-0174 uses zero-conf networking (mDNS) to discover services
- But only link-local discovery and point-to-point messaging over TCP
- XEP-0100 specifies gatewaying to non-XMPP chat
- XEP-0045 specifies XMPP Mult-User Chat (MUC)
- Rooms are associated with servers, all messages for a room go to its server
Uses SMF to ensure multihop multicast forwarding
Uses GUMP (Generic Unicast-to-Multicast) library to manage communications
GUMP in turn here uses NORM for reliable multicast delivery
Topics are hashed to multicast addresses within a given range
- This prevents all messages being on the same address
- Not clear why this matters until there's actual underlying multicast structure
Several options for gatewaying:
- One TCP connection per client to the server, each proxying the client
- Custom server plugin
- May not be able to modify server, less flexible
- Gateway acts as XMPP server
- What is implemented in XOG
- Reopens connections to server if they drop
Of note:
- Reference point group mobility model (RPGM) from Colorado School of Mines mobility generation tool