33
期期期期期期期期期期 XMPP SIP SIP 期期 期期 501435007 501435007 黃黃黃 黃黃黃 501435007 501435007 黃黃黃 黃黃黃

期末專題背景知識報告 XMPP 與 SIP 介紹

  • Upload
    millie

  • View
    131

  • Download
    3

Embed Size (px)

DESCRIPTION

期末專題背景知識報告 XMPP 與 SIP 介紹. 501435007 黃昭隆 501435007 郭惠民. Outline. XMPP 的簡介與起源 XMPP 的架構 資料傳輸的實例 XMPP 所使用到的安全機制 XMPP 優點分析 XMPP 缺點分析 SIP 介紹 XMPP 與 SIP 比較. XMPP 的簡介與起源. XMPP : the Extensible Messaging and Presence Protocol 是一種以 XML 為基礎的開放式即時通訊協定 位於網路協議層級的應用層 - PowerPoint PPT Presentation

Citation preview

Page 1: 期末專題背景知識報告  XMPP 與  SIP  介紹

期末專題背景知識報告 XMPP 與 與 SIPSIP 介紹介紹

501435007 501435007 黃昭隆黃昭隆501435007 501435007 郭惠民郭惠民

Page 2: 期末專題背景知識報告  XMPP 與  SIP  介紹

OutlineOutline XMPPXMPP 的簡介與起源的簡介與起源 XMPPXMPP 的架構的架構 資料傳輸的實例資料傳輸的實例 XMPPXMPP 所使用到的安全機制所使用到的安全機制 XMPPXMPP 優點分析優點分析 XMPPXMPP 缺點分析缺點分析 SIPSIP 介紹介紹 XMPP XMPP 與 與 SIP SIP 比較比較

Page 3: 期末專題背景知識報告  XMPP 與  SIP  介紹

XMPPXMPP 的簡介與起源的簡介與起源 XMPPXMPP :: the Extensible Messaging and Presence the Extensible Messaging and Presence

ProtocolProtocol

是一種以是一種以 XMLXML 為基礎的開放式即時通訊協定為基礎的開放式即時通訊協定 位於網路協議層級的應用層位於網路協議層級的應用層 XMPPXMPP 也是目前主流的四種即時通訊協定之一 也是目前主流的四種即時通訊協定之一 目前目前 XMPPXMPP 的技術被的技術被 Google TalkGoogle Talk 所使用所使用

Page 4: 期末專題背景知識報告  XMPP 與  SIP  介紹

XMPPXMPP 發展史發展史 19981998 年:年: Jeremie MillerJeremie Miller 開始了開始了 JabberJabber 這個項目這個項目 20002000 年:年: Jabber Open SourceJabber Open Source 精製化之後正式公開發表精製化之後正式公開發表 20042004 年年 1010 月:月: IETFIETF 將協定標準化成為網路的標準協定之將協定標準化成為網路的標準協定之一一 20052005 年年 88 月:月: Google TalkGoogle Talk 推出推出 20062006 年年 11 月月 1717 日:日: Google TalkGoogle Talk 用戶可與其他用戶可與其他 JabberJabber公共網路的用戶對談公共網路的用戶對談

Page 5: 期末專題背景知識報告  XMPP 與  SIP  介紹

XMPP相關規範XMPP相關規範 XMPPXMPP 主要的核心架構制定於主要的核心架構制定於 RFC 3920RFC 3920 。目前與。目前與 XMPPXMPP 有關的有關的

RFCRFC 文件共有下列這幾項:文件共有下列這幾項: RFC 編號 名稱 內容描述RFC 3920 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

Page 6: 期末專題背景知識報告  XMPP 與  SIP  介紹

XMPPXMPP 的簡介與起源的簡介與起源 XMPPXMPP 的架構的架構 資料傳輸的實例資料傳輸的實例 XMPPXMPP 所使用到的安全機制所使用到的安全機制 優點分析優點分析 缺點分析缺點分析

Page 7: 期末專題背景知識報告  XMPP 與  SIP  介紹

XMPPXMPP 的架構的架構Server1 Server2

Server3

Client

Client

Client

Client Client Client

