在网上有很多关于GPRS信令流程的介绍,但都只是根据规范介绍了相应的步骤。没有根据实际的用户应用场景做详细的分类。其实在做附着的时候,有很多实际情况需要区别对待。它们的信令流程也都是不一样的。 在本例里,我举的例子就是一个全新手机第一次使用附着的情况。附着流程经过的节点为: MS--BSC--SGSN---HLR 信令流程图如下图所示: 对应的信令流程如下: 1) 由于是新手机,所以MS第一次一定是用IMSI来进行附着。否则只要使用过,就一定会有上一次使用,由上一次服务的SGSN分配的P-TMSI。因此在手机执行附着时(很多手机是默认开机就执行PS的附着,这样在使用业务时会降低一些延迟,但缺点就是可能会比较耗电)。在携带的附着请求消息里,携带了MS的IMSI,并且会带上自己上一次使用的RAI,但如果第一次使用,那RAI就为空。 2) BSC收到后,会在BSSGP消息里加上MS当前所处的RAI,以及CI告诉SGSN。SGSN就会知道用户是在哪个小区了。 3) 由于IMSI就可以直接用来做鉴权,所以SGSN无需发送indetify request去向MS要求提供IMSI。所以在这一步是SGSN向HLR请求关于这个用户的鉴权参数。 4) HLR返回给SGSN鉴权参数,如果是GSM用户,是三参数组。如果是WCDMA用户,则是五参数组。 5) SGSN得到HLR送过来的鉴权参数知道该怎么样鉴权用户了。这样就对MS发起鉴权和加密请求,其中加密是可选的。但鉴权一定要。 6) MS回送SGSN关于鉴权的应答,实际上是根据Sim卡中存储的鉴权算法和密钥计算出的一个随机数值。 7) SGSN本地也会计 算一次,如果和MS送过来的随机数值相同,则鉴权成功。否则鉴权失败。SGSN会直接回attach reject. 8) SGSN给HLR发送位置更新请求,通知HLR当前MS所在的位置是在自己的服务区。 9) HLR收到后,会将SGSN的地址信息和MS进行绑定,标识出当前为MS提供服务的SGSN是谁。HLR通过MAP协议向SGSN发送用户的GPRS签约数据。这些签约信息主要包括用户的签约QOS profile如上下行速率,签约的APN等信息。 10) SGSN将用户的签约数据存储到本地,并给HLR发送确认。 11) HLR给SGSN发送位置更新确认消息,对第8步中SGSN提交的位置更新请求进行确认。 12)SGSN给MS回附着接受消息代表网络侧认可附着成功。这个消息里包含了当前的RAI,Reday Timer,周期性RA更新计时器,以及SGSN给这个MS分配的临时性标识符P-TMSI,用于在当前RA临时标识这个MS。 13) MS将从SGSN收到的信息保存到卡里,MS发送Attach Complete消息给SGSN用于完成对新分配的P-TMSI值的确认,并完成整个附着流程。 |