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)以嵌入式使用相同的方法。

相關文章
相關標籤/搜索