智能终端主流平台

时间:2022-06-06 01:58:10

智能终端主流平台

摘要 Android平台作为目前非常热门的开源智能手机操作系统,已经风靡全球。其发展之迅速,大有不可阻挡之势。文章通过移植Android原始代码的实验板和已经上市的手机,从Wire Ethernet、Wi-Fi以及3G(EV-DO)三种上网方式的实验,比较深入地研究了Android从底层芯片到上层浏览器对于IPv6的支持情况,对未来Android终端厂商开发IPv6功能具有很好的参考意义。

关键词 Android IPv6 Wi-Fi PPP Network Relay

1 Android平台介绍

Google认为,手机价格越来越低,但其中手机平台的价格变化不大,在手机成本中所占比例越来越大。基于此。Google主持开发Android平台,希望提供一个免费、开放、功能强大的手机操作系统,以推动手机价格更物美价廉,让全世界40多亿手机用户因此受益,从而更方便、更频繁地访问互联网。

早在2005年,Google收购了成立仅22个月的高科技企业Android,其创始人就是后来主持Android平台开发的Andy Rubin。Android平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。其发展至今,经历了Android1.0,Android1.1,Android1.5,Android1.6,Android2.0,Android2.1,Android2.2。很多公司也开发出基于Android的衍生系统,包括中国移动的OMS平台、中国联通的Uniplus平台、创新工厂的Tapas,等等。市场上销售的很多智能手机也是基于Android平台的,包括三星的1909、海信的E90、联想的乐Phone、Moto的Droid、XT800,等等。

随着以Android为平台的互联网手机用户规模不断扩大,网民数量不断增加,全球互联网所使用的IPv4地址数量遇到了发展瓶颈;同时,由于互联网在人们生活中的日益普及与物联网手机应用的兴起,更加速IPv4地址日益走向耗尽的边缘。相信在不久的将来,全世界便会走入IPv6时代。手机操作系统对于IPv6的支持,是移动互联网支持IPv6至关重要的环节。本文将对未来主流的智能手机操作系统一Android进行研究与分析。

2 IPv6技术分析以及现状

IPv6作为下一代互联网协议已经引起了各地区、各运营商的足够重视,因为所有的人都已经认可这样一种前景:谁能够率先在IPv6方面有所作为,谁就能够在未来的竞争中占据有利位置。在众多设备提供商和运营商的努力下,IPv6协议已经从实验室走向了应用阶段。法、日、美等国的研究机构,IBM、日立等公司,分别研制开发了不同平台上的IPv6系统软件和应用软件;美国思科,加拿大北电网络,中国的华为、中兴等路由器厂商已经开发出了支持IPv6网络的路由器产品。操作系统方面,基于开放源码的Linux对IPv6提供了比较强的支持,IBM、康柏、惠普和微软的最新操作系统都提供了IPv6支持。

因此,从整体上来讲,IPv6的技术已经成熟,标准也基本完善,一些网络基础设施和核心设备都已陆续开始支持其使用。但是在具体实施的问题上,由于经济利益上的关系,在目前还没有普遍推广,而是处于与Ipv4相互并存和过渡的阶段。

若用户使用手机登陆IPv6的网站,必须多个要素都支持IPv6才行,手机端主要包括手机处理器芯片、操作系统、协议栈、浏览器等;对于网络方面,中国电信的核心网需要PDSN(CDMA2000)、路由器等支持IPv6协议才行。

3 Android平台的IPv6

本节研究了Android系统使用的底层芯片到上层应用对于IPv6的支持情况,包括Modem芯片、Android的Linux内核、libc库、浏览器等。

3.1主流芯片

目前,很多智能手机设计商都倾向于使用两个处理器。操作系统、用户界面和应用程序都在ApplicationProcessor(AP)上执行,AP一般采用ARM芯片的CPU。手机射频通讯控制软件则运行在另一个分开的CPU上,这个CPU称为Baseband Processor(BP)。

把射频功能放在BP上执行的主要原因是:射频控制函数(信号调制、编码、射频位移等)都是高度与时间相关的。最好的办法就是把这些函数放在一个主CPU上执行,并且这个主CPU是运行实时操作系统的。另外一个使用BP的好处是一旦其被设计和认证完毕后,则不管开发者采用的操作系统和应用软件怎么变化,它都可以正确地执行功能(它的通讯功能)。另外,操作系统和驱动的问题也不会导致设备发送灾难性的数据到移动网络中。由于AP和BP是分开的设备,手机设计者可以更加自由地设计用户界面和应用软件。

处理器芯片对于IPv6的处理主要有两种方式:网络模式和Relay模式。

(1)网络模式

网络模式:PC/AP通过PPP协议向BP申请建立IPv6连接,BP获得PPP协议包,解析后知道要建立IPv6连接;然后BP重组PPP协议包(可加入QoS等信息)跟网络侧PDSN协商建立IPv6 Session;一旦完成,PC/AP就可以获得ipv6地址,跟网络侧PDSN进行IPv6连接通信。

在网络模式,芯片的IP,PPP(Um)两个协议栈需要支持IPv6,IP属于网络层,PPP属于数据链路层。网络模式的数据包传输过程如图3(b)所示。在这种模式下,若想支持IPv6,对BP(基带处理器)来说是有要求的,这与IPv4不同。运行IPv6的话,不仅AP(主处理器)在协议上支持IPv6,也需要BP来一起协助建立IPv6的session,获得IPv6地址。也就是说,BP也要支持IPv6才行。

(2)Relay模式

Relay模式:BP不涉及任何PPP处理,利用PPP实现PC/AP与网络侧PDSN之间端到端连接,BP仅仅作为无线连接作用。

在Relay模式支持IPv6,对BP来说是无特殊要求。此时BP相当于数据卡,通过PPP协议把IPv6协议数据包封装起来传送,完成PC/AP端和PDSN网络端之间的数据包透明传输。IPv6地址获得和IPV6的session建立都是由PC/AP侧来实现,跟BP无关。

一般情况下。在无线数据卡中采用Relay模式,智能手机中采用网络模式。对于Android智能手机中,Google倾向于IPv6在BP中实现,同时需要修改Android上RIL层来支持IPv6。

芯片厂家(比如高通)倾向于IPv6在基带芯片中实现。高通的芯片,QSC6801系列后的芯片都能支持;以前的不支持,如QSC6010、QSC6020、QSC6055、QSC6085等单芯片平台;QSC6055芯片的数据卡代码升 级后也可以支持。从代码上看,在QSC6085芯片上,有与IPv6相关的功能,但只是定义了功能和一些流程上的控制(没有代码实现),为后续芯片的支持做准备,所以QSC6085是不支持的,其以前的芯片就更不支持。

部分7系列、8系列芯片是支持的,像MSM7625等。高通原计划MSM7627芯片于2010年10月底出IPv6升级版,但高通官方后申明要延期2个月。高通从2010年6月开始陆续推出支持IPv6芯片。

3.2Android对于IPv6的支持

(1)Android内核

Android内核支持IPv6(Linux内核的TCP/IP协议栈从2.2版本就已经支持IPv6了,而Android采用的Linux内核是2.6以后的版本),编译Android内核代码时,在Linux Kernel源代码路径下执行命令:makemenuconfig,选择ipv6即可:Networking support-Networking options-The IPv6 protocol-其他IPv6分支选项。

而对于操作系统(OS)/协议栈(IP Stack)上IPv6和IPv4的socket调用API不一样(IPv4和IPv6的socket接口的函数名和参数都是不一样的)。

希望OS开发厂商支持来统一socket接口,这是个目标,目前OS支持有困难,国内著名终端厂商华为提出connection management(CM)概念,即上层应用不管底层是IPv4还是IPv6连接,CM来适配接口,根据需要来切换到IPv4或IPv6网络。

(2)Android中间层

Android Native支持IPv6,C库里有支持IPv6的socket。上层应用程序对IPv6和IPv4调用的socket API不一样(IPv4和IPv6的socket接口的函数名和参数都是不一样的),应用程序需要重写,调用新的接口来支持IPV6。

目前,终端上能实现的应用程序仅是Browser,其他应用程序实现需要时间,因为应用程序要实现IPv6功能的话需要调用IPv6的socket接口。

4 Android系统的IPv6实验

为了验证Android系统对于IPv6的支持情况,笔者做了以下实验,并专为此次实验搭建了IPv6环境,包括IPv6网口、无线路由器等。实验中使用的主要IPv6网站包括:

http://.hk/

http:///

4.1实验板通过Wire Ethernet登陆IPv6网站

该实验板移植的是Android2.1系统。出厂时Linux内核无IPv6模块,正常情况需要用insmod IPv6等命令安装。我们采用勾选IPv6模块,重新编译并烧写内核的方法解决此问题。

选择该实验板的重要原因是有网口,且可通过串口以root身份执行各种操作。

实验步骤如下:

(1)重新编译、烧写实验板内核,使之支持IPv6协议栈:

