IM协议

四种协议英文全称与简称

1->IMPP(Instant Messaging And PresenceProtocol):即时信息和空间协议

2->PRIM(Presence and Instant Messaging Protocol):空间和即时信息协议

3->SIP(Session Initialion Protocol):回话发起协议

SIMPLE(SIP for Instant Messaging and Presence Leveraging Extensiong):,SIP即时消息和表示扩展协议,即SIP的扩展协议

4->XMPP(Extensible Messaging and Presence Protocol):可扩展消息与存在协议


一:即时信息和空间协议IMPP

IMPP主要定义必要的协议和数据格式,用来构建一个具备空间接收、发布能力的即时信息系统。到目前为止,这个组织已经出版了三个草案 RFC,但主要的有两个:一个是针对站点空间和即时通信模型的(RFC 2778);另外一个是针对即时通信/空间协议需求条件的(RFC2779)。RFC2778是一个资料性质的草案,定义了全部presence和IM服务 的原理。RFC2779定义了IMPP的最小需求条件。另外,这个草案还就presence服务定义了一些条款,如运行的命令、信息的格式,以及 presence服务器如何把presence的状态变化通知给客户。

二:空间和即时信息协议PRIM

PRIMXMPP、 SIMPLE相似,已经再也不使用了。与之相关的资料也很是有限~

三:回话发起协议SIP

SIMPLESIP的扩展协议, SIMPLE是目前为止制定的较为完善的一个。SIMPLEXMPP两个协议,都符合RFC2778和RFC2779 。SIMPLE计划利用SIP来发送presence信息。SIP是IETF中为终端制定的协议。SIP通常考虑用在创建语音通话中,一旦链接之后,依靠如实时协议(RTP)来进行实际上的语音发送。但SIP不只仅能被用在语音中,也能够用于视频。SIMPLE被定义为创建一个IM进程的方法。SIMPLE在2002年夏季获得额外的信任,目前,微软和IBM都致力于在它们的即时通信系统中实现这个协议。

四:可扩展消息与存在协议XMPP

都知道在这四种协议中,XMPP是最灵活的。XMPP是一种基于XML的协议,它继承了在XML环境中灵活的发展性。所以,基于XMPP的应用具备超强的可扩展性。通过扩展之后的XMPP能够经过发送扩展的信息来处理用户的需求,以及在XMPP的顶端创建如内容发布系统和基于地址的服务等应用程序。并且,XMPP包含了针对服务器端的软件协议,使之能与另外一个进行通话,这使得开发者更容易创建客户应用程序或给一个配好系统添加功能。

XMPP由Jabber软件基金会开发,最先在Jabber上实现。Jabber项目由Jeremie Miller在1998年开始的一个免费、开源的项目,用于提供给MSN、Yahoo!的IM服务。因为XMPP是一种基于XML架构的开放式协议,在 IM通信中被普遍采用,已经获得了互联网工程任务组(IETF )的批准。2002年,这个产品有超过5万的下载量。XMPP拥有成千的Jabber开发者,以及大约数万台配置的服务器和超过百万的终端用户。

XMPP的前身是Jabber,一个开源形式组织产生的网络即时通讯协议。XMPP目前被IETF国际标准组织完成了标准化工做。标准化的核心结果分为两部分:

1>核心的XML流传输协议

2>基于XML流传输的即时通信扩展应用

XMPP的核心XML流传输协议的定义使得XMPP可以在一个比以往网络通讯协议更规范的平台上。借助于XML易于解析和阅读的特性,使得XMPP的协议可以很是漂亮。

XMPP中定义了三个角色,客户端,服务器,网关。通讯可以在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,链接管理和信息的路由功能。网关承担着与异构即时通讯系统的互联互通,异构系统能够包括SMS(短信),MSN,ICQ等。基本的网络形式是单客户端经过TCP/IP链接到单服务器,而后在之上传输XML。

XMPP经过TCP传输的是与即时通信相关的指令。在之前这些命令要么用2进制的形式发送(好比QQ),要么用纯文本指令加空格加参数加换行苻的方式发送(好比MSN)。而XMPP传输的即时通信指令的逻辑与以往相仿,只是协议的形式变成了XML格式的纯文本。这不但使得解析容易了,人也容易阅读了,方便了开发和查错。而XMPP的核心部分就是一个在网络上分片段发送XML的流协议。这个流协议是XMPP的即时通信指令的传递基础,也是一个很是重要的能够被进一步利用的网络基础协议。因此能够说,XMPP用TCP传的是XML流。

XMPP协议优势:

(1)开放:XMPP协议是自由、开放、公开的,而且易于了解。并且在客户端、服务器、组件、源码库等方面,都已经各自有多种实现。

(2)标准:互联网工程工做小组(IETF)已经将Jabber的核心XML流协议以XMPP之名,正式列为承认的实时通讯及Presence技术。而XMPP的技术 规格已被定义在RFC 3920及RFC 3921。任何IM供应商在遵循XMPP协议下,均可与Google Talk实现链接。

(3)真实可用:第一个Jabber(如今XMPP)技术是Jeremie Miller在1998年开发的,如今已经至关稳定;数以百计的开发者为XMPP技术而努力。今日的互联网上有数以万计的XMPP服务器运做著,并有数以百万计的人们使用XMPP实时传讯软件。

(4)分布式:XMPP网络的架构和电子邮件十分相像;XMPP核心协议通讯方式是先建立一个stream,XMPP以TCP传递XML数据流,没有中央主服务器。任何人均可以运行本身的XMPP服务器,使我的及组织可以掌控他们的实时传讯体验。

(5)安全:任何XMPP协议的服务器能够独立于公众XMPP网络(例如在企业内部网络中),而使用SASL及TLS等技术的可靠安全性,已自带于核心XMPP技术规格中。

(6)可扩展:XML命名空间的威力可以使任何人在核心协议的基础上建造客制化的功能;为了维持通透性,常见的扩展由XMPP Standards Foundation。

(7)弹性佳:XMPP除了可用在实时通讯的应用程序,还能用在网络管理、内容供稿、协同工具、文件共享、游戏、远程系统监控等。

(8)多样性:用XMPP协议来建造及布署实时应用程序及服务的公司及开放源代码计划分布在各类领域;用XMPP技术开发软件,资源及支持的来源是多样的,使得使你不会陷于被“绑架”的困境。

XMPP协议缺点:

(1)数据负载过重:随着一般超过70%的XMPP协议的服务器的数据流量的存在和近60%的被重复转发,XMPP协议目前拥有一个大型架空中存在的数据提供给多个收件人。新的议定书正在研究,以减轻这一问题。

(2)没有二进制数据:XMPP 协议的方式被编码为一个单一的长的XML文件,所以没法提供修改二进制数据。文件传输协议同样使用外部的HTTP。若是不可避免,XMPP协议还提 供了带编码的文件传输的全部数据使用的Base64。至于其余二进制数据加密会话(encrypted conversations)或图形图标(graphic icons)以嵌入式使用相同的方法。

相关文章
相关标签/搜索