《 空中接口学园 》
>>   业界观察
>>>>  微信事件的技术根源

--  作者:tom
--  发布时间:2013-04-16 16:54:35
微信事件的技术根源其实还是在于移动通信网络与互联网的寻址方式不同,不匹配。

  移动通信网络用电话号码,简称MSISDN,这是固定的;互联网通常采用动态的IP地址,每次业务过程都需要分配。微信等互联网应用为了摆脱移动通信网络,从而实现免费的目的,直接使用IP地址,而不是采用电话号码。互联网应用为了避免IP地址被释放,造成无法寻址,只好引入了心跳机制。

  其实,移动终端在移动网络中的状态是明确的,可以被移动网络掌握的。互联网应用如果能与移动网络建立联系,通过电话号码寻址,心跳包就大可不必了。


--  作者:tom
--  发布时间:2013-04-16 17:11:35
具体操作方式是:
  终端发出的数据包对IP包头做一下修正,源地址改为MSISDN的低9位,而不是终端获得的IP地址。

  GGSN在发出数据包时,将源地址改为自己的地址池的IP地址,并建立MSISDN与IP地址的连接关系。

  GGSN在收到数据包后,根据MSISDN与IP地址的连接关系,将目的地址翻译为MSISDN的低9位,再寻址到终端。

  优点:
  无需为终端分配IP地址,简化建立过程,解决心跳包问题。

  缺点:
  需要翻译设备,有可能MSISDDN的低9位重复。


--  作者:tom
--  发布时间:2013-04-17 14:28:01
现在想了一种32比特放MSISDN的方法。

  MSISDN中真正用来标示用户号码的一共有10位,也就是号段的后2位以及8位的用户号码。通常,可以采用BCD码来表示每一位的数字,每一个BCD码占用4个比特,完整表示一个MSISDN号码需要40比特。如果不采用BCD码,直接采用二进制数字来表示MSISDN号码,那么仍然需要34比特。

  怎么办呢?其实中国运营商的号段是有规律的,目前号段的第2位只有3、4、5、8,因此将号段的第2位编码为2比特,其余9位编码为30比特的二进制数字,32比特就可以完整表示出MSISDN,而且不会重复了。


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

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