(2)手动设置DNS服务器:

#setprop net.dns1 2001:c68:300:104:200

(3)网线连接实验板与IPv6网口,测试IPv6成功。

实验板访问IPv6如图1所示。

4.2Android手机通过Wi-Fi登陆IPv6网站

主要使用HTC的Nexus One(Android 2.2.1,Linux内核版本2.6.32)和MOTO XTS00(2.1-update1,Linux内核2.6.29-omap1),以及无线路由器H3CWA1208E-GP进行实验。

实验步骤如下:

(1)在IPv6 only网络中,Nexus One wi-Fi连接H3C AP(Access Point,即无线路由器),界面也始终显示“正在获取地址”,不能登录IPv6网站。

(2)插通3G SIM卡,或在Wi-Fi管理器中手动设定IPv4的地址和DNS,则手机可连接H3C并登录IPv6网站。

原因:Android获得IPv6后,还会一直尝试通过IPv4DHCP获取一个IPv4的IP地址,如果不能获取则自动断开。

解决方法:

在路由器上运行一个IPv4 DHCP server,可发送RA;

SAndroid设置一个任意的静态lP。

另:架设DHCPv6 server,windows7 PC可自动获取IPv6 IP地址和DNS,但Android不能。说明Android DHCP功能还不完善。

Android手机访问IPv6如图2所示。

4.3通过3G(EV-DO)上网

本方式是手机和开发板通过Android系统的PPP协议进行拨号上网。首先,需要将PDSN配置成支持IPv4和IPv6双栈的模式。此时,手机和开发板都可以登录IPv4网站,但是无法登录IPv6网站。这说明Android对于IPv4的支持是很完善的,但对于IPv6的支持存在某些缺陷。

为了明确缺陷所在之处,先通过Windows7 PC进行上网实验。Windows7访问IPv6,需要将MODEM(高通QSC6085)设成relay模式,仅仅透传,不做任何处理。图3显示的是MODEM的relay和network模式的原理简图。Windows7 PC能够正常访问IPv6网站,然后,截取Windows7在上网过程中,基站和PDSN之间的交互数据包。如图4所示,具有IPv6协商与建立流程。而Android手机和开发板没有这部分过程。

可以明确的是,Android手机和开发板在登录IPv4网站时,能够正常地进行密钥解析、获取IP地址等过程。但在登录IPv6网站时,终端并没有进行PPP协议的流程。通过进一步对Android的代码进行研究,发现Android默认并没有把IPv6的功能开启,也就是说很多的宏定义被注释掉,而且IPv6相关的.h文件都没有包含到PPP协议里,导致Android终端不能支持IPv6功能。若将Android的IPv6功能打开。需要相当多的工作量来进行代码修改和调试。目前,大多数终端厂商都没有正式开展支持IPv6的终端的研究。主要是因为国内三大运营商的网络还没有完全开始支持IPv6,也没有在终端需求规范里强制要求支持IPv6。

4.4实验总结

(1)Android平台至少从2.1版本开始。已基本支持IPv6,主要功能均已具备,包括内核、中间件及默认浏览器软件;但是,如果通过PPP拨号上网的话,目前Android平台和已上市的Android手机都没有支持访问IPv6网站,这部分功能需要对已屏蔽的IPv6代码进行修改和调试。

(2)Android Wi-Fi管理软件对IPv6的支持还不太完善和方便,需要一些代码的改动和调试工作才能使用;

(3)如果试图设置一个静态的IPv6格式地址也不被接受,说明管理软件在开发时就没有考虑对IPv6的支持。

终端上支持IPv6的关键是IPv6协议栈,该协议栈可以在AP(运行手机系统)侧实现,也可在BP(基带芯片)侧实现。对于Android系统。Linux内核已支持IPv6协议,在relay模式对BP要求相对较少。

据查,实验用的Nexus One主芯片是高通QSD8250(SnapDragon 1GHz),Modem部分不支持IPv6功能,因此不能支持3G网络的IPv6。

5 结语

有报道称,在未来的2至3年,IPv4地址便会枯竭。在不久的将来,国内三大运营商便会全面支持IPv6,包括终端、接入网和核心网等部分。而终端厂商也会逐步在终端上开展IPv6的研究,以满足未来运营商对于IPv6的需求规范。本文对于终端厂商具有很好的借鉴意义,也为其指明了工作方向。

上一篇:移动互联网产业管制的现状\趋势及新管制体系研... 下一篇:承载TD-LTE的世博传送网