端到端信令定位终端通信问题方案研究
2013-01-01
(中国移动通信集团广东有限公司珠海分公司, 珠海 519015)
随着终端智能化趋势越来越明显,终端功能的复杂度不断提高,随之引发的终端与网络的配合性问题越来越突出。这些问题直接影响着客户感知水平。据iResearch预测,未来几年中国智能手机的年出货量将保持30%以上的增速,到2015年,智能手机年出货量达2.5亿。 2012年3月全省基础通信类用户投诉分析表明,智能机客户的投诉诉求非常强烈,典型智能机品牌如苹果、宏达和三星等终端的万用户投诉比值排名前三。随着终端上网用户的日益增多,上网投诉也日渐增多,更好地为用户分析并在一定程度上解决用户终端在通信时遇到的问题是提升用户网络感知的关键。
现有的终端通信问题诊断工具如下。
(1)安装市场上已有的360手机卫士、金山手机卫士等软件,开展流量监控、垃圾文件管理、进程管理等功能,针对监控到的异常事件开展一键优化。
(2)利用Rsupport公司提供的RemoteCall for Mobile,通过3G、Wi-Fi或者USB远程连接来达到远程维修的目的。实现简单的远程查看手机状况、安装杀毒软件,进行远程系统设置、系统升级、系统备份与恢复、网络设置、软件安装和卸载、数据和文件的管理等问题,实现终端问题的一键式修复。
上述方案(1)基于终端应用层数据进行了初级的LOG日志分析,方案(2)借助人工经验进行终端远程连接及问题修复,均无法实现更深层地诊断出终端与网络兼容性问题。
1 详细技术方案
本方案所要解决的关键技术问题在于,提供终端底层信令数据与网络信令抓取及联动分析手段,实现终端通信问题自动诊断、远程控制和一键式修复。
1.1 终端底层信令抓取技术
1.1.1 无线分组抓取原理
无线信令的抓取是采用无线芯片(通信处理器)在调试模式下输出相应的无线信令信息。通常无线芯片只针对操作系统输出必要的信息,从操作系统的层面看,无线芯片被封装成RIL层,主流的手机操作系统已经把RIL层定义为标准的无线接口层;无线芯片的提供商有高通、联芯等厂家,各个厂家针对同一个电信号有不同的处理方式,但是按照3GPP的协议标准,各个厂家允许在芯片内部有不同的命名、处理标准,处理数据到达第三方时要求有统一的接口。因此,RIL层也是分为芯片厂家RIL层以及操作系统RIL层,如图1所示。
在系统中,厂商提供的RIL层负责把芯片驱动,并把芯片映射到系统的标准设备中。在不同的操作系统下,映射的设备名称不相同,在WM下映射为COMx,在Android下映射为/dev/ttyUSBx,在iPhone下映射成/dev/baseband-debug-x设备。在应用处理器中,通过驱动程序把通信处理器映射成为一个标准的COM设备。
图1 Android系统RIL结构
抓取空口信令是通过标准的函数读取COM或者/dev设备即可获取空口信令的数据文件,在后续的解码中可以解码出3GPP定义的信令。无线信令分组抓取直接读取通信处理器通过COM口返回的调试信息。
1.1.2 IP分组抓取原理
无论是Windows Mobile系统、Android系统还是iOS系统,都支持标准的Socket编程。基于Socket标准中RAW_Socket的跨平台操作特性,采用这个特性进行终端IP数据分组的抓取,但是这种跨平台的分组抓取技术所抓的数据不全,会随机丢弃部分数据。为保证数据的完整性,本方案针对操作系统特有的功能进行分组抓取。按照平台的统一性,Windows Mobile系统属于Windows系列的系统,采用的是微软的技术进行分组抓取,而Android、iOS都是属于UNIX系列,都具有UNIX的特性,这两个操作系统可以使用同一种分组抓取技术。
(1)分组抓取驱动位于网络链路层,可抓链路层的数据分组。
(2)分组抓取驱动由系统自动运行,占用的系统资源较小。
(3)驱动由系统自动调用,可以保证数据的完整性。
UNIX系列的系统都是开放的系统,尽管典型厂家的系统源代码不开放,但是在网络通信这部分的代码,都是采用开源的BSD协议栈,包括开源的Linux、FreeBSD等,商用的SunOS、MacOS等都是采用BSD的协议栈。
BSD TCP/IP协议栈是一个开放的、开源的协议栈,也是计算机上的一个最完善的TCP/IP协议栈,用于大部分电脑主机、服务器以及部分网络设备上(比如路由器、3层交换机),经过多年的发展,TCP/IP协议栈已经发展的很完整,考虑的功能、接口比较完善。BSD TCP/IP协议栈不同于微软的NDIS接口,TCP/IP协议栈在UNIX是一个独立的模块,为了让第三方进行拓展应用,在协议栈中不同的部分拓展出不同的接口,适应不同的应用场景,手机操作相同Android、iOS也继承了完整的BSD TCP/IP协议栈的功能。在UNIX系统中,最常用的拓展接口是Socket_Packet接口,本方案中BPF也是基于Socket_Packet接口出来的一个应用接口。在Socket_Packet接口上,可以接收协议栈所有的原始数据,而BPF应用接口是专门为系统防火墙开发的一个应用接口,可以直接支持在内核系统中对数据进行过滤、路由转发等功能。
本方案基于Android/iOS下研究并实现了基于BPF接口的分组抓取方法,所采用的过滤参数为空,抓取所有经过协议栈的网络数据,如图2所示。
图2 IP分组抓取设计实现流程
按照系统需求,要求分组抓取按照应用程序进行过滤,因此分组抓取的过程中要求获取对应的应用程序的信息。在UNIX下,管理运行的程序采用/proc文件系统进行管理,或者类似的机制进行管理,应用程序运行后,在/proc文件系统下生成应用程序的所有详细信息,包括程序打开了哪些文件、使用了哪些系统资源,最直接的方式是采用轮询的方式查询/proc文件系统下的信息。
1.2 端到端信令联动定位分析
基于端到端信令透视的终端通信问题诊断方法研究的总体思路为:(1)从“端”上发出的信令,经过BSC网元后到达“管”,经过不同层次的协议封装后能够还原原始信令。(2)从“管”经过的信令到达“云”端时,经过协议拆封后还原成业务信令,发送到SP。(3)根据“端”发出的原始信令,在“管”、“云”中找到原始,通过信令回溯可以计算出信令经过“管”、“云”的时差,找出网络性能瓶颈等性能指标。(4)从“端”发出的信令,查找“管”、“云”中对应的信令,未在“管”、“云”中查找到对应的信令,可判断出信令丢失的地点。
拓扑呈现如图3所示。
图3 端到端信令透视研究拓扑
端到端信令透视的分析原理如下。
(1)在节点1上的分组抓取数据,找出异常信令的前一条信令A,并找出属于信令A的源IP、目的IP,如是TCP信令还需要找出源端口、目的端口以及TCP Sequence Number,并确定信令A的分组抓取时间。
(2)分析Gb口分组抓取数据时,先按照信令A的时间节点,找到信令A的源IP和目的IP。
(3)根据信令A的Sequence Number确认手机发送的信令在Gb口上的位置。
(4)从Gb口上的后续信令分析异常情况下Gb数据的状态,通过该状态推断、判断问题节点以及异常的主要原因。
1.3 终端远程控制方案
远程控制是客户端(操作端)通过网络向服务器(被控端)发送命令,服务器接收命令后解释命令并执行相应的动作,把结果通过网络反馈到客户端。
图4 终端远程控制流程
远程控制执行流程如图4所示。
(1)客户端发送“用户点击(x,y)”。
(2)服务器接收“用户点击(x,y)”,执行模拟用户点击动作。
(3)执行结果通过TCP发送到客户端,客户端接收执行结果。
(4)客户端定时截取服务器的桌面,通过网络发送到客户端,并在客户端上显示。
在远程控制中,所有的数据都通过网络传输,客户端负责响应用户操作,并把用户的操作解释为命令,通过网络发送到服务器;服务器解释并执行用户操作后,并返回操作结果,呈现采用对服务器的屏幕截图。
1.4 通信问题诊断方案
基于终端分组抓取及端到端信令联动分析定位的基础上,提出了解决通信问题的整体处理流程,如图5所示。
(1)通过终端远程控制功能,实现专业人员可远程控制、并修复终端问题。
(2)连接终端后后台开启健康体检,检测的指标包括当前网络类型、是否激活数据业务、接入点配置参数、网关参数、短信中心参数、彩信中心参数、信号强度 、程序异常崩溃次数、Wi-Fi配置参数及状态、主流网页是否可达。
图5 终端通信问题处理流程
(3)调用后台专家经验库,针对检测的异常事件进行诊断,开展进程分析及优化。
(4)根据诊断结果,关联匹配专家库解决方案,自动开展终端问题修复,可进一步引导用户体检以确定问题。
(5)终端功能测试验证,实现终端通信问题的闭环管理。
2 技术方案对比
本技术方案为现有的终端通信问题诊断及解决提出了一种终端底层信令数据与网络信令抓取及联动分析手段,实现终端通信问题自动诊断、远程控制和一键式修复。本方案相比现有的解决终端问题机制具有以下优点:
(1)传统方式只能够通过解析用户投诉内容,查询用户相关网络属性。若网络侧正常,则告知用户为“终端问题”,请用户自行“换机换卡”测试,排除故障。而本方案提出终端信令与网络信令联动的“端到端” 分析,通过抓取手机信令,结合网络信令进行联动分析,实现更准确、快速定位终端故障及投诉原因。
(2)本方案创新了终端通信问题自动诊断应用功能,实现不需要用户参与的终端故障自动诊断流程,挖掘终端内在的网络故障,提升用户网络感知。
(3)本方案提出了一种终端远程控制及一键式修复技术。研究基于IP网络,探索远程诊断终端问题新思路,并从一定程度上远程解决终端问题,提高移动网络的通信质量,尽量减少用户的投诉,减少运营商在处理投诉上的开销具有重要意义。
3 结语
根据终端通信状态及底层数据分组传输特点,提出了一种采集终端底层信令数据,结合核心网络层信令数据联合定位终端通信问题的方法。通过创新一种终端上的分组抓取分析技术,可实现终端无线信令和IP信令的联动分析。调用终端驱动层功能,开发并实现了终端通信问题自动诊断应用模块,创新终端远程控制及一键式修复技术,最大限度缩短了用户终端通信问题定位和修复的时间,有效避免了用户将终端问题转化为网络问题而产生恶意投诉,提升了用户对网络的感知,开辟了利用有限的专业技术人员快速解决大量普通用户终端问题的新途径。
[1] 宁泽功. 终端分组抓取ethereal使用手册[J]. 移动通信论坛,2012,(3).
[2] 一江水. Android系统手机端分组抓取方法[J]; 百度文库,2011(6).
[3] 王瑞峰. 3G智能终端信令风暴的理论研究与优化实践[J]. 网络与通信, 2013,1(16).
[4] 尚楠, 余银凤. 基于IP承载的3G信令网研究[J]. 广东通信技术, 2010.