技術分析| 即時通訊和實時通訊的區別
即時通訊(IM)和實時通訊是一套網路通訊系統,其本質都是對資訊進行轉發。最大的不同點是對資訊傳遞的時間規定。二者的區別可以從以下幾個方面:
一、場景
常見的即時通訊 場景包括文字聊天、語音訊息傳送、檔案傳輸、音視訊播放等。通俗講就是發簡訊。
常見的實時通訊 場景包括語音電話、視訊電話會議、網路電話等。通俗講就是打電話。
二、產品需求點
即時通訊: 主要要求可靠,考核送達率。假如發一條簡訊,結果對方沒收到!你還相信簡訊嗎?
實時通訊: 主要要求低延時和接通率。
低延時: 你打電話每說一句,對方得幾秒鐘才有迴應,這電話你也講不下去了吧。
接通率: 打電話時你這邊顯示接通了,實際上對面的手機毫無反應,就是沒接通。這跟簡訊沒送到,造成的惡劣影響是一樣的。
可以參考下anyRTC的通訊技術文件,我們是覆蓋全媒體的,而且我們的編解碼技術在超低延時方面有很顯著的效果。
三、技術環節
即時通訊技術環節: 訊息傳送和確認,【訊息接入端、服務端訊息邏輯處理,服務端訊息快取和儲存,轉發,服務端使用者狀態管理,心跳機制,訊息傳送端】、訊息接收和確認。
實時通訊技術環節: 採集、前處理、編碼、【服務端接入、轉發、服務端接入】、解碼、播放和渲染。這些技術環節重合的部分是:資訊轉發。
四、傳輸協議
公共網際網路上,最常用的通訊協議有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就無法進行實時通訊了。
基於UDP協議,加上對丟包的情況開發了各種演算法進行補償,一方面儘量保證和恢復資料的連續性。另外一方面,當某些資料包無法恢復時,會丟棄對應的音視訊資料包,而不會影響後續的實時通訊服務。
五、成本
成本涉及到的環節有:服務端接入、儲存和轉發。 二者成本會產生差異的環節有:
服務端 方面,從它的接入方式來看,即時通訊採用TCP協議來保證可靠性,可能會建立多個連線,相比無連線的UDP傳輸方式,這是一種昂貴的傳輸方式。實時通訊可以基於UDP協議,與服務端建立靈活的、快速的接入機制。
儲存 方面,實時通訊在服務端是實時轉發,不會在服務端儲存資料,而即時訊息系統一般會將快取轉為儲存資料,包括富媒體資料,會佔用大量的儲存空間,產生更多的儲存成本。
成本 方面,傳輸同樣資訊量的資料,基於TCP的即時通訊方式,更側重於可靠性,會優先採用多線機房的傳輸方式,成本比較高。
而基於UDP的實時通訊方式,會優先選取最優路徑進行傳輸資料,並可以動態調整傳輸路徑,這樣能夠高效的利用頻寬,提高傳輸效率,降低成本。
- Android技術分享| ViewPager2離屏載入,實現抖音上下視訊滑動
- Android技術分享| Activity 過渡動畫 — 讓切換更加炫酷
- Linux下玩轉nginx系列(七)---nginx如何實現限流功能
- 技術分享| 如何部署安裝分散式序列號生成器系統
- web技術分享| 【地圖】實現自定義的軌跡回放
- 解決方案| 快對講綜合排程系統
- 實時訊息RTM| 多活架構中的資料一致性問題
- Android技術分享| Context淺析
- Android技術分享| Context淺析
- 螢幕共享的實現與應用
- 技術分析| 即時通訊和實時通訊的區別
- IOS技術分享| ARCallPlus 開源專案(二)
- Android技術分享| Android 中部分記憶體洩漏示例及解決方案
- Android技術分享| 安卓3行程式碼,實現整套音視訊通話功能
- 行業分析| 快對講Poc方案的優勢
- Android技術分享|【自定義View】實現Material Design的Loading效果
- IOS技術分享| ARCallPlus 開源專案(一)
- web技術分享| WebRTC控制攝像機平移、傾斜和縮放
- Android技術分享| anyLive 開源專案
- Android技術分享| 【Android 自定義View】多人視訊通話控制元件