XMPP与SIP-IM两大协议的对比
XMPP 协议简介
Google 通过官方宣布,Google Talk 将正式支持不同IM/VoIP服务之间的通讯。这一服务是建立在Google Talk的通讯协议XMPP协议基础之上的。
XMPP是目前主流的四种IM协议之一,其他三种分别为:即时信息和空间协议(IMPP)、空间和即时信息协议(PRIM)、针对即时通讯和空间平衡扩充的进程开始协议SIP(SIMPLE)。
在这四种协议中,XMPP是最灵活的。XMPP是一种基于XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程序。而且,XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一个配好系统添加功能。
Google Talk基于XMPP,同时允许其它IM自由使用XMPP协议。如此一来,任何IM供应商在遵循XMPP协议的前提下,都可以随时与Google Talk实现免费连接。
Google Talk的这一举措将允许Google Talk用户与Earthlink、Gizmo Project、Tiscali、Netease、Chikka、MediaRing等的客户实现互通。这一服务终于由Google官方确认,可以说,XMPP协议起到了居功至伟的作用。
XMPP由Jabber软件基金会开发,最早在Jabber上实现。Jabber项目由Jeremie Miller在1998年开始的一个免费、开源的项目,用于提供给MSN、Yahoo!的IM服务。由于XMPP是一种基于XML架构的开放式协议,在IM通讯中被广泛采用,已经得到了互联网工程任务组(IETF)的批准。
但是,由于XML数据透明的缺陷,XMPP在使用的过程中,还需要努力克服它本身诸如安全方面的缺点。对于网络协同工作者而言,需要加强安全性和互连性。
附:主流的四种IM通讯协议简介
IMPP:IMPP主要定义必要的协议和数据格式,用来构建一个具有空间接收、发布能力的即时信息系统。到目前为止,这个组织已经出版了三个草案RFC,但主要的有两个:一个是针对站点空间和即时通讯模型的(RFC 2778);另一个是针对即时通讯/空间协议需求条件的(RFC2779)。RFC2778是一个资料性质的草案,定义了所有presence和IM服务的原理。RFC2779定义了IMPP的最小需求条件。另外,这个草案还就presence服务定义了一些条款,如运行的命令、信息的格式,以及presence服务器如何把presence的状态变化通知给客户。
SIMPLE:SIMPLE是目前为止制定的较为完善的一个。SIMPLE和XMPP两个协议,都符合RFC2778和RFC2779 。SIMPLE计划利用SIP来发送presence信息。SIP是IETF中为终端制定的协议。SIP一般考虑用在建立语音通话中,一旦连接以后,依靠如实时协议(RTP)来进行实际上的语音发送。但SIP不仅仅能被用在语音中,也可以用于视频。SIMPLE被定义为建立一个IM进程的方法。SIMPLE在2002年夏季得到额外的信任,目前,微软和IBM都致力于在它们的即时通讯系统中实现这个协议。 SIMPLE小组致力于进程模式的操作,这将提升运行效率,使基于SIP的机制能够进行会议和三方电话交谈控制,也考虑到能和未来提供的许多新特性实现兼容并提升表现能力。有了进程模式,SIMPLE使用SIP来建立一次进程,再利用SDP(进程描述协议)来实际传输IM数据。
PRIM:PRIM与XMPP、 SIMPLE类似,但已经不再使用了。
编辑 2006-7-13 13:28
Google为何选择Jabber
Google终于插手IM,推出了Google Talk。当众人惊艳于GTalk漂亮的界面时,笔者更关心的却是GTalk背后协议—GTalk此次采用了基于Jabber的XMPP协议,一个开源同时强调互联互通的业界标准协议。
Google到底是Google,总是不断在给人惊喜,进军IM也没有步MSN,ICQ这些竞争对手的后尘使用封闭专用协议,而是拥抱开源,拥抱互联互通。当然,我绝不认为Google这么做只是为了与众不同,选择XMPP,自然有其深意。
我不是Google的肚中蛔虫,当然不知道它的真实目的,但本文至少可以尝试分析一下XMPP对Google的好处。
IM这个东西,巨头们都在积极参与,虽然市场规模和分额都不算小,可是行之有效的赢利模式却始终欠奉—踩了狗屎运在中国抓住短信浪潮的QQ除外。目前唯一有点苗头的,也就是广告了,而Google以关键字广告起家,将这套模式搬到IM上来,也是顺理成章的事情—要论广告价值,IM上你来我往的文字信息不会比Gmail电子邮件来的小。
谈及IM上的广告投放,那么第一渠道自然便是IM本身,就像MSN们现在所干的那样。但是GTalk使用的是开源的XMPP协议,任何支持此协议的IM软件都可以连接上GTalk的服务器—事实上笔者正是使用GAIM来连接GTalk服务的。如此一来,通过客户端投放广告的如意算盘岂不是落空了?的确有这个可能,正是基于这个原因,小气的腾讯才不屑余力的打击任何意图兼容它的第三方软件,尤其是那些去广告的补丁,以此避免广告的流失。但是笔者却不得不佩服于Google的自信,Google似乎从来就没有害怕过这个问题。不说GTalk,就先说已经大获成功的Gmail,这个以大容量免费邮箱为卖点的服务,赢利的手段便是用户通过WEB登录系统后,Google提供的基于邮件关键字的文字广告,从这一点来说,类似Pop3这样的客户端协议应该是GMail绝不该提供的功能—一旦用户通过客户端收取邮件,那就无须登录WEB系统,Google的关键字就无从投放了。可是,Google还是让人出乎意料,它没有如竞争对手比如Hotmail那样始终不开放Pop3协议,反而认为这应该是用户的基本权益,大大方方的提供了。虽然的确会有用户流失,但是考虑到这年头上网的用户越来越多,可是高水平会在客户端设置Pop3协议的却并不算多,绝大多数的用户还是乖乖成为了Gmail的广告受众。更何况,那些高水平用户虽然没有成为Gmail的广告受众,可是他们却是Gmail发展中的中坚力量,正是他们的大力推广,Gmail申请需要邀请的病毒式营销才会如此成功,从这个角度而言,提供Pop3恐怕是利大于弊的高招,这种胸襟微软是该学习一下的。说回GTalk,虽然它采用了开源的XMPP协议,甚至还在主页上详细的说明了如何用第三方软件连接Gtalk,可是你问问身边使用Gtalk的朋友,有多少人是真正使用客户端的,大多数人还不是对于基于XMPP的其他Jabber客户端缺乏了解,乖乖使用Google自己的客户端。
更何况,IT服务发展至今日,独家的技术或者排他的应用早就不是制胜的唯一法宝了。Gmail的病毒式营销虽然厉害,但那也只能吸引用户尝试,要让他们常用甚至作为首选,同时还不计较广告,Gmail靠的还是优于竞争对手的界面涉及;至于大热的iPod就更明显了,所谓一个MP3播放器,她今天能够成为一种潮流一种文化现象,靠的不是播放文件的独家协议,而是漂亮的外观设计。我们听到关于GTalk界面的赞美难道还少吗?即使今天真的有许多客户端设置好放在用户面前供选择,恐怕大多数用户还是会拥抱漂亮的GTalk。
显然,即使Gtalk使用开放的XMPP协议,只要客户端做得足够讨用户喜欢,全然不用害怕用户另投他家。
更何况,XMPP协议的背后,还藏有更高妙的绝招呢。
传统上,我们将IM软件归类为P2P应用中的一种,一般IM软件在登录服务器获得在线好友名单以及它们在线的IP地址后,一般便直接利用IP地址和对方直接联系了,仅在对方不在线或者网络有问题时才通过服务器中转。但是XMPP协议则有所不同,为了实现在不同平台的服务器和客户端之间互联互通,它采用类似传统的Email运作原理,所有的通信都是基于客户端和服务器之间的联系的。当你要与其他用户交流时,信息首先由客户端发送至你使用的服务器,再由你的服务器发送至对方使用的服务器,最后才由对方服务器转发给对方使用的客户端。
这种服务器为中心的运作模式绝对是最对Google胃口的。Google靠卖搜索引擎的关键字发家,对其而言搜集用户的信息从而知道该投放什么关键字广告是发家之本,要搜集用户信息,利用客户端固然方便,但最理想的还是服务器中心论,用户所有的网络应用都由Google的服务器代劳,这样Google对于用户的动态就可以知道的一清二楚,这方面最佳的例子便是Google推出的类似代理服务器的网页加速器。在这样的前提下,还有什么比以实现互联互通为借口将IM由P2P模式改为服务器为中心的XMPP协议来的更讨Google喜欢的呢?在服务器中心的模式下,Google要想加强广告实在是易如反掌的事情—即使用户使用第三方软件,Google仍旧可以通过转发文字内容的时候在末尾加入广告内容,或者通过IM收集信息,将对应的广告投放到Gmail的对应帐户中去,Google甚至还能借此获得其他使用非Google服务器的Jabber用户的具体信息,你说Jabber对Google来说怎么不是一块宝呢。
近日,微软收购了Teleo,一家同样基于GIPS提供VOIP服务的企业。如此一来,Google、微软、Skype三家都使用GIPS,在语音引擎上站在同一起跑线上,要在VOIP上比个高低,就看各自在网络连接上的本事了。VOIP这个东西,目前各家都靠PC2Phone来赢利。可是从长远来看,当大家都基于IP时,互相间通话就是免费的了,届时从何收费就是问题了。不过,GTalk在这个问题上也许是最不用担心的,此次其提供的语音聊天服务同样也是通过Google服务器中转完成的,这也就意味着届时只要在服务器那边加上一个语音识别引擎,就可以根据语音关键字出售关键字广告,继续通过老本行赢利了。
有分析者说,同样使用GIPS协议的skype和GTalk之间的竞争,其实是一场以skype为代表的P2P模式和以GTalk为代表的服务器中心模式之间的竞争。对此,笔者深表同意,不过在这两者之间,笔者宁可选择也许不算新潮的服务器中心模式,毕竟花钱买服务器的是Google,享受到互联互通好处的是笔者。
分享到:
相关推荐
Jabber与XMPP(可扩展消息处理协议)是两种密切相关的即时通讯技术。最初,Jabber被设计为一种开放式的即时通讯协议,旨在打破当时市场上的封闭式通讯系统壁垒,实现跨平台、跨网络的即时通讯。随着时间的推移,...
The SDK has components for managing audio and video media, as well as signaling and call control, IM - XMPP and SIMPLE. A commercial license for the PortSIP VoIP/IVR SDK which consists of complete ...
XMPP(可扩展消息和出席协议)是一种基于XML的开放即时消息传递技术,最初由Jabber开源社区开发,并于2002年成为IETF即时消息与出席(IM)的官方标准。它利用XML元素在任意两个网络端点间近实时地交换结构化信息,并...
3. **即时消息**:某些IM应用如Jabber/XMPP使用SIP进行多媒体会话控制。 4. **物联网**:SIP也被用于智能家居、智能交通等物联网场景的设备间通信。 综上所述,SIP协议是现代通信系统的核心组件,理解并掌握SIP有助...
### Skype for Business 2015 安装与配置关键知识点 #### 一、概述 Skype for Business 2015(以下简称SfB 2015)是微软推出的一款企业级通信软件,旨在提供高质量的企业级即时消息、音频会议、视频会议等服务。本...
例如,它可以通过SIP到XMPP的转换实现跨协议的通信,也可以作为SIP中继,处理来自不同源的SIP流量。同时,OpenSIPS的NAT穿越功能使其能够在复杂的网络环境中保持连接,这对于那些需要穿透防火墙或NAT的场景尤为重要...
- **IM协议**:可以基于标准的XMPP、MQTT等,或者自定义简单协议。Delphi可以通过解析XML或JSON来实现XMPP。 - **加密通信**:确保消息的安全性,可使用SSL/TLS加密连接。 4. **数据库集成**: - **用户账户与...
其他三大协议分别是IMPP(即时消息与空间协议)、PRIM(空间与即时消息协议)以及SIP/SIMPLE(针对即时通讯和空间平衡扩充的进程开始协议)。在这些协议中,XMPP因其灵活性而脱颖而出。它是一种基于XML的协议,具备...
- Jabber A用户和Jabber B用户能够在XMPP联邦上交换即时消息(IM)和存在状态,他们的IM地址同时也是他们的工作SIP URI。 - Jabber A和Jabber B能够在各自组织内部通过SIP URI进行呼叫,并且呼叫是成功的。 - 组织2...
它可能支持多种协议,如XMPP(Extensible Messaging and Presence Protocol)、SIMPLE(SIP for Instant Messaging and Presence Leveraging Extensions)或者专有的API。 **“Constants.properties”文件:** 在...
在通讯协议方面,陌陌采用了常见的XMPP/SIP协议。这些协议虽然存在流量大、不可靠和交互复杂等问题,但陌陌通过技术改进,克服了这些问题,实现了通信的高效和可靠。陌陌在设计通信协议时,其目标是确保通信的高效性...
本文将从融云IM的角度出发,深入探讨即时通讯技术的基本原理、不同通讯协议之间的对比分析、移动网络与传统网络的区别,以及如何在移动网络环境下确保消息传输的可靠性,并提供选择即时通讯云服务的一些建议。...
OpenSIPS提供了一个高度灵活的、用户可配置的路由引擎,可以为voice、video、IM、Presence等服务提供强大高效的路由、鉴权、NAT、网关协议转化等功能。其主要功能包括: * SIP注册服务器/代理服务器(LCR、dynamic ...
在Java IM系统中,常见的通信协议有XMPP(Extensible Messaging and Presence Protocol)、MQTT(Message Queuing Telemetry Transport)和SIMPLE(SIP for Instant Messaging and Presence Leveraging Extensions...
此外,它具备高性能,适合电信级别的应用场景,如SIP注册服务器、代理服务器、重定向服务器、Presence代理、B2BUA(Back-to-Back User Agent)、IM服务器以及SIP到SMS或XMPP的网关。OpenSIPS的稳定性、效率和模块化...
当前通用的IM协议主要有基于SIP(Session Initiation Protocol)的SIMPLE(SIP for Instant Messaging and Presence Leveraging Extensions)和基于XML的可扩展消息处理现场协议(XMPP)。其中,XMPP因其灵活性和可...
通信协议方面,即时通信系统常用的是SIP协议及其扩展SIMPLE,以及基于JABBER协议的XMPP。SIP(Session Initiation Protocol)是一种用于创建、修改和终止多媒体通信会话的协议,包括用户代理、代理服务器、重定向...