这个例子,也非常普遍。和贴2中提到的用户位置不移动,附着成功后关机再开机附着有一点不同的是,SGSN在本例中删除了用户数据。 对于SGSN上为什么,何时会删除用户数据。有很多中例子。比如: 1 SGSN上通过人工干预用命令删除了用户数据。 2 网络侧发起了对MS的去附着。例如HLR上更新的用户的签约数据。收到了PCRF的策略控制指示,SGSN上的隐式去附着计时器超时等等。 因此,这个例子中的场景是,某个用户,白天开机后手机自动做了附着,但由于一天都没有执行GPRS数据业务,那SGSN就执行了隐式去附着将用户的签约信息和位置信息以及鉴权信息等都删除了。 那这个用户晚上关机睡觉后,第二天再开机进行附着的流程就应该如下: (本例请参考附件的pcap抓包文件。 ) 1 #1是MS发起的附着请求经BSC发给SGSN。里面携带的身份ID是P-TMSI。这里是0xe02ccb60,并且携带了RAI代表上一次附着的RA是谁,也即说明上一次的服务区是由哪个SGSN提供的。为了方便标识,把MS附着请求里带的P-TMSI和RAI称为old RAI和old P-TMSI。如图1所示。 图1 用户用P-TMSI发起附着并带上Old RAI 2 虽然用户并没有移动位置,这个old RAI和old P-TMSI也都是由当前这个SGSN分配的,但这个SGSN因为已经删除了用户数据,所以已经不能识别了,所以在#2,SGSN发送identity request要求MS提供自己的IMSI来完成鉴权流程。如图2所示。 图2 SGSN向MS请求IMSI进行后续的鉴权 3 #3是MS回应的identity response里携带了自己的IMSI46000*,因为只有IMSI才能做鉴权。如图3所示。 图3 MS向SGSN报告自己的IMSI 4 #4是SGSN根据用户提供的IMSI向HLR发起请求,要求提取和这个用户相关的鉴权三参数组,并提供了用户的IMSI。在本例中SGSN向HLR请求两组鉴权参数。如图4所示。 图4 SGSN向HLR请求鉴权参数 5 #5是HLR发送的响应,携带了关于这个用户的鉴权三参数组。 但在#5的响应中,HLR只返回了一组鉴权参数。但实际上SGSN请求了两组。因此在#6和#7的Gr接口的信令交互中,HLR返回了另一组用户的鉴权参数信息。如图5和图6所示。 图5 HLR返回第一组鉴权参数 图6 HLR返回第二组鉴权参数 6 #8和#9是SGSN和MS完成鉴权过程。如图7和图8所示。 图7 SGSN向MS发起鉴权请求 图8 MS向SGSN返回鉴权响应和鉴权计算结果完成鉴权 7 鉴权通过后,SGSN在#10向HLR发起位置更新请求,包含了自己的地址信息和用户信息。如图9所示。 图9 SGSN向HLR发起位置更新请求 8 HLR返回用户的签约数据给SGSN,并完成位置更新。到#13结束。HLR返回的用户签约数据如图10所示。 图10 HLR向SGSN返回用户的签约数据 9 #14 是SGSN发送attach accept消息给MS标识网络侧已经认可附着成功。并下发当前的RAI,和分配新的P-TMSI以及Ready Timer等参数。如图11所示。 图11 SGSN给MS发送Attach Accept消息 10 #15是MS回应的确认,完成整个附着流程。如图12所示。 图12 MS回Attach Complete确认对P-TMSI的分配并完成整个附着过程。 |