datatracker.ietf.org
Sign in
Version 5.7.1.p2, 2014-10-29
Report a bug

Extensible Messaging and Presence Protocol (XMPP): Core
RFC 6120

Document type: RFC - Proposed Standard (March 2011; Errata)
Obsoletes RFC 3920
Document stream: IETF
Last updated: 2013-03-02
Other versions: plain text, pdf, html

IETF State: (None)
Consensus: Unknown
Document shepherd: No shepherd assigned

IESG State: RFC 6120 (Proposed Standard)
Responsible AD: Gonzalo Camarillo
Send notices to: xmpp-chairs@tools.ietf.org, draft-ietf-xmpp-3920bis@tools.ietf.org

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

[include full document text]