51学通信技术论坛

标题: 关于多次断开后no carrier的问题 [打印本页]

作者: hslyhsly    时间: 2012-6-7 10:26:19     标题: 关于多次断开后no carrier的问题

爱总,您好!

我们在做一个关于3G上网卡的测试。

测试场景是,在PPP拨号完成,网络联接上后拨掉上网卡,这样重复十多次后,会出现上网卡插上后不能拨号的情况。在waiting carrier后很快就是no carrier,然后退出。

发现出现这种情况后,只有拔掉上网卡,等待几分钟后再插入才能恢复工作。

我们对比了,能拨号和不能拨号情况下的at+cops , at^sysinfo ,at+creg 等网络状态,除了creg中的cell id不一样外,都是一样的。

我们猜想会不会是服务端的某种保护机制造成了这种情况,服务端发现了异常,主动了拒绝了这个cell id的连接请求,直到上网卡申请到新的cell id 后才能正常

请问您有什么看法。




作者: hslyhsly    时间: 2012-6-7 11:29:00

或者会不会是这样,上网卡注册到了某个基站上(cell id 1),在连接状态下断开,cell id 1 上的信息还未能及时处理掉,上网卡又加电重新搜索网络,结果尝试注册到cell id 2上,于是失败
作者: hslyhsly    时间: 2012-6-7 14:52:41

[发帖际遇]:hslyhsly 捡了钱没交公 金钱 降了 3 . 我晕倒。。。
作者: 爱卫生    时间: 2012-6-7 20:32:06

hslyhsly 发表于 2012-6-7 11:29
或者会不会是这样,上网卡注册到了某个基站上(cell id 1),在连接状态下断开,cell id 1 上的信息还未能及 ...

我也只能猜,没什么根据的。感觉和小区ID不同关系不大。有可能是上一次激活的PDP上下文还没有被去激活(占用了NSAPI=5),又激活了新的PDP上下文(NSPAI也=5),网络侧会拒绝这次PDP激活,回复的cause code我记得好像是pdp context already exist类似这个。当然,也可能不是这个原因,猜的。
作者: hslyhsly    时间: 2012-6-8 11:27:18

请问NSAPI是何时产生的?如果不断电,是不是这个值就会一直不变?如果断电了,再搜索网络,再去做PDP激活,是不是NSAPI就会变化?
作者: 爱卫生    时间: 2012-6-8 19:17:25

hslyhsly 发表于 2012-6-8 11:27
请问NSAPI是何时产生的?如果不断电,是不是这个值就会一直不变?如果断电了,再搜索网络,再去做PDP激活, ...

NSAPI是在PDP激活过程时,由MS向网络侧请求,然后网络侧确认后进行分配的。要释放的话和断电没关系,要通过PDP上下文去激活流程才能释放。所以断电以后,NSAPI其实是没有释放的。但如果重新开机后,MS找不到这个PDP上下文,重新做PDP激活重新请求相同的NSAPI就会被拒绝。当然,大多数情况下,是不会有问题的。因为MS关机会发一个去附着请求,去附着后网络侧会将MS的PDP上下文释放,NSAPI也就释放了。除非是一些异常的场景,例如突然手机断电、用户自己拔电池等。


作者: hslyhsly    时间: 2012-6-11 09:59:41

您好,是的,我们的情况就相当于突然断电的情况,NSAPI的值是个随机值吗?还是一般等于5,或者等于6有固定的含义?我们大约突然断电十次会有一次出现故障,这是不是说有10%的概率会是第二次申请的NSAPI与第一次一样。MS突然断电后,网络侧多久会清理已经无效的PDP连接?谢谢。
作者: hslyhsly    时间: 2012-6-11 10:03:31

我的到了一些您以前的回复 :

NSAPI :  信令面, 标识同一个用户的多个 PDP Context , NSAPI 与 RAB ID 值等同 。取值 0-15 ;  
一个用户最多激活11个PDP上下文。信令面多个 PDP Context 可以共用一个 TEID , 用 NSAPI 区分
但如果是一个用户激活secondary APN,虽然APN是同一个,但会分配两个NSAPI。SGSN会放到创建PDP请求消息里发给GGSN。

NSAPI field:4 bit。=0扩展以后用。=1 P-MP多播消息 2-4保留 5-15 动态分配的。连上一个外部网络就有一个NSAPI.由于1-4预留,所以MS拿到的NSAPI一定是从5开始的。

所以NSAPI是从5开始依次分配的值,范围在0-15之间对吧。

依然搞不清楚的问题是。MS突然断电后,网络侧多久会清理已经无效的PDP连接?谢谢
作者: hslyhsly    时间: 2012-6-11 10:14:55

相应的如果NSAPI是每次加电后都从5开始分配,那为何十次中只有一次是断后不能再联接的?按这样看似乎应该是每次都会有问题吧?
作者: hslyhsly    时间: 2012-6-11 18:10:15

做了两个测试:
1, 用 cgdcont 复制一条与PDP1一样的PDP上下文配置2.在1不可用的情况下,用配置2去连接,结果依然不行。所以感觉与NSAPI关系不大。

2,新建一条APN不同的PDP上下文3,在1不可用的情况下,3可正常连接。所以在想是不是1对应的GGSN上的注册数据没用被清除造成了再次注册的失败。MS突然断电后,它清理注册数据的策略是怎么样的

但依然不明白GGSN上注册的是什么?
作者: 爱卫生    时间: 2012-6-11 19:15:35

hslyhsly 发表于 2012-6-11 18:10
做了两个测试:
1, 用 cgdcont 复制一条与PDP1一样的PDP上下文配置2.在1不可用的情况下,用配置2去连接, ...

在GGSN上是注册并创建一个PDP上下文。PDP上下文可以看成MS到PDN网络的会话连接,里面的信息有很多,包含的信息主要包括有IMSI、NSAPI、PDP Type、PDP地址、MS IP、TEID、TFT、使用的APN等。算上不常用的总共有20多项。在TS23.060的13.2章Table 7中定义。

MS突然断电,网络侧可能没有任何感知,因此并不会认为该PDP上下文无效,通常在GGSN上会设置一个idle-timeout,时间在几十分钟不等。

我也只是个人猜测,不一定是NSAPI的原因的。


作者: hslyhsly    时间: 2012-6-12 11:02:41

感谢您及时和耐心的回复。在您的帮助下我们对这个问题有了大致的了解和方向。

关于在问题出现后怎么样才能去清除GGSN上的信息,我昨晚做了几个尝试,如有at+cgatt=0去附着,用at+cops=2 强制注销当前网络。或者联接上另外一个APN,但无论哪种方法几个小时后还是不能再次连接。但只要断电后几分钟才能再次连接上网络。
我本以为只要不要与GGSN通讯,几分钟后它就应该会作出清理工作。不知这样想对吗?是不是要彻底断绝通讯只有断电一途?






欢迎光临 51学通信技术论坛 (http://51xuetongxin.com/bbs/) Powered by Discuz! X2