前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >简单说一说用户的网络身份ID

简单说一说用户的网络身份ID

作者头像
琉璃康康
发布于 2022-04-19 08:04:00
发布于 2022-04-19 08:04:00
1.5K0
举报
文章被收录于专栏:七禾页话七禾页话

如同我们人类社会一样,网络也是一个社会,各种接入到网络中的设备就是网络社会中的人。为了维持社会的稳定和辨识各终端用户,网络社会是怎么做到用户区分的呢?毕竟网络是我们人类创建的,所以它也就具备了我们所拥有的特性,网络社会中赋予了各个终端用户永久身份证号——IMSI和临时ID——GUTI、P-TMSI等来标识终端。

1

IMSI——网络中的用户身份证号

IMSI——International Mobile Station Identity作为通信网络中最重要的一个ID——网络身份证号——而存在,如同我们每个人的身份号一样的重要,是作为手机sim卡永久却唯一的号码,如图:

IMSI由三部分构成:

  1. Mobile Country Code(MCC)标识国家代码,占三位数字,如我国为460。
  2. Mobile Network Code(MNC)标识网络号,占两位或者三位数字,MNC用来标示在国家代码下的不同网络,即不同的PLMN,比如移动的00、02,联通的01,电信的03等。
  3. Mobile Subscriber Identification Number(MSIN)用户识别码用来标识一个PLMN下的唯一用户。 同时MNC和MSIN构成了National Mobile Subscriber Identity(NMSI)可以理解为国家区域下的用户唯一ID。

IMSI如同我们的身份证号是对Sim卡唯一切永久的,那么必然至关重要,因此在网络通信过程中不到万不得已是不会动用IMSI的,那么什么是万不得已的呢?比如之前我们讲4G附着信令中的鉴权,必然要用到IMSI才可以到HSS中取得用户的鉴权向量和开户信息,另一个就是在建立session的过程中MME和SGW/PGW是要首先通过IMSI将Session建立并统一起来的。

既然IMSI如此重要,而且它所包含的只是PLMN网络信息和PLMN下用户的唯一信息MSIN,依然不利于用户定位(网络好大脸),而且过多的暴露IMSI就如同打招呼告诉人家你的身份证号一样的尴尬:

  • 您好,我是123456789009876543
  • 您好,123456789009876543,我是098765432112345678。

因此为了避免尴尬(开玩笑),更为了能很好的保护用户信息(IMSI尽量少的游走在网络中),并且能准确定位用户,3GPP规范了如同我们人类姓名一样的用户临时身份ID——4G中的GUTI和2/3G中的P-TMSI。

2

GUTI——4G网络中的用户的临时ID

GUTI——Globally Unique Temporary UE Identity作为4G中用户的临时身份ID而被MME唯一分配,如同用户的姓名一般,只是会随着环境的改变而改变:比如在MME间切换后,或者当前GUTI的使用时间到期了。结构如图:

上图展示了整个GUTI的构成,一下子比IMSI复杂了不少吧?其实整体结构就两部分:一部分是标示此GUTI是由哪个MME分配的即MME的GUMMEI,另一部分是在此MME中用户的唯一ID——M-TMSI。

  1. Globally Unique MME Identity——GUMMEI作为网络中唯一标识MME的ID由三部分构成,MCC、MNC和MMEI,MCC和MNC构成了此MME所在的PLMN;而MMEI——MME Identity又由两部分构成,分别是MMEGID——MME Group ID和MMEC——MME Code。 MMEGID一共16比特位,所以理论上从1——65535都可以作为MMEGID的。 MMEC则只有8比特位,理论上从0——255都可以作为MMEC的值。 MMEGID和MMEC的另一个用途则是在MME pool中,对于MME pool来说,通过MMEGID来区分不同的pool,pool中的各个MME则由不同的MMEC来区分。
  2. M-TMSI作为一个MME内唯一确定用户的ID一共有32比特位,而M-TMSI加上MMEC构成了S-TMSI用来做Paging和Service Request的请求ID。

GUTI作为网络内部用户的临时ID自然是随着环境的变化而变化的,之前我们在讲4G附着的时候也说明了GUTI是在Attach完成之后通过Attach Accept消息下发给终端用户的,而之后的信令消息终端都要通过GUTI或者GUTI中的某一些字段比如S-TMSI来完成,从而达到IMSI尽量少地暴露在网络中的目的,而GUTI也可以迅速的被MME判断此用户是否曾经驻留在我这里,从而迅速完成GUTI Attach或者TAU等信令消息。

同时GUTI作为包含有GUMMEI信息的ID在MME pool的时候也被eNodeB用来作为将终端的Request上报到对应的MME的凭证。

3

P-TMSI——2/3G网络中的用户临时ID

P-TMSI作为2/3G的PS域核心网中GMM层的用户临时ID而被SGSN分配,如同4G的GUTI一样作为用户2/3G的用户姓名,结构如下图所示:

