| Abstract: | This specification defines an XMPP protocol extension that enables a server to redirect connections from one connection manager or server node to another. |
| Authors: | Klaus Wolf, Richard Dobson, Florian Jensen |
| Copyright: | © 1999 - 2011 XMPP Standards Foundation. SEE LEGAL NOTICES. |
| Status: | Deferred |
| Type: | Standards Track |
| Version: | 0.2 |
| Last Updated: | 2009-07-07 |
WARNING: Consideration of this document has been Deferred by the XMPP Standards Foundation. Implementation of the protocol described herein is not recommended.
1. Introduction
2. Connection Transfer Protocol
3. Security Considerations
4. IANA Considerations
5. XMPP Registrar Considerations
6. XML Schema
Appendices
A: Document Information
B: Author Information
C: Legal Notices
D: Relation to XMPP
E: Discussion Venue
F: Requirements Conformance
G: Notes
H: Revision History
Large XMPP deployments are often clustered. To enable more effective management of client connections to servers in the cluster, it would be useful if the server administrator could redirect XMPP traffic to another node of the cluster. This document describes a connection transfer mechanism for telling clients (or others) to reconnect to a different address.
The following scenarios seem likely:
A server needs to be shutdown for maintenance by an administrator but there are other servers available in the cluster and the administrator wants to cause the least disruption possible by having the users automatically reconnect to one of the other available servers.
Users of an XMPP cluster are hosted on particular servers but the server the user has connected to is not the appropriate server in the cluster, so the server redirects the user to connect to the correct server.
A new server is brought online in the cluster. To reduce the load on the other servers and to balance out the load, the other servers direct some of their users to connect to the new server.
The transfer packet is addressed to the user from the domain they are logged into, it contains the server address to connect to which can be domain name or ip address, it can also contain an optional port number. There is also the domain specified just in case they have to use a different domain name when they log in or to maintain the original domain.
Example 1. Server tells client to connect to a different server in the cluster (by ip address)
<iq type='set' from='jabber.org' to='user@jabber.org'>
<query xmlns='urn:xmpp:cxfr'>
<domain>jabber.org</domain>
<server>123.123.123.122</server>
</query>
</iq>
Example 2. Server tells client to connect to a different server in the cluster (by domain name)
<iq type='set' from='jabber.org' to='user@jabber.org'>
<query xmlns='urn:xmpp:cxfr'>
<domain>jabber.org</domain>
<server>server2.jabber.org</server>
</query>
</iq>
Example 3. Server tells client to connect to a different server in the cluster (using a different port number)
<iq type='set' from='jabber.org' to='user@jabber.org'>
<query xmlns='urn:xmpp:cxfr'>
<domain>jabber.org</domain>
<server>server3.jabber.org:6222</server>
</query>
</iq>
Example 4. Server tells client to simply reconnect
<iq type='set' from='jabber.org' to='user@jabber.org'>
<query xmlns='urn:xmpp:cxfr'>
<domain>jabber.org</domain>
<server>jabber.org</server>
</query>
</iq>
To follow.
This document requires no action by the IANA.
To follow.
To follow.
Series: XEP
Number: 0051
Publisher: XMPP Standards Foundation
Status:
Deferred
Type:
Standards Track
Version: 0.2
Last Updated: 2009-07-07
Approving Body: XMPP Council
Dependencies: None
Supersedes: None
Superseded By: None
Short Name:
Source Control:
HTML
This document in other formats:
XML
PDF
Email:
wolf@bluehands.de
JabberID:
klaus@jabber.bluehands.de
Email:
richard@dobson-i.net
JabberID:
richard@dobson-i.net
Email:
florian@florianjensen.com
JabberID:
admin@im.flosoft.biz
The Extensible Messaging and Presence Protocol (XMPP) is defined in the XMPP Core (RFC 3920) and XMPP IM (RFC 3921) specifications contributed by the XMPP Standards Foundation to the Internet Standards Process, which is managed by the Internet Engineering Task Force in accordance with RFC 2026. Any protocol defined in this document has been developed outside the Internet Standards Process and is to be understood as an extension to XMPP rather than as an evolution, development, or modification of XMPP itself.
The primary venue for discussion of XMPP Extension Protocols is the <standards@xmpp.org> discussion list.
Discussion on other xmpp.org discussion lists might also be appropriate; see <http://xmpp.org/about/discuss.shtml> for a complete list.
Errata can be sent to <editor@xmpp.org>.
The following requirements keywords as used in this document are to be interpreted as described in RFC 2119: "MUST", "SHALL", "REQUIRED"; "MUST NOT", "SHALL NOT"; "SHOULD", "RECOMMENDED"; "SHOULD NOT", "NOT RECOMMENDED"; "MAY", "OPTIONAL".
Note: Older versions of this specification might be available at http://xmpp.org/extensions/attic/
Rewritten to focus on the connection transfer use case only.
(fj)Initial version.
(psa)Added the server transfer section.
(rd)END