51学通信技术论坛

 找回密码
 立即注册
搜索
查看: 26122|回复: 12
打印 上一主题 下一主题

从附着和PDP激活流程看Local和Foreigh TLLI的变化   [复制链接]

Rank: 9Rank: 9

懒

跳转到指定楼层
楼主
发表于 2011-6-30 21:26:30 |显示全部楼层 |倒序浏览
一键分享 一键分享
本帖最后由 爱卫生 于 2011-6-30 22:57 编辑

  这个包是我在Lab抓的,场景是这样。
  手机是开机附着成功后,然后关机。然后再开机做附着和PDP激活。这个包就是重新开机后抓到的附着和PDP激活报文。
  关于TLLI的介绍,可以参考TLLI关于TLLI这两篇帖子。带个图过来,如下:

   然后再看下我们的这个包。
1 #1是附着请求,发现NAS里的P-TMSI和BSSGP中的TLLI分别是0xe02ccb60和0xa02ccb60。因此,这个TLLI是上表中的异地TLLI(foreign tlli),如果是local TLLI的话则和P-TMSI的值完全相等。为什么MS没有发生移动,在本地关机后重新附着还要用foreign tlli?TS23.060 协议是这样规定的。
“If the MS has a valid P TMSI associated with the RA where the MS is currently located, the MS shall use a Local TLLI derived from its P TMSI, unless the MS performs a GPRS attach.
  If the MS does not have a valid P TMSI associated with the current RA, or if the MS performs a GPRS attach, it shall derive a Foreign TLLI from its P TMSI, or allocate a Random TLLI if no valid P TMSI is available.”

  翻译下就是,第一段说了如果MS所在这个RA中有一个正确的P-TMSI,那MS应使用从P-TMSI演变过来的local TLLI来标识自己,但有一个例外,就是MS做附着的情况。所以根据规范,MS在后续的所有消息,不管是信令还是payload都应该使用由这个P-TMSI派生出的local TLLI来标识自己。除了附着流程以外。在第二段里。告诉我们附着使用的是foreign TLLI,无有效的P-TMSI可用就是用random TLLI。

2 #2到#7完成了MS的附着,可以看到在这几步里,MS标识自己都是用的oxa02ccb60,即foreign TLLI。但在第6步,SGSN给MS的attach accept消息里给MS分配了一个新的P-TMSI 0xe02dcb50。#7 是MS给SGSN 回的attach complete消息,使用的TLLI仍然是原来的0xa02ccb60,因为这一步还没有完成附着流程,所以要用原来的。

3 根据#6 MS从SGSN得到的新分配的P-TMSI 0xe02dcb50生成了一个local TLLI 。值也是0xe02dcb50。可以看到两者一模一样,可以确定这是一个local TLLI。

4 从#8到#18号包,可以看到后续MS发起了RAU和PDP激活,二次激活,去激活等流程,一直都使用的是根据新分配的P-TMSI生成的local TLLI 0xe02dcb50。
  直到被去附着。
  通过这个例子就可以看出来local 和foreign TLLI的使用了。
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册
www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

Rank: 9Rank: 9

懒

沙发
发表于 2011-6-30 21:55:50 |显示全部楼层
回复 lsjier 的帖子

  我的包也是附着后面跟着PDP激活,只不过多了一个RAU流程。有没有这个RAU都是不影响TLLI的使用的。关键就是看附着成功后,MS是不是从使用foreign TLLI切换到了使用local TLLI。
  我觉得我的包和你的包没什么区别啊。能否提供下你的包呢?
  #8后面的GMM Information步骤是可选的,可用于网络侧提供一些时区信息等。
www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

Rank: 9Rank: 9

懒

板凳
发表于 2011-6-30 22:55:20 |显示全部楼层
本帖最后由 爱卫生 于 2011-6-30 23:01 编辑

回复 lsjier 的帖子

  这个包的显示有问题。需要去查看下相应的产品手册。
