文档详情

XMPP 协议工作流程 .pdf

发布:2024-11-20约5.91千字共6页下载文档
文本预览下载声明

XMPP协议工作流程详解

分类:翻译文章2014-04-2311:112221人阅读评论(0)收藏举报

原文:

作者:YilunFan,日期2011-01-0513:09

XMPP核心协议

XMPP要点.

1.客户端(C)和服务器端(S)通过TCP连接5222端口进行全双工通信.

2.XMPP信息均包含在XMLstreams中.一个XMPP会话,开始于stream标签,

并结束于/stream标签.所有其他的信息都位于这俩标签之间.

3.出于安全目的考虑,开始stream之后,后续的内容会被适度的使用Transpor

LayerSecurity(TLS)协商传输和强制性的SimpleAuthentication和Security

Layer(SASL)协商传输.

4.SASL协商完成后,一个新的stream将会被迅速打开,它将会更加安全和保密.

第一步:打开stream

Client:客户端发送打开stream的片段到服务器,请求一个新的session.

[html]viewplaincopy

1.stream:streamto=xmlns=jabber:clientxmlns:stream=

/streamsversion=1.0

这里“”是客户端试图连接的服务器的域名.

Server:Server返回XMLstream,以stream:freatures开头,包含要求TLS或者

SASL协商谈判之一,或者2个都要求.

[html]viewplaincopy

1.stream:features

2.starttlsxmlns=urn:ietf:params:xml:ns:xmpp-tls

3.required/

4./starttls

5.mechanismsxmlns=urn:ietf:params:xml:ns:xmpp-sasl

6.mechanismDIGEST-MD5/mechanism

7.mechanismPLAIN/mechanism

8.mechanismEXTERNAL/mechanism

9./mechanisms

10./stream:features

第二步:加密和认证.

2.1如果服务器需要TLS交涉.

Client:客户端发送STARTTLS到服务器.

[html]viewplaincopy

1.starttlsxmlns=urn:ietf:params:xml:ns:xmpp-tls/

Server:服务器返回消息显示TLS已被允许:

[html]viewplaincopy

1.proceedxmlns=urn:ietf:params:xml:ns:xmpp-tls/

或者TLS失败了:

[html]viewplaincopy

1.failurexmlns=urn:ietf:params:xml:ns:xmpp-tls//stream:stream

在失败的情况下,服务器会关闭TCP连接.

Client:如果TLS已被服务器正确处理,客户端发送请求一个新的session:

[html]viewplaincopy

1.stream:streamxmlns=jabber:clientxmlns:s

显示全部
相似文档