Client

Client

Client

Server 和 Server 使用 Port 5269 進行傳輸 Client 和 Server 使用 Port 5222 進行傳輸

Page 8: 期末專題背景知識報告  XMPP 與  SIP  介紹

XMPPXMPP 的定址功能 的定址功能 每一個用戶都有屬於自己的 每一個用戶都有屬於自己的 JID (Jabber Identifier )JID (Jabber Identifier )

JIDJID 分成兩個部份:分成兩個部份: node identifiernode identifier 和和 domain domain identifieridentifier

node identifiernode identifier 就是所謂的用戶名稱就是所謂的用戶名稱 domain identifierdomain identifier 則是似服器名稱則是似服器名稱 格式如下:格式如下:

node identifier @ domain identifiernode identifier @ domain identifier

Page 9: 期末專題背景知識報告  XMPP 與  SIP  介紹

OutlineOutline XMPPXMPP 的簡介與起源的簡介與起源 XMPPXMPP 的架構的架構 資料傳輸的實例資料傳輸的實例 XMPPXMPP 所使用到的安全機制所使用到的安全機制 優點分析優點分析 缺點分析缺點分析

Page 10: 期末專題背景知識報告  XMPP 與  SIP  介紹

資料傳輸的實例資料傳輸的實例 (1/2)(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>

Page 11: 期末專題背景知識報告  XMPP 與  SIP  介紹

資料傳輸的實例資料傳輸的實例 (2/2)(2/2)

Server: <iq from="server.com" id='auth_2' type='result'/>

Client1: <message to="[email protected]" > <subject>hello</subject> <body>Hi, I am Client1. </body></message><presence type="unavailable" > <status>Logged out</status></presence></stream:stream>

Server: </stream:stream>

Page 12: 期末專題背景知識報告  XMPP 與  SIP  介紹

OutlineOutline XMPPXMPP 的簡介與起源的簡介與起源 XMPPXMPP 的架構的架構 資料傳輸的實例資料傳輸的實例 XMPPXMPP 所使用到的安全機制所使用到的安全機制 優點分析優點分析 缺點分析缺點分析

Page 13: 期末專題背景知識報告  XMPP 與  SIP  介紹

XMPPXMPP 所使用到的安全機制所使用到的安全機制 TLSTLS (( Transport Layer Security protocolTransport Layer Security protocol ):):

XMPPXMPP 使用了使用了 TLSTLS 來防止來防止 XML streamXML stream 傳送過程被篡改、傳送過程被篡改、竊聽。竊聽。 SASLSASL (( Simple Authentication and Security Layer Simple Authentication and Security Layer

protocolprotocol ):在建立好):在建立好 TLSTLS 之後就要用到之後就要用到 SASLSASL 來驗證來驗證XML streamXML stream 。。

Resource BindingResource Binding :在:在 SASLSASL 建立成功之後可以藉由建立成功之後可以藉由<bind><bind> 和 和 </bind></bind> 標籤傳送的標籤傳送的 ClientClient 位址以確保資料位址以確保資料傳送至傳送至 ClientClient 的安全性。 的安全性。

Server DialbackServer Dialback :確保:確保 ServerServer 和和 ServerServer 連結過程中連結過程中的安全與正確性 。的安全與正確性 。

Page 14: 期末專題背景知識報告  XMPP 與  SIP  介紹

XMPPXMPP 所使用到的安全機制所使用到的安全機制對象 所使用到的安全機制

Client TLS 、 SASL 、 Resource Binding

Server TLS 、 SASL 、 Resource Binding 和 Server dialback

通訊協定的順序是: TCP→TLS→SASL→XMMP

Page 15: 期末專題背景知識報告  XMPP 與  SIP  介紹

XMPPXMPP 的簡介與起源的簡介與起源 XMPPXMPP 的架構的架構 資料傳輸的實例資料傳輸的實例 XMPPXMPP 所使用到的安全機制所使用到的安全機制 優點分析優點分析 缺點分析缺點分析

Page 16: 期末專題背景知識報告  XMPP 與  SIP  介紹

優點分析優點分析 分散式:沒有固定的中央伺服器。分散式:沒有固定的中央伺服器。 開放標準:協定是自由、開放、公開的,並且易於瞭解。 開放標準:協定是自由、開放、公開的,並且易於瞭解。 安全性:安全性: SASLSASL 和和 TSLTSL 已經在已經在 XMPPXMPP 核心技術規格中。核心技術規格中。 靈活性:不僅能用於即時通訊軟體中。靈活性:不僅能用於即時通訊軟體中。 擴展性: 藉由擴展性: 藉由 XMLXML 的的 NamespaceNamespace 特性,可以產生個特性,可以產生個人化。人化。

Page 17: 期末專題背景知識報告  XMPP 與  SIP  介紹

XMPPXMPP 的簡介與起源的簡介與起源 XMPPXMPP 的架構的架構 資料傳輸的實例資料傳輸的實例 XMPPXMPP 所使用到的安全機制所使用到的安全機制 優點分析優點分析 缺點分析缺點分析

Page 18: 期末專題背景知識報告  XMPP 與  SIP  介紹

缺點分析缺點分析 可伸縮性:可伸縮性: XMPPXMPP 的可伸縮度其實不好,當遇到多人的的可伸縮度其實不好,當遇到多人的對話時會產生過多的網路開銷。對話時會產生過多的網路開銷。 沒有二進制數據:沒有二進制數據: XMPPXMPP 協議的數據通常是被編碼成一協議的數據通常是被編碼成一個長個長 XMLXML 文件,限制了它直接傳輸原始二進制數據的能文件,限制了它直接傳輸原始二進制數據的能力。力。

Page 19: 期末專題背景知識報告  XMPP 與  SIP  介紹

SIP (Session Initiation SIP (Session Initiation Protocol) Protocol) 簡介簡介

最先由美國哥倫比亞大學的 Henning Schulzrinne 教授在 1998 年初開始發展, 1999 年 3 月由 IETF 的 MMUSIC(Multipart Multimedia Session Control) 工作小組制定正式標準成為 RFC 2543[2] , 1999 年 9月 IETF 成立新的工作小組 , 負責 SIP 新版本 2.0 的制定 , 並於 2000年 7 月釋出初版 RFC 2543bis ,於 2001 年發佈了 RFC 3261 [3] 。 RFC 3261 的發佈,標示著 SIP 的基礎已經確立,隨後又發佈了幾個 RFC 增定版本,充實了安全性及身份認證等幾個領域的內容,例如 RFC 3262[4] 對臨時回應做了可靠性的規範。 RFC 3263[5] 確立了SIP proxy 的定位規則。 RFC 3264[6]提供了 Offer/Answer Model , RFC 3265[7] 則是確立了具體的事件通知。

Page 20: 期末專題背景知識報告  XMPP 與  SIP  介紹

SIPSIP 有下列幾點特性 有下列幾點特性 利用文字利用文字 (Text-based)(Text-based) 的方式來編碼,類似 的方式來編碼,類似

HTTP/1.1 HTTP/1.1 Client-ServerClient-Server 的架構 的架構 Clients Clients 端初始一個呼叫端初始一個呼叫 (caller) (caller) Servers Servers 端回應呼叫 端回應呼叫 (callee) (callee) 訊號與資料獨立,訊號與資料獨立, SIPSIP 負責訊號部分,資料傳送部分負責訊號部分,資料傳送部分 可以使用 可以使用 RTPRTP ,, TCPTCP ,, UDP… UDP… 可與其他 可與其他 IETF IETF 所制訂的協定配合,例如:所制訂的協定配合,例如:

RFC2327(SDP)[12], RFC2616 (HTTP/1.1) RFC2327(SDP)[12], RFC2616 (HTTP/1.1) [11], RFC2396(URL)[13]… [11], RFC2396(URL)[13]…

Page 21: 期末專題背景知識報告  XMPP 與  SIP  介紹

SIP SIP 元件介紹 元件介紹 在 在 SIP SIP 是一個 是一個 Client and Server Client and Server 的的架構,在此環境當中,有三個架構,在此環境當中,有三個 主要的元件分別為主要的元件分別為 : User Agents, : User Agents,

Servers Servers 還有 還有 Location ServersLocation Servers 。 。

Page 22: 期末專題背景知識報告  XMPP 與  SIP  介紹

User AgentsUser Agents 在 在 SIP SIP 環境中是終端設備,主要負責產生 環境中是終端設備,主要負責產生 SIP requestsSIP requests ,用來建,用來建 立多媒體會議立多媒體會議 (media session)(media session) ,並且傳送及接收多媒體資料。,並且傳送及接收多媒體資料。 UserUser Agents Agents 又分成了 又分成了 User Agent Client (UAC) User Agent Client (UAC) 及 及 User Agent Server User Agent Server 兩兩種種 模式。模式。 UAC UAC 負責產生一個 負責產生一個 Request Request 及處理一個 及處理一個 ResponseResponse ,, UAS UAS 怎是怎是 接受一個 接受一個 Request Request 並且產生 並且產生 responseresponse 。在 。在 SessionSession 建立過程中,建立過程中, UAUA 通通 常需要接替著扮演這兩個角色。這點並不像其他 常需要接替著扮演這兩個角色。這點並不像其他 Client and Server Client and Server 架架 構,例如 構,例如 HTTPHTTP ,, PC PC 一直扮演著 一直扮演著 HTTP client HTTP client 的角色,而 的角色,而 Web ServerWeb Server 也一直扮演著 也一直扮演著 HTTP Server HTTP Server 的角色。 的角色。

Page 23: 期末專題背景知識報告  XMPP 與  SIP  介紹

ServersServers 根據 根據 RFC 2543 RFC 2543 中定義,中定義, Server Server 主要分成了 主要分成了 Proxy, Redirect, Proxy, Redirect,

以及 以及 Registrar serverRegistrar server 。 。 SIP proxySIP proxy :負責接受 :負責接受 UA UA 或其他 或其他 proxy proxy 所發送的 所發送的 SIP SIP RequestRequest ,並且轉送 ,並且轉送 Request Request 到其他地方。 到其他地方。 Redirect ServerRedirect Server :負責接受 :負責接受 UAUA或其他 或其他 proxyproxy 所發送的 所發送的 SIP SIP RequestRequest ,並且傳回 ,並且傳回 redirection response (3xx)redirection response (3xx) ,指出這個 ,指出這個 Request Request

應該送往何方。 應該送往何方。 Registrar ServerRegistrar Server :負責接受 :負責接受 SIP registration requestsSIP registration requests ,並且,並且 更新 更新 SIP UASIP UA 在 在 Location Server Location Server 或其他資料庫當中的資訊。或其他資料庫當中的資訊。 SIP proxy, Redirect SIP proxy, Redirect 還有 還有 Registrar servers Registrar servers 只有做單純的 只有做單純的 signalingsignaling轉送,他們沒有傳送多媒體資料及產生 轉送,他們沒有傳送多媒體資料及產生 SIP Request SIP Request 的能力。的能力。

Page 24: 期末專題背景知識報告  XMPP 與  SIP  介紹

Location ServersLocation Servers 在在 RFC 2543 RFC 2543 中,通常當作一個資中,通常當作一個資料庫來使用。資料庫當中可以存放使用者料庫來使用。資料庫當中可以存放使用者的資訊,例如 的資訊,例如 URLs, IP address, URLs, IP address, 或或是其他資料等等。是其他資料等等。 SIP UA SIP UA 不能直接來存不能直接來存取 取 Location serverLocation server ,而是透過 ,而是透過 proxy, proxy,

redirect,redirect, 或是或是 registrar serverregistrar server 。。

Page 25: 期末專題背景知識報告  XMPP 與  SIP  介紹

SIPSIP 運作模式運作模式 SIP 的呼叫建立如圖 所示,開始的時候 caller 會送出 SIP INVITE 的訊息給 callee , callee收到之後 ,會馬上回應一個 100 Ringing 的訊息通知 caller ,說明目前 callee 已經收到 INVITE 訊息且正在處理中,如果 callee 願意與 caller 通話,便會送出 200 OK 的 response ,最後 caller 再送出 ACK ,此時便可以開始進行會議。當其中一方想結束通訊時,便會送出 BYE 的訊息來通知對方,對方回應 200 OK 便可

Page 26: 期末專題背景知識報告  XMPP 與  SIP  介紹

SIP proxy SIP proxy 模式模式 以圖 以圖 2.3 2.3 為例,為例, caller ([email protected]) caller ([email protected]) 先送出一先送出一個 個 INVITE INVITE 訊息呼叫 訊息呼叫 callee callee

([email protected])([email protected]) ,, proxy server proxy server 收到之後便會去做收到之後便會去做查詢 , 查詢完 成 之 後 便 得 知 目前 查詢 , 查詢完 成 之 後 便 得 知 目前 callee callee 實 際的位 址 在 實 際的位 址 在 [email protected] [email protected] ,於是 ,於是 proxy server proxy server 便會以 便會以 [email protected]@home.com 為對象發出 為對象發出 INVITE INVITE 訊息。訊息。 callee callee 在回覆 在回覆 200 OK 200 OK 的時候,會將 的時候,會將 200 OK 200 OK 的的 response response 回回應給 應給 proxy serverproxy server ,再由 ,再由 proxy server proxy server 轉送給 轉送給 callercaller 。。

Page 27: 期末專題背景知識報告  XMPP 與  SIP  介紹

SIP redirect SIP redirect 模式模式 如圖 如圖 2.4 2.4 所示,與 所示,與 proxy server proxy server 不同的地方,在於 不同的地方,在於

redirect serverredirect server 查詢得知 查詢得知 callee callee 實際的位址的時候,實際的位址的時候,並不像 並不像 proxy server proxy server 會直接代為處理之後會直接代為處理之後 sessionsession 的的建立 ,而是將建立 ,而是將 calleecallee 的實際位址告知的實際位址告知 caller caller ,讓,讓callercaller 自行送出新的 自行送出新的 INVITEINVITE 。使用 。使用 redirect redirect 的模式,的模式,可以減低 可以減低 server server 的負擔,但 的負擔,但 caller caller 必須有能力將 必須有能力將 request request 的訊息傳送到 的訊息傳送到 calleecallee 。。

Page 28: 期末專題背景知識報告  XMPP 與  SIP  介紹

SIP vs XMPP (Jabber) SIP vs XMPP (Jabber) 比比較較 SIPSIP 和和 XMPPXMPP 都是應用層的協議,主要用來在互聯網上發送語音和即都是應用層的協議,主要用來在互聯網上發送語音和即時通信時通信 IMIM 。 。 RFC 3521RFC 3521 定義了定義了 SIPSIP ,, RFC3920RFC3920 定義了定義了 XMPPXMPP 。 。

XMPPXMPP 來自即時通信系統,而來自即時通信系統,而 SIPSIP類似語音和視頻通信。 類似語音和視頻通信。 XMPPXMPP 增加了增加了 JingleJingle 擴展協議來支持面向連接的業務,如語音和視擴展協議來支持面向連接的業務,如語音和視頻;而頻;而 SIPSIP 增加了增加了 SIMPLESIMPLE 協議來支持即時通信業務。協議來支持即時通信業務。 SIPSIP 是應用層的協議,用來建立、改變和終結多媒體連接,如語音呼是應用層的協議,用來建立、改變和終結多媒體連接,如語音呼叫。 叫。 SIPSIP 也可以在已經存在的呼叫上增加新的呼叫,實現多方會議。也可以在已經存在的呼叫上增加新的呼叫,實現多方會議。本質上來講,本質上來講, SIPSIP 被稱之為被稱之為 VoIPVoIP 的信令協議的信令協議 ,, 他可以處理呼叫 的建立他可以處理呼叫 的建立 ,,呼叫的控制和呼叫的終結呼叫的控制和呼叫的終結 ,, 並且產生並且產生 CDRCDR 用用來計費來計費 .. XMPPXMPP 是開放的是開放的 XMLXML 協議協議 ,, 用來實現實時消息傳遞、呈現和請求用來實現實時消息傳遞、呈現和請求 //響應業務。起初,他由響應業務。起初,他由 JabberJabber 開源社區開發。 開源社區開發。 20022002 年,年, XMPPXMPP工作組將工作組將 JabberJabber 開發成支持即時通信的協議。開發成支持即時通信的協議。

Page 29: 期末專題背景知識報告  XMPP 與  SIP  介紹

我們不能簡單對我們不能簡單對 SIPSIP 和和 XMPPXMPP 進行對比,因為兩者服務與完全不同進行對比,因為兩者服務與完全不同的目標,一個服務於連接的建立,一個服務於結構化的數據交換。但的目標,一個服務於連接的建立,一個服務於結構化的數據交換。但是是 SIPSIP 增加增加 SIMPLESIMPLE 和和 XMPPXMPP 增加增加 JingleJingle 後,兩者開始變得類似後,兩者開始變得類似了。了。

(1) SIP(1) SIP提供連接的建立、改變和終結,而提供連接的建立、改變和終結,而 XMPPXMPP 在客戶組內部提供在客戶組內部提供流管道,交換結構化的數據。這就是說:流管道,交換結構化的數據。這就是說: SIPSIP 的重點是終端之間連接的重點是終端之間連接的建立和維護,連接以後的數據和信息傳送他不關注;而的建立和維護,連接以後的數據和信息傳送他不關注;而 XMPPXMPP重重點是考慮終端組內部的數據交換,連接建立是基本的功能,而不是重點是考慮終端組內部的數據交換,連接建立是基本的功能,而不是重點。所以,點。所以, XMPPXMPP 對應用的支持和擴展性的考慮很充分對應用的支持和擴展性的考慮很充分 ,, 比比 SIPSIP天生天生要好。要好。 (2)SIP(2)SIP 的信令和消息傳送是基於文本的,是平面化的信令和消息傳送是基於文本的,是平面化 (Flat)(Flat) 的數據表的數據表

達達 ,, 解析起來缺少規律性解析起來缺少規律性 ,, 在新增數據消息體的時候缺少繼承性在新增數據消息體的時候缺少繼承性 ,,需要需要開發新的代碼來封裝和解析開發新的代碼來封裝和解析 ,, 原有代碼的繼承性比較差。而原有代碼的繼承性比較差。而 XMPPXMPP採採用開放的標準的用開放的標準的 XMLXML 表達,是一種結構化的消息結構,能夠方面表表達,是一種結構化的消息結構,能夠方面表達層次化的消息內容,表達內容的內在邏輯。這種達層次化的消息內容,表達內容的內在邏輯。這種 XMLXML 的結構對應的結構對應用的擴展和內容的解析帶來極大的方便,大量軟件代碼可以重複利用。用的擴展和內容的解析帶來極大的方便,大量軟件代碼可以重複利用。

Page 30: 期末專題背景知識報告  XMPP 與  SIP  介紹

(3)SIP(3)SIP 信令由信令由 SIPSIP報文格式的頭部和內容 兩部分組成,也就是說,報文格式的頭部和內容 兩部分組成,也就是說,SIPSIP報文格式的頭部已經包含了部分內容報文格式的頭部已經包含了部分內容 ,,類似於類似於 HTTP,HTTP, 與具體與具體的上層應用直接關聯,而不是通用的報文格式;而的上層應用直接關聯,而不是通用的報文格式;而 XMPPXMPP 所有信所有信息都是採用息都是採用 XMLXML 在流管道之間透明傳送。在流管道之間透明傳送。SIPSIP 的連接建立通道與數據傳送通道是各自獨立的,連接建立在的連接建立通道與數據傳送通道是各自獨立的,連接建立在SIP clientSIP client 與與 ServerServer 之間,而數據傳送通道是在之間,而數據傳送通道是在 Client--Client--ClientClient 之間直接進行的。這個對視頻、語音和文件傳送業務很合之間直接進行的。這個對視頻、語音和文件傳送業務很合適,但是不適合其他形式的應用。適,但是不適合其他形式的應用。

XMPPXMPP 的控制和數據通道是一體的,的控制和數據通道是一體的, ClentClent只與只與 ServerServer 建立連建立連接,而接,而 ClientClient 與與 clientclient 之間是沒有之間連接的。 之間是沒有之間連接的。 ClientClient 之間傳之間傳送的通道是:送的通道是: Client1---Client1--- 〉〉 Server1---Server1--- 〉〉 server2---server2--- 〉〉 client2client2 。。這種方式看起來擴展性差,這種方式看起來擴展性差, serverserver 壓力很大,但是能夠實現很好壓力很大,但是能夠實現很好的業務功能,比如留言、廣播、群聊、狀態更新、的業務功能,比如留言、廣播、群聊、狀態更新、 BlogBlog 、微博、、微博、數據共享等等。數據共享等等。這種這種 Client-serverClient-server 模型,很多業務的控制在模型,很多業務的控制在 ServerServer 上完成,上完成,新功能的增加在新功能的增加在 serverserver 上實現,在上實現,在 serverserver 上定義新的上定義新的 XMLXML 對對象和邏輯,客戶端只要負責象和邏輯,客戶端只要負責 XMLXML 數據流的解析和呈現就可以了。數據流的解析和呈現就可以了。所以,終端實現簡單。所以,終端實現簡單。

Page 31: 期末專題背景知識報告  XMPP 與  SIP  介紹

(4) SIP runs over UDP, TCP and TLS whereas XMPP (4) SIP runs over UDP, TCP and TLS whereas XMPP uses TCP and TLS only. uses TCP and TLS only. 

(5)SIP(5)SIP 是雙向對稱,客戶端和服務器都可以主動發起連接請求是雙向對稱,客戶端和服務器都可以主動發起連接請求並響應,這種對稱連接的方式在穿越並響應,這種對稱連接的方式在穿越 NATNAT 和和 firewallfirewall 的時候,的時候,帶來很大的複雜性,無法保證穿越帶來很大的複雜性,無法保證穿越 NATNAT 。而。而 XMPPXMPP 是單向的是單向的連接,只有連接,只有 ClientClient 可以向可以向 ServerServer 發起連接請求,發起連接請求, serverserver 不會不會向向 ClientClient 發起連接。這樣便於發起連接。這樣便於 NATNAT 和和 firewallfirewall 的穿越。的穿越。

(6) Both SIP and XMPP are easy to implement.(6) Both SIP and XMPP are easy to implement. 技術上比較技術上比較 SIPSIP 和和 XMPPXMPP ,就像蘋果與橙子相比,因為核心協,就像蘋果與橙子相比,因為核心協議服務的目的不一樣:連接匯聚議服務的目的不一樣:連接匯聚 // 建立功能和結構化的數據交換建立功能和結構化的數據交換功能。各自在其固有的領域有各自的優勢,但是兩者體系架構的功能。各自在其固有的領域有各自的優勢,但是兩者體系架構的差異,在未來的競爭中,個人覺得差異,在未來的競爭中,個人覺得 XMPP/JingleXMPP/Jingle 架構更加有競架構更加有競爭力。因為爭力。因為 XMPPXMPP 的開放性,開發了大量的開源代碼和開源應的開放性,開發了大量的開源代碼和開源應用,大量是非連接的業務,如即時通信、用,大量是非連接的業務,如即時通信、 blogblog 、微博、社交網、微博、社交網絡、遠程控制、設備管理、三屏切換等等應用,已經有了基於絡、遠程控制、設備管理、三屏切換等等應用,已經有了基於

XMPPXMPP 開源代碼和應用提供。 開源代碼和應用提供。 GoogleGoogle 在在 XMPPXMPP 增加了增加了KingleKingle ,也很好地實現了基本的語音和視頻通訊業務。,也很好地實現了基本的語音和視頻通訊業務。

Page 32: 期末專題背景知識報告  XMPP 與  SIP  介紹

專題題目專題題目 : : 即時訊息傳送 接收即時訊息傳送 接收 瞭解瞭解 SIP SIP 與 與 XMPP XMPP 這兩種通訊格式後這兩種通訊格式後 ,, 覺得期末專題採用覺得期末專題採用 XMPP XMPP 通訊格式比較適通訊格式比較適

合合 ..

Page 33: 期末專題背景知識報告  XMPP 與  SIP  介紹

ENDEND