XMPP通信原理

本文章對XMPP通信原理做基本的介紹,不講具體代碼。在面試的時候會經(jīng)常聽到:能介紹一下XXXX原理嗎?當然面試不一定全是問XMPP原理。所以接下來幾篇文章都是一些原理的介紹,希望對小伙伴們能有所用處,廢話不多,進入主題。
1:XMPP概述
XMPP(可擴展消息處理現(xiàn)場協(xié)議)的前身是Jabber,由一個開源組織產(chǎn)生的即時通信協(xié)議,基于可擴展標記語言(XML)的一種協(xié)議,是由IETF(國際互聯(lián)網(wǎng)小組)通過的網(wǎng)絡標準。
XMPP定義了三個角色:客戶端,服務端以及網(wǎng)關(下面介紹作用)
2:XMPP的優(yōu)勢
可擴展性:XMPP基于XML,因此具有良好的擴展性。
開源:XMPP不屬于任何一個人。
安全:XMPP在Client-to-Server通信,和Server-to-Server通信中都使?用TLS (Transport Layer Security)協(xié)議作為通信通道的加密?法。
分布式:XMPP沒有中央服務器,任何企業(yè)例如都可以擁有自己的XMPP服務器,并且服務器之間以及不同服務器的用戶可以相互通信。舉例:如現(xiàn)在的qq用戶是不可能和FaceBook用戶通信的,但是若干年后(XMPP已經(jīng)作為網(wǎng)絡標準),可能出現(xiàn)一種情況,qq用戶可以添加并且和fb用戶聊天。

3:缺點
負載過重,沒有二進制數(shù)據(jù)傳輸。

4:網(wǎng)關(gateway)
上面說到qq用戶和FB用戶聊天,那么這里不得不提網(wǎng)關,網(wǎng)關的作用就是實現(xiàn)XMPP和其他系統(tǒng)之間的協(xié)議轉換,使其可以互相交換信息.

5:通信原理


連接原理圖.png

1:首先客戶端1通過socket向服務端通過三次握手建立TCP長連接(由C1向服務器發(fā)送登陸等信息進行認證)。


三次握手長鏈接.png

2:服務器端對C1進行認證成功,服務器將C1的聯(lián)系人列表返回給它
3:C1通過服務端向其好友發(fā)送狀態(tài)(presence)消息(在線/隱身)

6 七層協(xié)議簡介


tcp:ip協(xié)議族.gif
協(xié)議詳解.png

這里對TCP和UDP進行一個區(qū)分:


TCP和UDP協(xié)議區(qū)別.png

這里給大家再普及一個很小的知識點:
ip:我們都聽過ip尋址,那么ip是什么呢?ip類似于人的身份證,是電腦的唯一標示。
端口:端口是進程的唯一標示,如果不明白什么是進程就看作是應用程序(QQ)。有效端口是0-65535,其中0-1024為系統(tǒng)占用或者系統(tǒng)保留端口,不建議使用。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • XMPP簡介 XMPP協(xié)議簡介 XMPP協(xié)議(Extensible Messaging and PresenceP...
    不規(guī)則先生閱讀 6,435評論 2 31
  • 關于XMPP最權威的講解:http://www.jabbercn.org/RFC3920(這個才是最權威的,下面文...
    隨風飄蕩的小逗逼閱讀 1,643評論 1 5
  • 前面關于即時通訊基礎Socket,大家學習使用XMPP之前可以先看看即時通訊系列之Socket簡介 前言 前段時間...
    音符上的碼字員閱讀 4,472評論 3 16
  • 名詞延伸 通俗的說,域名就相當于一個家庭的門牌號碼,別人通過這個號碼可以很容易的找到你。如果把IP地址比作一間房子...
    楊大蝦閱讀 20,829評論 2 56
  • 近日在西班牙舉辦的自行車競賽中,車手埃斯特萬在距離終點只有300米時遭遇爆胎,他只能扛起自行車跑向終點。令在場觀眾...
    05282adfe066閱讀 681評論 0 0

友情鏈接更多精彩內(nèi)容