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

Slides:



Advertisements
Similar presentations
校園資訊安全與防火牆架設 嘉義市育人國小 黃士騰.
Advertisements

动态网站开发 【HTTP与网络基础】 李博杰
VOIP應用 與進度推廣 臺東大學電算中心 洪守成.
校園網路管理實電務 電子計算機中心 謝進利.
Mobile IP Mar.14,’03 B 黃品甄 B 范哲瑋.
Topics 應用架構 學習路徑 熱門議題 相關認證.
Lab312.
SIP 体系架构.
医学仪器中的嵌入式系统设计  T06.WinCE 网络与通信
題目:十六對一多工器 姓名:李國豪 學號:B
Server Load Balancing 飛雅高科技 李村.
(C) Active Network CO., Ltd
TCP協定 (傳輸層).
AA SIP协议原理 2.0 此为固网课程专用的封面页。.
第一篇 Unix/Linux 操作介面 第 1 章 Unix/Linux 系統概論 第 2 章 開始使用 Unix/Linux
Socket () and TCP client-server
教育部資通訊人才培育先導型計畫 寬頻有線教學推動聯盟中心 第九章 VoIP網路安全防護.
2018/11/22 SIP to Freshman.
P2P通信之 ——UDP穿越NAT方案的讨论
SIP消息之 逐项讲解.
SIP协议 翁彦
資料庫管理 操作DBMS 指導教授:楊維邦  助教:廖皓翔.
TCP/IP Protocol Suite TCP/IP協定 第二組 投影片製作by簡嘉宏 綦凱宏 林睿敏 滕孟哲.
Google Data API Spreadsheet
VoIP integrate compuse PSTN-PBX with SIP/ENUM/IVR
HiNet 光世代非固定制 用戶端IPv6設定方式說明
實驗 一 : RTP 實驗目的 實作部分 了解如何利用RTP在網路上傳送語音封包 加深對RTP、RTCP封包的基本格式的認識
VoIPv6呼叫實驗 想法:對於通話流量,能夠P2P,就不要做RTP PROXY。 目的:
SIP之 穿越NAT.
Chapter10 IM & IRC 網路應用入門(一) Chapter10 IM & IRC
XML期末報告 XML and Instant Messaging: XMPP
Echo Server/Client Speaker:Fang.
TCP/IP介紹 講師:陳育良 2018/12/28.
OpenID與WordPress使用說明
網路安全期末報告─SSL/TLS 指導教授:梁明章 報告學生:A 徐英智.
指導教授:【李博明】老師 組員: 4A13A017 紀家郁 4A 邱建傑 4A 白智仁 4A 簡宗胤
作業二 : SIP User Mobility 實驗目的 實作部分
FTP檔案上傳下載 實務與運用.
指導老師:黃貞芬 老師 專題組員:B 黃育宇 B 魏志軒 B 平震宇
IP, Port, Router and Port forward
Chap3 Linked List 鏈結串列.
網路安全技術期末報告 Proxy Server
網路安全技術 OSI七層 學生:A 郭瀝婷 指導教授:梁明章.
Topic Introduction—RMI
SIP协议 Sip协议基本介绍 ..
SIP与H.323互通的研究 研究生选题报告 Research on Interworking between SIP and H.323
Web Server 王宏瑾.
網路程式設計期末project B 張芸菱.
Firewall-pfsense Mars Su
Wireshark DNS&HTTP封包分析
第 19 章 XML記憶體執行模式.
表格(HTML – FORM).
網路安全期末報告 OSI 7 Layers 指導教授:梁明章.
Speaker : Chang Kai-Jia Date : 2010/04/26
資訊網路專題 Special Topics on Information Networks
SOCKET( ).
MicroSim pspice.
(Mobile User music–Sharing Innovation Center)
表格(HTML – FORM)
Mobile IPv4.
DynaMed Plus 手機/平版 App下載使用教學
使用VHDL設計-8x3編碼電路 通訊一甲 B 楊穎穆.
介紹Saas 以Office 365為例 組員: 資工四乙何孟修 資工四乙 黃泓勝.
ARP攻擊 A 吳峻誠.
VoIP安全議題 姓名:許雅玲 指導老師:梁明章 老師.
多站台網路預約系統之 AJAX即時資料更新機制
指導教授 :逄愛君 資訊三 B 莊惟舜 資訊三 B 張憶婷 資訊三 B 徐嘉偉
電腦網絡與教學.
NFC (近場通訊, Near Field Communication) 靜宜大學資管系 楊子青
Department of Computer Information Science, NCTU
Presentation transcript:

期末專題背景知識報告 XMPP 與 SIP 介紹 501435007 黃昭隆 501435007 郭惠民

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

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文件,限制了它直接傳輸原始二進制數據的能力。

SIP (Session Initiation 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]則是確立了具體的事件通知。

SIP有下列幾點特性 利用文字(Text-based)的方式來編碼,類似 HTTP/1.1 Client-Server的架構 Clients 端初始一個呼叫(caller) Servers 端回應呼叫 (callee) 訊號與資料獨立,SIP負責訊號部分,資料傳送部分 可以使用 RTP,TCP,UDP… 可與其他 IETF 所制訂的協定配合,例如:RFC2327(SDP)[12], RFC2616 (HTTP/1.1) [11], RFC2396(URL)[13]…

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

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

Servers 根據 RFC 2543 中定義,Server 主要分成了 Proxy, Redirect, 以及 Registrar server。 SIP proxy:負責接受 UA 或其他 proxy 所發送的 SIP Request,並且轉送 Request 到其他地方。 Redirect Server:負責接受 UA或其他 proxy所發送的 SIP Request,並且傳回 redirection response (3xx),指出這個 Request 應該送往何方。 Registrar Server:負責接受 SIP registration requests,並且 更新 SIP UA在 Location Server 或其他資料庫當中的資訊。 SIP proxy, Redirect 還有 Registrar servers 只有做單純的 signaling 轉送,他們沒有傳送多媒體資料及產生 SIP Request 的能力。

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

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

