移动端IM开发者必读(一):通俗易懂,理解移动网络的“弱”和“慢”
1、前言
隨著移動互聯網的高速發展,移動端IM以移動網絡作為物理通信載體早已深入人心,這其中的成功者就包括微信、手機QQ、支付寶(從即時通訊產品的角度來看,支付寶已經算的上是半個IM了)等等,也為移動端即時通訊開發者帶來了各種可以參考的標桿功能和理念:語音對講、具有移動端體驗特性的圖片消息、全時在線的概念、真正突破物理體驗的實時通知等。
上述IM產品、功能和概念,在開發者間討論時,無一例外都會被打上“移動端”這個特性,從網絡通信的角度來說,這個特性的本質可以認為就是移動網絡的特性。
以文件發送為例,傳統的PC端IM(可以簡單地理解為傳統有線網絡上的IM)可以直接實時點對點發送(理論上無需經過服務器中轉)。
但在移動端IM里我們并不能這么干,原因是:
?
- 1)3G/4G/5G網絡下P2P成功率并沒有那么高(因為是對稱型NAT,詳見《通俗易懂:快速理解P2P技術中的NAT穿透原理》);
- 2)移動網絡的信號跳變、抖動很難預測(甚至在你轉身的瞬間,信號可能會立馬由強變弱);
- 3)移動網絡的延遲、丟包、重傳等導致通信體驗很差(就像從國內訪問國外的網站那種“慢”,體驗上是相似的);
- 4)延遲、丟包、重傳帶來的另一個后果就是電量消耗、流量消耗過大,這些都是不可接受的;
- 5)智能手機(主要是Android、iOS)的系統省電策略,導致網絡可能被阻斷,甚至進程被殺死,功能沒辦法在后臺繼續工作。
所以,正是移動網絡的這些特性,使得原本在傳統PC端再普通不過的功能(比如上面說的文件發送),在移動端IM中卻不得不另想辦法:以文件發送為例——主流的移動端IM現在都是使用服務器中轉來搞定的。使用類似技術實現的功能,還有移動端IM里語音短消息的AMR音頻小文件、圖片消息的圖片文件等。
那么回歸到本文的正題:移動網絡為什么會存在“弱”和“慢”這樣的特性?
這個問題網絡工程師來回答最為合適,對但于應用層的程序員來說,有關移動網絡的理論太生澀枯燥,太難理解了。而對于網絡工程師來說,他們也不理解“你們這些程序員到底在糾結移動網絡的什么鬼?”。
就像黃品源的那首《那么愛你為什么》的歌曲里面莫文蔚的一段念白:“我講又講不清,你聽又聽不懂......”。這大概是應用層程序員很難能找到通俗易懂的有關移動網絡資料的原因吧。
所以本文的目的,就是希望以通俗易懂的語言,幫助移動端IM開發者更好地理解移動網絡的各種特性,使得開發出的功能能更好地適應移動網絡,給用戶帶來更好的使用體驗。
?
網易云信,你身邊的即時通訊和音視頻技術專家,了解我們,請戳網易云信官網
想要行業洞察和技術干貨,請關注網易云信博客
本文轉載自52im,作者:JackJiang
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的移动端IM开发者必读(一):通俗易懂,理解移动网络的“弱”和“慢”的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 互联网1分钟 | 1017
- 下一篇: 网络编程懒人入门(一):快速理解网络通信