4G EPS 中的各种唯一标识
目录
文章目录
电信运营商的唯一标识:PLMN、MCC 与 MNC
PLMN(Public Land Mobile Network,公共陆地移动网)是一个无线通讯系统。由政府批准的经营者,为公众提供陆地移动通信业务而建立和经营的网络。该网路通常与公众交换电话网(PSTN)互连,形成整个地区或国家规模的通信网络。
PLMN 与 PSTN 同为通信网络,它与 PSTN 网络的最大差别在于有线与无线的区别。PSTN 用户由一根用户线与网络中的交换机相连,电话终端位置固定不便移动,所以称之为固定电话,简称固话;PLMN 用户使用移动终端与基站之间通过无线信号相连,最终通过网络中的交换机实现移动过程中的便捷通信,所以称之为移动电话。
PLMN 的唯一标示由 MCC 和 MNC 组合而成。
MCC(Mobile Country Code,移动信号国家码)是由国际电联(ITU)统一分配和管理,唯一识别移动用户所属的国家,共 3 位数字,中国为 460。
MNC(Mobile Network Code,移动信号网络码)用于识别移动客户所属的移动网络,共 2~3 位数字。在同一个国家内,如果具有多个 PLMN,那么就可以通过 MNC 来进行区别。中国移动系统使用 00、02、04、07,中国联通 GSM 系统使用 01、06、09,中国电信 CDMA 系统使用 03、05,电信 4G 使用 11,中国铁通系统使用 20。
简而言之,移动用户可以通过 MCC + MNC 在全球范围内唯一确定一个 PLMN 移动电话运营商。
移动用户的唯一标识:IMSI、MSIN 与 MSISDN/MDN
IMSI(International Mobile Subscriber Identity,国际移动用户识别码)是在所有蜂窝网络中识别移动用户的唯一标识,在 GSM、UMTS 和 LTE 网络中,IMSI 来自 SIM 卡。IMSI 由一串十进制数字组成,通常为为 15 位数字,由 MCC、MNC 和 MSIN 依次连接而成。在 2G 组网中,可以根据 IMSI,可以在 HLR 或 VLR 中查询到用户的信息。只要一个移动网络的用户需要与移动网络互通,就必须使用 IMSI,手机会将 IMSI 存储于一个 64 比特的字段发送给网络,以此来说明自己的身份。
HLR(Home Location Register,归属位置寄存器)是一个中心数据库,存储了移动电话运营商所发行的每张 SIM 卡的详细信息,SIM 卡的 IMSI 就是 HLR 记录的主键。只有 SIM 卡的 IMSI 被记录到 HLR 了,那么该用户才是被授权使用 GSM 核心网的。另一个关联到 SIM 的重要数据项就是 MSISDN(即电话号码)。每个 MSISDN 也是 HLR 记录的一个主键。只要一个签约用户还是该移动电话运营商的一个用户,就会有 HLR 数据记录。每个 PLMN 中都可以有多个逻辑或物理的 HLR,但是一个 IMSI/MSISDN 对,在同一时间只能被关联到一个逻辑 HLR(可能横跨多个物理节点)上。
VLR(Visitor Location Register,拜访位置寄存器)也是一个数据库,用于存储漫游到一个 MSC 所提供服务的范围的签约用户的数据。网络中的每个主要基站都严格地仅由一个 VLR 来提供服务(在 MSC 池的情况下,一个 BTS 可能由多个 MSC 提供服务),因此一个签约用户不会同时出现在超过 1 个 VLR 上。
MSC(Mobile Switching Center,移动交换中心)是 2G GSM/CDMA 核心网中最主要的设备,主要负责语音呼叫和短信。
MSISDN(Mobile Subscriber ISDN Number,移动台国际用户识别码),即电话号码,是 GSM(2G)和 UMTS(3G)协议中的移动用户号码。与 MSISDN 具有相同作用的还有 MDN(Mobile Directory Number,移动用户号码簿号码),也是电话号码,区别在于后者是 CDMA(2.5G)协议中的移动用户号码。
MDN 采取 E.164 编码方式,也存储在 HLR 和 VLR 中,在 MAP 接口上传送,结构为 CC + MAC + SN。
- CC(Country Code):国家码,中国使用 86。
- MAC(Mobile Access Code):移动接入码,由 3 位数字组成,可以用于区分移动运营商,如:中国电信的 133、159。
- SN(Subscriber Number):用户号码。长 8 位,编码格式为 H0H1H2H3+ABCD
- H0H1H2H3:为 HLR 识别码,由运营商统一分配。如:H0H1H2 由总部统一分配到各省,H3 由各省分配到本地网。
- ABCD:移动用户号码,由各 HLR 自行分配。
MSIN(Mobile subscription identification number,移动订户识别代码)是组成 IMSI 的部分,具有 9-10 位十进制数字,其结构为 CC + M0M1M2M3 + ABCD,MSIN 由运营商根据自身需要进行分配。
- CC:国家码。
- M0M1M2M3:和 MDN 号码中的 H0H1H2H3 可存在对应关系。
- ABCD:移动用户号码,可自由分配。
简而言之,IMSI 作为移动用户的唯一标识由 MCC + MNC + MSIN 组成,IMSI 和 MSISDN/MDN 有些一对一配对的关系。不同的 PLMN 运营商会根据自身的 MCC + MNC 来生产并写入到 SIM 卡,最终派发给用户。因为 IMSI 具有 MCC,所以可以区别出每个移动用户来自的国家,因此可以实现国际漫游。
移动用户的唯一临时标识:TMSI、GUTI 与 GUMMEI
为了避免被监听者识别并追踪特定的用户的位置,大部分情形下手机和网络之间的通信会使用随机产生的 TMSI(Temporary Mobile Subscriber Identity,临时移动用户识别码)代替 IMSI。简而言之,TMSI 就是在移动通信中为了保证 IMSI 的安全而在 VLR 内分配给用户的一个临时的用户识别号码,用来临时代替 IMSI 号码在空口中进行传递。TMSI 具有以下几个特点:
- TMSI 由 MSC/VLR 进行分配,并不断地进行更换。当手机用户使用 IMSI 向系统请求位置更新、呼叫尝试或业务激活时,MSC/VLR 根据 IMSI 判断该用户是合法用户,允许该用户接入网络后,就会分配一个新的 TMSI 给手机并且将 TMSI 写入 SIM 卡。此后,MSC/VLR 和手机之间的就可以使用 TMSI 来进行信息交互。
- TMSI 只在一个位置区的某一段时间内有效。
- 手机 SIM 卡中存有 TMSI。
GUTI(Globally Unique Temporary UE Identity,全球唯一临时 UE 标识)与 TMSI 的作用一致,在 4G EPC 中被使用。GUTI 由 EPC 核心网分配,在 Attach accept, TAU accept 等消息中带给 UE。UE 第一次 Attach 时携带 IMSI,而之后 MME 会将 IMSI 和 GUTI 进行一个对应,以后就一直用 GUTI,通过 Attach accept 返回给 UE。这样后面的各种行为,都是以 GUTI 作为标记。防止 IMSI 长久的暴露在空中传输。而在 Service request 和 paging(寻呼 UE)中携带的是 S-TMSI(MMEC + M-TMSI),用于对用户进行寻呼。
GUTI 由 M-TMSI + GUMMEI 组成:
- M-TMSI(MME 临时移动用户标识)在 MME 中唯一标识一个 UE。
- GUMMEI(全球唯一 MME 标识)由 MCC、MNC 及 MMEI 组成。
- MMEI(MME 唯一标识)由 MMEGI(MME Group ID,MME 群组标识)和 MMEC(MME Code,MME 码)组成。MME 组的 ID,以及在这个组下面的某个 MME 标识,这样就能标识出唯一的 MME。
移动用户在无线空口传输过程中的临时唯一标识 RNTI
RNTI(RNTI Radio Network Tempory Identity,无线网络临时标识)在 UE 和 UTRAN 之间的信号信息内部作为 UE 的标识。
s-RNTI(服务 RNC RNTI):分配给所有的拥有 RRC 连接的 UE,它是由服务 RNC 分配并且在服务 RNC 内是唯一的。s-RNTI 总是当为了 RRC 连接的服务 RNC 变化的时候分配的。
- 识别在 SRNC 中的 UE 相关信息
- 通过 SRNC 以定位 UE 的地址
- 通过 DRNC 以定义 UE
d-RNTI(转移 RNC RNTI):由移动 RNC 在移动 UE Context 建立之上分配的,且它在移动 RNC 内应该是唯一的。服务 RNC 应该知道在移动 RNCs 内为同名的 UE 分配的 s-RNTI 和 d-RNTIs 之间的映射关系。移动 RNC 应该知道在移动 RNC 内 s-RNTI 和 SRNC-ID 和存在的 d-RNTI 之间的关系。
- 标识 d-RNC 中的 UE
C-RNTI(小区 RNTI):由主控 RNC 分配,供 UE 接入新的小区。此外,对于要接入的这个小区,此 C-RNTI 必须是唯一的。主控 RNC 应该知道在一个逻辑 RNC 内与一个 C-RNTI 相关的 D-RNTI 参数(如果存在的话)。
- UE 在控制 RNC 内标识自身
- 通过控制 RNC 以定位 UE C-RNTI
u-RNTI(UTRAN RNTI):由 s-RNTI 组成,用来分配给要建立 RRC 连接的 UE 以区别于在同一个 UTRAN 中的不同的 UE 设备。
DSCH-RNTI(DSCH RNTI):主控 RNC 使用 DSCH-RNTI 在 DSCH 信道(或 TDD 模式的 USCH 信道)上定位不同的 UE 设备。 UE 设备建立一个 DSCH 信道(或 TDD 模式的 USCH 信道)连接时,由主控 RNC 分配一个本小区中唯一的 DSCH-RNTI 给UE。FDD 模式下的 DSCH-RNTI 标识作为 UE 设备在 DSCH 信道上 MAC 层的 C/SH 头信息,并且只使用在下行信道中。而 TDD 模式下的 DSCH-RNTI 标识作为 UE 设备在 RRC 消息中有关 DSCH 和 USCH 信道分配的信息,并且上下行信道都可以使用。
移动用户定位唯一标识:TAC、TAI 和 TAU
- eNB ID(eNB 唯一标识)
- Global eNB ID(全球 eNB 唯一标识):PLMN + eNB ID
- Cell ID(小区唯一标识)
- ECI(E-UTRAN Cell Identifier,E-UTRAN 小区唯一标识)
- ECGI(E-UTRAN Cell Global Identifier,E-UTRAN 小区全球唯一标识):PLMN + ECI
- C-RNTI(小区无线网络临时标识):msg4 中分配给 UE,用于在小区中标识 UE。
- eNB S1AP UE ID:UE 在 eNB 侧 S1-U 接口上的唯一标识,eNB 分配。
- MME S1AP UE ID:UE 在 MME 侧 S1-MME 接口上的唯一标识,MME 分配。
TA(Tracking Area,跟踪区)用来跟踪手机的物理位置。那么问题是:为什么要跟踪 UE 呢?当 eNB 在做 paging(寻呼 UE)的時候,假若没有 TA,那么只有两种选择:
- 对所有的小区做 paging,直至找到 UE。显然,这样是相当浪费资源的。
- 只对单一的小区作 paging,那么当 UE 离开了这个小区,eNB 就会丢失这个 UE。
出于 eNB 对 UE 进行长期定位的需求,所以提出了 TA 的概念,由数个 eNB/Cell 组成,便于 EPC 对 UE 的位置进行管理。当 UE 离开一个 TA 移动到另一个 TA 时,就会触发 TAU(Tracking Area Update,跟踪器更新) 的动作,eNB 以此来长久的掌握到 UE 的位置。
每个 TA 都会拥有编号,又可以细分为两种类型:
- TAC(Tracking Area Code,跟踪区代码):由运营商自行分配。
- TAI(Tracking Area identity,跟踪区全球唯一标识):PLMN + TAC。
在 UE 第一次进行 Attach 時,MME 会分配给 UE 一组 TAI List,为了 eNB 在进行 paging 时,直接对 TAI List 內的 TA 下的 Cell 进行呼叫就可以找到 UE 了。而当 UE 离开 TAI List 中的 Cell 时,即当 TAI 不在 UE 注册的 TA List 时,就会进行 TAU,这样 eNB 和 UE 之间的 TAI 就会进行同步。如下图所示:
4G EPS 中的各种唯一标识的更多相关文章
- 【转】网游服务器中的GUID(唯一标识码)实现-基于snowflake算法
本文中的算法采用twitter的snowflake算法,具体请搜索介绍,原来是用Scala写的,因我项目需要,改写成C++语言,主要用于高效的生成唯一的ID, 核心算法就是毫秒级时间(41位)+机器I ...
- vue根据数组对象中某个唯一标识去重
由于在vue中,会自动在数组和对象中加入_obser__观察者模式的一些属性,所以直接用数组的filter去重(下面这种),indexOf不能准确识别 var arr = [1, 2, 2, 3, 4 ...
- Logback获取SkyWalking的全局唯一标识 trace-id 记录到日志中
为什么要获取trace-id 通过上文Docker-Compose搭建单体SkyWalking我们搭建了SkyWalking服务,我们需要在日志中记录下来每次请求的唯一标识(trace-id),这样就 ...
- vue+elementUI中单选框el-radio设置默认值和唯一标识某个单选框
vue+elementUI中单选框el-radio设置默认值 如果后台返回的单选框的值是number:单选框的lable需要设置成 :lable='0';如下: <el-form-item la ...
- sqlserver 中的GUID 全局唯一标识 -摘自网络
--简单实用全局唯一标识 DECLARE @myid uniqueidentifierSET @myid = NEWID()PRINT 'Value of @myid is: '+ CONVERT(v ...
- 如何在高并发分布式系统中生成全局唯一Id
月整理出来,有兴趣的园友可以关注下我的博客. 分享原由,最近公司用到,并且在找最合适的方案,希望大家多参与讨论和提出新方案.我和我的小伙伴们也讨论了这个主题,我受益匪浅啊…… 博文示例: 1. ...
- iOS获取设备唯一标识的8种方法
8种iOS获取设备唯一标识的方法,希望对大家有用. UDID UDID(Unique Device Identifier),iOS 设备的唯一识别码,是一个40位十六进制序列(越狱的设备通过某些工具可 ...
- Android 手机上获取物理唯一标识码[转]
所有添加有谷歌账户的设备可以返回一个 ANDROID_ID 所有的CDMA设备对于 ANDROID_ID 和 TelephonyManager.getDeviceId() 返回相同的值(只要在设置时添 ...
- 如何在高并发分布式系统中生成全局唯一Id(转)
http://www.cnblogs.com/heyuquan/p/global-guid-identity-maxId.html 又一个多月没冒泡了,其实最近学了些东西,但是没有安排时间整理成博文, ...
- 用ThreadLocal为线程生成唯一标识及实现原理
1.在多线程编程中,有时候需要自动为每个启动的线程生成一个唯一标识,这个时候,通过一个ThreadLocal变量来保存每个线程的标识是最有效.最方便的方式了. 2.ThreadLocal 实例通常是类 ...
随机推荐
- #最大公约数#CF346A Alice and Bob
题目传送门 CF346A 分析 可以发现其所能表示的数就是能被最大公约数整除的数,且这些数不能超过最大值, 于是判断一下取数的奇偶性即可 代码 #include <cstdio> #inc ...
- C 语言中布尔值的用法和案例解析
C语言中的布尔值 在编程中,您经常需要一种只能有两个值的数据类型,例如: 是/否 开/关 真/假 为此,C语言有一个 bool 数据类型,称为布尔值. 布尔变量 在C语言中,bool 类型不是内置数据 ...
- 9. Complex Vectors and Matrices
9.1 Real versus Complex R= line of all real numbers (\(-\infty < x < \infty\)) \(\longleftrigh ...
- 一个库帮你快速实现EF Core数据仓储模式
前言 EF Core是我们.NET日常开发中比较常用的ORM框架,今天大姚要分享的内容是如何使用EF Core Generic Repository通用仓储库来快速实现EF Core数据仓储模式. E ...
- QImage将图片白色背景修改为透明色
// 改透明色 QImage setImageColor(QImage img) { QImage img_color = img.convertToFormat(QImage::Format_RGB ...
- mysql 必知必会整理—sql 通配符[四]
前言 简单介绍一下sql 高级过滤. 正文 首先简单介绍一下通配符,用来匹配值的一部分的特殊字符. 搜索模式(search pattern)① 由字面值.通配符或两者组合构成的搜索条件. 前面介绍操作 ...
- Python 生成带Logo的圆角带边框二维码
Python 生成二维码方式就不累述了,不会的自己百度吧 但python生成的二维码太难看了,要么没有logo,要么logo直接贴进去的,难看死了,有的也处理了一下,但没有圆角,也难看: 以下:是不是 ...
- 力扣166(java)-分数到小数(中等)
题目: 给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以 字符串形式返回小数 . 如果小数部分为循环小数,则将循环的部分括在括号内. 如果存在多个答案,只需返回 ...
- 基于 EventBridge 构建 SaaS 应用集成方案
简介:事件源是事件驱动的基石,如何获取更多事件源也是 EventBridge 一直在探索和尝试的方向.针对市场上其他云厂商和垂直领域的 Saas 服务,EventBridge 发布了 HTTP So ...
- 浅谈专有云MQ存储空间的清理机制
简介: 浅谈专有云MQ存储空间的清理机制 在近⼀年的项⽬保障过程中,对专有云MQ产品的存储⽔位清理模式⼀直存疑,总想一探究竟但又苦于工作繁忙.精力有限,直到最近⼀次项⽬保障过程中再次出现了类似的问题, ...