谈论信令风暴
由于移動和騰訊微信負責爭吵近期問題,很多混合“知道真相”的big mouth。商收費的問題。無厘頭地作為電信運營商向用戶收費而破口大罵。
信令風暴的問題在去年開始有接觸。影響不是一般的大,對于擴容,有60%是因為信令過載引起的,全部也想整理一下各方材料。
信令風暴與空口有關(guān),而有人在微博上卻以為是承載在IP上的互聯(lián)網(wǎng)消息。而迫不及待地開罵。
終端在休眠時,觸發(fā)向發(fā)送數(shù)據(jù)(如心跳消息發(fā)送,有如微博消息提醒的定期向server查詢),須要主叫連接建立。分組控制功能塊(Packet Control Function,PCF)主要作為射頻部分與分組網(wǎng)絡(IP網(wǎng)絡)間的接口。
終端在休眠時。假設服務器向它推送數(shù)據(jù)(如push,即業(yè)務在IP上的建立TCP長連接實施server à client推送消息,注意IP層是PSDN后面的事情了)。須要被叫連接建立。
由此可見:
1、 假設連接處于休眠。不管是終端主動發(fā)送,還收被動接收,應須要進行進行空口信令的協(xié)商以進行激活;
2、 被動接收比主動發(fā)送須要的交換的空口信令多。尋呼過程中的容量表現(xiàn)為尋呼容量,接入過程中的前向信令容量容量表征為控制信道容量。接入過程中的發(fā)現(xiàn)信令容量有反向接入容量表征。而眼下的載扇的首要瓶頸在尋呼容量(尋呼容量小于控制信令容量和反向接容量)。假設容量不足必須進行擴容,否則會出現(xiàn)尋呼受阻。
微博業(yè)務是查詢類業(yè)務,為主叫連接。
微信類業(yè)務是雙向業(yè)務。為主叫連接和被叫連接。手機上有不同應用,不同業(yè)務之間的心跳/輪詢的發(fā)送時間不一致,push時間也不一致,假設同一時候Andriod后臺執(zhí)行若干應用,則累加的信令很可觀。而微信觸發(fā)激活的頻率特別高,特別消耗空口信令。
問題的關(guān)鍵在于:為什么終端會出現(xiàn)休眠,而導致不斷進行空口連接激活?
導致休眠有兩個方面:
一、 智能終端系統(tǒng)通過高速休眠(Fast Dormancy)的方式實施節(jié)能省電,提高電池續(xù)航能力。以下資料來自未經(jīng)驗證的網(wǎng)絡資料:Android智能手機頻繁休眠所帶來的信令是普通手機是否頻率的7.5倍[1]。也有某些資料說是10倍。詳細的Android和iOS系統(tǒng)進入休眠的時間查不到,能查到的僅僅是主進程堵塞的時間。大致是5秒,不清楚兩者是否關(guān)聯(lián)?
當智能手機在短期內(nèi)不使用時。它們將進入空暇狀態(tài)。當用戶須要使用時。須要和網(wǎng)絡進行信令交換來喚醒手機。
為了省電,高速休眠支持智能手機高速回到省電空暇狀態(tài)。詳細時間多長,沒有查到,可是程序須要對應用戶的操作,最要能在200ms(0.2s)之內(nèi)。假設超過5秒沒有反應,ActivityManager會沒有提示就kill了activity進程,激活須要又一次onCreate(),因此對于長時間操作。須要採用后臺程序。
寫過程序的都知道。要讓程序?qū)τ脩糨斎腠憫皶r,避免程序在某個操作時僵死的情況,那就要把耗時操作放到后臺去做。然后通過異步的通知或者回調(diào)來接著流程往下走。否則的話耗時操作會把主線程堵塞,導致程序非常長時間不回到主事件循環(huán)。這 在移動平臺上尤其重要,一般移動平臺上系統(tǒng)都會有一個專門的檢查機制,看程序有沒有非常長時間被堵塞住。沒有回來檢查主消息隊列。發(fā)現(xiàn)這樣的情況一般都是把程 序作為“無響應”干掉。iOS普通情況下是10秒為上限。10秒內(nèi)程序沒有回到主消息循環(huán)就被干掉。在前臺后臺切換時更嚴格,大概是5秒左右。[2]
二、運營商基站,假設連接長時間不用。也會將資源釋放出來。
依據(jù)資料[3]:中移動的 2.5G 網(wǎng)絡為例。經(jīng)過粗略測試,大約 5 分鐘左右的基帶空暇,連接就會被釋放,這就是為什么微信 Android 版本號選擇以“5 分鐘”為周期發(fā)送連接心跳。
導致不斷激活也有兩個方面:
一、 應用是怎樣實施心跳/輪詢機制。依據(jù)資料[4],微信具有:1)單次傳輸?shù)臄?shù)據(jù)量較小。 2)接入和釋放頻次較高;;3)在線時間長但傳送數(shù)據(jù)的時間非常短;;4)上下行傳輸?shù)臄?shù)據(jù)量較為對稱。具有典型的信令風暴業(yè)務的特點。
二、 有沒有可能多個應用同步實時心跳,這樣空口信令就可大量節(jié)省。
中國移動和騰訊的矛盾在于用戶為移動流量進行的支付,可是業(yè)務的空口信令資源,也即微信所依賴的基礎建設所有由運營商支付,而作為微信業(yè)務的主要盈利者騰訊公司沒有提供一分錢的基礎建設費用。
中移動方面提供的統(tǒng)計數(shù)據(jù)顯示,微信已經(jīng)占用了中移動60%的信令資源。但只帶來了10%的移動數(shù)據(jù)流量[5]。
正如電信行業(yè)的資深專家韋樂平所說:產(chǎn)業(yè)鏈關(guān)系失衡,建網(wǎng)者賠錢(利潤非常低),應用商賺錢(利潤高速增長),利益相上層互聯(lián)網(wǎng)應用上轉(zhuǎn)移,底層電信運營商邊緣化、低值化。韋總還說:基于IP承載層設計的移動互聯(lián)網(wǎng)業(yè)務應用與基于集中調(diào)度的移動網(wǎng)是天然不匹配的。基于IP層平等理念的業(yè)務應用開發(fā)導致了大量網(wǎng)絡容量和信令資源的浪費,但互聯(lián)網(wǎng)和移動網(wǎng)這兩邊誰也動不了。這話非常精彩,移動基站要集中調(diào)度,反復地利用頻譜資源。而平鋪的互聯(lián)網(wǎng)并不考慮這些。而在電信基礎建設運營商向互聯(lián)網(wǎng)運營商收費補貼基礎建設的博弈中,有一撥人有意無意地誤導為向用戶收費進行煽動。而一些自覺得懂點IT就是,會點編程,就覺得懂電信通信的人在起哄,只能說明運營商在已經(jīng)淪為弱勢群體。
為何公布這種感嘆,有些以學富五車自居的如 @李開復 就發(fā)出了如此不懂技術(shù)并極具誤導的微博,我分幾條微博評論道:實際剛好和不學無術(shù)的 @李開復 所說相反,為了避免QQ和微信造成基站的信令風暴,應該避免要使用這類互聯(lián)網(wǎng)服務。以保障基站有足夠容量可以為真正有須要的服務,盡量使用短信,少使用語音,不要使用QQ/微信。@李開復 將這條刪了,雖信口開河,但知錯能改。
但我仍極不喜歡他。他的big mouth常常不負責任。被稱人生誤導師,是有道理的。
[1] http://www.gsta.com/news/15006.html
[2] http://www.cnblogs.com/linyawen/archive/2012/07/24/2606709.html
[3] http://www.alibuybuy.com/posts/81071.html
[4] http://www.weste.net/2013/4-7/90227.html
[5] http://jingji.cntv.cn/2013/04/05/VIDE1365097318724308.shtml
轉(zhuǎn)載于:https://www.cnblogs.com/blfshiye/p/4582659.html
總結(jié)
- 上一篇: 返回一个二维整数数组中最大联通子数组的和
- 下一篇: CodeBlocks: 生成的exe文件