这几天,关于"携号转网"的新闻反复刷屏,相信大家都看到了。 小枣君今天也来凑个热闹,和大家聊聊"携号转网"。 不过,我要说的不是"携号转网"的业务办理,而是更深层次的内容——"携号转网"的技术原理。 我想通过这篇文章,帮助大家了解这项特殊业务背后的具体实现方式。更重要的是,趁机介绍一下关于移动通信用户号码和呼叫流程方面的知识。 好啦,废话不多说,我们赶紧开始! 首先,我先解释一下,到底什么是"携号转网"。 "携号转网",顾名思义,就是带着号码换网络。 举个例子:你现在是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号码)。 那我们平时使用的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! 最后再做个总结。 携号转网业务,对于普通用户来说,毫无疑问是件好事,毕竟增加了议价权,也增加了自主选择权。 但是,站在通信工程师的角度来说,这个业务增加了一些小困难和小麻烦——我们在处理故障时,无法再像之前一样,通过号段来迅速判断投诉者的用户属性。而不同的用户属性,意味着完全不同的故障处理流程和思路。 也就是说,号码携带业务的普及,将会"略微"增加通信工程师处理故障的难度,以及故障恢复的时间。 好啦,以上就是小枣君对携号转网业务的技术分析,欢迎大家在留言区拍砖讨论。 看到大家都发短信去尝试申请"号码携带"换运营商,小枣君也迫不及待地发了一条短信,结果——