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

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

BlackBerry 网络断网问题分析(by lichaobin at )

开头先来解释几个术语:

  • GPRS(General Packet Radio Service)通用分组无线业务是GSM网络过渡到3G的{dy}步,被认为是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更快。

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

  • 用户开机,手机与SGSN交互,发起附着请求给HLR,HLR验证通过后,向手机发送附着请求成功消息;
  • 用户在附着成功后,通过UM接口发起GPRS业务请求,此时BTS来判断此时发起的CS域的请求还是PS域的请求;
  • BTS将发送过来的PS域的请求处理之后,经过ABIS接口发送给BSC,此时BSC得知该请求为数据包时候,将相应的请求通过Pb接口发送给PCU来进行处理;
  • PCU通过Gb接口,将数据发送给SGSN来进行处理;
  • SGSN此时发起一个非常重要的请求:就是PDP上下文xx的请求,相关的信令带了APN参数,SGSN通过DNS解析APN,获取GGSN的IP地址,并通过Gn接口发送到GGSN,GGSN此时开始处理SGSN发起的PDPxx的请求,此时GGSN根据用户发送的APN,分配用户一个IP地址,然后此时GGSN向AAA服务器发起鉴权的请求,该请求是通过Gi接口发送。此时AAA服务器接收发送过来的请求,然后将手机号码和用户的IP地址保存下来。然后反馈鉴权的结果;
  • 如果SGSN收到xx成功的消息之后,此时SGSN会判断用户的签约信息,如果HLR上对此用户设置了GPRS-CSI的DP12的数据,那么此时SGSN会通过Ge接口来向SCP发送呼叫请求,触发GPRS-PPS业务,GPRS-PPS业务开始进行用户鉴权,费用计算等等操作,然后下发AC给SGSN;
  • SGSN收到AC后,向MS返回xxPDP上下文接受消息(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后进行扣费、写话单操作,然后看用户是否挂机,如果用户仍然xx,就继续下发AC,如果用户已经断网,就下发Release Call给SGSN。

我看了一下时光上如下8900和9700断网问题搜集贴:

如果断网(故障是所有的第三方软件均不能用,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卡未注册。

  1. 正常情况下,MS发起附着请求(ATTACH_REQ)后,SGSN发起了鉴权请求(AUTHENTICATION_AND_CIPHERING_REQ),MS立即(1秒钟内)回复鉴权响应(AUTHENTICATION_AND_CIPHERING_RSP),SGSN校验正确之后,下发附着接受消息(ATTACH_ACC),MS立即回复附着完成消息(ATTACH_CMP)。
  2. 异常情况下,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回到归属GGSNxxPDP上下文,如果上网失败。可能性就是相同的IMSI用户已经xx了相同APN的一个PDP上下文,然后该用户尝试再次xx相同APN的PDP上下文,同时SGSN发来的请求指示并非二次xx(二次xx还会携带已有PDP的NSAPI值),GGSN将拒绝第二次xx,拒绝原因值就是Mandatory IE Incorrect。

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

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

标签: ,