谈谈行程卡的原理


昨晚通信行程卡官方发布了《关于下线“通信行程卡”服务的公告》 ,官宣行程卡即将于12月13日0时起停止服务。自此,在启用2年10个月后,行程卡迎来了它的生命终点。
通信行程卡短信查询业务于2020年2月13日上线、网页查询于2020年2月29日上线、小程序及APP于2020年3月6日上线。至2022年12月13日停止服务,共计启用了1034天。值此具有纪念意义的日子,我们就来聊一下通信行程卡的技术原理。

承载功能的移动网络

在移动通信系统中存在着三张网,分别是接入网、承载网和核心网。在我们日常使用移动网络进行通信的过程中,这三张网都是必不可少的。我们对这三张网进行一个简单的解释就是:接入网用于让用户接入网络之中,承载网用于承载传输用户和网络之间的数据,而核心网是用于处理用户数据和路由的中心结构。而行程卡的主要实现原理就和核心网有关。
在核心网中有这么两个部分,分别叫做HLR和VLR。

功能实现的组件

HLR (Home Location Register) ,中文叫做归属位置寄存器,其中包含有被授权使用GSM核心网的各个移动电话签约用户的详细信息。在一个通信系统中通常存在多个HLR,用于记录不同开户地点的用户详细信息。虽然HLR有多个,但是同一个用户的IMSI/MSISDN在同一时间只可以与唯一的HLR进行签约而这些信息会被用于终端和网络联系之间的鉴权。
举一个简单的例子,我在A市的中国电信申请了一个用户号码为18900001234的手机号并完成开户,那么这个用户的详细信息就会被存储于A市中国电信的HLR中,而不会存储在B市的HLR中。
这时可能就会有读者对此感到疑惑:既然一个用户的信息只会存储在一个地方的HLR之中,那么漫游是如何实现的呢?这里我们就要提到刚刚还没说的VLR了。
VLR (Visitor Location Register),中文叫做拜访位置寄存器,其中会存储漫游到一个MSC所提供服务的范围的签约用户的数据。比如还是刚刚的号码为18900001234的用户,在他从A市移动到B市之后,为了他的号码可以正常使用,我们需要在B市的数据库中记录一个这个用户的数据。但是此时这个用户的详细信息已经存储在A市的HLR中,B市的HLR中不能也不可能有这一用户的信息,那么B市的VLR便会通过信令从A市的HLR中获取一份临时的用户数据以保证用户的网络使用正常。
HLR中的数据是固定保存的,类似于ROM中的数据;而VLR中的数据是临时存储的,类似于RAM中的数据。

原理分析

对HLR和VLR有基础了解之后,我们就可以简单的对行程卡的原理进行解释了:
当用户常驻于一个城市时,当地的HLR/VLR中会存储一份该用户的数据并会在系统设定的时间向该用户归属地的HLR进行数据上报。同时记录数据会根据数据库中的时间记录得出该用户在某城市是否存在逗留记录。
行程卡是一个在特殊时期利用现有数据进行防疫追踪的好工具,在防疫工作中起到了至关重要的作用。
愿疫情早日结束。

参考资料

网络交换子系统 - 维基百科
基站与小基站系统简介 - 大大通
什么是承载网,核心网和接入网 - 知乎