push推送機制與IM即時通訊的長連接機制二者的異同

長鏈接安全

概念:多用於操做頻繁,點對點的通信,並且鏈接數不能太多狀況。指在一個鏈接上能夠連續發送多個數據包(心跳包,防止NAT超服務器

時,及探測鏈接是否斷開),在鏈接保持期間,若是沒有數據包發送,須要雙方發鏈路檢測包。網絡

做用:多用於操做頻繁,點對點的通信,並且鏈接數不能太多狀況。架構

要求:服務器的開銷、穩定性和要求很大。


socket

短鏈接網站

概念:指通信雙方有數據交互時,就創建一個鏈接,數據發送完成後,則斷開此鏈接,即每次鏈接只完成一項業務的發送。接口

示例:像WEB網站的http服務通常都用短連接;或手機端APP的網絡請求。


進程

PUSH推送機制事務

經過創建一條手機與服務器的鏈接鏈路(長鏈接),當有消息須要發送到手機時,經過此鏈路發送便可。 相似於iOS的APNS類似,資源

必需要注意的是iOS客戶端、自建服務器與服務器之間須要推送證書進行連接。

實現步驟以下:

一、首先是應用程序註冊消息推送。

二、iOS跟APNS Server要deviceToken。應用程序接受deviceToken。

三、應用程序將deviceToken發送給PUSH服務端程序。

四、服務端程序向APNS服務發送消息。

五、APNS服務將消息發送給iPhone應用程序。


IM即時通訊機制

即時通信(Instant Messenger,簡稱IM)是基於TCP/IP和UDP進行通信的,TCP/IP和UDP都是創建在更低層的IP協議上的兩種通

訊傳輸協議。前 者是以數據流的形式,將傳輸數據經分割、打包後,經過兩臺機器之間創建起的虛電路,進行連續的、雙向的、嚴

格保證數據正確性的文件傳輸協議。然後者是以數據報的形式,對拆分後的數據的前後到達順序不作要求的文件傳輸協議。

UDP:User Datagram Protocol用戶數據報協議。一種無鏈接的傳輸層協議,提供面向事務的簡單不可靠信息傳送服務。面向無鏈接

的、不可靠的鏈接(其可靠性由應用層負責)。

TCP/IP:Transmission Control Protocol傳輸控制協議,又名網絡通信協議。負責發現傳輸的問題,一有問題就發出信號,要求從新

傳輸,直到全部數據安全正確地傳輸到目的地。面向鏈接的、可靠的(數據無丟失、無失序、無錯誤、無重複)、基於字節流的連

接。

 

三次握手創建鏈接:

一、報文發送狀態:客戶端發送SYN(SYN=x)報文給服務器端,進入SYN_SEND狀態。

二、報文接收狀態:服務器端收到SYN報文,迴應一個SYN(SYN=y)ACK(ACK=x+1)報文,進入SYN_RECV狀態。

三、創建鏈接狀態:客戶端收到服務器商的SYN報文,迴應一個ACK(ACK=y+1)報文,進入Established狀態。

四次揮手斷開鏈接:

一、客戶端關閉本身的socket,同時內核協議棧向服務器發送一個FIN置位包,請求斷開鏈接。

二、服務器接收到客戶端的FIN斷開請求後,內核協議棧發送一個ACK包給客戶端,表示已經收到客戶端的請求。

三、服務器運行一段時間後,關閉本身的socket,同時內核協議棧向客戶端發送一個FIN置位包,請求斷開鏈接。

四、客戶端收到服務器的FIN斷開請求後,發送一個ACK作出應答,表示已經收到服務器的請求。


Internet Protocol因特網互聯協議,是給因特網的每一臺聯網設備規定一個地址,即至關於指定一條源地址和目的地址之間的直接路

徑。

TCP/IP定義了電子設備如何連入因特網,以及數據如何在它們之間傳輸的標準。協議採用了4層的層級結構,每一層都呼叫它的下一

層所提供的協議來完成本身的需求。

IPv4是互聯網協議(Internet Protocol,IP)的第四版,它的最大問題是網絡地址資源有限(IPv4中規定IP地址長度爲32,即有2^32-

1個地址)。

IPv6是(Internet Protocol Version 6)互聯網協議的第六代。用於替代現行版本IP協議(IPv4)的下一代IP協議。具備更大的地址空

間(IPv6中IP地址的長度爲128,即有2^128-1個地址)、使用更小的路由表、增長了加強的組播支持以及對流的控制、加入了對自

動配置的支持、具備更高的安全性。



4層層級架構:

網絡接口層:也叫鏈路層,指出主機必須使用某種協議與網絡相連。

網絡層:相鄰計算機之間的通訊。包括處理傳輸層的請求、處理輸入數據報、處理路徑/流控/擁塞等。

傳輸層:也叫運輸層(UDP、TCP),應用程序之間的通訊,即傳源端和目的端機器上的對等實體能夠進行會話。包括格式化信息

流、可靠傳輸。

應用層:使用軟件,即向用戶提供一組經常使用的應用程序。如:遠程登陸、郵件、文件傳輸。



UDP與TCP的異同

一、數據報發送時,UDP不能保證數據的完整性(可能會出現丟失)。TCP協議中包含了專門的傳遞保證機制,當數據接收方收到發

送方傳來的消息時會自動向發送方確認消息,發送方只有在接收到確認消息後才繼續發送其餘信息。UDP協議沒有包含專門的傳遞

保證機制,發送方到接收方的傳遞過程當中出現數據報的丟失,協議自己不作任何檢測。

二、多個數據報同時發送時,UDP不能保證數據的發送和接收順序。

三、TCP因協議中的安全保障功能,會佔用大量系統開銷,嚴重影響速度。

四、UDP無安全保證機制,減小了執行時間保證了速度。



推送與IM的異同

相同點:

一、程序在前臺時,push推送能收到信息,IM也能收到信息。

二、push推送和IM都是使用長鏈接的技術實現;push推送是IM技術的簡化版。

三、push依託系統的常駐進程,獨立於應用以外。即至關於只有手機開機了就創建了設備與服務器之間的長鏈接。

四、IM依託實際的某個應用,在應用以內。即當應用啓用且在前臺運行前登陸狀態時,就創建了應用與服務器之間的長鏈接。

不一樣點:

一、push推送無論程序在前臺仍是後臺運行都能接收到信息;而IM在後臺一般是不能接收到信息的(除非加入了平臺商的白名單)。

相關文章
相關標籤/搜索