黑莓断网 思考 apn激活pdp整个过程

黑莓断网现象由来已久,令无数断网的煤油烦恼,今天介绍来自微博上的@黑莓右键总管 今天发布一篇探讨性的文章,旨在分析引发黑莓断网的因素及探讨性的解决办法,我们分享一下,如果你有更好的解决办法,欢迎来稿分享。

以下文字来自@黑莓右键总管 在MAXPDA 发布的帖子:

【OS5.0断网现象】是指信号指示在gprs/edge状态但第三方软件不能上网了,自带浏览器还是可以上网的
并不是:所有软件都不能上网或者GSM/SOS之类状态。

【从断网中恢复的方法】
1、重启机器。2、9700 att的无线更新方法。
其他方法都是不行的,或者是个案,或者本来就不是OS5的断网现象。
很多机器都已经弄出了无线更新选项,但用无线更新都不能解决断网问题。
诱发断网的因素:1、在不同基站间切换。2、进出无信号区。3、自动开关机

【引发断网的因素】
最重要的,和服务有关:上BES、BIS就不会断网
和地区有关:部分城市几乎不会出现断网,北京几乎是必断的
和ROM有关:OS5.0以下不会出现断网
和运营商有关:有人说某些3G的号不会断

【解决断网的思路:修改第三方软件连接方式】
在写程序的时候,CMWAP连接方式必须完整,即包含下面的关键字
deviceside=true;WapGatewayAPN=cmwap;WapGatewayIP=;WapGatewayPort=9201
这样,不论系统APN、Servicebook如何设置,都强制走cmwap,就不会断网了。
具体原因分析如下:

【不受断网影响的软件列表】
已亲自证实:
goonuu(cmwap)
viigo(cmwap)
google maps 3( cmwap)
google maps 3.2( cmwap)
google mail 2.0.6 (cmwap)
google mail 2.0.7 (cmwap)
未亲自证实:
GoogleSync(cmwap)
Dictionary (cmwap)
berryweather(cmwap)

【不受断网影响的软件代码分析】
在cmwap修改版的gmail 2.0.6中发现代码段:
deviceside=true;WapGatewayAPN=cmwap;WapGatewayIP=;WapGatewayPort=9201
在cmwap修改版的gmaps3.2中发现代码段:
WapGatewayIP=;WapGatewayPort=9201;WapGatewayAPN=cmwap

WapGatewayAPN=;WapGatewayIP=;WapGatewayPort=9203

在goonuu中发现代码段:
WapGatewayIP=;deviceside=true;WapGatewayAPN=cmwap;ConnectionTimeout=60000
WapGatewayIP=;deviceside=true;WapGatewayAPN=uniwap;ConnectionTimeout=60000
deviceside=true;APN=cmnet;ConnectionTimeout=60000
deviceside=true;APN=cmwap;ConnectionTimeout=60000

deviceside=true;interface=wifi

【受断网影响的软件代码分析】
在UCbrowser中:
deviceside=true;interface=wifi
ocket://:18075
没有APN、cmwap、cmnet等关键字,也就是direct TCP方式

飞信:
deviceside=true;apn=cmwap

QQ2010_BlackBerry_OS500_:
apn=cmnet;deviceside=true
apn=cmwap;deviceside=true
interface=wifi
(两处)

BerryMail_QQ08_:(无签名)
只有socket://

Maxdict:
WapGatewayAPN=cmwap;WapGatewayIP=

Wterm: (无签名)
只有socket://

BerryCN$2ecom_WindowsLiveMessenger_(无签名)
无wap/APN/socket/cmnet
只有http://:80

FML
没有APN、socket

Berryweather:
DirectTCP/IP
BIS-B
wifi
BES


http://:80/;deviceside=true;apn=cmwap
建立了cmwap的tunnel,又说连不上网络

BBWeather 修改汉化版,支持CMWAP from Alpha 版
;deviceside=true
deviceside=false;ConnectionType=mds-public

【结论】
可以看出不受断网影响的软件中,连接方式是完整的指定cmwap方式
其他软件都不是,即使有的软件可以cmwap,但是连接方式字符串不完整。或者仅仅依赖系统APN的,也会断网

