SlideShare a Scribd company logo
1 of 20
XML 期末報告
XML and Instant Messaging: XMPP
指導教授:葉慶隆指導教授:葉慶隆
GI1.02GI1.02 吳登傑吳登傑
OutlineOutline
 XMPPXMPP 的簡介與起源的簡介與起源
 XMPPXMPP 的架構的架構
 資料傳輸的實例資料傳輸的實例
 XMPPXMPP 所使用到的安全機制所使用到的安全機制
 優點分析優點分析
 缺點分析缺點分析
 未來發展未來發展
XMPPXMPP 的簡介與起源的簡介與起源
 XMPPXMPP :: the Extensible Messaging and Presence Protocolthe Extensible Messaging and Presence Protocol

是一種以是一種以 XMLXML 為基礎的開放式即時通訊協定為基礎的開放式即時通訊協定
 位於網路協議層級的應用層位於網路協議層級的應用層
 XMPPXMPP 也是目前主流的四種即時通訊協定之一也是目前主流的四種即時通訊協定之一

目前目前 XMPPXMPP 的技術被的技術被 Google TalkGoogle Talk 所使用所使用
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 公共公共
網路的用戶對談網路的用戶對談
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
 XMPPXMPP 的簡介與起源的簡介與起源
 XMPPXMPP 的架構的架構
 資料傳輸的實例資料傳輸的實例
 XMPPXMPP 所使用到的安全機制所使用到的安全機制
 優點分析優點分析
 缺點分析缺點分析
 未來發展未來發展
XMPPXMPP 的架構的架構
Server1 Server2
Server3
Client
Client
Client
Client Client Client
Client
Client
Client
Server 和 Server 使用 Port 5269 進行傳輸
Client 和 Server 使用 Port 5222 進行傳輸
XMPPXMPP 的定址功能的定址功能
 每一個用戶都有屬於自己的每一個用戶都有屬於自己的 JID (Jabber Identifier )JID (Jabber Identifier )

JIDJID 分成兩個部份:分成兩個部份: node identifiernode identifier 和和 domain identifierdomain identifier
 node identifiernode identifier 就是所謂的用戶名稱就是所謂的用戶名稱
 domain identifierdomain identifier 則是似服器名稱則是似服器名稱
 格式如下:格式如下:
node identifier @ domain identifiernode identifier @ domain identifier
OutlineOutline
 XMPPXMPP 的簡介與起源的簡介與起源
 XMPPXMPP 的架構的架構
 資料傳輸的實例資料傳輸的實例
 XMPPXMPP 所使用到的安全機制所使用到的安全機制
 優點分析優點分析
 缺點分析缺點分析
 未來發展未來發展
