200 likes | 412 Views
XML 期末報告 XML and Instant Messaging: XMPP. 指導教授:葉慶隆 GI1.02 吳登傑. Outline. XMPP 的簡介與起源 XMPP 的架構 資料傳輸的實例 XMPP 所使用到的安全機制 優點分析 缺點分析 未來發展. XMPP 的簡介與起源. XMPP : the Extensible Messaging and Presence Protocol 是一種以 XML 為基礎的開放式即時通訊協定 位於網路協議層級的應用層 XMPP 也是目前主流的四種即時通訊協定之一
E N D
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文件共有下列這幾項:
XMPP的簡介與起源 • XMPP的架構 • 資料傳輸的實例 • XMPP所使用到的安全機制 • 優點分析 • 缺點分析 • 未來發展
Client Client Server1 Server2 Client Client Client Client Server3 Client Client Client XMPP的架構 Server和Server使用 Port 5269進行傳輸 Client和Server使用Port 5222 進行傳輸
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連結過程中的安全與正確性 。
XMPP所使用到的安全機制 通訊協定的順序是:TCP→TLS→SASL→XMMP
XMPP的簡介與起源 • XMPP的架構 • 資料傳輸的實例 • XMPP所使用到的安全機制 • 優點分析 • 缺點分析 • 未來發展
優點分析 • 分散式:沒有固定的中央伺服器。 • 開放標準:協定是自由、開放、公開的,並且易於瞭解。 • 安全性:SASL和TSL已經在XMPP核心技術規格中。 • 靈活性:不僅能用於即時通訊軟體中。 • 擴展性: 藉由XML的Namespace特性,可以產生個人化。
XMPP的簡介與起源 • XMPP的架構 • 資料傳輸的實例 • XMPP所使用到的安全機制 • 優點分析 • 缺點分析 • 未來發展
缺點分析 • 可伸縮性:XMPP的可伸縮度其實不好,當遇到多人的對話時會產生過多的網路開銷。 • 沒有二進制數據:XMPP協議的數據通常是被編碼成一個長XML文件,限制了它直接傳輸原始二進制數據的能力。
未來發展 目前市面上存在著各式各樣不同的即時通訊軟體,各個軟體供應者都各自使用各自的傳輸協定,而各個通訊協定都各有其優缺點,然而,不得不面對的是『通用化』的問題。 當愈來愈多的供應者出現,隨之而來的是愈來愈多的傳輸協定,這會導致使用者被切割成好幾個不同的群組,這樣一來不僅會導致使用者的不方便性,也會提昇供應者在開發上的成本。因此,目前阻礙即時通訊發展的最大阻礙即是標準和協定的不統一,使得不同系統之間無法聯繫。