1、Extensible Messaging and Presence Protocol (XMPP): Core
1.1. Status of this Memo/说明
This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.
本文档详细说明了应用于Internet通讯的标准协议。对于本协议的更新的一些需求讨论和建议,请提交当前版本到“国际标准协议组织”。本文档分发不受限制。
1.2. Copyright Notice/版权申明
Copyright (C) The Internet Society (2004).
1.3. Abstract/概要
This memo defines the core features of the Extensible Messaging and Presence Protocol (XMPP), a protocol for streaming Extensible Markup Language (XML) elements in order to exchange structured information in close to real time between any two network endpoints. While XMPP provides a generalized, extensible framework for exchanging XML data, it is used mainly for the purpose of building instant messaging and presence applications that meet the requirements of RFC 2779.
本文定义了XMPP协议的核心特性。XMPP是基于XML流元素扩展的,它旨在向两个网络终端在近乎实时的情况下交换结构信息。XMPP也提供了一个没有显著特点的,可扩展的XML数据交换的框架结构模型。在RFC 2779标准定义的需求下,它应用于建立即时通讯和即时会议的应用程序。
1.4. Table of Contents/目录
1. Introduction/简介
2. Generalized Architecture/ 通用的结构
3. Addressing Scheme/ 地址配置
4. XML Streams/ XML流
5. Use of TLS/ TSL的应用
6. Use of SASL/ SASL的应用
7. Resource Binding/ 资源绑定
8. Server Dialback/ 服务回叫
9. XML Stanzas/ XML节
10. Server Rules for Handling XML Stanzas/XML操作的服务规则
11. XML Usage within XMPP/ XMPP的XML用法
12. Core Compliance Requirements/核心需求
13. Internationalization Considerations/ 国际化考虑
14. Security Considerations/ 安全考虑
15. IANA Considerations / IANA考虑
16. References / 参考文献
17. Nodeprep / 节点命名
· B. Resourceprep / 资源命名
· C. XML Schemas / XML计划
· D. Differences Between Core Jabber Protocols and XMPP / JABBER和XMPP核心协议的区别
· Contributors/ 贡献者
· Acknowledgements/ 知识准备
· Author's Address/ 作者地址
· Full Copyright Statement/ 版权申明 待续.........
/
/
/
/
1.4 1. Introduction/简介
1.4 1.1 Overview/综述
The Extensible Messaging and Presence Protocol (XMPP) is an open Extensible Markup Language [XML] protocol for near-real-time messaging, presence, and request-response services. The basic syntax and semantics were developed originally within the Jabber open-source community, mainly in 1999. In 2002, the XMPP WG was chartered with developing an adaptation of the Jabber protocol that would be suitable as an IETF instant messaging (IM) and presence technology. As a result of work by the XMPP WG, the current memo defines the core features of XMPP 1.0; the extensions required to provide the instant messaging and presence functionality defined in RFC 2779 [IMP-REQS] are specified in the Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence [XMPP-IM].
xmpp是一个开放的基于xml的 提供 近乎实时消息、现场勘察和请求应答服务的协议。它最初是由jabber开源社区在大约 1999年发起并一直领导的即时消息的实时系统,在2002年,xmpp WG 。作为xmppWG的工作结果,当前备忘录定义了xmpp1.0的核心特征;在 这个扩展部要求提供定义在<<rfc 2779>>的即时消息和现场勘察功能,是列在xmpp 中: [xmpp-im]。
1.4 1.2 Terminology/术语
The capitalized key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14, RFC 2119 [TERMS].
下面大写的关键字 "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" 在这篇文档中的意义 请参见RFC 2119
/
/
/
1.4 2. Generalized Architecture/通用的结构
1.4 2.1 Overview/综述
Although XMPP is not wedded to any specific network architecture, to date it usually has been implemented via a client-server architecture wherein a client utilizing XMPP accesses a server over a [TCP] connection, and servers also communicate with each other over TCP connections.
The following diagram provides a high-level overview of this architecture (where "-" represents communications that use XMPP and "=" represents communications that use any other protocol).
C1---S1---S2--C3
C2---+---G1==============FN1==================FC1
The symbols are as follows:
·C1, C2, C3 = XMPP clients
·S1, S2 = XMPP servers
·G1 = A gateway that translates between XMPP and the protocol(s)
used on a foreign (non-XMPP) messaging network
·FN1 = A foreign messaging network
·FC1 = A client on a foreign messaging network
尽管xmpp不想与任何特殊的网络体系机构相结合,但它通常是基于c/s架构的, 其中一个客户端通过一个tcp连接按着 xmpp 访问一个服务器, 服务器同样也是 通过tcp与其它实体通信。
下面的图表提供了这个体系机构的高层视图(--代表用xmpp进行通信,=代表是 其它协议进行通信 )。
C1---S1---S2--C3
C2---+---G1==============FN1==================FC1
·C1,C2,C3 代表 XMPP客户端
·S1,S2代表XMPP服务器
·G1代表一个网关,它XMPP和 其它外部(非xmpp)消息网络之间的翻译。
·FN1 代表一个外部消息网络
·FC1 代表一个外部消息网络的客户端。 待续.........
1.4 2.2. Server/服务器
A server acts as an intelligent abstraction layer for XMPP communications. Its primary responsibilities are:
·to manage connections from or sessions for other entities, in the form of XML streams (Section 4) to and from authorized clients, servers, and other entities
·to route appropriately-addressed XML stanzas (Section 9) among such entities over XML streams
Most XMPP-compliant servers also assume responsibility for the storage of data that is used by clients (e.g., contact lists for users of XMPP-based instant messaging and presence applications); in this case, the XML data is processed directly by the server itself on behalf of the client and is not routed to another entity.
一个服务担当一个XMPP通信的智能提取层,这主要负责:
·管理一个来自其它通信实体的以xml流方式的连接或会话, 它可以来自于授权的客户端、服务器、或者其它通信实体
·路由在基于xml流实体中具有正确地址的xml节( 第九节)
大多数的支持xmpp的服务器也可能为用户担任数据存储的职责( 如用户的联系列表);既然这样,服务器代表用户直接处理xml数据,而不被路由到另一个实体。
1.4 2.3 Client/客户端
Most clients connect directly to a server over a [TCP] connection and use XMPP to take full advantage of the functionality provided by a server and any associated services. Multiple resources (e.g., devices or locations) MAY connect simultaneously to a server on behalf of each authorized client, with each resource differentiated by the resource identifier of an XMPP address (e.g., <node@domain/ home> vs. <node@domain/work>) as defined under Addressing Scheme (Section 3). The RECOMMENDED port for connections between a client and a server is 5222, as registered with the IANA (see Port Numbers (Section 15.9)).
大多数的客户端直接通过tcp与服务器连接,用XMPP协议充分利用一个服务和任何相关的服务提供的功能。多个的资源(如设备或地区)可能同时连接到一个服务器,各自代表的一个授权的客户,它们通过XMPP地址(如 <node@domain/home> 和 <node@domain/work>)的resource标识符来区别。推荐的连接端口为5222, 它已向IANA注册。
1.4 2.4 Gateway/网关
A gateway is a special-purpose server-side service whose primary function is to translate XMPP into the protocol used by a foreign (non-XMPP) messaging system, as well as to translate the return data back into XMPP. Examples are gateways to email (see [SMTP]), Internet Relay Chat (see [IRC]), SIMPLE (see [SIMPLE]), Short Message Service (SMS), and legacy instant messaging services such as AIM, ICQ, MSN Messenger, and Yahoo! Instant Messenger. Communications between gateways and servers, and between gateways and the foreign messaging system, are not defined in this document.
一个网关是服务器上的一个具有特殊目的的服务。它主要的功能是与外部消息系统通信时,将xmpp数据翻译成该系统的协议数据,同是将该系统返回的数据翻译成xmpp数据。例如email, irc, SIMPLE,SMS, 和其它的即时消息如 AIM,ICQ, MSN Messenger, Yahoo!.网关与服务器之间的通信 和 网关与外部消息系统之间 的通信的定义不在这篇文档中。
1.4 2.5 Network/网络
Because each server is identified by a network address and because server-to-server communications are a straightforward extension of the client-to-server protocol, in practice, the system consists of a network of servers that inter-communicate. Thus, for example, <juliet@example.com> is able to exchange messages, presence, and other information with <romeo@example.net>. This pattern is familiar from messaging protocols (such as [SMTP]) that make use of network addressing standards. Communications between any two servers are OPTIONAL. If enabled, such communications SHOULD occur over XML streams that are bound to [TCP] connections. The RECOMMENDED port for connections between servers is 5269, as registered with the IANA (see Port Numbers (Section 15.9)).
因为每一个服务器都可以通过一个网络地址来标识,同时因为服务器之间的通信是客户端与服务器之间的通信协议的一个直接的扩展,在实践中,系统由交互通信的服务器网络组成。因此,例如<juliet@example.com>能够与<romeo@example.net> 交换消息、现场勘察和其它信息。这种模式在使用网络地址标准的消息通信协议 (如SMTP)中是常见的,任何两个通信是可选的。如开启,那么通信在基于xml流上发生,它一定要建立TCP连接。推荐的连接端口为5269, 它已向IANA注册。
/
/
/
1.4 3. Addressing Scheme/地址配置
1.43.1 Overview/综述
An entity is anything that can be considered a network endpoint (i.e., an ID on the network) and that can communicate using XMPP. All such entities are uniquely addressable in a form that is consistent with RFC 2396 [URI]. For historical reasons, the address of an XMPP entity is called a Jabber Identifier or JID. A valid JID contains a set of ordered elements formed of a domain identifier, node identifier, and resource identifier.
The syntax for a JID is defined below using the Augmented Backus-Naur Form as defined in [ABNF]. (The IPv4address and IPv6address rules are defined in Appendix B of [IPv6]; the allowable character sequences that conform to the node rule are defined by the Nodeprep profile of [STRINGPREP] as documented in Appendix A of this memo; the allowable character sequences that conform to the resource rule are defined by the Resourceprep profile of [STRINGPREP] as documented in Appendix B of this memo; and the sub-domain rule makes reference to the concept of an internationalized domain label as described in [IDNA].)
jid = [ node "@" ] domain [ "/" resource ] domain = fqdn / address-literal fqdn = (sub-domain 1*("." sub-domain)) sub-domain = (internationalized domain label) address-literal = IPv4address / IPv6address
All JIDs are based on the foregoing structure. The most common use of this structure is to identify an instant messaging user, the server to which the user connects, and the user's connected resource (e.g., a specific client) in the form of <user@host/resource>. However, node types other than clients are possible; for example, a specific chat room offered by a multi-user chat service could be addressed as <room@service> (where "room" is the name of the chat room and "service" is the hostname of the multi-user chat service) and a specific occupant of such a room could be addressed as <room@service/nick> (where "nick" is the occupant's room nickname). Many other JID types are possible (e.g., <domain/resource> could be a server-side script or service).
Each allowable portion of a JID (node identifier, domain identifier, and resource identifier) MUST NOT be more than 1023 bytes in length, resulting in a maximum total size (including the '@' and '/' separators) of 3071 bytes.
一个实体可以是任何网络端点(如网络中的一个ID)并能够用XMPP通信的事 物。 所有这一类的实体可以唯一编址的,并符合[RFC 2396 [URI]]风格。 因为历史原因,一个XMPP实体的地址被叫做Jabber标识符或JID。一个有效的JID包括三个部分:域标识符,节点标识符和资源标识符
JID语法使用[ABNF]表达式定义。(IPv4地址和IPv6地址的规则的定义在附录B [IPv6] 中
jid = [ node "@" ] domain [ "/" resource ]
domain = fqdn / address-literal
fqdn = (sub-domain 1*("." sub-domain))
sub-domain = (internationalized domain label)
address-literal = IPv4address / IPv6address
所有的JID都是基于上述结构中的。这个结构大多是用来标识一个即时消息通信的用户,在服务器上有哪几个连接,及用户的连接资源以<user@host/resource> 的形式. 可是,节点的类型可能不是客户端;例如一个聊天室提供多用户聊天服务,它的地址可以可以是<room@service>( “room”是 聊天室的名字,"service"是提供多用户聊天服务的主机名) 。或者一个聊天室中的 某个用户被编址为<room@service/nick> ( "mick"是该用户在聊天室中的昵称). 具有多个其它JID类型是可能的(如<domain/resource>可以是一个服务器端的 script或服务)。
一个JID的每一部分(域标识符,节点标识符和资源标识符)的长度都不能超过1023 个字节,从而总字节数(包括"@"和"/")不能超过3071个字节。
待续.........
<!-- Search Google -->
输入您的搜索字词 提交搜索表单
|
|
<!--
google_ad_client = "pub-7330597899926046";
google_ad_format = "350x30_sdo";
google_link_target = 2;
google_color_bg = "ffffff";
google_color_link = "000000";
google_encoding = "GB2312";
//-->
|
<!-- Search Google --> <!--
google_ad_client = "pub-7330597899926046";
google_ad_slot = "8791774696";
google_ad_width = 468;
google_ad_height = 60;
//-->
分享到:
相关推荐
### RFC3920(XMPP)中文翻译版——核心知识点解析 #### 一、概述与背景 **RFC3920**定义了**可扩展的消息和出席信息协议(XMPP)**的核心功能,该协议利用XML流实现任意两个网络终端间的接近实时交换结构化信息。...
《深入解析RFC3920:Jabber XMPP的核心协议》 一、核心概念与架构 1. **概述**:RFC3920详细介绍了可扩展消息和出席信息协议(XMPP)的核心功能,该协议通过XML流实现在任意两个网络终端之间进行接近实时的结构化...
该协议的核心规范在RFC 3920和RFC 3921中定义,同时还有许多扩展功能在XMPP extensions中描述。 RFC 3920,全称为“Extensible Messaging and Presence Protocol (XMPP): Core”,它定义了XMPP的核心特性。这一文档...
RFC 3920是XMPP的核心协议文档,详细定义了其核心功能和操作机制。 ### 1. **XMPP协议概述** XMPP的设计目标是通过XML流实现实时信息交换,用于即时消息、出席状态更新以及请求-响应服务。它的主要特点在于其可扩展...
xmpp协议详解RFC3920中文版 chm文件,电子书可用,已经正确的更新文档内的连接。对内容没有更改。
RFC 6120是XMPP的核心协议规范,它取代了早期的RFC 3920,是Internet标准跟踪文件的一部分,代表了IETF社群的共识。 **1. 建筑** XMPP架构的核心是XML流,通过TCP连接进行传输。协议包括了身份验证、错误处理、通道...
《XMPP:核心协议》(RFC3920)是一份由互联网工程任务组(IETF)发布的文档,该文档详细介绍了Extensible Messaging and Presence Protocol(可扩展消息与呈现协议,简称XMPP)的核心功能。XMPP是一种基于流式的XML...
xmpp rfc3920 3921;汉化来源jabbercn.org.
RFC3920是XMPP协议的官方文档,描述了协议的详细技术标准和要求。其内容广泛,包括了从协议的基本架构、地址空间、到TLS(传输层安全协议)和SASL(简单认证与安全层协议)的使用,资源绑定,服务器回拨,以及XML的...
XMPP协议最初是由Jabber开源社区在1999年开发的,后来在2002年被XMPP工作组改写并提交至IETF(Internet Engineering Task Force,互联网工程任务组),进而演变成RFC3920标准。 XMPP协议定义了核心的即时消息与出席...
XMPP RFC3920 RFC3921 协议中文版,内附两协议英文版以便需要时作对照只用 欢迎加入XMPP开发爱好者群:4415663
RFC3921是XMPP的核心规范之一,详细定义了用户间的即时消息与存在状态交换机制。 **RFC3921简介** RFC3921,全称为"Instant Messaging and Presence Protocol Version 2.0",是XMPP的第二版协议标准。这个标准主要...
RFC3920定义了XMPP的核心部分,即XMPP Core,它为即时消息和在线状态的应用提供了基础性的框架和支持。 #### 二、XMPP核心功能 **核心功能**:根据RFC3920文档,XMPP的核心功能包括XML流、TLS(Transport Layer ...
### XMPP正式RFC标准3920:可扩展的消息与出席信息协议 #### 概述 **XMPP正式RFC标准3920**是互联网工程任务组(IETF)发布的一项标准,它定义了可扩展消息与出席信息协议(XMPP)的核心功能,该协议允许在任意两...
RFC 3920定义了XMPP的核心特性,并被确立为互联网标准跟踪协议之一。该文档强调了XMPP的国际化考虑,确保不同语言和地区能够有效利用该协议。 #### 五、安全考量 由于XMPP设计用于实时通信,因此安全性尤为重要。...
本文定义了可扩展消息和出席信息协议(XMPP)的核心功能,这个协议采用 XML 流实现在任意两个网络终端接近实时的交换结构...扩展的框架来交换XML数据,它主要用来建立即时消息和出席信息应用以实现 RFC 2779 的需求。
### XMPP-RFC3921(中文)关键知识点解析 #### 一、绪论与概览 **标题与描述解读:** - **标题**:“XMPP-RFC3921(中文)”直接指出了该文档是关于XMPP(可扩展消息与出席协议)的标准规范文档,特别注明为中文版,...
《RFC3920可扩展消息出席协议》(以下简称“RFC3920”)是一份核心的技术文档,它定义了可扩展消息出席协议(XMPP)的基础架构与运行机制。XMPP是一种基于XML的即时消息(IM)和出席协议,最初由Jabber开源社区在...