XML期末報告 XML and Instant Messaging: XMPP 指導教授:葉慶隆 GI1.02吳登傑
Outline XMPP的簡介與起源 XMPP的架構 資料傳輸的實例 XMPP所使用到的安全機制 優點分析 缺點分析 未來發展
XMPP的簡介與起源 XMPP:the Extensible Messaging and Presence Protocol 是一種以XML為基礎的開放式即時通訊協定 位於網路協議層級的應用層 XMPP也是目前主流的四種即時通訊協定之一 目前XMPP的技術被Google Talk所使用
XMPP發展史 1998年:Jeremie Miller開始了Jabber這個項目 2000年:Jabber Open Source精製化之後正式公開發表 2004年10月:IETF將協定標準化成為網路的標準協定之一 2005年8月:Google Talk推出 2006年1月17日:Google Talk用戶可與其他Jabber公共網路的用戶對談
XMPP相關規範 XMPP主要的核心架構制定於RFC 3920。目前與XMPP有關的RFC文件共有下列這幾項: RFC編號 名稱 內容描述 XMPP Core XMPP 核心程式 RFC 3921 XMPP IM XMPP 即時通訊、狀況 RFC 3922 XMPP CPIM Mapping XMPP & CIMP RFC 3923 XMPP E2E XMPP點對點的簽名和物件加密 RFC 4622 XMPP URI RFC 4854 XMPP URN
XMPP的簡介與起源 XMPP的架構 資料傳輸的實例 XMPP所使用到的安全機制 優點分析 缺點分析 未來發展
XMPP的架構 Server和Server使用 Port 5269進行傳輸 Client和Server使用Port 5222 進行傳輸
node identifier @ domain identifier XMPP的定址功能 每一個用戶都有屬於自己的 JID (Jabber Identifier ) JID分成兩個部份:node identifier和domain identifier node identifier就是所謂的用戶名稱 domain identifier則是似服器名稱 格式如下: node identifier @ domain identifier
Outline XMPP的簡介與起源 XMPP的架構 資料傳輸的實例 XMPP所使用到的安全機制 優點分析 缺點分析 未來發展
資料傳輸的實例(1/2) 下面是Client1連接到一個伺服器,發送一條消息給Client2,最後登出的過程: Client1: <?xml version="1.0"?> <stream:stream xmlns:stream="http://etherx.jabber.org/streams"xmlns="jabber:client" to="server.com"> Server: <stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' from='server.com' id='1461777714'> Client1: <iq type="set" id="auth_2" to="server.com" > <query xmlns="jabber:iq:auth"> <username>Client1</username> <password>mypassword</password> <resource>Work</resource> </query> </iq>
資料傳輸的實例(2/2) Server: <iq from="server.com" id='auth_2' type='result'/> Client1: <message to="Client2@example.com" > <subject>hello</subject> <body>Hi, I am Client1. </body> </message> <presence type="unavailable" > <status>Logged out</status> </presence> </stream:stream> Server: </stream:stream>
Outline XMPP的簡介與起源 XMPP的架構 資料傳輸的實例 XMPP所使用到的安全機制 優點分析 缺點分析 未來發展
XMPP所使用到的安全機制 TLS(Transport Layer Security protocol):XMPP使用了TLS來防止XML stream傳送過程被篡改、竊聽。 SASL(Simple Authentication and Security Layer protocol):在建立好TLS之後就要用到SASL來驗證XML stream。 Resource Binding:在SASL建立成功之後可以藉由<bind>和 </bind>標籤傳送的Client位址以確保資料傳送至Client的安全性。 Server Dialback:確保Server和Server連結過程中的安全與正確性 。
通訊協定的順序是:TCP→TLS→SASL→XMMP XMPP所使用到的安全機制 對象 所使用到的安全機制 Client TLS、SASL、Resource Binding Server TLS、SASL、Resource Binding 和Server dialback 通訊協定的順序是:TCP→TLS→SASL→XMMP
XMPP的簡介與起源 XMPP的架構 資料傳輸的實例 XMPP所使用到的安全機制 優點分析 缺點分析 未來發展
優點分析 分散式:沒有固定的中央伺服器。 開放標準:協定是自由、開放、公開的,並且易於瞭解。 安全性:SASL和TSL已經在XMPP核心技術規格中。 靈活性:不僅能用於即時通訊軟體中。 擴展性: 藉由XML的Namespace特性,可以產生個人化。
XMPP的簡介與起源 XMPP的架構 資料傳輸的實例 XMPP所使用到的安全機制 優點分析 缺點分析 未來發展
缺點分析 可伸縮性:XMPP的可伸縮度其實不好,當遇到多人的對話時會產生過多的網路開銷。 沒有二進制數據:XMPP協議的數據通常是被編碼成一個長XML文件,限制了它直接傳輸原始二進制數據的能力。
未來發展 目前市面上存在著各式各樣不同的即時通訊軟體,各個軟體供應者都各自使用各自的傳輸協定,而各個通訊協定都各有其優缺點,然而,不得不面對的是『通用化』的問題。 當愈來愈多的供應者出現,隨之而來的是愈來愈多的傳輸協定,這會導致使用者被切割成好幾個不同的群組,這樣一來不僅會導致使用者的不方便性,也會提昇供應者在開發上的成本。因此,目前阻礙即時通訊發展的最大阻礙即是標準和協定的不統一,使得不同系統之間無法聯繫。
THE END