即時通信(IM)和實時通信(RTC)的區別


即時通信(IM=nstant messaging)和實時通信(rtc=Real-time communication)都是一套網絡通信系統,其本質都是對信息進行轉發。其最大的不同點,是對信息傳遞的時間規定。二者的區別可以從以下幾個方面:

 

一、場景

  1. 即時通信

常見場景包括文字聊天、語音消息發送、文件傳輸、音視頻播放等。通俗的說,就是發短信。

  1. 實時通信

場景包括語音、視頻電話會議、網絡電話等。通俗的說,就是打電話。

 

二、要求

  1. 即時通訊

主要要求可靠,考核送達率。要是你發一條短信,結果丟了,對方沒收到!你再也不相信短信了吧。

  1. 實時通信

主要要求低延時和接通率。

    • 低延時:你打一通電話,每說一句話,對方得幾秒鍾才有回應,這電話你也講不下去了吧。
    • 接通率:你打電話,你這邊聽到接通了,實際上對方的手機毫無反應,這實際上就沒接通。

三、技術環節

  1. 即時通信

消息發送和確認,【消息接入端、服務端消息邏輯處理,服務端消息緩存和存儲,轉發,服務端用戶狀態管理,心跳機制,消息發送端】、消息接收和確認。

  1. 實時通信

技術環節:采集、前處理、編碼、【服務端接入、轉發、服務端接入】、解碼、播放和渲染。

 

這些技術環節重合的部分是:信息轉發。

 

四、傳輸協議

 

公共互聯網上,最常用的通信協議有TCP、UDP。

  • TCP:Transmission Control Protocol,傳輸控制協議是基於連接的協議,也就是說,在正式收發數據前,必須和對方建立可靠的連接。有延遲不可控的特點。
  • UDP:User Data Protocol,用戶數據報協議,是與TCP相對應的協議。它是面向非連接的協議,它不與對方建立連接,而是直接就把數據包發送過去。 存在丟包、抖動、延遲的特征。

 

即時通信系統為了保證連接的可靠性,最常用的是TCP協議或者類TCP連接協議。這類協議的特點是追求連接的可靠性,而造成了延遲的不可控性,超過2秒的延遲響應是常態,甚至幾十分鍾的延遲響應,而電信級的實時通信標准是400ms,而基於互聯網的實時通信需要另辟蹊徑,開創出新的傳輸解決方案。發短信,延遲幾秒鍾送達,對使用者影響不大。

 

實時通信,一般采用 UDP 作為基礎傳輸協議。在設計低延時的實時通信服務時,UDP 表現要比 TCP 好得多。這是因為實時通信中,低時延比可靠性更重要。打電話,幾秒的延遲是不能忍受的。

 

TCP協議封裝了消息的重傳機制,在丟包的情況下,采用TCP協議的應用程序幾乎無法優化這個重傳機制,來達到低時延的效果。特別是在移動互聯網絡中,超過30%丟包時,TCP 的延時可以到幾十分鍾, 超過 50%丟包時,甚至很容易斷開。 在同樣丟包30%的鏈路上,UDP還可以傳輸數據,TCP就無法進行實時通信了。

 

五、成本

 

成本涉及到的環節有:服務端接入、存儲和轉發。

 

二者成本會產生差異的環節有:

  • 從服務端接入方式來看,即時通信采用TCP協議來保證可靠性,可能會建立多個連接,相比無連接的UDP傳輸方式,這是一種昂貴的傳輸方式。實時通信可以基於UDP協議,與服務端建立靈活的、快速的接入機制。
  • 存儲方面,實時通信在服務端是實時轉發,不會在服務端存儲數據,而即時消息系統一般會將緩存轉為存儲數據,包括富媒體數據,會占用大量的存儲空間,產生更多的存儲成本。
  • 從成本上來看,傳輸同樣信息量的數據,基於TCP的即時通信方式,更側重於可靠性,會優先采用多線機房的傳輸方式,成本比較高;
  • 而基於UDP的實時通信方式,會優先選取最優路徑進行傳輸數據,並可以動態調整傳輸路徑,這樣能夠高效的利用帶寬,提高傳輸效率,降低成本。

六、可用的解決方案

  • 即時通信:XMPP,MQTT
  • 實時通信:WebRTC、Tokbox

 

免費的im與rtc示例:https://github.com/starrtc/android-demo


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM