版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、移动数据网络浅析主要内容移动通信移动通信技术的发展当前主流通信技术介绍Android数据网络Android数据连关键名词解析Android电话系统介绍Android数据连接介绍移动网络常见问题分析移动网络用例设计移动通信技术的发展移动通信的概念:指通信双方或至少有一方在移动中进行信息交换的通信方式移动通信的发展:第一代模拟信号移动通信网络80年代末发展成熟,我国1986年开始建立较多不足之处:不能实现国际漫游、不能提供综合业务数字网业务(ISDN)第二代数字移动通信网络2G通信技术:以GSM跟CDMA为主流通信技术标准。实现了SMS、EMS简短信息的传送2.5G通信技术:以GPRS技术标准、彩
2、信技术为代表。2.75G通信技术:主要以移动的EDGE为标准。能够让使用800、900、1800、1900MHz频段的网络提供第三代移动通信网络的部分功能。第三代移动通信网络俗称为3G网络,以高速率的数据传输为主要特征。以WCDMA、CDMA2000、TD-SCDMA等技术标准为主在我国各个运营商之间采用的3G技术标准不一样。移动采用的是TD-SCDMA,联通采用的是WCDMA,电信采用的是CDMA800-EV-DO或CDMA2000第四代移动通信技术亦可称作为宽带接入和分布网络,具有非对称的超过2Mb/s的数据传输能力。第五代移动通信技术据说手机在采用这种技术后无线下载速度可以达到每秒3.6
3、G,目前还没有任何通讯公司公开在使用这种技术移动通信发展第二代移动通信系统第二代移动通信系统(2G)采用时分多址(TDMA)或窄带码分多址(CDMA),数字系统代表系统:美国的IS95A(CDMA)、欧洲的GSM(TDMA)、日本的JDC对第一代移动通信系统缺点的改善频谱利用率提高 提高了2倍(GSM)至10倍(CDMA)业务种类增加 提供了较丰富的电信业务窄带数据业务 提供了低速数据业务(最大64Kbit/s)保密性较好 具有良好的保密性能减小了设备成本 设备(尤其是终端设备)成本大大降 低。体积、重量也大大减少第三代移动通信系统第三代移动通信系统(3G):采用宽带码分多址(CDMA),实现
4、移动宽带多媒体通信IMT2000:2000年,在2000M频段实现2000K的数据通信3G对数据通信速率的要求室内环境至少2Mbps室内外步行环境至少384kbps室外车辆运动中至少144kbps卫星移动环境至少9.6kbpsIMT2000推荐的3种制式:WCDMA(欧洲)、CDMA2000(美国)、TDSCDMA(中国)TDSCDMA:中国的第一个国际通信标准国内主流通信技术联通USIM卡:支持WCDMA跟GSM通信技术标准 移动USIM卡:支持TD-SDMA跟GSM通信技术标准 电信USIM卡:支持CDMA2000,GSM不能使用也就是说联通卡跟移动卡之间是有交集的 就是GSMGSM是2G
5、卡网络标准而WCDMA跟TD-SDMA是3G标准 也就是说在联通3G定制双标机上 移动卡也是可的用的,但是使用的仅仅是GSM的功能,而无法体验WCDMA无法体验3G上网数据连接关键字解析AT介绍PPP介绍Socket介绍APN介绍wap和net的区别AT命令介绍AT 即Attention,AT指令集是从终端设备(Terminal Equipment,TE)或数据终端设备(Data Terminal Equipment,DTE)向终端适配器(Terminal Adapter, TA)或数据电路终端设备(Data Circuit Terminal Equipment,DCE)发送的。通过TA,TE
6、发送AT指令来控制移动台(Mobile Station,MS)的功能,与GSM 网络业务进行交互。用户可以通过AT指令进行呼叫、短信、电话本、数据业务、传真等方面的控制。PPP连接PPP(点对点协议)为在点对点连接上传输多协议数据包提供了一个标准方法。PPP 最初设计是为两个对等节点之间的 IP 流量传输提供一种封装协议。在 TCP-IP 协议集中它是一种用来同步调制连接的数据链路层协议(OSI 模式中的第二层),替代了原来非标准的第二层协议,即 SLIP。除了 IP 以外 PPP 还可以携带其它协议,包括 DECnet 和 Novell 的 Internet 网包交换(IPX)。为了建立点对
7、点链路通信,PPP链路的每一段,必须首先发送LCP(链路控制协议)包以便设定和测试数据链路。在链路建立,LCP所需的可选功能被选定之后,PPP必须发送NCP(网络控制协议)包以便选择和设定一个活更多的网络协议。一旦每个被选择的网络协议都被设定好了,来自每个网络层协议的数据报就能在链路上发送了。链路将保持不变,直到LCP和NCP数据包关闭链路,或者是发送一些外部事件的时候(如,休止状态的定时器期满或者网络管理员的干涉)Socket介绍socket接口是TCP/IP网络的API,socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP
8、/IP网络编程,必须理解socket接口。socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解Unix系统的输入和输出的话,就很容易了解socket了。网络的 socket数据传输是一种特殊的I/O,socket也是一种文件描述符。socket也具有一个类似于打开文件的函数调用socket(),该函数返回一个整型的socket描述符,随后的连接建立、数据传输等操作都是通过该socket实现的。常用的socket类型有两种:流式socket (SOCK_STREAM)和数据报式socket(SOCK_DGRAM)。流式是一种面向连接的socket,针对于面向连接的TCP服务应用
9、;数据报式socket是一种无连接的socket,对应于无连接的UDP服务应用。APN介绍APN概念 APN的英文全称是Access Point Name,中文全称叫接入点,是您在通过手机上网时必须配置的一个参数,它决定了您的手机通过哪种接入方式来访问网络。APN组成 接入点名字(APN Access Point Name)在GPRS骨干网中用来标识要使用的外部PDN网络(即我们常说的Internet),在GPRS网络中代表外部数据网络的总称。APN由以下两部分组成:APN网络标识:这部分是必有的,它是由网络运营者分配给ISP或公司的、与其固定Internet域名一样的一个标识。APN运营者标
10、识:这部分是可选的,其形式为“xxx.yyy.gprs”(如MNC.MCC.gprs),用于标识归属网络。cmnet.000.460.gprsAPN网络标识通常作为用户签约数据存储在HLR中,用户手机在发起分组数据业务时也可向网络侧提供APN,用于网络侧选择应接入相应的GGSN以及用于GGSN判断接入相应的外部网络。此外,HLR中也可存储一个通配符,这样用户或SGSN就可以选择接入一个没有在HLR中存储的APN。用户可以通过不同的APN选择GGSN,即用户可以激活多个PDP上下文,每个PDP上下文与一个APN相联系。用户选择不同的APN的目的就是通过不同的GGSN选择外部网络。APN需要通过D
11、NS进行域名解析才能获取GGSN或外部网络节点的真实的IP地址。简单来说,APN实际上就是对一个外部PDN的标识,这些PDN包括企业内部网,Internet,WAP网站,黑莓,行业内部网如公交电力系统等等专用网络。网络侧如果知道MS到底做了激活以后要访问哪个网络,给你分配哪个网段的IP呢?这就要靠APN来区分了?现网中,APN=cmnet就代表internet, APN=cmwap就代表专用WAP数据网络,当然各个运营商可能名字不一样,如联通是uniwap,uninet等。wap跟net介绍为什么有两个接入点CMWAP 和 CMNET 只是中国移动人为划分的两个 GPRS 接入方式。前者是为手
12、机 WAP 上网而设立的,后者则主要是为 PC 、笔记本电脑、 PDA 等利用 GPRS 上网服务。它们在实现方式上并没有任何差别,但因为定位不同,所以和 CMNET 相比, CMWAP 便有了部分限制,资费上也存在差别。Wap是什么WAP 应用采用的实现方式是 “ 终端 WAP 网关 WAP 服务器 ” 的模式,不同于一般 Internet 的 “ 终端服务器 ” 的工作模式。主要的目的是通过 WAP 网关完成 WAP-WEB 的协议转换以达到节省网络流量和兼容现有 WEB 应用的目的。CMWAP的限制CMWAP 接入时只能访问 GPRS 网络内的 IP ( 10.*.*.* ),而无法通过
13、路由访问 Internet 。(少数地区的移动网络可能不存在这一限制。)我们用 CMWAP 浏览 Internet 上的网页就是通过 WAP 网关协议或它提供的 HTTP 代理服务实现的。CMWAP 和 CMNET 的适用范围CMNET 拥有完全的 Internet 访问权,这里就不多说了,主要让我们来看看 CMWAP 。因为有了上面提到的限制, CMWAP 的适用范围就要看 WAP 网关所提供的支持了。目前,中国移动的 WAP 网关对外只提供 HTTP 代理协议( 80 和 8080 端口)和 WAP 网关协议( 9201 端口)Android电话系统介绍电话系统的基本构成主要功能:呼叫(C
14、all)、短信(SMS)、数据连接(Data Connection)以及SIM卡、通讯录等功能由下至上的结构分为:Modem驱动、RIL(Radio Interface Layer)、电话服务框架(Framework)、电话应用。Android电话系统构成Android设计者将电话系统设计成了三部分Android的Phone Service其实是PhoneApp。GSM Phone (CDMAPhone)是Phone Service核心的对象Android电话主体框架图Modem驱动简介通信模块(Modem)是电话功能的主要硬件,通过与通信网络进行沟通传输语音及数据,完成呼叫、短信等功能。通信
15、模块可以是独立的,插上SIM卡直接上电即可工作;但因为体积问题,手机设计中很少使用,而是使用Chip-on-board的方式;另外也有不少Modem与应用处理器共存。Modem硬件上一般提供两个通信渠道:AT命令通道 - - - - 电话服务的基础数据传输通道 - - - 上网的基础Native层RIL代码简介RIL是电话系统的核心部分,负责AT命令的请求(Request)与 响应(Response)的解析。RIL的代码结构请求(Request)流程响应(Response)流程Android数据连接介绍Data Connect 流程分析 APN 流程分析Android中调用数据连接的类RIL
16、Java 层的处理分析自学内容Data Connect 流程分析 Android 的数据连接是基于PPP 方式的,主要步骤为:首先通过AT 命令激活PDP 连接,然后利用pppd通过数据端口完成拨号连接数据连接的核心控制类是DataConnectionTracker,存在于GSMPhone里,数据连接不需要用户的干预,在 APN 设置好之后,在适当的情况下就会自动激活,激活的入口点是: DataConnectionTracker.trySetupDat a setupDat a PdpConnection.connet c CommandsInterface.setupDefaultPDP,
17、通过PdpConnection 访问GSMPhone 中的RIL 层的setupDefaultPDP 实现,setupDefaultPDP 的结果由EVENT_SETUP_PDP_DONE 返回,如果成功,则开始调用pppd 完成实际连接,这是通过DataLink.connect 实现的DataLink 只是抽象基类,此处它的实现类是pppLink ,实现DataLinkInterface 接口,所以DataLink.connect 实际上调用PPPLink.connect,它通过SystemService.start (SERVICE_PPPD_GPRS )开始pppd服务,并通过check
18、PPP函数访问Linux 的sys 文件系统来查询pppd 的连接状态,如果成功,便可以将LINKUP 的消息通知出去以完成连接流程自学内容APN 流程分析接入点使用在我看来主要包括接入点的创建、接入点的切换以及接入点的删除三个方面,我们下面按照android 源码,按照程序调用的先后顺序依次分析其流程Create New APN 流程分析 :Android 因为是以事件驱动的,因此在诸如接入点设置这样的操作的时候,都是从按键触发事件开始的:Activity.java 里的onKeyDown 函数;由于是基于EVENT 驱动的,因此在每一个动作的时候都会触发一定Type 的Message ,因
19、此对于源代码流程的分析也比较有利Create New APN 的过程主要就是APN 如name 、port 、proxy 等的添加以及在设置的过程里状态的切换等;自学内容RIL Java层的处理分析RILD 源码分析Request 流程Response 流程自学内容RILD 源码分析RIL 对对消息的处理是将消息通过LocalSocket 发送到以rild 为名称的有名端口。这个有名Socket 的创建在ril.cpp 代码中。s_fdListen = android_get_control_socket(SOCKET_NAME_RIL) RILD 是守护进程,执行的过程为:获取参数打开功能库
20、建立事件循环执行RIL_Init RIL_register ;事件循环式核心,通过Select 多路复用机制,读取来自上层的Socket 接口的具体操作命令,同时一些命令Timeout 唤醒机制,也通过Select 实现;自学内容Request 流程命令下发流程:首先从JAVA 层通过Socket 将命令发送到RIL 层的RILD 守护进程,RILD 中负责监听的ril_event_loop 消息循环中的Select 发现RILD Socket 有了请求连接信号,建立一个record_stream ,打通与上层的数据通道并开始接收请求数据,数据通道的回调函数 mandsCallback ()会
21、保证收到一个完整的Request 后,将其送达 mandBuffer ()函数; 解析过程: mandBuffer ()从Socket 中序列化的数据流里还原信息,将其组织到RequestInfo 中;RequestInfo 数据结构如下(存在于ril.cpp 中): typedef struct RequestInfo int32_t token; /this is not RIL_Token CommandInfo *pCI; struct RequestInfo *p_next; char cancelled; char local; / responses to local comma
22、nds do not go back to command process RequestInfo; RIL 层以Request 号为基础采用表驱动方式分发请求,CommandInfo 结构表示命令的信息,关联了Request 号和实际的请求函数,以及响应函数之间的关系; 分发流程:s_callback.onRequest ()完成分发操作,s_callback 获取自libreference-ril 的RIL_RadioFunction 结构指针,Request 请求在这里转入底层的libreference-ril 处理,handler 是reference-ril.cpp 中的Reques
23、t 。 onRequest 根据Request 号进行简单的switch 分发,然后将命令和参数转换成对应的AT 命令,由writeline()完成驱动层的发送,writeline 通过驱动程序节点的文件描述符进行写操作实现控制。自学内容自学内容Response 流程对于Response 流程来讲,流程是从Modem 设备发回响应数据开始的。 RIL 通过readerLoop 函数,利用readline 逐行读取响应数据,随后通过processLine 进行分析,主动上报的一般以+XXXX 的形式出现,而AT 命令的响应格式则有一行或多行之分,但最终一定以OK 或者ERROR 结尾,于是Prc
24、essLine 有以下几种情况: 1 )、没有AT 命令等待响应或不符合AT 响应格式,一般是主动上报行,由handleUnsolicited 处理,handleUnsolicited onUnsolicetd RIL_onUnsolicitedResponse ; 2 )、isFinalResponseSucess/isFinalResponseError 是最终响应行,转到handleFinalResponse 处理,handleFInalResponse 会发送线程同步信号,激活等到的发送线程; 3 )、符合当前AT 命令响应格式的行,解析并获取数据,这是响应处理的中间过程,然后继续收到
25、最终响应行,然后进入2 )流程 最后的发送动作由sendResponse sendResponseRaw blockingWrite 通过Socket 回传给上层来完成,响应解析由上层完成。自学内容Response有两类:Unsolicited表示主动上报的消息,如来电、短信等。Solicited表示At命令的响应。判断是否solicited的依据有两点:当前有At命令正在等待回应读取到的响应符合At命令的响应格式Response流程从Modem设备发回响应数据开始的。自学内容Solicited响应流程自学内容Unsolicited响应流程自学内容移动网络常见问题分析连接不上APP本身存在问题、移动通信信号差、或者是手机本身接受信号很弱、CDMA系列手机是不支持GSM卡、手动搜索了无效网络(接入点设置不对,海卓一键设置APN)、SIM卡没钱停机了、modem挂掉、使用2G卡并在通话中,具体还是要看log分析结果图标显示错误,如显示为“R”
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO/PAS 13146:2024 EN Road vehicles - Brake lining friction materials - Drag mode friction test for hydraulic and pneumatic vehicle brakes
- 了不起的盖茨比读后感
- 中秋节给老战友的慰问信(6篇)
- 企业前台工作总结
- 中秋节的慰问信范文(8篇)
- 九九重阳节活动总结
- 中式婚礼女方父亲致辞范文(9篇)
- 中秋晚会班长精彩致辞范文(15篇)
- DB12∕T 1049-2021 规模奶牛场机械挤奶操作规程
- 探究定滑轮和动滑轮的作用教学设计
- 第六章革命军队建设和军事战略的理论
- 年度取用水计划申请表
- 文网文业务发展报告(XX单位)
- 硬笔书法章法课件
- 养老院老人入院风险告知书4篇
- 智能制造专业群建设(智能制造业专业技术学校创业计划)课件整理
- 钢直梯安全验收(检查)表
- 设备基础施工方案及安全措施
- 用电安全检查记录表
- 部编版语文六年级上册《口语交际》专项练习
- (完整)人教中学高中生物实验目录
评论
0/150
提交评论