1 你的TLLI和P-TMSI的值差得太远。最上面的TLLI是217xxx,而P-TMSI是324xxx。不应该,在附着时,用的TLLI是从P-TMSI转换来的。只有bit 30和31有区别。你这个明显差好远。
  另外, 仪表上的表达式和wireshark的表达式不一致。所以,我只能以抓的包为准。
  最后,搬出规范来挡一挡:
  在TS23.060中明确提到,MS应该如何使用local和foreign TLLI。摘录如下:“
  If the MS has a valid P TMSI associated with the RA where the MS is currently located, the MS shall use a Local TLLI derived from its P TMSI, unless the MS performs a GPRS attach.
  If the MS does not have a valid P TMSI associated with the current RA, or if the MS performs a GPRS attach, it shall derive a Foreign TLLI from its P TMSI, or allocate a Random TLLI if no valid P TMSI is available.“

   上述描述,第一段说了如果MS所在这个RA中有一个正确的P-TMSI,那MS应使用从P-TMSI演变过来的local TLLI来标识自己,但有一个例外,就是MS做附着的情况。很显然,在你的抓包中,MS是有一个正确的P-TMSI的,这是attach accept消息分配给MS的,attach accept消息里也会有RA的信息。所以根据规范,MS在后续的所有消息,不管是信令还是payload都应该使用由这个P-TMSI派生出的local TLLI来标识自己。除了附着流程以外。
   另外,针对附着流程,也说明了。在第二段里。告诉我们附着使用的是foreign TLLI,无有效的P-TMSI可用就是用random TLLI。
   所以你上面的截图如果不是程序显示的问题,那就是手机没有遵守规范。
www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

Rank: 9Rank: 9

懒

地板
发表于 2011-6-30 23:27:16 |显示全部楼层
回复 lsjier 的帖子

   得看下仪表的手册了。看下这几个数字对应的是不是TLLI和P-TMSI。如果是,那就比较奇怪了。因为按照规范。TLLI和P-TMSI的值不可能差这么远的。local TLLI和P-TMSI的值完全一样。而foreigh TLLI和P-TMSI只差一个bit不同,而且是在高bit位。那即使换算成十进制,至少个位应该一样吧。你的个位都不一样,一个1,一个8。
www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

Rank: 9Rank: 9

懒

5#
发表于 2011-6-30 23:43:10 |显示全部楼层
回复 lsjier 的帖子

  我拿科学计算器算了下,确实是的。你说的对。217是foreign TLLI。那你抓的和我抓的包在附着流程上用的都是foreigh tlli。但后来MS在附着完成后应该使用local TLLI啊。这是规范说的啊,我的理解应该没有问题吧。“If the MS has a valid P TMSI associated with the RA where the MS is currently located, the MS shall use a Local TLLI derived from its P TMSI, unless the MS performs a GPRS attach.” 这段话你怎么理解呢?TS23.060的规范。
www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

Rank: 9Rank: 9

懒

6#
发表于 2012-3-3 20:25:03 |显示全部楼层
回复 Mr_Muscle 的帖子

非常13-17楼,特别是14楼和17楼提供的宝贵意见。提醒了我。

这个问题,我觉得可以得到初步的结论了。根据前面几位的总结,个人感觉的结论是。

1 关于TLLI的变化和使用,BSC也需要起到很关键的作用。因为BSC是作为MS和SGSN的中间节点,需要处理LLC层的路由,就需要随时知道用户当前使用的什么TLLI,否则无法路由。对上,BSC接受SGSN的领导,由SGSN通过BSSGP协议告知BSC用户的TLLI。BSC根据这个TLLI来进行下行方向MS的路由。其中,BSSGP协议里可能会有两个TLLI,一个current TLLI,一个old TLLI。如果只有crrrent TLLI在BSSGP层出现,那BSC就用这个TLLI来进行路由,并且代表用户的TLLI(P-TMSI)没有发生变化。但如果BSSGP协议里同时带了这两个TLLI,则代表SGSN告诉BSC,用户的TLLI发生了变化,新的值写在了current TLLI,虽然这个TLLI(P-TMSI)可能已经下发给了MS,但需要网络侧通知MS什么时候用这个新的TLLI,并且这个包是给MS的,那这个包仍然还需要使用old TLLI来路由到MS(因为MS还没有使用新TLLI)。但BSC需要通知MS下次使用新TLLI,也就是current TLLI的值,这个TLLI可以在RLC/MAC头部携带。(正好回答13楼的问题,RLC/MAC头部中确实会带TLLI,应该通知MS是否有重复的TLLI,实际上是更新MS的TLLI)。或者如果这时候用户上行的TBF已经释放,那MS后续发起信令消息时,需要重建上行TBF,那BSS可以通过下行消息uplink assissment中的RLC/MAC头部来更新MS的TLLI。MS收到后就会使用新的TLLI来发送上行消息了。

