XEP-0073

来自Jabber/XMPP中文翻译计划
2010年5月25日 (二) 07:19Admin (讨论 | 贡献)的版本
跳转到: 导航, 搜索


本文的英文原文来自XEP-0073

XEP-0073:基本IM协议组

本文档定义了基本即时消息及在线应用应支持的一个推荐的协议组。

警告:本协议是XMPP标准基金会的草案标准。我们鼓励标准的实现,协议适和在产品系统中实施,但在成为最终标准前协议可能会有一些变化。

文档信息

系列:XEP

序号:0073

发布者:XMPP标准基金会

状态:草案

类型:标准跟踪

版本:1.1

最后更新:2007-02-15

批准机构:XMPP理事会

依赖标准:XMPP Core, XMPP IM, XEP-0030, XEP-0077, XEP-0078, XEP-0086, XEP-0115

替代标准:无

被替代标准:无

缩略名:未指派

Wiki页:{link:http://wiki.jabber.org/index.php/Basic IM Protocol Suite (XEP-0073)|http://wiki.jabber.org/index.php/Basic%20IM%20Protocol%20Suite%20(XEP-0073)}

作者信息

法律通告

讨论地点

相关的XMPP

术语的一致性

目录

绪论

面对众多的Jabber/XMPP协议,对开发人员来说,具体实现那些协议才能与Jabber/XMPP网络交互,并不总是很清楚。本文档通过定义用于基本即时通讯及在线协议组,努力帮助开发人员解决这个问题。

需求及方法

定义一套协议组,提供一个高级别的“桶”,我们可以把一些特殊功能放到里面进行发布和兼容性测试。这个桶的底就是RCF2920和3921,它们定义了XML流,JID处理,通道加密,认证,三个主要的XML段类型(<message/>,<presence/>和<iq/>),命名空间处理,在线订阅,联系人管理和隐私名单(privacy lists)(黑名单/白名单)。然而,基本的Jabber即时消息及在线应用还应该支持几个没有包括在XMPP规范里的附加协议,原因非此即彼:

  • 这些协议没有要求满足RFC2779\[10\]的要求(比如,服务发现)。
  • 它们只是满足了Jabber社区里通用的需求,但并不符合IETF的更严格的要求(如,旧式的非SASL认证)。

基本IM协议组并不包含更高级的IM功能,如群聊或HTML消息格式化;这些功能参见中级IM协议组\[11\].

定义

Jabber社区开发的软件是建立在XML流,固定的地址方案(JID),通道加密,用服务器来认证一个实体(客户或服务器),三种核心数据元素(<message/>,<presence/>,<iq/>)和适当的XML命名空间处理等等基础上的。这些基本的组块都在RFC3920中定型了,是本协议组 __必需__ 的部分。

然而,XMPP核心协议并没有完全符合传统上所知的"Jabber"的核心内容,不足的部分就由基本IM协议组来弥补。为了向后兼容性,推荐服务器(而不是客户端)支持非SASL认证\[12\]作为已发布的客户端\[13\]的一个妥协的认证方法。 另外,推荐客户端和服务器都支持出错条件映射\[14\]中的出错'code'属性。

RFC3920没有定义哪怕是最小的即时消息及在线应用程序所正常期望的所有功能(实际上,它定义了传输层而不是IM及在线应用层)。这些在RFC3921中定义的IM及在线功能的大部分是为了满足RFC2779的需求。特别是,FRC3921定义了联系人管理,在线订阅和客户及服务器端的路由及传输指导方针。因此对RFC3921的支持也是 必需的

更进一步,典型的Jabber即时消息和在线应用程序都包含发现网络上其他实体有关信息的能力,也能回应信息查询。这些行为及其重要,因为这能保证网络上的实体能确定彼此的能力,这样就能知道如何相互通讯。因此,本协议组 要求 支持服务发现[15],因为它是(对客户端)在实体能力[16]中说明的服务发现的动态形态(profile)。

传统上,Jabber服务器(和有些服务)也向客户提供“带内(in-band)”注册帐号的服务(见带内注册[17]),以此来鼓励网络上的参与者; 推荐 支持这一协议,但具体的服务器布置时,作为一项提供的服务 可以 不支持带内注册。

综此我们定义了如下基本IM协议组:

规范 要求级别
XMPP 核心协议 必需的
XMPP IM 必需的
服务发现 必需的
带内注册 推荐的
XEP-0078: 非SASL认证 对服务器端 推荐的; 对客户端 不推荐
XEP-0086: 出错条件映射 推荐的
XEP-0115: 实体能力 对客户端 必需的

安全事项

RFC3920要求支持SASL和TLS作为必须实现的协议,在此这种支持并未改变。在XEP-0078中定义的旧的认证方法:非SASL认证现在是不主张的;然而,为向后兼容考虑,服务器端仍推荐支持它(见XEP-0078关于SASL认证和非SASL认证正确的优先顺序)。

IANA事项

本文档与互联网分配数字授权(IANA)\[18\]无关。

XMPP注册事项

本文档与XMPP注册[19]无关。

注释

个人工具