Internet Engineering Task Force (IETF) P. Saint-Andre
Request for Comments: 6120 Cisco
Obsoletes: 3920 March 2011
Category: Standards Track
ISSN: 2070-1721
Extensible Messaging and Presence Protocol (XMPP): Core
Abstract
The Extensible Messaging and Presence Protocol (XMPP) is an
application profile of the Extensible Markup Language (XML) that
enables the near-real-time exchange of structured yet extensible data
between any two or more network entities. This document defines
XMPP's core protocol methods: setup and teardown of XML streams,
channel encryption, authentication, error handling, and communication
primitives for messaging, network availability ("presence"), and
request-response interactions. This document obsoletes RFC 3920.
Status of This Memo
This is an Internet Standards Track document.
This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by the
Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 5741.
Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
http://www.rfc-editor.org/info/rfc6120.
Copyright Notice
Copyright (c) 2011 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Saint-Andre Standards Track [Page 1]
RFC 6120 XMPP Core March 2011
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2. History . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3. Functional Summary . . . . . . . . . . . . . . . . . . . 9
1.4. Terminology . . . . . . . . . . . . . . . . . . . . . . 11
2. Architecture . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1. Global Addresses . . . . . . . . . . . . . . . . . . . . 13
2.2. Presence . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3. Persistent Streams . . . . . . . . . . . . . . . . . . . 14
2.4. Structured Data . . . . . . . . . . . . . . . . . . . . 14
2.5. Distributed Network of Clients and Servers . . . . . . . 14
3. TCP Binding . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.1. Scope . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2. Resolution of Fully Qualified Domain Names . . . . . . . 17
3.2.1. Preferred Process: SRV Lookup . . . . . . . . . . . 17
3.2.2. Fallback Processes . . . . . . . . . . . . . . . . . 18
3.2.3. When Not to Use SRV . . . . . . . . . . . . . . . . 18
3.2.4. Use of SRV Records with Add-On Services . . . . . . 19
3.3. Reconnection . . . . . . . . . . . . . . . . . . . . . . 19
3.4. Reliability . . . . . . . . . . . . . . . . . . . . . . 20
4. XML Streams . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.1. Stream Fundamentals . . . . . . . . . . . . . . . . . . 20
4.2. Opening a Stream . . . . . . . . . . . . . . . . . . . . 23
4.3. Stream Negotiation . . . . . . . . . . . . . . . . . . . 24
4.3.1. Basic Concepts . . . . . . . . . . . . . . . . . . . 24
4.3.2. Stream Features Format . . . . . . . . . . . . . . . 25
4.3.3. Restarts . . . . . . . . . . . . . . . . . . . . . . 27
4.3.4. Resending Features . . . . . . . . . . . . . . . . . 27
4.3.5. Completion of Stream Negotiation . . . . . . . . . . 27
4.3.6. Determination of Addresses . . . . . . . . . . . . . 28
4.3.7. Flow Chart . . . . . . . . . . . . . . . . . . . . . 29
4.4. Closing a Stream . . . . . . . . . . . . . . . . . . . . 31
4.5. Directionality . . . . . . . . . . . . . . . . . . . . . 32
4.6. Handling of Silent Peers . . . . . . . . . . . . . . . . 33
4.6.1. Dead Connection . . . . . . . . . . . . . . . . . . 34