主题 : 硬核科普!携号转网的技术原理分析
千山同一月 万户尽皆春 千江有水千江月 万里无云万里天
级别: 总版主

UID: 998
精华: 0
发帖: 605019
威望: 528932 点
无痕币: 59 WHB
贡献值: 0 点
在线时间: 62044(时)
注册时间: 2008-12-25
最后登录: 2024-04-19

0 硬核科普!携号转网的技术原理分析

这几天,关于“携号转网”的新闻反复刷屏,相信大家都看到了。
小枣君今天也来凑个热闹,和大家聊聊“携号转网”。
不过,我要说的不是“携号转网”的业务办理,而是更深层次的内容——“携号转网”的技术原理。
我想通过这篇文章,帮助大家了解这项特殊业务背后的具体实现方式。更重要的是,趁机介绍一下关于移动通信用户号码和呼叫流程方面的知识。
好啦,废话不多说,我们赶紧开始!

首先,我先解释一下,到底什么是“携号转网”。
“携号转网”,顾名思义,就是带着号码换网络。

举个例子:你现在是139开头的中国移动号码,办理“携号转网”之后,号码保持不变,但运营商归属关系变了——变成了电信或联通的了。你使用的网络和套餐,也变成电信或联通的。这种电信业务,就是“携号转网”。
行业术语里,“携号转网”的真正名字应该叫做“号码携带”,或者“号码可携带”。
这个业务从表面上看并不复杂,就是换个运营商,然后号码带着走。
但是实际上,对于移动通信系统来说,实现起来并不容易。
我们的手机号,实际上有两个,分别是IMSI和MDN。
IMSI的全名是International Mobile Subscriber Identity,国际移动用户识别码。它是一种“永久用户标识”,每一个手机SIM卡,对应一个IMSI号码。
IMSI号码由三部分组成,分别是:
    MCC (Mobile Country Code)移动国家码
    MNC (Mobile Network Code)移动网络码
    MSIN (Mobile Subscriber Identity)移动用户识别码
MCC是3位数字(中国是460),MNC是2-3位数字,MSIN是10-11位数字。加起来的IMSI,一般不超过15位,通常就是15位(例如我们国家)。

大家在手机拨号界面,输入 *#*#4636#*#* ,就可以看到自己的IMSI号码。

大家注意,除了IMSI号码之外,还有一个IMEI号码,两者不要搞混了。

IMEI是International Mobile Equipment Identity,国际移动设备识别码(大约15-17位数字)。也就是常说的手机序列号(手机串号),是每个手机硬件的“身份证”(2个卡槽就有2个IMEI号码)。
千山同一月 万户尽皆春 千江有水千江月 万里无云万里天
级别: 总版主

UID: 998
精华: 0
发帖: 605019
威望: 528932 点
无痕币: 59 WHB
贡献值: 0 点
在线时间: 62044(时)
注册时间: 2008-12-25
最后登录: 2024-04-19

那我们平时使用的139、153、189开头的号码,又是什么呢?
这些号码,真正的学名叫MDN,Mobile Directory Number(移动用户号码簿号码)。
MDN由国家码(CC)、移动接入号(MAC)、HLR识别码、移动用户号共同组成。

介绍了这个码那个码,大家没有晕掉吧?
没晕的话,我们继续!
说到这里,大家其实应该也明白了。所谓“号码携带”,不变的是MDN号码,变化的是IMSI号码。而IMSI,才是你的“真正”号码。
说完了号码,我们再来说说网络侧这边的处理。
目前我们使用的移动通信业务,其实主要就是通话、短信、上网。
大家都知道,上网是单个用户的事情。某用户手机发起数据业务请求,获得IP等资源,然后连入运营商网络,访问互联网。
只要你的IMSI合法,业务正常开通,没有欠费,就可以上网。
但是通话和短信就不一样了,这是两个用户之间的业务,存在“主叫”和“被叫”。

主叫用户没什么大问题,反正自己的号码就是一个编号而已。但是被叫那边,麻烦就来了——号码就像门牌,别人通过门牌找你,你搬家把门牌都带走了,这咋整?
我们先看看,以前没有号码携带业务的时候,一次正常通话的过程是怎样的:(注:为了便于理解,呼叫流程描述有所简略。)
假设主叫用户A是中国移动139开头的号码。
当他拨打被叫号码的时候,它所在的本地局核心网设备(MSC,移动交换中心),会根据设计好的规则,对被叫号码进行“号码分析”。