根据这个原则,发现可以解释这个帖子里面提到的所有现象和抓包。敬请各位帮忙鉴定。

www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

Rank: 9Rank: 9

懒

7#
发表于 2012-4-26 20:06:00 |显示全部楼层
本帖最后由 爱卫生 于 2012-4-26 20:09 编辑

回复 海阔天空 的帖子

这个问题已经有明确的答案。什么生效取决于SGSN给MS发的GMM消息中,BSSGP包头里有没有携带Current TLLI。通过这个current TLLI就是后续MS需要用到的local TLLI。BSS再通过空口的RLC/MAC层协议要求MS去使用新的local TLLI。在BSSGP协议中,还会携带一个old TLLI,即分配local TLLI之前MS最近使用的TLLI。这样,BSC就知道这个新TLLI是和之前的哪个TLLI对应了,建立了这样一个映射关系,可以做路由。本例中所有的实例报文都符合上述特征。

因为local TLLI的生效一定要经过BSC的确认才行。因为BSC做为RAN侧节点,提供MS到SGSN报文的路由功能,而BSC需要根据TLLI来进行寻址。如果变更了TLLI而不通知BSC,则BSC将在收到MS报文后,去除RLC/MAC报文头后,无法在BSSGP层写入正确的用户TLLI值报告给SGSN,SGSN将因此无法和对应LLC连接对应。从而无法区分出这个报文是属于哪一个MS的。

在RLC规范TS43.064中写道:

“Because each Radio Block includes an identifier (TFI or TLLI), all received Radio blocks are correctly associated with a particular LLC frame and a particular MS.“

在RLC/MAC的无线块中奖包含TLLI,因此这些无线块将和一个MS以及一个特定的LLC帧进行关联。

www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

Rank: 9Rank: 9

懒

8#
发表于 2012-5-10 01:30:53 |显示全部楼层
回复 samsin 的帖子

这个不用担心。BSC肯定是要知道的。MS要上网,需要PCU分配空口的无线资源。分上下行空口资源,对应到上行的TBF和下行的TBF。当MS要发送上行数据之前,要建立上行TBF请求分配上行空口资源,发送channel request消息。如果是下行的TBF,则BSC会给MS发Packet Downlink Assignment,里面也会包含TLLI。可以参考http://etutorials.org/Mobile+devices/gprs+mobile+internet/Chapter+5+Radio+Interface+RLC+MAC+Layer/Radio+Resource+Allocation/的5.5.2.2,Downlink TBF Establishment on CCCH。

When the network receives a downlink LLC PDU to transmit to the mobile, it initiates the establishment of a downlink TBF by sending a PACKET DOWNLINK ASSIGNMENT message to the MS on PCCCH. The PACKET DOWNLINK ASSIGNMENT message is sent on any block of the PCCCH where paging may appear if the mobile is in non-DRX mode; otherwise, it is sent on one block corresponding to the paging group of the mobile.

The PACKET DOWNLINK ASSIGNMENT message contains the following parameters:


    TLLI. This identifies the mobile for which the message is intended.

  • Downlink TFI.This is the identifier of the downlink TBF.


附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册
www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

Rank: 9Rank: 9

懒

9#
发表于 2012-5-10 21:12:18 |显示全部楼层
回复 samsin 的帖子

不好意思。可能我没理解你的问题。应该不会有重复的TLLI啊。因为都是SGSN分配的。如果是路由的问题,那没有RAI没有关系啊,不是还有BVCI嘛。况且正如本例所提到的,如果发生了TLLI的变更,SGSN会在BSSGP层通知BSC,在BSSGP中包含两个TLLI,一个是old TLLI,一个是current TLLI。BSC收到后就会通知MS,接下来用current TLLI了。

www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

Rank: 9Rank: 9

懒

10#
发表于 2012-5-11 23:20:08 |显示全部楼层
回复 samsin 的帖子

sam大侠,这点我和你的理解不一样哦!

