本帖最后由 爱卫生 于 2012-4-4 13:13 编辑
附上本例的信令流程图,可能会更方便理解这个故障。 (1)MS发送Activate PDP Context Request消息给SGSN,请求见到到xxnet这个APN的会话。同时请求为这个PDP会话分配NSAPI值为5。 (2)SGSN向GGSN发起Create PDP Context Reuqest消息用于为MS请求建立到xxnet这个APN的连接,并将NSAPI信息元素值设置为5。 (3)GGSN进行确认,为MS建立到xxnet这个APN的会话,并给SGSN回应Create PDP Context Response消息。NSAPI信息元素值设置为5。用于标识MS到xxnet这个APN的PDP上下文。 (4)SGSN给MS发送Activate PDP Context Accept消息确认到xxnet的APN会话连接建立成功,并将网络侧分配好的NSAPI值告知MS,MS收到后将NSAPI=5保存下来。 接下来,MS几乎同时发出两条信令消息。 (5) MS发送Deactivate PDP Context Request消息给SGSN,请求将NSAPI=5的这一个PDP上下文去激活,对应的APN为xxnet。同时,在MS侧,已经将对应的NSAPI=5的值在本地删除。 (6) 同时,MS向MS发送了Create PDP Context Request消息给SGSN,请求建立到xxwap这个APN的会话连接,并请求分配NSAPI=5。 SGSN收到这两条消息后,据此向GGSN发送了两条信令消息。 (7) 做为对第5步MS请求去激活NSAPI=5这个PDP上下文的响应,SGSN向GGSN发送Delete PDP Context Request消息,请求GGSN将NSAPI=5的这条PDP上下文删除。 (8) 做为对第6步MS请求见到到xxwap这个APN的PDP会话的响应,SGSN向GGSN发送Create PDP Context Request消息,请求GGSN为MS建立到xxwap这个APN网络的PDP会话,并且请求分配NSAPI=5。 (9) 由于第7步的Delete PDP Context Request消息和第8步的Create PDP Context Request消息可能是同时到达的或者第8步的Create PDP Context Request消息先于第7步的Delete PDP Context Request到达GGSN,则GGSN侧意识到关于NSAPI=5这个值已经被分配给了MS到xxnet这个APN的PDP上下文,而现在又收到了同一个MS的PDP上下文创建请求,请求的NSAPI也是等于5。则GGSN侧会认为做为MS请求的消息中,NSAPI做为强制的信息元素取值不正确,从而给SGSN回应带有CC201(Mandatory IE incorrect)的Create PDP Context Response消息,通知SGSN,这次PDP上下文激活失败是因为协议中有强制的信息元素取值不正确导致的。 (10)SGSN根据GGSN的指示,给MS回应带有原因代码CC30的Activate PDP Context Reject消息,通知MS本次PDP上下文激活失败,并且是由GGSN拒绝的。 |