【建议】
如果所有软件都可以修改为强制cmwap连接,那所谓的断网问题也就自然不存在了!
建议
0、有兴趣的开发者写个小测试代码,就是包含完整cmwap连接字符串的,连接一个公网网址,看看是不是解决断网问题了。
1、正在做开发的都改一下自己的程序代码
2、已经不再开发的国外软件,看看能不能拿到原代码来修改。不能拿到原代码的,直接修改COD,花$20重新签名一下。

此解决办法意在抛砖引玉,欢迎大家加入探讨。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~@~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~@`~~~~~~~~~~~~~~~~~~~~~~~~~~~

BlackBerry 8900 断网现象,以及更新了官方发布的 5.0 OS 以后 9000,9700 也部分加入“断网大军”,断网问题越来越成为一个让 BBer 相当头疼的问题。当断网发生时,你的 BlackBerry 可以通过自带浏览器正常访问网络,但几乎所有的第三方程序都突然不能获得网络访问,登陆不了 IM 工具,使用不了 OperaMini、Gmail 等日常程序…你能做的就是按下 Alt+上档键+Del 重启你的 BlackBerry,方能恢复正常。

今天的专稿是来自于时光的朋友 lichaobin 应邀投递的断网分析文章,尝试从专业角度去了解更多网络访问的基本原理,抛砖引玉获得更多启发。而目的只有一个,找到断网的问题根源,解决问题。文章版权归作者 lichaobin 所有,欢迎转载分享讨论,转载请注明相关作者和来源信息。您如果希望和作者交流讨论,也可以日志留言向我们索取联络方式。

开头先来解释几个术语:

GPRS(General Packet Radio Service)通用分组无线业务是GSM网络过渡到3G的第一步,被认为是2.5G的技术。HSCSD(High Speed Circuit Switching Data)EDGE(Enhanced Data Rates For GSM Evolution)是EGPRS和ECSD的无线口技术, EGPRS (Enhanced GPRS)是对GPRS的增强,ECSD (Enhanced CSD)是对HSCSD的增强. EDGE令网络容量及数据传送比GPRS更快。
 
apn激活pdp上下文流程

用户开通GPRS功能首先要在HLR给用户加载签约信息,即给用户添加PDP上下文索引,索引包括了接入点名称APN,分组数据用户的附着过程类似于位置更新过程,在这里简单说说PDP上下文激活过程:
1、MS(终端)发起PDP(package data protocol) 上下文激活请求,激活消息中携带了APN名称,如UNINET。
2、SGSN(service GPRS Support Node)接收到PDP 上下文激活请求,向DNS Server发起域名解析请求,需要解析的域名为完整的APN。
3、DNS Server将解析结果返回给SGSN,解析结果为GGSN (Gateway GPRS Support Node)信令面的IP地址,如10.161.234.254。
4、SGSN根据解析结果,发送激活请求给目的GGSN,消息中携带了APN。
5、GGSN接收到激活请求后,根据APN为MS分配IP地址,并将分配的IP地址返回给SGSN。
6、SGSN将GGSN分配的IP地址发送给MS,激活成功。
7、激活成功后,MS可以使用分配的IP地址与外部网络进行通信。

 
 

简单介绍一下各位同学使用手机GPRS上网的过程:

用户开机,手机与SGSN交互,发起附着请求给HLR,HLR验证通过后,向手机发送附着请求成功消息;用户在附着成功后,通过UM接口发起GPRS业务请求,此时BTS来判断此时发起的CS域的请求还是PS域的请求; BTS将发送过来的PS域的请求处理之后,经过ABIS接口发送给BSC,此时BSC得知该请求为数据包时候,将相应的请求通过Pb接口发送给PCU来进行处理;PCU通过Gb接口,将数据发送给SGSN来进行处理; SGSN此时发起一个非常重要的请求:就是PDP上下文激活的请求,相关的信令带了APN参数,SGSN通过DNS解析APN,获取GGSN的IP地址,并通过Gn接口发送到GGSN,GGSN此时开始处理SGSN发起的PDP激活的请求,此时GGSN根据用户发送的APN,分配用户一个IP地址,然后此时GGSN向AAA服务器发起鉴权的请求,该请求是通过Gi接口发送。此时AAA服务器接收发送过来的请求,然后将手机号码和用户的IP地址保存下来。然后反馈鉴权的结果;如果SGSN收到激活成功的消息之后,此时SGSN会判断用户的签约信息,如果HLR上对此用户设置了GPRS-CSI的DP12的数据,那么此时 SGSN会通过Ge接口来向SCP发送呼叫请求,触发GPRS-PPS业务,GPRS-PPS业务开始进行用户鉴权,费用计算等等操作,然后下发AC给 SGSN; SGSN收到AC后,向MS返回激活PDP上下文接受消息(PDP类型,PDP地址,TI,商定的QoS,无线优先权,PDP配置选项),此时就已建立起MS与GGSN之间的路由;MS收到GGSN发送的连接成功消息后,向WAPGW发送GET URL请求进行WAP浏览,WAPGW把GET请求发送给相应的PORTAL&SP站点,PORTAL&SP把请求应答消息给WAPGW,WAPGW把请求应答消息发给终端MS,MS开始进行使用分组数据业务; SGSN等到AC中的时间或者流量用尽时向SCP上报ACR,SCP收到ACR后进行扣费、写话单操作,然后看用户是否挂机,如果用户仍然激活,就继续下发AC,如果用户已经断网,就下发Release Call给SGSN。

如果断网(故障是所有的第三方软件均不能用,Msn,Gamil,Google app,第三方邮件程序都不可以用,系统提示信号强度不够,请检查网络设置之类的。黑莓自带浏览器可以用,wifi也可以用。其实这时候信号已经变得非常好,已经是满格的状态了。拔电池重启后故障排除,所有第三方软件都可以用。)是按如此定义来的话,因为黑莓自带的浏览器ok,说明整个网络接入环境是通畅的,仅第三方软件有问题,应该和第三方软件的服务器,APN,黑莓机器servicebook,自身的OS和rom存在关系可能性较大。现在中国移动的APN是CMNET和CMWAP。CMWAP使用HTTP代理协议和WAP网关协议可以访问到Internet。 CMNET直接访问Internet。

对于通过CMWAP和CMNET进行业务时一个行或者一个不行的问题,本人没有在国内使用过,不甚了解。但是从网络侧来说应该没有很大的区别应该只是在移动核心网(SGSN,GGSN)后去了不同的服务器而已。当然WAP代理服务器也是需要考虑的因素之一,WAP网关和第三方软件服务器的配合问题也可能造成第三方软件不可用。下面以飞信为例介绍一下流程(其他第三方软件过程类似):

 

对于各位同学关心的黑莓断网的问题,需要实测解析信令和抓包才能了解网络侧的状态,而后进一步关注于黑莓自身的问题,采取逐段分析排除的方法才有可能彻底解决问题。

如果各位同学使用的sim卡属于不允许使用3G业务号段,黑莓手机在2G和3G网络共同覆盖区域有可能无法进行业务,造成手机进行网络乒乓切换。此时SGSN正常拒绝该用户注册3G网络,拒绝原因值为7号“gprs_service_not_allowed”,该用户被拒绝后回到2G,但是2-3分钟后,手机似乎忘记曾经被 3G网络拒绝过,而试图重新尝试登陆3G,此现象循环。而根据协议3GPP TS24.008描述,当手机接收到SGSN下发的7号拒绝原因值后,应该不在尝试登陆3G,直到手机开关机或者SIM/USIM卡被移除。这样看来问题原因就是黑莓手机OS系统bug没有严格遵守协议标准。目前中国移动的GSM和TD网络之间的互操作以及切换还在进一步优化过程中,也有可能造成手机上网时候的断网。(中国联通也存在类似情况)

对于地铁,电梯,CBD高层建筑,地下停车场等特殊地区,进出特殊地区(有信号)数据业务要小区重选(类似于硬切换的道理),必然造成数据业务的掉线。但是一般来说重选成功的时间不长,用户应该感知不到整个过程。表现仅为浏览网页过程中的停顿或者缓慢。并且一但过程结束,手机重新发起数据业务肯能能成功,应该不会出现如各位所述需要拆电池重启等方法才能重新开启链接的情况。GPRS具有”永远在线”的特点,即用户随时与网络保持联系。用户访问互联网时,手机就在无线信道上发送和接受数据,没有数据传送时,手机就进入一种”准休眠”状态,手机释放所用的无线频道给其他用户使用,这时网络与用户之间还保持一种逻辑上的连接,当用户再次点击,手机立即向网络请求无线频道用来传送数据,而不象普通拨号上网那样断线后还得重新拨号才能上网。

从有信号区域到无信号区域再返回时无法进行业务,手机断网必然重现问题?我手头也没有重现的环境,只能先说这些猜测想法了。从无信号区域返回有信号区域,所有的资源会重新获取,如果机器自带的浏览器ok,那么和网络侧的关系应该不大。我就遇到过手机信号条直接显示SOS,如果哪位同学和我有一样的经历,可以参看如下的分析:

如果小区内无线信号不稳定或者经过复杂特殊区域,MS与SGSN之间的鉴权消息时序出现了错乱,导致SGSN错误的判断MS鉴权失败,下发了鉴权拒绝消息给MS,在手机上呈现SIM卡未注册。

正常情况下,MS发起附着请求(ATTACH_REQ)后,SGSN发起了鉴权请求(AUTHENTICATION_AND_CIPHERING_REQ),MS立即(1秒钟内)回复鉴权响应(AUTHENTICATION_AND_CIPHERING_RSP),SGSN校验正确之后,下发附着接受消息(ATTACH_ACC),MS立即回复附着完成消息(ATTACH_CMP)。异常情况下,MS发起附着请求(ATTACH_REQ)后,SGSN发起了鉴权请求(AUTHENTICATION_AND_CIPHERING_REQ),MS没有回复鉴权相应消息,SGSN会等待10秒钟之后再重发鉴权请求消息,但是6秒之后MS再次发起附着请求,SGSN也会再次发起鉴权请求,MS立即回复了鉴权响应,SGSN在校验的鉴权响应时发现MS回复的消息错误,就直接下发鉴权失败(AUTHENTICATION_AND_CIPHERING_REJ)消息给MS,导致MS出现SIM卡未注册现象,手机接入GPRS网络失败。

 

图1 出现“SIM卡未注册”的手机的信令流程

SGSN下发的鉴权相应消息到达PCU之后,可能没有及时到达MS,因此SGSN也没有及时收到鉴权响应消息。6秒之后,MS再次发起附着请求,SGSN 会使用一个新的鉴权集下发鉴权响应消息,此时MS回复针对上一次鉴权请求的响应消息,导致SGSN在校验的时候判断MS鉴权失败,下发了鉴权拒绝消息给 MS,在手机上呈现SIM卡未注册。

另外对于使用联通WCDMA 3G的同学断网也可能是以下原因:黑莓手机不支持RNC在一个RB SETUP消息里面同时下发两个业务RB,并且这两个RB都建立在HSDPA上。如果这两个RB是建立在DCH上,那么可以成功。另外,需要说明的是黑莓手机只是不支持两个HSDPA业务同时建立,如果是前后建立两个HSDPA业务,黑莓手机是支持的。

再说说从本地漫游到别的省市的情况:各位同学在出行漫游附着到本地网之后,尝试通过漫游地SGSN回到归属GGSN激活PDP上下文,如果上网失败。可能性就是相同的IMSI用户已经激活了相同APN的一个PDP上下文,然后该用户尝试再次激活相同APN的PDP上下文,同时SGSN发来的请求指示并非二次激活(二次激活还会携带已有PDP的NSAPI值),GGSN将拒绝第二次激活,拒绝原因值就是Mandatory IE Incorrect。

对于相同IMSI号码GGSN中已经存在激活状态的PDP,已激活PDP使用的SGSN信令面地址与第二次激活所用的SGSN信令面地址相同,两次激活对应的漫游地SGSN相同。该用户第二次激活PDP时(非协议中描述的二次激活Secondary PDP),漫游地SGSN并未先向GGSN发送请求将原来同一IMSI上下文去激活。这种处理是有问题的。而SGSN比较好的处理方式是对用户的主要索引是IMSI,系统中是否存在该用户也需要用IMSI查询。所以如果用户用相同的IMSI激活,SGSN认为是同一用户,如果已经激活PDP,用户再重新 ATTACH,SGSN会把该用户原来的资源去激活。

以上就是我根据以往经验对黑莓手机的粗浅分析,谬误之处请各位指正。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值