微信收費(fèi)背后被廣泛忽略的技術(shù)細(xì)節(jié)
當(dāng)前位置:點(diǎn)晴教程→閑情逸致
→『 微信好文 』
作者:Oasis Feng,淘寶無線事業(yè)部高級(jí)技術(shù)專家,曾就職于華為核心網(wǎng)平臺(tái)技術(shù)部 作為一個(gè)橫跨通信與互聯(lián)網(wǎng)兩大行業(yè)的從業(yè)者,前四年的核心網(wǎng)經(jīng)驗(yàn)和后五年的互聯(lián)網(wǎng)經(jīng)驗(yàn)讓我不得不感慨一個(gè)非常遺憾的現(xiàn)實(shí):通信與互聯(lián)網(wǎng)兩大行業(yè) 本來可以有珠聯(lián)璧合的技術(shù)協(xié)同,為移動(dòng)互聯(lián)網(wǎng)提供近乎零耗電零流量的PUSH機(jī)制,但由于兩個(gè)行業(yè)之間長期以來的價(jià)值觀隔閡和互防心態(tài),導(dǎo)致如今的手機(jī) PUSH技術(shù)不僅為用戶增加了顯著的電量消耗,還對(duì)移動(dòng)運(yùn)營商的基礎(chǔ)設(shè)施造成了完全不必要的信令壓力。微信與運(yùn)營商的紛爭正是這種沖突集中爆發(fā)的結(jié)果。 看到不少來自兩個(gè)行業(yè)的專業(yè)分析,通信行業(yè)的專家譴責(zé)微信過于頻繁的心跳和短包導(dǎo)致“信令風(fēng)暴”,而互聯(lián)網(wǎng)人士則往往站在用戶與道德的制高點(diǎn)上對(duì)移動(dòng)運(yùn)營商挖苦譏諷,雙方都很少探究這個(gè)問題的深層次技術(shù)和利益矛盾。這里我不妨提一提有些大家沒有真正重視的技術(shù)細(xì)節(jié)。 為什么使用同樣PUSH技術(shù)的Apple和Google等巨頭,沒有被運(yùn)營商卯上,唯獨(dú)單單拿微信下手?大家也許會(huì)認(rèn)為這是運(yùn)營商欺軟怕硬,拿 Apple和Google沒辦法。其實(shí)從實(shí)際數(shù)據(jù)上來看(下面將提到),微信確確實(shí)實(shí)產(chǎn)生了遠(yuǎn)超Apple和Google的信令需求。難道是因?yàn)轵v訊技不 如人,被逮著了尾巴?其實(shí)不然,我們?cè)?jīng)也在PUSH技術(shù)上投入了較多的分析研究,其中一項(xiàng)發(fā)現(xiàn)或許可以解釋各種原委。 根據(jù)分析,一般當(dāng)基帶空閑超過一定時(shí)間后,運(yùn)營商的IP網(wǎng)關(guān)會(huì)自動(dòng)釋放(關(guān)閉)連接。目前各家所使用PUSH通道的實(shí)現(xiàn)原理雖然同為“長連接慢 心跳”,但這個(gè)“慢”字卻有很大的文章。Google在Android系統(tǒng)中使用蜂窩(2G/3G)網(wǎng)絡(luò)連接GCM的PUSH通道時(shí),默認(rèn)采用的心跳周期 是28分鐘,這才是所謂“慢”的含義 —— 盡可能降低心跳的頻度,從而達(dá)到盡量省電的目的。 但這個(gè)放諸全球絕大部分地區(qū)借行得通的規(guī)則,到了中國大陸,就出現(xiàn)了問題。以中移動(dòng)的2.5G網(wǎng)絡(luò)為例,經(jīng)過粗略測(cè)試,大約5分鐘左右的基帶空閑,連接就會(huì)被釋放,這就是為什么微信Android版本選擇以‘5分鐘’為周期發(fā)送連接心跳。 可能有人會(huì)有疑問了,“那Google以28分鐘發(fā)送心跳,豈不是在中移動(dòng)的2.5G網(wǎng)絡(luò)下無法保持PUSH長連接?”事實(shí)上,確實(shí)如此,這也 是為什么Google的PUSH通道經(jīng)常“遲到”。當(dāng)我們活躍使用手機(jī)時(shí),由于基帶往往并不會(huì)閑置,所以部分掩蓋了問題的本質(zhì)。另外,當(dāng)連接到Wi-Fi 時(shí),寬帶的網(wǎng)關(guān)一般沒有空閑釋放機(jī)制,所以長連接會(huì)得到保持,這也進(jìn)一步減少了我們平時(shí)遭遇的PUSH遲到。 “5分鐘”的心跳周期到底是什么概念?可以理解為,每部安裝了微信的Android設(shè)備每天發(fā)送近300條短信(其實(shí)占用的信令資源還遠(yuǎn)超這個(gè) 數(shù)量);還意味著每天你的手機(jī)將被從待機(jī)省電狀態(tài)喚醒近300次,每次相當(dāng)于打一個(gè)幾秒鐘的電話。粗略測(cè)算,一般的Android手機(jī)每天有超過 15-20%的電量被消耗在發(fā)送過度頻繁的心跳上。 其實(shí),這都還遠(yuǎn)不是最糟糕的事情。由于眾所周知的原因,大陸行貨渠道發(fā)售的Android手機(jī)都無法使用Google的PUSH通道,原本每個(gè) 手機(jī)中只需要建立的唯一共享的PUSH通道,被人為分裂,以至于每一個(gè)聲稱為用戶提供實(shí)時(shí)通知的國內(nèi)App,基本都在重復(fù)上面微信所做的行為。當(dāng)你的手機(jī) 中同時(shí)安裝了多個(gè)這類App時(shí),無論手機(jī)的耗電,還是運(yùn)營商的信令負(fù)擔(dān),都要數(shù)倍于上述情形。 雖然我向來不憚以最壞的惡意揣測(cè)國內(nèi)的壟斷巨頭,但在這個(gè)事情上,中移動(dòng)或許確有它的苦衷。正如很多技術(shù)文章中所言,2G網(wǎng)絡(luò)的基礎(chǔ)結(jié)構(gòu)和協(xié)議 并未針對(duì)IP傳輸優(yōu)化,其服務(wù)IP鏈路的信令承載能力相對(duì)較弱,而TD-SCDMA又長期得不到真正的發(fā)展,導(dǎo)致中移動(dòng)的2.5G網(wǎng)絡(luò)承受了超齡超載的負(fù) 荷??桃饪s短空閑連接的釋放超時(shí),可能原本是期望能起到節(jié)省信道資源的目的,沒想到聰明反被聰明誤,這一限制性的舉措讓互聯(lián)網(wǎng)應(yīng)用不得不以遠(yuǎn)高于正常的頻 率發(fā)送心跳以維持PUSH長連接,結(jié)果大大加重的信令負(fù)擔(dān),給本就脆弱的2.5G網(wǎng)絡(luò)雪上加霜,而且更給用戶的手機(jī)造成了遠(yuǎn)超常規(guī)PUSH技術(shù)的電量消 耗,造成了如今這一“三輸”的格局。 其實(shí),不光是微信,整個(gè)移動(dòng)互聯(lián)網(wǎng)行業(yè)都在努力解決PUSH機(jī)制目前所面對(duì)的各方面問題。包括Google、Apple這樣在整個(gè)行業(yè)舉足輕重 的巨頭,都僅僅在OSI通信協(xié)議的4層以上作各種努力,目前幾乎所有的PUSH機(jī)制都基于“TCP長連接慢心跳”方式實(shí)現(xiàn)。雖然“慢心跳”如果得以正常工 作,可以在一定程度上降低手機(jī)基帶模塊的工作頻度,但無論互聯(lián)網(wǎng)行業(yè)在技術(shù)上再如何標(biāo)榜“PUSH”相比“PULL”的流量優(yōu)勢(shì),但在OSI的下三層來 看,基帶模塊所承受的負(fù)擔(dān)和“PULL”仍然沒有本質(zhì)差別。這就決定了耗電問題不可能從互聯(lián)網(wǎng)技術(shù)層面徹底解決。 事實(shí)上,在移動(dòng)通信網(wǎng)絡(luò)中,信令是一種天然的最佳PUSH載體,它不需要任何IP層的收發(fā)包(也就不需要TCP連接)就能實(shí)現(xiàn)秒級(jí)的實(shí)時(shí)性,最 重要的是它沒有任何額外的電量負(fù)擔(dān),手機(jī)完全只需處于正常的待機(jī)狀態(tài)。可惜移動(dòng)運(yùn)營商只會(huì)將其運(yùn)用在一本萬利的SMS(及WAP PUSH)服務(wù),壓根不可能無償提供給互聯(lián)網(wǎng)產(chǎn)業(yè)使用。結(jié)果,互聯(lián)網(wǎng)行業(yè)選擇了雖然不用付費(fèi),但卻代價(jià)高昂的“TCP長連接”,只為讓用戶享受到免費(fèi)的通 知服務(wù)。 這種兩大行業(yè)置用戶體驗(yàn)于不顧的分庭抗禮,已經(jīng)相持近10年,而當(dāng)互聯(lián)網(wǎng)終究開始以免費(fèi)服務(wù)反噬移動(dòng)運(yùn)營商的SMS甚至語音業(yè)務(wù)時(shí),運(yùn)營商再也 坐不住了…… 但與其飽受信令風(fēng)暴的折磨,不如主動(dòng)免費(fèi)開放信令通道作為更高效的PUSH通道給互聯(lián)網(wǎng)產(chǎn)業(yè)使用,再以‘免費(fèi)增值’的思路構(gòu)建有QoS保障的VIP PUSH服務(wù)。不僅可以大幅度節(jié)約信令資源,更能以用戶體驗(yàn)的提升打造核心競(jìng)爭優(yōu)勢(shì)和增值空間。能否走出這樣一條轉(zhuǎn)折的道路,就看運(yùn)營商是否愿意轉(zhuǎn)變思維 了。 注:由于iOS系統(tǒng)的相對(duì)封閉性,暫時(shí)未能測(cè)定Apple的Push通道APNS在2.5G網(wǎng)絡(luò)下的長連接心跳周期。歡迎了解的朋友補(bǔ)充測(cè)試數(shù)據(jù)。 該文章在 2013/4/17 22:18:55 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |