51学通信技术论坛

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

从附着和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: 8

沙发
发表于 2011-6-30 21:45:03 |只看该作者
回复 爱卫生 的帖子

爱总,你这个帖涉及了路由更新,#8的消息我在Gb信令上没看到过哦。

我前发的那个是用户attach后,发起PDP激活请求,但是这条消息却是用的Foreign TLLI。。。
博学之,审问之,慎思之,明辨之,笃行之

使用道具 举报

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: 8

地板
发表于 2011-6-30 22:13:57 |只看该作者
回复 爱卫生 的帖子



爱总,就像上面这个用户的信令,在后续发起的 PDP request中并没有转换TLLI。。。

我信令是仪表获取的  无法转成pcap格式。。
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册
博学之,审问之,慎思之,明辨之,笃行之

使用道具 举报

Rank: 9Rank: 9

懒

5#
发表于 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: 8

6#
发表于 2011-6-30 23:06:39 |只看该作者
回复 爱卫生 的帖子

这样的用户很多哦,基本都是。

Foreign TLLI:2147483648--3221225471。


博学之,审问之,慎思之,明辨之,笃行之

使用道具 举报

Rank: 9Rank: 9

懒

7#
发表于 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: 8

8#
发表于 2011-6-30 23:31:55 |只看该作者
回复 爱卫生 的帖子

位是对的。我是按照32个二进制算的。


11111111111111111111111111111111----4294967295
11000000000000000000000000000000----3221225472
10111111111111111111111111111111----3221225471
10000000000000000000000000000000----2147483648

也就是说 217是Foreign TLLI
博学之,审问之,慎思之,明辨之,笃行之

使用道具 举报

Rank: 9Rank: 9

懒

9#
发表于 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: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

10#
发表于 2011-7-4 09:27:20 |只看该作者
爱卫生 发表于 2011-6-30 23:43
回复 lsjier 的帖子

  我拿科学计算器算了下,确实是的。你说的对。217是foreign TLLI。那你抓的和我抓的包 ...

奉献一个现网的抓包,以资参考:


附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

使用道具 举报

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

11#
发表于 2011-7-25 16:06:57 |只看该作者
回复 爱卫生 的帖子

我的理解是,规范那句话只是对刚开始时用的TLLI的一个使用。
至于后续的消息,需要SGSN通过BSSGP来指示TLLI改变。看LZ消息包中的#8,BSSGP层的TLLI(CURRENT)和TLLI(OLD)字段。BSSGP协议中也只有下行方向带两个TLLI。

使用道具 举报

Rank: 2Rank: 2

12#
发表于 2011-7-27 01:07:21 |只看该作者
回复 weishengzi 的帖子

SGSN在收到BSS侧第一个携带TLLI(new)时,对于TLLI(new)或者说Local TLLI才生效。因为如果SGSN提前使用Local TLLI,则BSS侧无法在BSSGP层进行寻址了。一般情况下,Local TLLI会伴随Attach Accept或RAU Accept消息在BSSGP层以TLLI(new)形式带下去,同时带下TLLI(old)便于BSS寻址。当Attach Complete或RAU Complete消息的BSSGP层携带的TLLI为新TLLI时,SGSN认为新TLLI生效,并在后续流程中都使用TLLI(new)。

使用道具 举报

Rank: 2Rank: 2

13#
发表于 2011-9-20 17:46:12 |只看该作者
学习了,很好的学习模式

使用道具 举报

Rank: 2Rank: 2

乐于助人

14#
发表于 2011-10-5 16:39:45 |只看该作者
本帖最后由 feile99 于 2011-10-5 17:00 编辑

回复 zhenjiucuo 的帖子

在48.018 BSSGP协议中找到一段,不知道是否可以解释楼上的抓包。

An SGSN provides the BSSGP with a current TLLI, identifying the MS. If an SGSN provides a second TLLI, indicating that an MS has recently changed its TLLI, this shall be considered as the "old" TLLI. A BSS uses the "old" TLLI to locate an MS's existing context. Subsequent uplink data transfers for this MS shall reference the current TLLI, and not the old TLLI.


这个是否说明只有在SGSN在给BSC的BSSGP消息中把current TLLI和old TLLI都带下去之后,MS才会开始使用local TLLI。所以楼上的抓包表明SGSN在Activate PDP Accept消息中才把两个TLLI带下去。

但一个问题是MS是如何知道SGSN把两个TLLI给了BSC呢? BSSGP消息是SGSN和BSC之间的消息啊!

是否是BSC在收到两个TLLI之后,在RLC/MAC消息中将这个新的TLLI告诉MS,MS在之后的上行消息中开始使用新的TLLI?

使用道具 举报

Rank: 2Rank: 2

15#
发表于 2011-10-9 17:31:26 |只看该作者
回复 feile99的帖子

SGSN 是在ATTACH ACCEPT 里把新的TLLI带给MS,而和Active PDP Accept没有关系,SGSN要等ATTACH过程结束后,MS使用新的TLLI发送请求后,才认为新的TLLI生效了,所以SGSN在发送的MM INFORMATION消息里使用了两个TLLI。但是MS发送RAU后,OLD TLLI就不再使用了。

使用道具 举报

Rank: 2Rank: 2

16#
发表于 2011-12-2 10:38:16 |只看该作者
关于这句话“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.
”,是否是指:只要是attach,那么肯定是用foreign TLLI,但是我这里抓去的包里面,attach用的也是local TLLI。
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

使用道具 举报

Rank: 4Rank: 4Rank: 4Rank: 4

17#
发表于 2012-2-1 23:54:42 |只看该作者
我的理解是:
当Attach Accept之后,虽然MS已经收到了新的P-TMSI,但是仍用foreign TLLI进行传递消息,直到SGSN发送下来的消息中包含了TLLI_Current和TLLI_Old,当BSS收到这个消息之后,就会通知MS下个消息开始使用Local TLLI进行通信。
也就是这句话的意思了
An SGSN provides the BSSGP with a current TLLI, identifying the MS. If an SGSN provides a second TLLI, indicating that an MS has recently changed its TLLI, this shall be considered as the "old" TLLI. A BSS uses the "old" TLLI to locate an MS's existing context. Subsequent uplink data transfers for this MS shall reference the current TLLI, and not the old TLLI.
生活是一段一段的~

使用道具 举报

Rank: 9Rank: 9

懒

18#
发表于 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及移动通信技术学习交流分享平台。

使用道具 举报

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

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

GMT+8, 2024-4-27 18:33 , Processed in 0.251429 second(s), 13 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部