SIP proxy 模式 以圖 2.3 為例,caller (inaba@work.com) 先送出一個 INVITE 訊息呼叫 callee (yucho@work.com),proxy server 收到之後便會去做查詢 , 查詢完 成 之 後 便 得 知 目前 callee 實 際的位 址 在 yucho@home.com ,於是 proxy server 便會以 yucho@home.com為對象發出 INVITE 訊息。callee 在回覆 200 OK 的時候,會將 200 OK 的response 回應給 proxy server,再由 proxy server 轉送給 caller。

SIP redirect 模式 如圖 2.4 所示,與 proxy server 不同的地方,在於 redirect server查詢得知 callee 實際的位址的時候,並不像 proxy server 會直接代為處理之後session的建立 ,而是將callee的實際位址告知caller ,讓caller自行送出新的 INVITE。使用 redirect 的模式,可以減低 server 的負擔,但 caller 必須有能力將 request 的訊息傳送到 callee。

SIP vs XMPP (Jabber) 比較 SIP和XMPP都是應用層的協議,主要用來在互聯網上發送語音和即時通信IM。 RFC 3521定義了SIP,RFC3920定義了XMPP。 XMPP來自即時通信系統,而SIP類似語音和視頻通信。 XMPP增加了Jingle擴展協議來支持面向連接的業務,如語音和視頻;而SIP增加了SIMPLE協議來支持即時通信業務。 SIP是應用層的協議,用來建立、改變和終結多媒體連接,如語音呼叫。 SIP也可以在已經存在的呼叫上增加新的呼叫,實現多方會議。本質上來講,SIP被稱之為VoIP的信令協議, 他可以處理呼叫​​的建立,呼叫的控制和呼叫的終結,並且產生CDR用來計費. XMPP是開放的XML協議,用來實現實時消息傳遞、呈現和請求/響應業務。起初,他由Jabber開源社區開發。 2002年,XMPP工作組將Jabber開發成支持即時通信的協議。

我們不能簡單對SIP和XMPP進行對比,因為兩者服務與完全不同的目標,一個服務於連接的建立,一個服務於結構化的數據交換。但是SIP增加SIMPLE和XMPP增加Jingle後,兩者開始變得類似了。 (1) SIP提供連接的建立、改變和終結,而XMPP在客戶組內部提供流管道,交換結構化的數據。這就是說:SIP的重點是終端之間連接的建立和維護,連接以後的數據和信息傳送他不關注;而XMPP重點是考慮終端組內部的數據交換,連接建立是基本的功能,而不是重點。所以,XMPP對應用的支持和擴展性的考慮很充分,比SIP天生要好。 (2)SIP的信令和消息傳送是基於文本的,是平面化(Flat)的數據表達,解析起來缺少規律性,在新增數據消息體的時候缺少繼承性,需要開發新的代碼來封裝和解析,原有代碼的繼承性比較差。而XMPP採用開放的標準的XML表達,是一種結構化的消息結構,能夠方面表達層次化的消息內容,表達內容的內在邏輯。這種XML的結構對應用的擴展和內容的解析帶來極大的方便,大量軟件代碼可以重複利用。  

(3)SIP信令由SIP報文格式的頭部和內容​​兩部分組成,也就是說,SIP報文格式的頭部已經包含了部分內容,類似於HTTP,與具體的上層應用直接關聯,而不是通用的報文格式;而XMPP所有信息都是採用XML在流管道之間透明傳送。 SIP的連接建立通道與數據傳送通道是各自獨立的,連接建立在SIP client與Server之間,而數據傳送通道是在Client--Client之間直接進行的。這個對視頻、語音和文件傳送業務很合適,但是不適合其他形式的應用。 XMPP的控制和數據通道是一體的,Clent只與Server建立連接,而Client與client之間是沒有之間連接的。 Client之間傳送的通道是:Client1---〉Server1---〉server2---〉client2。這種方式看起來擴展性差,server壓力很大,但是能夠實現很好的業務功能,比如留言、廣播、群聊、狀態更新、Blog、微博、數據共享等等。 這種Client-server模型,很多業務的控制在Server上完成,新功能的增加在server上實現,在server上定義新的XML對象和邏輯,客戶端只要負責XML數據流的解析和呈現就可以了。所以,終端實現簡單。

(4) SIP runs over UDP, TCP and TLS whereas XMPP uses TCP and TLS only.  (5)SIP是雙向對稱,客戶端和服務器都可以主動發起連接請求並響應,這種對稱連接的方式在穿越NAT和firewall的時候,帶來很大的複雜性,無法保證穿越NAT。而XMPP是單向的連接,只有Client可以向Server發起連接請求,server不會向Client發起連接。這樣便於NAT和firewall的穿越。 (6) Both SIP and XMPP are easy to implement. 技術上比較SIP和XMPP,就像蘋果與橙子相比,因為核心協議服務的目的不一樣:連接匯聚/建立功能和結構化的數據交換功能。各自在其固有的領域有各自的優勢,但是兩者體系架構的差異,在未來的競爭中,個人覺得XMPP/Jingle架構更加有競爭力。因為XMPP的開放性,開發了大量的開源代碼和開源應用,大量是非連接的業務,如即時通信、blog、微博、社交網絡、遠程控制、設備管理、三屏切換等等應用,已經有了基於XMPP開源代碼和應用提供。 Google在XMPP增加了Kingle,也很好地實現了基本的語音和視頻通訊業務。

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

END