微信的信令风暴将人们的目光导向心跳机制,那么心跳机制是怎么回事呢?

  最早的心跳机制用于服务器的安全备份机制,是为了防止服务器死机,而在服务器之间采用专用的端口和线路,周期性传送简短的信息,心跳就是形象的比喻。一旦收不到对方的心跳信息,服务器可以接管对方的业务,避免业务的停滞。为了业务的顺畅进行,服务器发送的心跳信息可以非常频密。

  这种机制被手机上的互联网应用所借用,无论是Android的原生应用,还是QQ、微博和微信,都采用了这种心跳机制,也就是终端定时向应用服务器发送简短的信息。但是与服务器之间的心跳机制相比,还是有一些差别:

  1. 心跳信息是单方向的,只有终端发到应用服务器;

  2. 心跳信息的周期比较长,比如旧版QQ的心跳周期为30s,新版QQ为180s,微信为300s,Google原生应用为1680s左右。

  另外,互联网应用的心跳包除了宣告终端在线外,还有一项重要的任务,就是提供终端的即时地址,方便应用服务器的寻址。

  有了互联网应用的心跳机制,应用服务器可以及时下发(Push)用户相关的信息,比如微信中的短消息、图片或者语音等。

  心跳包也会带来很多副作用,比如终端更为费电,还可能给移动通信网络带来信令风暴。

  看起来很完美的心跳机制,为什么会给移动通信网络带来信令风暴呢?

  原来,移动通信网络中由于用户众多、资源稀缺,每个用户都是动态占用资源,比如IP地址以及无线信道。每次发送心跳包,都需要移动通信网络为用户分配资源,分配的过程体现在信令的发送和接收上。一次心跳包的发送过程,牵涉的信令多达几十条。

  随着互联网APP的普及,大量的终端周期性地发送心跳包,效果类似于IP网络中的DDOS(分布式拒绝服务攻击,一种常用的黑客攻击手段),必然对移动通信网络设备带来冲击,造成拥塞等情况,这种现象就是信令风暴。信令风暴不仅中国移动的GPRS网络存在,中国联通的WCDMA网络、中国电信的CDMA网络都存在。由于中国移动用户数量庞大,因此信令风暴的影响更显著而已,简而言之,就是50步与100步的差别。

  互联网APP的心跳机制对移动网络的冲击很大,那么有什么方法可以缓解乃至解决这个问题呢?

  从互联网APP的角度看,应该区分是移动网络接入还是WLAN接入,智能调整心跳包的发送频率。在移动网络接入时,降低心跳包的发送频率,这样虽然服务器推送的信息会有一些延迟,但是终端更省电,移动网络更稳健。比如旧版QQ的心跳周期为30s,新版QQ为180s,微信为300s,已经呈现出逐步延长的趋势,还可以再调整,直至接近Google原生应用的1680s左右。

  目前,互联网APP心跳包的发送频率由APP一手包办,这是不合理的,应该开放给用户进行设置,允许用户在省电和及时等多个场景间切换。

  现在每个人的手机上都装有多个互联网APP,比如QQ、微信、微博和淘宝等,如果每个APP都发送心跳包,心跳包的发送频率将大幅增加。像微信、QQ 等APP,可以考虑联合发送心跳包,这样可以减少不少心跳包。另外如果从操作系统的层面统一心跳包,效果会更好。苹果的IOS已经做了一个很好的尝试,建立了一个位置寄存器APNS,将所有的APP联合起来,统一发送心跳。Android系统其实也可以如法炮制,据称小米手机有意这样做,像阿里OS也应该可以做。运营商自己开发的OS更加应该是这方面的表率。

  终端侧的这些做法,将能有效减少心跳包的发送,从而缓解信令风暴。

  从网络侧的角度,如果终端发送心跳包是一个既成事实的话,及时进行设备扩容就是势在必行的了。目前看,基站控制器以及核心网的设备受信令风暴的影响大,需要优先扩容。当然,运营商有苦衷,认为是在帮APP打工。但是,运营商也必须明白顺势而为的重要性,与其被动接招,不如早作打算。

  什么打算呢?就是宣传从移动网络的角度看,心跳包并不是必须的。利用短消息与APP深度整合,不用心跳包也可以方便地实现APP消息的推送,又节省终端的电力,又避免对移动网络的冲击,两全其美,何乐不为呢?

  这样釜底抽薪后,心跳机制对移动网络的冲击将是可以控制的了。

转自:从微信谈起,如何优化互联网APP心跳机制|微信|心跳|运营商_通讯与电讯_新浪科技_新浪网

