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