号码分析是电话接续的重要依据,不同的分析结果,意味着不同的处理流程:

按照之前的设计,如果拨打的是138开头的号码,那MSC就会分析为中国移动的号码,按运营商内部呼叫的流程处理。(具体来说,MSC会去中国移动自己的HLR,问被叫的位置,然后一路找过去。HLR是归属位置寄存器,存储着中国移动用户的数据和信息。)
千山同一月 万户尽皆春 千江有水千江月 万里无云万里天
级别: 总版主

UID: 998
精华: 0
发帖: 605019
威望: 528932 点
无痕币: 59 WHB
贡献值: 0 点
在线时间: 62044(时)
注册时间: 2008-12-25
最后登录: 2024-04-19

如果被叫是“自家人”如果拨打的是185开头的联通号码,本地局设备则会分析为“它网号码”,会路由到运营商之间的关口局,然后送到联通那边,查找被叫,一路最终完成电话接续。

如果被叫是“别人家的”
现在,要搞号码携带了,麻烦来了。
还是举例,139开头的A,拨打138开头的B。B是办理了号码携带的用户,号码虽然是138开头,但不能按中国移动内部呼叫的流程处理,否则就会送错了目的地。
中国移动的MSC,必须把B号码当作特例,单独处理。

如果只有一个特例,那还好说,问题是,这个业务面向全国用户开放,会有成千上万个特例。这样的话,号码分析就会变得非常庞大,对系统容量造成负担。
所以,在我们国家现在的网络里,采取的方案是这样的:
如果某个被叫号码办理了号码携带业务(例如,从移动跳到了联通)。
那么,移动的HLR会对已携出的号码加一个特殊前缀数字,返回给主叫MSC,告诉它这个号码已经不是我们的了。

主叫这边的中国移动MSC会对前缀号码进行特殊处理,直接按其它运营商号码处理。
千山同一月 万户尽皆春 千江有水千江月 万里无云万里天
级别: 总版主

UID: 998
精华: 0
发帖: 605019
威望: 528932 点
无痕币: 59 WHB
贡献值: 0 点
在线时间: 62044(时)
注册时间: 2008-12-25
最后登录: 2024-04-19

如果是这个号码是联通跳到移动的:
运营商会先新增一个NP-HLR,也就是号码携带HLR,把所有携入号码都放在这个HLR里。主叫MSC会针对“所有其它运营商号段的被叫号码”,都先查一遍NP-HLR。

如果是携入号码,则按自己的号码处理,去查自家的HLR。

如果是非携入号码(也就是别人正常的号码),则再去查一遍别人家的HLR。

总而言之,相当于查两遍HLR。
千山同一月 万户尽皆春 千江有水千江月 万里无云万里天
级别: 总版主

UID: 998
精华: 0
发帖: 605019
威望: 528932 点
无痕币: 59 WHB
贡献值: 0 点
在线时间: 62044(时)
注册时间: 2008-12-25
最后登录: 2024-04-19

上面的解决方案,虽然流程复杂了一些,但是速度很快,用户感知不受任何影响。
这就是我们国家现在使用的号码携带实施方案。大家看懂了没?
哈哈,能坚持看下来的,都是猛士,小枣君免费推荐核心网工程师offer!
最后再做个总结。
携号转网业务,对于普通用户来说,毫无疑问是件好事,毕竟增加了议价权,也增加了自主选择权。
但是,站在通信工程师的角度来说,这个业务增加了一些小困难和小麻烦——我们在处理故障时,无法再像之前一样,通过号段来迅速判断投诉者的用户属性。而不同的用户属性,意味着完全不同的故障处理流程和思路。
也就是说,号码携带业务的普及,将会“略微”增加通信工程师处理故障的难度,以及故障恢复的时间。
好啦,以上就是小枣君对携号转网业务的技术分析,欢迎大家在留言区拍砖讨论。
看到大家都发短信去尝试申请“号码携带”换运营商,小枣君也迫不及待地发了一条短信,结果——
千山同一月 万户尽皆春 千江有水千江月 万里无云万里天
级别: 总版主

UID: 998
精华: 0
发帖: 605019
威望: 528932 点
无痕币: 59 WHB
贡献值: 0 点
在线时间: 62044(时)
注册时间: 2008-12-25
最后登录: 2024-04-19

这个可以看看,了解一下。
Total 0.043315(s) query 4, Time now is:04-19 06:34, Gzip enabled 粤ICP备07514325号-1
Powered by PHPWind v7.3.2 Certificate Code © 2003-13 秋无痕论坛