版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Leon 2012-07-05,Jabber/XMPP 简介,一、XMPP概述,XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线探测。 这个协议最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其操作系统和浏览器不同。,二、XMPP历史,XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议。 Jeremie Miller于1998年开始了这个项目。第一个公开版本于2000年5月发行。 Jabber已经由IETFXMPP协议(RFC3920)标准化。并与IMPP、PRIM、SIP(SIMPLE)合称四大IM协议主流,在
2、此4大协议中,XMPP是最灵活的。,三、XMPP特点,1.XMPP 协议是公开的,由JSF开源社区组织开发的。 2.XMPP 协议具有良好的扩展性。XMPP中传输的信息都是基于XML的结构化信息,使数据以极高的效率传送给最合适的资源。XMPP 除了可用在即时通信的应用程序,还能用在网络管理、内容供稿、协同工具、档案共享、游戏、远端系统监控等。 3.分布式的网络架构。XMPP 协议都是基于C/S架构,网络的架构和电子邮件十分相似,但没有结合任何特定的网络架构,适用范围非常广泛。 4.安全性。XMPP在C-to-S通信,和S-to-S通信中 都使用TLS (Transport Layer Secu
3、rity)协议作为 通信通道的加密方法,保证通信的安全。任何XMPP 服务器可以独立于公众XMPP网络,而使用SASL及TLS 等技术更加增强了通信的安全性。,四、XMPP缺点,数据负载太重:随着超过70的XMPP协议服务器的数据流量的存在和近60的被重复转发,XMPP协议目前拥有一个大型的空中数据网络。新的议定书正在研究,以减轻这一问题。 无法进行二进制数据的传输:XMPP协议的消息被编码为一个单一的长的XML文件,其核心部分没有包含对二进制数据传输的支持,因此是得XMPP的基本数据限制在文本文件的范围内。,五、 XMPP体系架构,XMPP的基本网络结构 ,xmpp定义了3个角色 Clien
4、t Server Gateway 通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML。,五、 XMPP体系架构,XMPP server:以Openfire为例。 功能: 1.会话管理器:负责客户端会话认证,在线状态,用户联系表等 2.数据存储器(XDB):连接数据库系统,保持用户信息、通信日志等 3.连接器管理器:管理与客户端之间的连接 4.服务器连接器:管理xmpp服务器之间的连接
5、 5.传输器:建立xmpp服务器与非xmpp服务器通信,五、 XMPP体系架构,XMPP client:以spark为例。 功能: 1. 通过 TCP 套接字与XMPP 服务器进行通信; 2. 解析组织好的 XML 信息包; 3. 理解消息数据类型。 XMPP 将复杂性从客户端转移到服务器端。这使得客户端编写变得非常容易,更新系统功能也同样变得容易。,五、 XMPP体系架构,XMPP gateway: XMPP 突出的特点是可以和其他即时通信系统交换信息和用户在线状况。由于协议不同,XMPP 和其他系统交换信息必须通过协议的转换来实现,实现这个特殊功能的服务端在XMPP 架构里叫做网关(gat
6、eway)。目前,XMPP 实现了和AIM、ICQ、IRC、MSN 、RSS0.9 和Yahoo Massager 等的协议转换。由于网关的存在,XMPP 架构事实上兼容所有其他即时通信网络,这无疑大大提高了XMPP 的灵活性和可扩展性。,XMPP Client,XMPP Client,XMPP Server,DNS Server,XMPP Server,Other Server,Other Client,XMPP Client,六、XMPP工作原理图,Xml流,Protocol Gateway,XMPP工作原理说明,所有从一个client到另一个client的jabber消息和数据都要通过x
7、mpp server。 1.client连接到server 2.server利用本地目录系统的证书对其认证 3.client制定目标地址,让server告知目标状态 4.server查找,连接并进行相互认证 5.client间进行交互,七、XMPP地址模式,统一的JID(jabber identifier) JID= node” domain “/” resource eg: domain:服务器域名 node: 用户名 resource:属于用户的位置或设备 一个用户可以同时以多种资源与同一个XMPP服务器连接,八、XMPP xml消息格式定义,xmpp xml包括3个元素:简单示例: ,X
8、MPP xml消息格式定义-presence,-此元素确定用户的状态 online ,XMPP xml消息格式定义-message,-用于两个用户之间发送信息 Hello ,XMPP xml消息格式定义-iq,-信息/请求,是一个请求-响应机制,管理xmpp服务器上两个用户的转换,允许他们通过相应的xml格式的查询和响应 Iq的主要属性:type,包括: Get:获取当前域值 Set:设置或替换get查询的值 Result:说明成功的响应了先前的查询 Error:查询和响应中出现的错误,九、XMPP的安全机制,XMPP协议簇,Simple Authentication and Security
9、 Layer,Transport Layer Security,XMPP登录身份认证协议,XMPP采用SASL作为身份认证协议 SASL (Simple Authentication and Security Layer) 简单验证和安全层:是一个用于网络通信协议的安全验证框架,它可以使网络协议在互相验证的阶段可以有多种验证方式可以选择。服务端给出选择,客户端选一个,然后根据验证方式不同进行验证流程,由于SASL仅仅是个框架,具体怎么实现是由协议决定的。,XMPP TLS,XMPP采用TLS的“START-TLS”扩展来为通信双方提供加密性和数据完整性服务。 TLS 记录协议(TLS Reco
10、rd) 记录协议支持信息传输、将数据分段到可处理块、压缩数据、应用 MAC 、加密以及传输结果等。对接收到的数据进行解密、校验、解压缩、重组等,然后将它们传送到高层客户机。 TLS 握手协议(TLS Handshake) TLS 握手协议由三个子协议组构成,允许对等双方在记录层的安全参数上达成一致、自我认证、例示协商安全参数、互相报告出错条件。 1.改变密码规格协议 2.警惕协议 3.握手协议,十、Spark 登录xmpp服务器过程示例(一),Cclient Sserver 步骤: 1.client初始流给server C: 2.server使用一个流标记作为响应发给client S: ,Sp
11、ark 登录xmpp服务器过程示例(二),3.Server发送STARTTLS给client,并带有认证机制与任何其他流特征 S: PLAIN DIGEST-MD5 zlib ,Spark 登录xmpp服务器过程示例(三),4. Client发送STARTTLS命令给Server C: 5.Server通知Client它被允许处理 S: Note:client与server TLS协商失败,server通知client TLS协商失败,并关闭流与TCP连接 ,Spark 登录xmpp服务器过程示例(四),6. 如果TLS协商成功,client初始化一个新流给server C: ,Spark 登
12、录xmpp服务器过程示例(五),7.Server靠发送带有任何可利用流特征的流头作为响应 S: PLAIN DIGEST-MD5 zlib ,Spark 登录xmpp服务器过程示例(六),8.Client选择一个认证机制 C: AGh4dwAx 9.Server通知client认证成功 S: Note:如果认证不成功,server通知client认证失败,并关闭流 ,Spark 登录xmpp服务器过程示例(七),10.如果认证成功,client初始化一个新流给server C: 11.Server依靠流头来响应client,并伴随有另外的特征 S: zlib ,Spark 登录xmpp服务器过程示例(八),12.资源绑定:client发送一个类型为set的iq,并包含所需绑定的资源节点 C: spark 13.如果server为client产生了一个资源标识符或是接受
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 织布上轴工风险评估与管理知识考核试卷含答案
- 2026年云原生工业软件SaaS服务项目可行性研究报告
- 2026年园区重载无人搬运车项目可行性研究报告
- 2026年冷链物流追踪项目可行性研究报告
- 2026年工业控制系统安全计算项目可行性研究报告
- 2026年算力即服务(aaS)平台项目公司成立分析报告
- 2026年基因测序仪项目可行性研究报告
- 2026年人工智能 工业互联网项目可行性研究报告
- 2026年功能性营养保健品项目可行性研究报告
- 2026年多功能移动电源项目公司成立分析报告
- 学校中层管理岗位职责及分工明细(2026年版)
- 莆田春节习俗介绍
- 江苏省南京市2025届中考化学试卷(含答案)
- 飞行固模课件
- 2025年中考英语真题完全解读(重庆卷)
- 学前教育创意短片
- 2026年短视频合作合同
- 建筑临时设施设计方案
- 污水厂春节复工安全培训课件
- 电场防寒防冻知识培训课件
- 审贷分离管理办法
评论
0/150
提交评论