没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
RFC3920
可扩展的消息和出席信息协议 (XMPP): 核心协议
关于本文的说明
本文为互联网社区定义了一个互联网标准跟踪协议,并且申请讨论协议和提出
了改进的建议。请参照“互联网官方协议标准”的最新版本()获得这个
协议的标准化进程和状态。本文可以不受限制的分发。
版权声明
本文版权属于互联网社区
摘要
本文定义了可扩展消息和出席信息协议()的核心功能,这个协议采用
流实现在任意两个网络终端接近实时的交换结构化信息。 提供一个
通用的可扩展的框架来交换 数据,它主要用来建立即时消息和出席信息应
用以实现 的需求。
目录
1. 绪论
2. 通用的架构
3. 地址空间
4. XML
流
5. TLS
的使用
6. SASL
的使用
7. 资源绑定
8. 服务器回拨
9. XML
节
10. 服务器处理
XML
节的规则
11. XMPP
中的
XML
用法
12. 核心的兼容性要求
13. 国际化事项
14. 安全性事项
15. IANA
事项
16. 参考
1. 绪论
1.1. 概览
是一个开放式的 协议,设计用于准实时消息和出席信息以及请求
响应服务。其基本的语法和语义最初主要是由 !"" 开放源代码社区于
年开发的。 年, 工作组被授权接手开发和改编 !"" 协议以适应
# 的消息和出席信息技术。作为 工作组的成果,本文定义了
的核心功能;在 $#%&中指定的提供即时消息和出席信
息功能的扩展,定义在 协议 $#'(")((!**!+
(),(!((!**!+(&中。
1.2. 术语
本文中大写的关键字 -.-/-.01-/-#%.#-/-23-/
-2301-/-21.-/-21.01-/-#1#0#-/-34-/
和 -1103-的确切含义符合 5/$#&
2. 通用的架构
2.1. 概览
尽管 没有结合任何特定的网络结构,通常认为它是 客户服务器 架构的
一种实现,在这里客户端用 的方式访问服务器采用的是 连接,服务
器之间的通信也是 连接。
以下是这一架构的抽象的示意图 这里 --表示使用 通讯, -6-表示可
使用任何协议通讯。
7
88888889
:;6660666
符号代表的意思如下,
//76客户端
/6服务器
;6一个 和外部(非 )消息网络之间进行“翻译”的网关
06一个外部消息网络
6外部消息网络上的一个客户端
2.2. 服务器
服务器充当 通信的一个智能抽象层,它主要负责:
管理发出的连接或其他实体的会话,在 流(第四章)的表单中接收
和发送给授权的客户端,服务器和其他实体。
用 流通过实体转发特定地址的 消息(第九章)
大部分 兼容的服务器也负责存储客户端使用的数据 比如基于 应
用的联系人名单<在这种情况下, 数据直接由服务器代替客户端处理而
不需要转发到其他实体。
2.3. 客户端
大部分客户端通过 连接直接连到服务器,并通过 获得由服务器和
任何相关的服务所提供的全部功能。多个不同资源(比如不同的设备和地点)
的客户端可以同时登陆并且并发的连接到一个服务器,每个不同资源的客户端
通过 地址的资源标识符来区分(比如=+>+?!@?A和
=+>+?!@BCA),参见地址空间(第三章)。DD建议DD的客户端
和服务器连接的端口是 E,这个端口已经在 303(在第十五章第九节查
阅端口号码) 注册了。
2.4. 网关
网关是一个特殊用途的服务器端的服务,主要功能是把 翻译成外部非
消息系统,并把返回的消息翻译成 。例如到 ?!)(参见
$&),(参见 $&),#(参见 $#&),的网关;
还有和别的消息服务的网关,比如 3,%,0((*,4!F
(!((*。网关和服务器之间的通信,网关和外部消息系统的通信,
不在本文描述范围之内。
2.5. 网络
因为每个服务器都是由一个网络地址来标识的并且服务器之间的通信是 客户
服务器 协议的直接扩展,实际上整个系统是由很多互通的服务器构成的。例如,
=GH)>'!?I)?A可以和 =?>'!?I)A交换消息/出
席信息和其他信息。这种模式常见于那些需要使网络地址标准化的协议(比如
)。任意两个服务器之间的通信是可选(1103)的。如果被激活,
那么这种通信应该(21.)通过 流绑定到 连接上进行。建议的
(#1#0#)服务器之间的连接端口为 EJ,这个端口号已经在
303(在第十五章第九节查阅端口号码)注册了。
3. 地址空间
3.1. 概览
一个实体可以是任何一个被认为是一个网络端点的东西例如网络上的一个
,而且它是通过 进行通信的。所有这些实体都有一个具有唯一性的
地址,并符合 7J$.&规范要求的格式。由于历史原因,一个
实体的地址被称为 !""+K或 。一个合法的 包括一组排列好
的元素,包括域名(+?!+K),节点名(++K),和
资源名((H+K)。
的语法定义,使用 $350&中的 3H*?+5!CH(0!H格式。
(L地址和 LJ 地址规则在 附录 5中的 $LJ&中定义;确定节点规则的
合法字符顺序由 附录 3的 $0;#&的 0+II部分来定义;确定
资源规则的合法字符顺序由 附录 5的 $0;#&的 (HII部
分来定义;子域名规则参考 $03&中关于国际域名标签的描述。)。
G+6$+->-&+?!$-@-(H&
+?!6MN+@!++(()!)
MN+6(H"+?!O--(H"+?!
(H"+?!6!!)P++?!)!")
!++(()!)6L!++((@LJ!++((
所有 都是基于上述的结构。类似 =H(>(@(HA这种结构,最
常用来标识一个即时消息用户,这个用户所连接的服务器,以及这个用户用于
连接的资源(比如特定类型的客户端软件)。不过/节点类型不是客户端也是有
可能的,比如一个用来提供多用户聊天服务的特定的聊天室,地址可以是
=?>(LA(这里 “?Q是聊天室的名字而 ”(LQ是多用户聊
天服务的主机名),而加入了这个聊天室的某个特定的用户的地址则是
=?>(L@CA(这里 ”CQ是用户在聊天室的昵称)。许多其他
的 类型都是可能的(例如 =+?!@(HA可能是一个服务器端的
脚本或服务)。
一个 的每个合法部分(节点名,域名,资源名)的长度不能(.
01)超过 7字节。也就是整体长度(包括 R>R和 R@R)不能超过 7
字节。
3.2. 域名
域名是一个主要的 并且是 中唯一必需(#%.#)的元素(一个纯
粹的域名也是一个合法的 )。它通常代表网络的网关或者“主”服务器,其他
实体通过连接它来实现 转发和数据管理功能。然而,由一个域名标识引
用的实体,并非总是一个服务器,它也可能是一个服务器的子域地址,提供额
外的功能(比如多用户聊天服务,用户目录,或一个到外部消息系统的网关)。
每个服务器或者服务的域名,可以(34)是一个 地址,但应该
(21.)是一个完全合法的域名参见 $0&一个域名 必须.
是 $303&里定义的“国际化域名”,并且按 $0;#&中的 $03##&
IK) 进行成功的字符转换。在比较两个域名 之前,服务器必须./
客户端应该21.首先按照 0!?IIIK)定义在$303&中来转换
每个域名的字符。
3.3. 节点名
节点名是一个可选(1103)的第二 ,放在域名之前并用符号->-分开
它通常表示一个向服务器或网关请求和使用网络服务的实体比如一个客户端/
当然它也能够表示其他的实体比如在多用户聊天系统中的一个房间节点名所
代表的实体,它的地址依赖于一个特定的域名<在 的即时消息和出席信
息应用系统中,这个地址是“纯 S=+>+?!A中的一部分。
一个节点名必须按 $0;#&中的 0+IIIK)进行成功的字符
转换。在比较两个节点 之前,服务器必须(.)/客户端应该
21.首先按 0+IIIK)转换每个 的字符。
3.4. 资源名
资源名是一个可选的第三 /它放在域名的后面并由符号-@-分开。资源名可以
跟在 =+>+?!A后面也可以跟在 =+?!A后面。它通常表示一个
特定的会话,连接(比如设备或者所在位置),或者一个附属于某个节点 实
体相关实体的对象(比如多用户聊天室中的一个参加者)。对于服务器和和其
他客户端来说,资源名是不透明的。当它提供必需的信息以完成资源绑定(参
见第七章)的时候,通常是由客户端来实现的(尽管可以由客户端向服务器请
求完成),然后显示为“已连接的资源”。一个实体可以34并发维护多个已连
接的资源。每个已连接的资源由不同的资源 来区分。
一个资源名必须(.)按 $0;#&中的 (HIIIK)进
行成功的格式化。在比较两个资源 之前,服务器必须(.)/客户端应
该21.首先按 (HIIIK)转换每个 的字符。
3.5. 地址的确认
在 3(见第六章)握手之后(如果必要的话,也在资源绑定(见第七章)
之后),正在接收流信息的实体必须(.)确认初始实体的 。
剩余63页未读,继续阅读
yaxqy
- 粉丝: 0
- 资源: 22
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页