XMPP基礎(chǔ)

概要

1、即時通訊技術(shù)簡介
2、XMPP誕生的由來
3、XMPP特點
4、XMPP的基本結(jié)構(gòu)
5、XMPP工作原理
6、XMPP的優(yōu)缺點
7、OSI七層模型
8、IP地址、端口號、傳輸協(xié)議
9、TCP和UDP的區(qū)別
10、Socket機制

1、即時通訊技術(shù)簡介

1、 即時通訊技術(shù)(IM -- Instant Messaging)支持用戶在線實時交談。如果要發(fā)送一條信息,用戶需要打開一個小窗口,以便讓用戶及其朋友在
2、 其中輸入信息并讓交談雙方都看到交談的內(nèi)容
3、 有許多的IM系統(tǒng),如AOL、Yahoo IM、 MSN以及QQ,它們最大的區(qū)別在于各自通訊協(xié)議的實現(xiàn),所以即時通訊技術(shù)的核心在于它的傳 輸協(xié)議
4、XMPP前身是Jabber(1998年),是一個開源組織定義的網(wǎng)絡(luò)即時通信協(xié)議

2、XMPP誕生的由來

設(shè)計一款全世界都使用的即時通訊協(xié)議,無論使用什么即時通訊軟件,都可以互聯(lián)互通

示意圖.png

3、XMPP特點

1、XMPP是基于XML的協(xié)議
2、點對點
3、即時通訊

4、XMPP的基本結(jié)構(gòu)

1、XMPP是一個典型的C/S架構(gòu)
2、XMPP中定義了三個角色,客戶端,服務(wù)器,網(wǎng)關(guān)
3、服務(wù)器同時承擔(dān)了客戶端信息記錄,連接管理和信息的路由功能
4、基本的網(wǎng)絡(luò)形式是單客戶端通過TCP/IP連接到單服務(wù)器,然后在之上傳輸XML流

5、XMPP工作原理

1.節(jié)點連接到服務(wù)器
2.服務(wù)器利用本地目錄系統(tǒng)中的證書對其認證
3.節(jié)點指定目標(biāo)地址,讓服務(wù)器告知目標(biāo)狀態(tài)
4.服務(wù)器查找、連接并進行相互認證
5.節(jié)點之間進行交互

6 、 XMPP的優(yōu)缺點

1、優(yōu)點:開放、安全、分散、可擴展
2、缺點:數(shù)據(jù)負載過重XML、沒有二進制傳輸

7、OSI七層模型

OSI七層模型.png

物理層:主要定義物理設(shè)備的標(biāo)準(zhǔn),如網(wǎng)線的接口類型,各種傳輸介質(zhì)傳輸速率等。主要作用是傳輸比特流(由1、0轉(zhuǎn)化為電流的強弱進行傳輸,到達目的地后在轉(zhuǎn)為1、0)這一層的數(shù)據(jù)叫做比特(bit)主要設(shè)備是集線器。
數(shù)據(jù)鏈路層:主要是將物理層接收來的數(shù)據(jù)進行MAC地址的封裝與解封裝,常把這一層的數(shù)據(jù)叫做幀。主要設(shè)備是網(wǎng)卡和交換機。
網(wǎng)絡(luò)層:選擇合適的網(wǎng)間路由交換節(jié)點,確保數(shù)據(jù)的及時傳送。將數(shù)據(jù)鏈路層傳來的數(shù)據(jù)進行IP地址的封裝與解封裝。常把這一層的數(shù)據(jù)叫做數(shù)據(jù)包,主要設(shè)備有路由器。
傳輸層:定義了一些傳輸數(shù)據(jù)的協(xié)議和端口,如TCP、UDP協(xié)議。
會話層:通過傳輸層建立數(shù)據(jù)傳輸通道,在系統(tǒng)之間發(fā)起會話和接受會話請求。
表示層:主要對接收的數(shù)據(jù)進行解釋和解壓縮。把計算機能夠識別的東西轉(zhuǎn)化為人能夠識別的東西(如圖片,聲音等)。
應(yīng)用層:主要是一些終端的應(yīng)用,比如FTP(各種文件下載)、瀏覽器,qq等

OSI數(shù)據(jù)封裝.png

8、IP地址、端口號、傳輸協(xié)議

IP地址:

1、網(wǎng)絡(luò)中的設(shè)備唯一標(biāo)識符
2、不易記憶,通??梢杂弥鳈C名
3、本地回環(huán)地址:127.0.0.1,主機名:localhost

端口號

1、應(yīng)用的標(biāo)識符
2、有效端口:0-65535,其中0-1024有系統(tǒng)使用或者系統(tǒng)保留。

傳輸協(xié)議(用什么方式進行交互)

1、通訊的規(guī)則
2、常見協(xié)議:TCP、UDP

9、TCP和UDP的區(qū)別

TCP:傳輸控制協(xié)議,長連接(和打電話很相似)

1、建立連接,形成通信管道。
2、必須經(jīng)過三次握手完成鏈接,是可靠的傳輸協(xié)議。
3、傳輸過程中數(shù)據(jù)大小不受限制。
4、必須建立連接,效率就會低

UDP:用戶數(shù)據(jù)包協(xié)議(和發(fā)短信很相似)

1、將數(shù)據(jù)的源和目的封裝在數(shù)據(jù)包,不需要建立連接。
2、正因為不需要鏈接,所以是不可靠的協(xié)議
3、傳輸數(shù)據(jù)在64K之內(nèi)
4、不需要建立連接所以,速度快。

http是短連接,TCP是長連接,即時通訊要使用長連接

10、Socket機制

1、Socket是網(wǎng)絡(luò)服務(wù)的一種機制
2、通信兩端都是Socket
3、網(wǎng)絡(luò)通信其實就是Socket間的通信
4、數(shù)據(jù)在兩個Socket之間通過IO傳輸

Socket.png

socket是"打開—讀/寫—關(guān)閉"模式的實現(xiàn),建立Socket連接至少需要一對套接字,其中一個運行于客戶端,稱為ClientSocket,另一個運行于服務(wù)器端,稱為ServerSocket。
套接字之間的連接過程分為三個步驟:服務(wù)器監(jiān)聽,客戶端請求,連接確認。

服務(wù)器監(jiān)聽:服務(wù)器端套接字并不定位具體的客戶端套接字,而是處于等待連接的狀態(tài),實時監(jiān)控網(wǎng)絡(luò)狀態(tài),等待客戶端的連接請求。

客戶端請求:指客戶端的套接字提出連接請求,要連接的目標(biāo)是服務(wù)器端的套接字。為此,客戶端的套接字必須首先描述它要連接的服務(wù)器的套接字,指出服務(wù)器端套接字的地址和端口號,然后就向服務(wù)器端套接字提出連接請求。

連接確認:當(dāng)服務(wù)器端套接字監(jiān)聽到或者說接收到客戶端套接字的連接請求時,就響應(yīng)客戶端套接字的請求,建立一個新的線程,把服務(wù)器端套接字的描述發(fā)給客戶端,一旦客戶端確認了此描述,雙方就正式建立連接。

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

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

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