通訊能夠在這三者的任意兩個之間雙向發生。
伺服器同時承擔了客戶端資訊記錄,連線管理和資訊的路由功能。
閘道器承擔著與異構即時通訊系統的互聯互通,異構系統可以包括sms(簡訊),msn,icq等。基本的網路形式是單客戶端通過tcp/ip連線到單伺服器,然後在之上傳輸xml。
客戶端利用xmpp(基於tcp/ip)訪問server,傳輸的是xml
client--------server----client
tcp tcp tcp
所有從乙個client到另乙個client的jabber訊息和資料都要通過xmpp server。
1.client連線到server
2.server利用本地目錄系統的證書對其認證
3.client制定目標位址,讓server告知目標狀態
4.server查詢,連線並進行相互認證
5.client間進行互動
統一的jid(jabber identifier)
domain:伺服器網域名稱
node: 使用者名稱
resource:屬於使用者的位置或裝置
乙個使用者可以同時以多種資源與同乙個xmpp伺服器連線
xmpp xml包括3個元素:簡單示例:
-此元素確定使用者的狀態
[email protected]/contact
[email protected]/contact>
online
-用於兩個使用者之間傳送資訊
[email protected]/contact
[email protected]/contact
type=「chat」>
hello
-資訊/請求,是乙個請求-響應機制,管理xmpp伺服器上兩個使用者的轉換,允許他們通過相應的xml格式的查詢和響應
[email protected]/contact
id=「id1」 type=「result」>
iq的主要屬性:type,包括:
get:獲取當前域值
set:設定或替換get查詢的值
result:說明成功的響應了先前的查詢
error:查詢和響應中出現的錯誤
xmpp 協議族基於tcp
xmpp採用sasl作為身份認證協議
sasl包含的資訊:
《服務名》:xmpp
《初始序列》
《交換序列》
《安全層協商》
順序:[tcp]?[tls]?[sasl]?[xmpp]
xmpp採用tls的「start-tls」擴充套件來為通訊雙方提供加密性和資料完整性服務
登入xmpp伺服器過程示例 :
c—client s—server
步驟:1.client初始流給server
c:" version="1.0「 >
2.server使用乙個流標記作為響應發給client
s:3.server傳送starttls擴充套件給client,並帶有認證機制與任何其他流特徵
?s:">
plain
digest-md5
">
zlib
" />
" />
4. client傳送starttls命令給server
c:5.server通知client它被允許處理
s:note:client與server tls協商失敗,server通知client tls協商失敗,並關閉流與tcp連線
6. 如果tls協商成功,client初始化乙個新流給server
c:" version="1.0">
7.server靠傳送帶有任何可利用流特徵的流頭作為響應
s:">
plain
digest-md5
">
zlib
" />
" />
8.client選擇乙個認證機制
c:agh4dwax
9.server通知client認證成功
s:note:如果認證不成功,server通知client認證失敗,並關閉流
10.如果認證成功,client初始化乙個新流給server
c:" version="1.0">
11.server依靠流頭來響應client,並伴隨有另外的特徵
s:">
">
zlib
12.資源繫結:client傳送乙個型別為set的iq,幷包含所需繫結的資源節點
c:spark
13.如果server為client產生了乙個資源識別符號或是接受了由客戶端提供的資源識別符號,它必須返回乙個型別為result的iq節點給client,並必須包含子節點,來為server決定的已連線資源指定全jid
s:spark
username@cyber/spark
14.client向server請求sessionc:
15.server告知client,session已建立
s:
XMPP協議介紹
通訊能夠在這三者的任意兩個之間雙向發生。伺服器同時承擔了客戶端資訊記錄,連線管理和資訊的路由功能。閘道器承擔著與異構即時通訊系統的互聯互通,異構系統可以包括sms 簡訊 msn,icq等。基本的網路形式是單客戶端通過tcp ip連線到單伺服器,然後在之上傳輸xml。客戶端利用xmpp 基於tcp i...
XMPP協議實現原理介紹
本文介紹xmpp協議原理及相關資訊。xmpp協議簡介 xmpp extensible messageing and presence protocol 可擴充套件訊息與存在協議 是目前主流的四種im im instant messaging,即時訊息 協議之一,其他三種分別為 即時資訊和空間協議 i...
XMPP協議的原理介紹
xmpp是乙個典型的c s架構,而不是像大多數即時通訊軟體一樣,使用p2p客戶端到客戶端的架構,也就是說在大多數情況下,當兩個客戶端進行通訊時,他們的訊息都是通過伺服器傳遞的 也有例外,例如在兩個客戶端傳輸檔案時 採用這種架構,主要是為了簡化客戶端,將大多數工作放在伺服器端進行,這樣,客戶端的工作就...