P-TMSI一共有4个八进制位共32bits,而其中两个最高位字节(31和30位)被永久置为11以标示此TMSI由SGSN分配(其他组合00、01、10标示此TMSI由VLR/MSC分配即电路域的TMSI)。

为了避免节点重启之后导致重复分配相同的P-TMSI,P-TMSI还被规定需要设计为有标示时间或者重启的bit位。

在Intra domain connection of RAN nodes to multiple CN nodes即SGSN pool的场景下,3GPP规定了SGSN分配的TMSI中必须包含NRI用来标示pool内的特定SGSN member。NRI的长度从0-10bits变化,当然0bit的长度表示没有NRI即SGSN pool这个feature是没有使用的。NRI在TMSI中有其固定位置从23bit到14bit。

由于4G中标示MME pool中member的MMEC只有8bits,为了能更好的完成2、3G到4G的互切换,在实际应用中NRI的长度被最大设定为8bits(不明白?请往下看:-D)。

4

GUTI和RAI/P-TMSI之间的mapping关系

我们已经知道了在2/3G中用户的临时ID为P-TMSI,4G中临时ID为GUTI,因为移动通信的移动性,那么终端用户必然不会静止不前,而在位置移动的过程中自然就会从4G信号覆盖完美到没有4G而只有2/3G的位置,或者从2/3G覆盖的区域进入到4G的地盘,正所谓我的地盘你的用我的ID,但是由于不同网络之间的临时ID是不一样的,那要怎么办呢?正所谓上有政策下有对策,你有张良计我有过墙梯,3GPP制定的过程中也规范了在2/3G和4G切换的过程中必须要完成RAI/P-TMSI和GUTI之间的mapping。

4.1

GUTI到RAI/P-TMSI的mapping

当用户附着到4G之后移动到2/3G的网络辖区下,UE需要首先完成GUTI到RAI/P-TMSI的对应然后发送request给SGSN,GUTI到RAI/P-TMSI的对应关系如下:

从图中我们可以看到,MCC/MNC作为网络标示,不管是4G还是2/3G保持不变。

  • MME的Group ID——MMEGID对应到了RAI中的LAC。
  • MMEC不仅仅对应到了RAI中的RAC,同时也填充到了P-TMSI的23-16bit即NRI的位置。
  • M-TMSI作为MME分配的随机ID将29-24和15-0bit位对应到了P-TMSI的29-24和15-0bit位,而将23-16bit位填充给了P-TMSI signature的23-16bit位。
  • 而P-TMSI signature的15-0bit位则由终端用户用其可信赖的NAS-Token来填充(3GPP 33.401)。

当New SGSN收到用户的Request之后通过mapped RAI/P-TMSI提取出Old MME信息,并向old MME发起索要用户信息如IMSI的请求,而Old MME此时再将mapped RAI、P-TMSI和P-TMSI signature对应回GUTI以匹配自己所保存的用户信息。

4.2

RAI/P-TMSI到GUTI的mapping

当用户从2/3G移动到4G网络发起Request(Attach、TAU等),首先需要将RAI/P-TMSI转换成4G的临时ID——GUTI,如下图所示:

  • 作为网络标示的PLMN——MCC+MNC不改初衷,自然填充到GUTI中的MCC+MNC位。
  • RAI中的LAC转换成GUMMEI中的MMEGID,而MMEC则由P-TMSI中的23-16位即NRI来填充。
  • RAI中的RAI则填充了M-TMSI中的23-16bit位,M-TMSI中剩余的bit位则由P-TMSI中剩余的bit位来填补空白。

为了区别mapped的MMEGID即2/3G中的LAC和MME中真实MMEGID的不同,3GPP中规定了LAC的最高bit位需要为0,而MMEGID的最高位为1。然而由于2、3G的过早问世,所以早已经有LAC的最高bit位为1,那么索性就放弃什么1和0的纷争,只要能保证一个网络中的LAC和MMEGID不重叠即可(说给做网络规划的人听:-D)。

对于New MME而言收到一个带有mapped GUTI的用户请求,需要将mapped GUTI在转化为RAI/P-TMSI从而得到Old SGSN的信息,然后New MME即可以向Old SGSN索要此用户的IMSI等相关信息。

因为GUTI和RAI/P-TMSI的完美对应关系,终端再在网络移动的过程中就可以畅通无阻的完成无缝衔接,当然ID仅仅是一个开始,在移动过程中还需要一系列的验证和交互,后续再说~

以上就是数据核心网中的用户身份ID的简单介绍和至关重要的GUTI和RAI/P-TMSI的对应关系,希望对大家有所帮助。

以上内容参考以下3GPP整理:

  • 3GPP 23.003——Numbering, addressing and identification
  • 3GPP 23.236——Intra-domain connection of Radio Access Network (RAN) nodes to multiple Core Network (CN) nodes
  • 3GPP 33.401——System Architecture Evolution (SAE); Security architecture
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-03-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 七禾页话 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档