資料傳輸的實例資料傳輸的實例 (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>
資料傳輸的實例資料傳輸的實例 (2/2)(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>
OutlineOutline
 XMPPXMPP 的簡介與起源的簡介與起源
 XMPPXMPP 的架構的架構
 資料傳輸的實例資料傳輸的實例
 XMPPXMPP 所使用到的安全機制所使用到的安全機制
 優點分析優點分析
 缺點分析缺點分析
 未來發展未來發展
XMPPXMPP 所使用到的安全機制所使用到的安全機制
 TLSTLS (( Transport Layer Security protocolTransport Layer Security protocol ):): XMPPXMPP 使用了使用了
TLSTLS 來防止來防止 XML streamXML stream 傳送過程被篡改、竊聽。傳送過程被篡改、竊聽。
 SASLSASL (( Simple Authentication and Security Layer protocolSimple Authentication and Security Layer protocol ))
:在建立好:在建立好 TLSTLS 之後就要用到之後就要用到 SASLSASL 來驗證來驗證 XML streamXML stream 。。
 Resource BindingResource Binding :在:在 SASLSASL 建立成功之後可以藉由建立成功之後可以藉由 <bind><bind>
和和 </bind></bind> 標籤傳送的標籤傳送的 ClientClient 位址以確保資料傳送至位址以確保資料傳送至
ClientClient 的安全性。的安全性。
 Server DialbackServer Dialback :確保:確保 ServerServer 和和 ServerServer 連結過程中的安全與連結過程中的安全與
正確性 。正確性 。
XMPPXMPP 所使用到的安全機制所使用到的安全機制
對象 所使用到的安全機制
Client TLS 、 SASL 、 Resource Binding
Server TLS 、 SASL 、 Resource Binding 和 Server dialback
通訊協定的順序是: TCP→TLS→SASL→XMMP
 XMPPXMPP 的簡介與起源的簡介與起源
 XMPPXMPP 的架構的架構
 資料傳輸的實例資料傳輸的實例
 XMPPXMPP 所使用到的安全機制所使用到的安全機制
 優點分析優點分析
 缺點分析缺點分析
 未來發展未來發展
優點分析優點分析
 分散式:沒有固定的中央伺服器。分散式:沒有固定的中央伺服器。
 開放標準:協定是自由、開放、公開的,並且易於瞭解。開放標準:協定是自由、開放、公開的,並且易於瞭解。
 安全性:安全性: SASLSASL 和和 TSLTSL 已經在已經在 XMPPXMPP 核心技術規格中。核心技術規格中。
 靈活性:不僅能用於即時通訊軟體中。靈活性:不僅能用於即時通訊軟體中。
 擴展性: 藉由擴展性: 藉由 XMLXML 的的 NamespaceNamespace 特性,可以產生個人化特性,可以產生個人化
。。
 XMPPXMPP 的簡介與起源的簡介與起源
 XMPPXMPP 的架構的架構
 資料傳輸的實例資料傳輸的實例
 XMPPXMPP 所使用到的安全機制所使用到的安全機制
 優點分析優點分析
 缺點分析缺點分析
 未來發展未來發展
缺點分析缺點分析
 可伸縮性:可伸縮性: XMPPXMPP 的可伸縮度其實不好,當遇到多人的對的可伸縮度其實不好,當遇到多人的對
話時會產生過多的網路開銷。話時會產生過多的網路開銷。
 沒有二進制數據:沒有二進制數據: XMPPXMPP 協議的數據通常是被編碼成一個協議的數據通常是被編碼成一個
長長 XMLXML 文件,限制了它直接傳輸原始二進制數據的能力文件,限制了它直接傳輸原始二進制數據的能力
。。
未來發展未來發展
  目前市面上存在著各式各樣不同的即時通訊軟體,  目前市面上存在著各式各樣不同的即時通訊軟體,
各個軟體供應者都各自使用各自的傳輸協定,而各個通各個軟體供應者都各自使用各自的傳輸協定,而各個通
訊協定都各有其優缺點,然而,不得不面對的是『通用訊協定都各有其優缺點,然而,不得不面對的是『通用
化』的問題。化』的問題。
  當愈來愈多的供應者出現,隨之而來的是愈來愈多  當愈來愈多的供應者出現,隨之而來的是愈來愈多
的傳輸協定,這會導致使用者被切割成好幾個不同的群的傳輸協定,這會導致使用者被切割成好幾個不同的群
組,這樣一來不僅會導致使用者的不方便性,也會提昇組,這樣一來不僅會導致使用者的不方便性,也會提昇
供應者在開發上的成本。因此,目前阻礙即時通訊發展供應者在開發上的成本。因此,目前阻礙即時通訊發展
的最大阻礙即是標準和協定的不統一,使得不同系統之的最大阻礙即是標準和協定的不統一,使得不同系統之
間無法聯繫。間無法聯繫。
THE ENDTHE END

More Related Content

Similar to Xmpp

CWMP TR-069 Training (Chinese)
CWMP TR-069 Training (Chinese)CWMP TR-069 Training (Chinese)
CWMP TR-069 Training (Chinese)William Lee
 
Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言Feng Yu
 
2011 06-12-why do we need the rabbit
2011 06-12-why do we need the rabbit2011 06-12-why do we need the rabbit
2011 06-12-why do we need the rabbitthinkinlamp
 
基于Erlang的
基于Erlang的基于Erlang的
基于Erlang的hnoutman
 
突破困境:資安開源工具之應用分享 [2019/03/21] @臺灣資安大會
突破困境:資安開源工具之應用分享 [2019/03/21] @臺灣資安大會突破困境:資安開源工具之應用分享 [2019/03/21] @臺灣資安大會
突破困境:資安開源工具之應用分享 [2019/03/21] @臺灣資安大會Jason Cheng
 
大数据时代feed架构 (ArchSummit Beijing 2014)
大数据时代feed架构 (ArchSummit Beijing 2014)大数据时代feed架构 (ArchSummit Beijing 2014)
大数据时代feed架构 (ArchSummit Beijing 2014)Tim Y
 
Mysql mmm演讲--冯浩
Mysql mmm演讲--冯浩Mysql mmm演讲--冯浩
Mysql mmm演讲--冯浩chinafenghao
 
Mysql mmm演讲-冯浩
Mysql mmm演讲-冯浩Mysql mmm演讲-冯浩
Mysql mmm演讲-冯浩chinafenghao
 
Mysql mmm演讲-冯浩
Mysql mmm演讲-冯浩Mysql mmm演讲-冯浩
Mysql mmm演讲-冯浩chinafenghao
 
deep inside Sina App Engine cloud service
deep inside Sina App Engine cloud servicedeep inside Sina App Engine cloud service
deep inside Sina App Engine cloud servicecong lei
 
Analysis of Adobe's RTMFP Protocol
Analysis of Adobe's RTMFP ProtocolAnalysis of Adobe's RTMFP Protocol
Analysis of Adobe's RTMFP ProtocolChangming Sun
 
Weibo lamp improvements
Weibo lamp improvementsWeibo lamp improvements
Weibo lamp improvementsXinchen Hui
 
从运维系统的开发谈安全架构设计
从运维系统的开发谈安全架构设计从运维系统的开发谈安全架构设计
从运维系统的开发谈安全架构设计mysqlops
 
Pptv lb日志实时分析平台
Pptv lb日志实时分析平台Pptv lb日志实时分析平台
Pptv lb日志实时分析平台drewz lin
 
Erlang开发及应用
Erlang开发及应用Erlang开发及应用
Erlang开发及应用litaocheng
 
基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发mysqlops
 

Similar to Xmpp (20)

CWMP TR-069 Training (Chinese)
CWMP TR-069 Training (Chinese)CWMP TR-069 Training (Chinese)
CWMP TR-069 Training (Chinese)
 
Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言
 
2011 06-12-why do we need the rabbit
2011 06-12-why do we need the rabbit2011 06-12-why do we need the rabbit
2011 06-12-why do we need the rabbit
 
AMF
AMFAMF
AMF
 
基于Erlang的
基于Erlang的基于Erlang的
基于Erlang的
 
突破困境:資安開源工具之應用分享 [2019/03/21] @臺灣資安大會
突破困境:資安開源工具之應用分享 [2019/03/21] @臺灣資安大會突破困境:資安開源工具之應用分享 [2019/03/21] @臺灣資安大會
突破困境:資安開源工具之應用分享 [2019/03/21] @臺灣資安大會
 
大数据时代feed架构 (ArchSummit Beijing 2014)
大数据时代feed架构 (ArchSummit Beijing 2014)大数据时代feed架构 (ArchSummit Beijing 2014)
大数据时代feed架构 (ArchSummit Beijing 2014)
 
Mysql mmm演讲--冯浩
Mysql mmm演讲--冯浩Mysql mmm演讲--冯浩
Mysql mmm演讲--冯浩
 
Mysql mmm演讲-冯浩
Mysql mmm演讲-冯浩Mysql mmm演讲-冯浩
Mysql mmm演讲-冯浩
 
Mysql mmm演讲-冯浩
Mysql mmm演讲-冯浩Mysql mmm演讲-冯浩
Mysql mmm演讲-冯浩
 
deep inside Sina App Engine cloud service
deep inside Sina App Engine cloud servicedeep inside Sina App Engine cloud service
deep inside Sina App Engine cloud service
 
Sae
SaeSae
Sae
 
Analysis of Adobe's RTMFP Protocol
Analysis of Adobe's RTMFP ProtocolAnalysis of Adobe's RTMFP Protocol
Analysis of Adobe's RTMFP Protocol
 
Hadoop ecosystem
Hadoop ecosystemHadoop ecosystem
Hadoop ecosystem
 
Weibo lamp improvements
Weibo lamp improvementsWeibo lamp improvements
Weibo lamp improvements
 
从运维系统的开发谈安全架构设计
从运维系统的开发谈安全架构设计从运维系统的开发谈安全架构设计
从运维系统的开发谈安全架构设计
 
Pptv lb日志实时分析平台
Pptv lb日志实时分析平台Pptv lb日志实时分析平台
Pptv lb日志实时分析平台
 
Erlang开发及应用
Erlang开发及应用Erlang开发及应用
Erlang开发及应用
 
Planet Lab
Planet LabPlanet Lab
Planet Lab
 
基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发
 

More from Hsiao Tim

The truth meter
The truth meterThe truth meter
The truth meterHsiao Tim
 
X realtime xmp-ptut-pdf
X realtime xmp-ptut-pdfX realtime xmp-ptut-pdf
X realtime xmp-ptut-pdfHsiao Tim
 
Js in one pic
Js in one picJs in one pic
Js in one picHsiao Tim
 
4.解析 p2 p 金融安全
4.解析 p2 p 金融安全4.解析 p2 p 金融安全
4.解析 p2 p 金融安全Hsiao Tim
 
5.云安全现场演示
5.云安全现场演示5.云安全现场演示
5.云安全现场演示Hsiao Tim
 
5.多角度对抗 waf 的思路与实例
5.多角度对抗 waf 的思路与实例5.多角度对抗 waf 的思路与实例
5.多角度对抗 waf 的思路与实例Hsiao Tim
 
4.由 pc 端安全问题引发的重重隐患
4.由 pc 端安全问题引发的重重隐患4.由 pc 端安全问题引发的重重隐患
4.由 pc 端安全问题引发的重重隐患Hsiao Tim
 
3.无人飞行器安全性分析
3.无人飞行器安全性分析3.无人飞行器安全性分析
3.无人飞行器安全性分析Hsiao Tim
 
9.“企业应急响应与反渗透”之真实案例分析
9.“企业应急响应与反渗透”之真实案例分析9.“企业应急响应与反渗透”之真实案例分析
9.“企业应急响应与反渗透”之真实案例分析Hsiao Tim
 
8.如何从外围进入各大公司内网
8.如何从外围进入各大公司内网8.如何从外围进入各大公司内网
8.如何从外围进入各大公司内网Hsiao Tim
 
7.唯品会安全建设与风控杂谈
7.唯品会安全建设与风控杂谈7.唯品会安全建设与风控杂谈
7.唯品会安全建设与风控杂谈Hsiao Tim
 
6.web 安全架构浅谈
6.web 安全架构浅谈6.web 安全架构浅谈
6.web 安全架构浅谈Hsiao Tim
 
3.android 应用程序通用自动脱壳方法研究
3.android 应用程序通用自动脱壳方法研究3.android 应用程序通用自动脱壳方法研究
3.android 应用程序通用自动脱壳方法研究Hsiao Tim
 
社群網站資料探勘技術
社群網站資料探勘技術社群網站資料探勘技術
社群網站資料探勘技術Hsiao Tim
 

More from Hsiao Tim (14)

The truth meter
The truth meterThe truth meter
The truth meter
 
X realtime xmp-ptut-pdf
X realtime xmp-ptut-pdfX realtime xmp-ptut-pdf
X realtime xmp-ptut-pdf
 
Js in one pic
Js in one picJs in one pic
Js in one pic
 
4.解析 p2 p 金融安全
4.解析 p2 p 金融安全4.解析 p2 p 金融安全
4.解析 p2 p 金融安全
 
5.云安全现场演示
5.云安全现场演示5.云安全现场演示
5.云安全现场演示
 
5.多角度对抗 waf 的思路与实例
5.多角度对抗 waf 的思路与实例5.多角度对抗 waf 的思路与实例
5.多角度对抗 waf 的思路与实例
 
4.由 pc 端安全问题引发的重重隐患
4.由 pc 端安全问题引发的重重隐患4.由 pc 端安全问题引发的重重隐患
4.由 pc 端安全问题引发的重重隐患
 
3.无人飞行器安全性分析
3.无人飞行器安全性分析3.无人飞行器安全性分析
3.无人飞行器安全性分析
 
9.“企业应急响应与反渗透”之真实案例分析
9.“企业应急响应与反渗透”之真实案例分析9.“企业应急响应与反渗透”之真实案例分析
9.“企业应急响应与反渗透”之真实案例分析
 
8.如何从外围进入各大公司内网
8.如何从外围进入各大公司内网8.如何从外围进入各大公司内网
8.如何从外围进入各大公司内网
 
7.唯品会安全建设与风控杂谈
7.唯品会安全建设与风控杂谈7.唯品会安全建设与风控杂谈
7.唯品会安全建设与风控杂谈
 
6.web 安全架构浅谈
6.web 安全架构浅谈6.web 安全架构浅谈
6.web 安全架构浅谈
 
3.android 应用程序通用自动脱壳方法研究
3.android 应用程序通用自动脱壳方法研究3.android 应用程序通用自动脱壳方法研究
3.android 应用程序通用自动脱壳方法研究
 
社群網站資料探勘技術
社群網站資料探勘技術社群網站資料探勘技術
社群網站資料探勘技術
 

Xmpp