基于Android系统的IPv6网络接入分析

摘 要:本文深入分析了Android设备接入IPv6网络对硬件、软件的一些要求,以及目前Android软件对IPv6网络的支持情况。指出了Android系统的DHCP客户端的一些不足之处,并提出了相应解决方案。

关键词:Android;IPv6;TCP/IP

一、 IPv6网络简介

   1.1 IPv6网络的由来

      互联网自1968年诞生之日起,便以TCP/IP网络协议为基础在快速的发展,由于互联网上的主机数目不间断的增加,越来越多的主机需要分配网络地址以实现互联互通,IPv4网络地址资源数量不足的弊端也因此逐渐开始暴露出来。鉴于此,IETF(互联网任务工程组)开始着手规划并设计了用于迭代IPv4协议的下一代IPv6网络协议技术解决方案,IPv6网络协议方案的的实现与投入使用,成功的解决了IP地址缺乏、网络设备接入互联网不兼容的难题。

   1.2 移动设备与移动网络

       随着移动互联网的兴起,研究移动设备的IPv6接入具有深刻意义,移动智能手机作为此类设备的主要组成部分,探讨智能手机对于IPv6的支持不仅会加深对于网络的理解而且会促进IPv6的发展。

二、 Android系统中网络的概况

     2.1 Android平台架构简介

         Android系统平台是由美国的Google公司和开放手机联盟领导的团队专门为移动便携式设备开发设计的一款基于Linux系统的嵌入式操作系统平台。Android系统在Linux内核架构的基础上不仅采用了Yaffs2文件系统、添加了针对相关移动设备特殊编写的驱动程序,而且还优化了Linux系统中的相关源码,使其更适合于移动便携式终端的使用。

       Android系统的框架结构大体上分为四个层次,分别为Application层、Application Framework层、Librarys层和Linux Kernel层 。其Linux Kernel层主要用来提供上层系统与底层硬件之间交互相关的一些服务,主要包括硬件安全防护机制、内存分配策略管理、操作系统进程管理、网络连接管理以及相关必备的硬件驱动模块实现等。

    2.2 Android网络支持

       2.2.1 底层支持

         Linux系统的Kernel从2.2版本开始就在源代码级别上实现了IPv6网络协议,对其有着完善的支持,Google公司的Android 1.0系统基于Linux Kernel 2.6版本,所以自然在底层源码级别上也是支持此种类型的网络的,出于APP的稳定性等原因考虑,在Android系统的4.0版本之前,Google并没有使Android在Application Framework层支持IPv6协议,并且修改了底层的源码,修改之后的源码经编译后并不能直接支持IPv6网络协议。继Android 4.0版本之后,Google再次修改Android的网络协议模块相关代码,使得Android平台支持了IPv6网络协议,但是由于大部分的应用在设计时未考虑对下一代网络协议的支持,所以,将手机的网络环境更换至IPv6网络环境下时,绝大多数的应用不能再继续正常使用。典型的在IPv6环境下可使用的工具有浏览器,命令行工具。

    2.2.2 实验依据

         Android系统采用双栈协议方式进行IPv4/IPv6网络的切换工作,使用socket方式供移动设备接入网络,在Java层,既提供了IPv4的socket,又提供了IPv6的socket,其根据不同地网络类型进行自动的选择。由于Android系统的DHCP客户端目前在IPv6协议方面的功能还不是很完善,因此,在进行Android设备的IPv6网络连接实验时,需要配置好路由器的相关参数,以及对客户端进行正确的配置,以便使Android设备能够正确的获取到IPv4和IPv6地址。

三、 Android的IPv6连接实验过程

   3.1 硬件设备     

    1、购买了华为的IPv6路由器,经参数验证确认该设备可以进行基于IPv6协议的网络环境的搭建,用作实验中的网络信号接入源。

    2、实验中使用的手机是小米4手机,手机型号为MI 4LTE,基于Android6.0,其完整的手机参数示意图如下图所示;经参数验证,该手机的系统和基带模块具备实验条件。

 

3.2 Android手机连接到IPv6网络

     3.2.1  路由器的配置

       将路由器的WAN口通过网络连接线连接到学校的交换机上面,并对路由器进行正确的配置,使其可以正常的进行网络信号的发射,设置其SSID为AHUT_IPV6,以此来标识此网络为采用IPv6协议的网络。

    3.2.2  设备进行网络连接的详细过程

      将实验手机的WLAN功能开关打开,进行无线网络的搜索,当发现此网络后会尝试进行网络的自动连接,如下图所示。

 

       在搜索到AHUT_IPV6网络并进行连接的过程中,实验手机的提示为正在获取当前网络的IP地址,经数分钟后提示连接失败,由此可知,目前Android系统的DHCP客户端对IPv6网络环境相关设置做的还不是很完善,当获取不到IPv4网络地址时,也不能自动的设置IPv6的相关网络参数。Android的网络设置要求必须能获取到IPv4地址,然后才可以正常的设置IPv6的相关参数。了解了DHCP客户端的限制后,采取的方法有两种,一为重新购买路由器,使其发出的无线网络含有IPv4/IPv6网络;二为手动设置手机设备的IPv4地址,这样,DHCP就不会再获取到IPv6地址后一直试图去获取IPV4地址,本实验采用方法二,手动设置小米手机4的IPv4地址,如下图所示。

 

         这样设置后,实验中使用的手机就可以完成IPv6网络的连接,连接后的手机界面如下图所示,从获取到的网络地址也可以验证Android采用双栈协议进行不同协议网络的连接。

 

   3.2.3 对网络的连通性进行测试

    将电脑和手机同时连接在同一网络环境下,对实验手机和电脑进行ping连通性实验测试,在此环境下,设备可以正常的ping通电脑,如下图所示,由图可知,手机和电脑在实验环境下可以进行正常的数据发送,由此可以证明实验理论的正确性。

 

四、 实验总结

       1、目前采用Android 4.0之后的移动端设备使用IPv6网络可以进行正常的通信,但是,目前Android手机上面支持IPv6协议的的应用软件非常少。

       2、Android采用双栈协议进行IPv4/IPv6网络的协同工作,当发送的是IPv4数据报文时,采用的Socket为v4版本,当发送的数据报文采用的是IPv6协议时,采用的Socket为v6版本。

       3、目前针对移动设备打造的Android系统的DHCP(动态主机配置协议)客户端功能做的还不是很善,有一些不足之处,在只有IPv6网络环境的条件下,需要手动将手机的DHCP客户端IP设置调整为静态,并设置IPv4地址,这样手机的DHCP客户端就不会再尝试获取IPv4地址了。

更多相关文章

  1. Nginx系列教程(六)| 手把手教你搭建 LNMP 架构并部署天空网络电影
  2. Android(安卓)视频播放
  3. android wear端数据和手机端数据
  4. XMPP协议之Androidpn介绍
  5. 第一款国产的Android手机—天翼N930
  6. 一个「Pure Android」主义者的手机桌面
  7. J2ME学习选择
  8. Android客户端多文件上传
  9. 开发者眼中的Android手机平台

随机推荐

  1. 第一行代码(第二版)自学笔记之第一篇:Androi
  2. Uiautomator及UiautomatorHelper
  3. Android样式化的定型对象 — Style样式的
  4. Android安装环境搭建
  5. android中判断当前上午、中午、晚上
  6. android 一个可以自定义的进度条控件
  7. android的文件系统结构及其引导过程的初
  8. Android中的Broadcast Action大全
  9. android 和 java 调色板
  10. Testing和Instrumentation