Android IOS WebRTC 音視頻開發總結(十四)

來源:互聯網
上載者:User

標籤:android   style   blog   http   io   ar   color   os   使用   

這篇文章主要介紹XMPP與SIP,很多人容易混淆這兩個概念,轉載請說明出處, cnblogs_RTC.Blacker.

 

簡介:XMPP和SIP都是應用程式層協議,主要用於互連網上發送語音和即時通訊. SIP在RFC 3621中定義,XMPP在RFC 3920中定義,

XMPP是從即時通訊中演變而來,SIP是從VOIP中演變而來,XMPP為了會話協商添加了一個擴充叫做Jingle,SIP為了即時通訊業務添加了一個擴充叫做SIMPLE.

 

SIP (Session Initiation Protocol)

SIP是一個應用程式層協議,是用在類似VOIP這樣的場合,用來建立,修改,中止會話,同時在多人會議中他也能在已有會話中加入新的會話. 

基本上SIP是VOIP中的信令協議,它處理呼叫建立,來電轉接和產生CDR(Call Detail Record,供通話計費用).

 

XMPP (Extensible Messaging Presence Protocol)

XMPP是一個為即時通訊和請求響應商務服務的XML協議.

最早由Jabber開源社區在1999年開發,2002年XMPP工作群組為了更適合即時通訊對Jabber進行了擴充. 

 

SIP和XMPP的異同

其實我們不能簡單地拿SIP和XMPP做比對,就像我們不能直接比較比較蘋果和橘子,前者主要是為了會話協商,後者主要是為了結構化資料交換,只不過隨著各自對Simple和Jingle的引入,他們有了一些相似.

1,SIP提供串連的建立、修改和終止,而XMPP在用戶端內部提供流管道,交換結構化資料。

也就是說:SIP的重點是終端之間串連的建立和維護,串連以後的資料和資訊傳送他不關注;而XMPP重點是考慮終端內部的資料交換,串連建立是基本的功能,而不是重點。所以,XMPP對應用的支援和擴充性的考慮很充分,比SIP天生要好.

2,SIP的信令和訊息傳送是基於文本的,不太好解析,或者說解析起來缺少規律性,在新增資料訊息體的時候缺少繼承性,需要開發新的代碼來封裝和解析,原有代碼的繼承性比較差。而XMPP採用XML,是一種結構化的訊息結構,能夠方便地表達層次化的內容,以及內容之間的內在邏輯。這種XML結構對應用的擴充和內容的解析帶來極大的方便,大量軟體代碼可以複用。

3,SIP信令由header和body兩部分組成,也就是說,SIP報文格式的header已經包含了部分內容,類似於HTTP,與具體的上層應用直接關聯,而不是通用的報文格式;而XMPP所有資訊都是採用XML在流管道之間透明傳送。

SIP的串連建立通道與資料傳送通道是各自獨立的,串連建立在SIP client與Server之間,而資料傳送通道是在Client--Client之間直接進行的。這個對視頻、語音和檔案傳送業務很合適,但是不適合其他形式的應用。

XMPP的控制和資料通道是一體的,Clent只與Server建立串連,而Client與Client之間是沒有之間串連的。Client之間傳送的通道是:Client1---〉Server1---〉Server2---〉Client2。這種方式看起來擴充性差,server壓力很大,但是能夠實現很好的業務功能,比如留言、廣播、群聊、狀態更新、Blog、微博、資料共用等等。

這種C-S模型,很多業務的控制在Server上完成,新功能的增加在server上實現,在server上定義新的XML對象和邏輯,用戶端只要負責XML資料流的解析和呈現就可以了, 所以,終端實現簡單

4,SIP可以使用UDP,TCP,TLS進行傳送,而XMPP僅僅使用TCP和TLS進行發送.

5,SIP是雙向對稱,用戶端和伺服器都可以主動發起串連請求並響應,這種對稱串連的方式在穿越NAT和Firewall的時候很麻煩,無法保證穿越NAT。而XMPP是單向的串連,只有Client可以向Server發起串連請求,Server不會向Client發起串連。這樣便於NAT和Firewall的穿越。

 

參考文檔:http://www.differencebetween.com/difference-between-sip-and-xmpp-jabber/

 

Android IOS WebRTC 音視頻開發總結(十四)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.