《 空中接口学园 》
>>   业界观察
>>>>  透视互联网APP的心跳机制

--  作者:tom
--  发布时间:2013-04-18 15:40:16
微信的信令风暴将人们的目光导向心跳机制,那么心跳机制是怎么回事呢?

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

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

还是有一些差别:

  1. 心跳信息是单方向的,只有终端发到应用服务器;
  2. 心跳信息的周期比较长,比如旧版QQ的心跳周期为30s,新版QQ为180s,微信为300s,Google原生应用为1680s左右。

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

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

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

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

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

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

  解决的办法也是有的,一方面心跳机制还需要优化,比如降低心跳包的发送频率,允许用户调低心跳包的发送频率,多应用联合发送心跳包。

  另外一方面还可以做大胆的革新,互联网APP不用IP来寻址,而是用电话号码来寻址,这样借用移动通信网络原生的寻呼机制,就可以不用心跳包了。

[此贴子已经被作者于2013-4-18 15:58:23编辑过]

--  作者:JackLin
--  发布时间:2013-04-19 00:36:09
最近这个话题很火,Tom从专业的观点分析了这个信令风暴的产生原因以及提供的一些解决办法,感觉说得不错,这是我喜欢这个论坛的原因。
看完之后,我也有一点想法:APP要保持在线,包括让别人(好友之类)可见,那么必须得发心跳给服务器,即便是有线互联网,也是得通过心跳机制来让服务器知道,如今有线互联网的信令风暴已经比较少见了,但是为什么在移动互联网里面还很严重呢,我感觉这个信令风暴发生点并不在核心网这一侧,倒是在无线接入网这一侧,tom觉得呢?
--  作者:tom
--  发布时间:2013-04-19 08:34:29
没错,移动网络与固定网络还是有显著差别的,因此信令风暴对移动网络的影响更显著。现在的心跳机制过于机械,对移动网络的压力过大。

  关于整个网络的讨论,这里有我发起的一个讨论,不妨看看:http://gprshome.com/thread-3894-1-1.html


--  作者:JackLin
--  发布时间:2013-04-19 13:24:37
那个帖子很热闹啊,很不错。
“另外一方面还可以做大胆的革新,互联网APP不用IP来寻址,而是用电话号码来寻址,这样借用移动通信网络原生的寻呼机制,就可以不用心跳包了。” 感觉这个的实施起来又问题,互联网APP如果不用IP来寻址,那么怎么找到服务器呢?利用电话号码来寻址只能在无线接入网内,因为在互联网内IPv4里面2^32个IP地址早已经用完了,所以说把MSISDN弄成的32位放到互联网是行不通的,因为会和已存在的IP冲突的。在互联网内不用IP是不行的。微信客户端A和B之间的通信并不是直接的A发给B,B发给A,而是A发给服务器S,S再发给B的,而S是在互联网内以IP地址来识别的。
--  作者:tom
--  发布时间:2013-04-19 15:15:17
你可能没有仔细看,压缩的MSISDN只用于移动网络内,相当于内网,到时GGSN需要翻译一下。

  与这篇文章的思路:《基于IP PUSH实现移动互联网应用的永远在线》http://www.cqvip.com/qk/91404x/201208/43452193.html类似。


--  作者:JackLin
--  发布时间:2013-04-20 21:36:51
嗯,我以为是直接连进互联网了,这样用于移动网络内部是可以的。通过IP PUSH可以彻底的解决心跳机制的带来的问题。不过我看那篇文章感觉不是很懂,引入的AOI压力应该比较大吧?PS PUSH和CS PUSH我也不清楚。最后又个问题是,假如每个MSISDN直接对应一个IP地址的话,当UE移动时候,这样的固定IP地址的路由会不会是个问题?
--  作者:tom
--  发布时间:2013-04-21 07:44:39
CS就是没有数据连接,比如关闭手机的数据连接时的情况;PS就是打开了数据连接,或者正在进行数据业务,这时也是可以收SMS的。

  移动网络内部寻址可以不用IP,而直接用MSISDN。


目前已经有7条评论    >>> 发表你的见解

Powered by:Old version
Copyright ©2002 - 2019空中接口学园 , 页面执行时间:15.625毫秒