我的理解是,RA是SGSN管理的,而不是由BSC管理的。当然,一个SGSN可以管理多个RA。也就是说,如果从路由用户上下行数据的角度来看,其实BSC应该是不需要知道RAI的。也就是说,BSC不需要根据RAI来路由下行用户数据。下行方向的数据发送,由SGSN决定发给哪个RA下的BSC就可以了,在这个DL-Unit-DATA消息中有用户的TLLI,以及NS层的BVCI提供给BSC,BSC可以根据BVCI找到和小区的映射关系,然后将用户数据发到小区的MS就可以了。并不需要知道RAI是什么啊。也就是说,DL发包给MS,BSC侧只需要知道Cell ID和TLLI就可以发给用户了。如果TLLI发生了改变,SGSN通知BSC new TLLI,BSC再通知MS,MS后续会使用new TLLI,这样也不会弄错用户啦。

当然,在BSC中应该会有相应的配置,配置小区和RA的对应关系,这样才能给SGSN上报正确的位置信息。并且,BSC还要负责给MS发送SI 13的系统广播,告知MS当前的RA是多少,以触发MS来决定是否需要发起正常的RAU流程。

以上信息我也不能100%确定,等周一时候,我去请教下无线的同事,到时候再确认下。

www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

Rank: 9Rank: 9

懒

11#
发表于 2012-5-14 22:14:06 |显示全部楼层
samsin 发表于 2012-5-12 17:57
感谢艾老板的热情回复, 感觉老版说的有理,还有一些疑点:
1、BVCI是否是BSC根据上行PDU时,该MS所在的CG ...

咨询了做无线的同事。应该各个厂家的BSC类似。

首先,BVCI会对应到BSC中定义的一个小区,BVCI的配置是自动产生的。因此,BSC侧将BVCI生成后,会通过NS层报告给SGSN。(所以,实际上,SGSN侧也不需要做BVCI的静态配置,由BSC提供即可。规范里也有,是这么说的:"In the BSS, it shall be possible to configure BVCIs statically by administrative means, or dynamically. In case of dynamic configuration, the BSSGP shall accept any BVCI passed by the underlying Network Service entity.

All other values(除了0、1) may be used freely by the BSS and shall be accepted by the SGSN.")如果有下行数据发送,则SGSN通过该BVCI发送给BSC即可,所以下行downlink-unit-data里并没有包含RAI,BSC也可以完成到用户的路由。BSC通过收到的BVCI完成和小区的映射,并且BSSGP层得到了用户的TLLI,就可以将下行数据发给MS了。

关于BSC侧的配置是,BSC上需要定义CGI,没有BTS的坐标参数,也没有天线的方向角和下倾角参数。

www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

Rank: 9Rank: 9

懒

12#
发表于 2012-6-10 20:01:37 |显示全部楼层
cola 发表于 2012-6-10 19:17
既然TLLI是由P_TMSI产生的,而且在Local TLLI和P_TMSI的值是一样的,那为什么不直接用P_TMSI代表用户啊,而 ...

两个术语是不同层的概念。P-TMSI是L3的信息元素,是在MS和SGSN间交互的GMM信令中传递的,对中间RAN侧节点BSS是不可见的。BSS路由是通过LLC层的TLLI来路由的,所以两个都需要,缺一不可。

Um接口协议栈是:GSM Rf---RLC/MAC---LLC---GMM/SM

Gb接口协议栈是:PHY---FR---NS---BSSGP---LLC---GMM/SM。

www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

Rank: 9Rank: 9

懒

13#
发表于 2012-9-24 13:53:01 |显示全部楼层
仔仔 发表于 2012-9-24 11:30
请问爱总,像这样手机在原地关机后开机 bsc还是会选择原来的sgsn吗?是怎样选择sgsn的?

还会选择原来的SGSN。准确的说并不是选择的。因为BSC和它的上级SGSN之间是一一对应的关系,相当于员工与老板的关系。所以不存在员工选老板的问题。BSC只需要配置好到SGSN之间的连接,传送BSSGP的消息就可以了。没有选择过程。

www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

站长邮箱|Archiver|51学通信 ( 粤ICP备11025688 )

GMT+8, 2024-5-9 22:33 , Processed in 0.063055 second(s), 14 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部