博海拾贝

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

文/小枣君

来源:鲜枣课堂(ID:xzclasscom)

11月11日,工信部发布《携号转网服务管理规定》,标志着国内三大运营商的“携号转网”业务正式进入试运行阶段。

根据规划,从12月1日开始,“携号转网”业务将在全国范围内正式推出。

这几天,关于“携号转网”的新闻反复刷屏,相信大家都看到了。

小枣君今天也来凑个热闹,和大家聊聊“携号转网”。

不过,我要说的不是“携号转网”的业务办理,而是更深层次的内容——携号转网的技术原理

我想通过这篇文章,帮助大家了解这项特殊业务背后的具体实现方式。更重要的是,趁机介绍一下关于移动通信用户号码呼叫流程方面的知识。

好啦,废话不多说,我们赶紧开始!

首先,我先解释一下,到底什么是“携号转网”。

“携号转网”,顾名思义,就是带着号码换网络。

举个例子:你现在是139开头的中国移动号码,办理“携号转网”之后,号码保持不变,但运营商归属关系变了——变成了电信或联通的了。你使用的网络和套餐,也变成电信或联通的。这种电信业务,就是“携号转网”。

行业术语里,“携号转网”的真正名字应该叫做“号码携带”,或者“号码可携带”

这个业务从表面上看并不复杂,就是换个运营商,然后号码带着走。

但是实际上,对于移动通信系统来说,实现起来并不容易。

我们的手机号,实际上有两个,分别是IMSIMDN

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号码)。

那我们平时使用的139、153、189开头的号码,又是什么呢?

这些号码,真正的学名叫MDN,Mobile Directory Number(移动用户号码簿号码)

MDN由国家码(CC)、移动接入号(MAC)、HLR识别码、移动用户号共同组成。

介绍了这个码那个码,大家没有晕掉吧?

没晕的话,我们继续!

说到这里,大家其实应该也明白了。所谓“号码携带”,不变的是MDN号码,变化的是IMSI号码。而IMSI,才是你的“真正”号码。

说完了号码,我们再来说说网络侧这边的处理。

目前我们使用的移动通信业务,其实主要就是通话、短信、上网。

大家都知道,上网是单个用户的事情。某用户手机发起数据业务请求,获得IP等资源,然后连入运营商网络,访问互联网。

只要你的IMSI合法,业务正常开通,没有欠费,就可以上网。

但是通话和短信就不一样了,这是两个用户之间的业务,存在“主叫”和“被叫”。

主叫用户没什么大问题,反正自己的号码就是一个编号而已。但是被叫那边,麻烦就来了——号码就像门牌,别人通过门牌找你,你搬家把门牌都带走了,这咋整?

我们先看看,以前没有号码携带业务的时候,一次正常通话的过程是怎样的:

(注:为了便于理解,呼叫流程描述有所简略。)

假设主叫用户A是中国移动139开头的号码。

当他拨打被叫号码的时候,它所在的本地局核心网设备(MSC,移动交换中心),会根据设计好的规则,对被叫号码进行“号码分析”

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

按照之前的设计,如果拨打的是138开头的号码,那MSC就会分析为中国移动的号码,按运营商内部呼叫的流程处理。(具体来说,MSC会去中国移动自己的HLR,问被叫的位置,然后一路找过去。HLR是归属位置寄存器,存储着中国移动用户的数据和信息。)
如果被叫是“自家人”
如果拨打的是185开头的联通号码,本地局设备则会分析为“它网号码”,会路由到运营商之间的关口局,然后送到联通那边,查找被叫,一路最终完成电话接续。
如果被叫是“别人家的”
现在,要搞号码携带了,麻烦来了。

还是举例,139开头的A,拨打138开头的B。B是办理了号码携带的用户,号码虽然是138开头,但不能按中国移动内部呼叫的流程处理,否则就会送错了目的地。

中国移动的MSC,必须把B号码当作特例,单独处理。

如果只有一个特例,那还好说,问题是,这个业务面向全国用户开放,会有成千上万个特例。这样的话,号码分析就会变得非常庞大,对系统容量造成负担。

所以,在我们国家现在的网络里,采取的方案是这样的:

如果某个被叫号码办理了号码携带业务(例如,从移动跳到了联通)。

那么,移动的HLR会对已携出的号码加一个特殊前缀数字,返回给主叫MSC,告诉它这个号码已经不是我们的了。

主叫这边的中国移动MSC会对前缀号码进行特殊处理,直接按其它运营商号码处理。

如果是这个号码是联通跳到移动的:

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

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

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

总而言之,相当于查两遍HLR。

上面的解决方案,虽然流程复杂了一些,但是速度很快,用户感知不受任何影响。

这就是我们国家现在使用的号码携带实施方案。大家看懂了没?

哈哈,能坚持看下来的,都是猛士,小枣君免费推荐核心网工程师offer!

最后再做个总结。

携号转网业务,对于普通用户来说,毫无疑问是件好事,毕竟增加了议价权,也增加了自主选择权。

但是,站在通信工程师的角度来说,这个业务增加了一些小困难和小麻烦——我们在处理故障时,无法再像之前一样,通过号段来迅速判断投诉者的用户属性。而不同的用户属性,意味着完全不同的故障处理流程和思路。

也就是说,号码携带业务的普及,将会“略微”增加通信工程师处理故障的难度,以及故障恢复的时间。

好啦,以上就是小枣君对携号转网业务的技术分析,欢迎大家在留言区拍砖讨论。

看到大家都发短信去尝试申请“号码携带”换运营商,小枣君也迫不及待地发了一条短信,结果——

退出移动版