从微信谈起,如何优化互联网APP心跳机制——孙宇彤相关推荐

  1. 从微信谈起,如何优化互联网APP心跳机制

    原文:http://tech.sina.com.cn/t/csj/2013-04-24/09288273431.shtml 微信的信令风暴将人们的目光导向心跳机制,那么心跳机制是怎么回事呢? 最早的心 ...

  2. [原创]浅谈移动互联网App兼容性测试

    [原创]浅谈移动互联网App兼容性测试 今天要谈的话题,估计各位测试都有感受,移动互联网App兼容性测试,我们到底测试覆盖如何去挑选机型?具体移动App兼容性测试如何开展?是不是应引进像testin这 ...

  3. (转载)7 .24张小龙内部讲座《通过微信谈产品》完整版

     7 .24张小龙内部讲座<通过微信谈产品>完整版 benimaru zhang 2012-08-01 22:26 18条评论  编者按:7月24日微信之父张小龙在腾讯内部的一次讲座, ...

  4. 张小龙:通过微信谈产品

    摘要:张小龙<通过微信谈产品>内部PPT据说有178页.没对外开放,感谢<商业价值>整理出完整的文字版. 今天从一个小故事开始讲:为什么苹果的手机只有一个按钮? (台下:我觉得 ...

  5. 7 月 24 号张小龙内部讲座《通过微信谈产品》

    7 月 24 号张小龙内部讲座<通过微信谈产品>有哪些亮点? 相关问题: 张小龙 2012 年 7 月 24 日的演讲,哪些值得称道或不足?  请选择一个修改理由...1. 不构成问题,需 ...

  6. 张小龙通过微信谈产品完整版:如何把产品做简单

    摘要:张小龙<通过微信谈产品>内部PPT据说有178页.没对外开放,感谢<商业价值>整理出完整的文字版. 今天从一个小故事开始讲:为什么苹果的手机只有一个按钮? (台下:我觉得 ...

  7. 微信公众号会替代手机APP吗?

    昨晚和一群朋友聚会,一位做电商的创始人宣称,他已经在微信公众号的运营中吸引了大量的用户,并达成了客观的交易量,他认为公众号将能取代90%的手机APP,"赶紧转行吧",他笑着对一帮以 ...

  8. 详解互联网APP架构2.0

    详解互联网APP架构1.0 详解互联网APP架构2.0 经过几个月业务的沉淀,明确出几个具体的业务方向,原本的架构已经不适合现在的项目. 下面从几个方向介绍我们的切换思路: 1.原本架构存在几个问题 ...

  9. 详解互联网APP架构1.0

    详解互联网APP架构1.0 详解互联网APP架构2.0 由于最近负责一个互联网APP项目,需要重新设计架构,这边架构已经设计完成,跟小伙伴们分享下设计思想: 首先我们分析大概的需求,可归结为以下几点: ...

最新文章

  1. wifiphisher 钓鱼工具的使用
  2. BZOJ1021 [SHOI2008]循环的债务
  3. Truffle合约交互 - WEB端对以太坊数据的读写
  4. Backpropagation Through Time:What it Does and How to Do it论文解读
  5. 机器学习模型评分总结(sklearn)
  6. 《Linux编程》学习笔记 ·001【基本操作、常用命令】
  7. 【离散数学】单向连通和弱连通的区别
  8. 计算机音乐演奏jojo,【FF14】诗人演奏用 il vento d'oro(动画《JOJO的奇妙冒险 黄金之风》插曲)...
  9. educoder 1-1Python 计算思维训练——公式编程
  10. enum ordinal java_Spring 3.x自动将枚举的ordinal值转换为枚举类型
  11. IE 代理服务器设置程序实现
  12. csu1706irrational root
  13. 银河麒麟服务器操作系统(Kylin) V10 arm64 飞腾/鲲鹏操作系统下载
  14. 爬虫问题,内容应该如何解码,base64解码技巧,从哪里开始分析
  15. 织梦cms是什么-织梦CMS免费搭建工具只需要输入域名
  16. 游戏黑客圣经GHB1学习笔记 part1(1-5)
  17. 爬虫入门经典(九) | 简单一文教你如何爬取扇贝单词
  18. 关于MODIS数据说明及简单处理
  19. 非核心版本的计算机上_软件测试之兼容性测试(上)
  20. uni-app相机组件实现自定义二维码扫描

热门文章

  1. 腾讯位置 - 产品介绍(结尾附源码)
  2. 广州大学 计算机学院学硕考研分数线,2020广州大学研究生分数线(以及历年复试)...
  3. H3C QoS配置经典讲解
  4. 用友U8/T3各版本下载
  5. 郭大侠与Rabi-Ribi
  6. krypt服务器支持voip嘛,Krypt.com
  7. 成为CSDN博客专家_李孟_新浪博客
  8. Java使用poi导入Excel
  9. rman的duplicate复制数据库
  10. 计算机二级考试python怎么报名_计算机二级报名流程和条件