面向IPv6的校园移动互联网应用平台设计与实现*
2013-02-28李贺武吴双桥范云涛
李贺武,吴双桥,范云涛
(1.清华大学信息化技术中心无线与移动网络技术研究室 北京100084;2.清华信息科学与技术国家实验室(筹)北京100084)
1 引言
以iPhone为代表的智能终端的出现,使得移动互联网进入飞跃式发展的时代[1,2]。各类移动终端的应用越来越普及,终端和移动应用数量呈爆炸式增长,直接导致移动互联网对IP地址的需求激增。据工业和信息化部2012年所做的调研,未来5年,我国IP地址需求总量可能高达345亿个,在当前IPv4地址已经分配完毕的情况下,IPv6商用的现实价值和战略意义更加明显,尽早面向IPv6研发和迁移移动互联网应用已经成为相关行业发展的必然趋势[3~5]。
IPv6移动互联网应用的研发与部署与IPv6基础网络环境、移动终端对IPv6的支持程度密不可分。然而存在多种原因导致当前IPv6接入环境复杂多变,且移动终端操作系统对IPv6的支持情况也存在巨大差异,使得IPv6移动互联网应用面临诸多挑战。在国家“下一代互联网业务试商用及产业化专项”的支持下,我国已有百所高校完成了IPv6的升级改造工作并实现了IPv6的普遍接入能力,IPv6用户规模已经达到200万人。因此,针对高校采用IPv6技术研发移动互联网应用,具有重要的示范作用。
2 IPv6接入环境与终端支持现状
2.1 校园IPv6接入环境
对于新建网络,采用IPv6/IPv4双栈技术是校园提供IPv6接入服务的首选方案。但对于在现有IPv4网络上提供IPv6接入的服务,则有许多不同的过渡方案。由于IPv4与IPv6本质上的互不兼容性,为实现两者的互联互通,必须使用IPv4/IPv6过渡技术。针对不同的应用场景,已经向国际互联网工作组(IETF)提出了为数众多的过渡技术的标准或者草案。过渡技术本身可分为隧道技术和翻译技术,两者因其实现方法不同,又可以细分为不同的子类,见表1,其中包括清华大学提出的国际标准4over6过渡技术[6]以 及IVI翻 译 技 术[7]。
2.2 移动终端对IPv6的支持现状
接入网的IPv6环境纷繁复杂,移动终端对IPv6的支持情况更是如此。多数移动终端操作系统在设计时并未对IPv6给予足够的重视,因此对IPv6的支持能力相对不完善,对移动终端对IPv6的支持情况详细分析如下。
目前主流的移动终端操作系统对IPv6的支持情况[8]见表2。需要注意的是,表2中的IPv6支持仅指Wi-Fi侧的IPv6支持,主流的移动终端尚未在2G/3G链路支持IPv6。
具体而言,Android系统的Linux内核采用的是2.6以后的版本,其TCP/IP协议栈本身已经包含IPv6,较低版本的Android系统并没有编译IPv6模块[9],因此并不支持IPv6。Android 2.2以后的版本在Wi-Fi侧支持IPv6,但有很多不完善之处:首先,Android系统不支持DHCPv6,只能通过RA方式获得IPv6地址;其次,经过实验验证,在IPv6单栈的Wi-Fi环境下,Android终端获得IPv6地址后不久,会自动断开Wi-Fi连接。相对于Android系统,iOS对IPv6的支持能力相对好一些。iOS从4.1版本开始全面支持IPv6,其中从4.0版本开始支持无状态的DHCPv6,从4.3.1版本开始支持有状态的DHCPv6。
表1 IPv4/IPv6过渡技术分类
表2 主流终端操作系统对IPv6的支持情况
图1 IPv6环境探测
3 针对IPv6 At Tsinghua平台的关键设计
对终端及网络的IPv6环境进行有效的探测,已经成为移动互联网上层应用有效使用IPv6资源的关键。尽管当前已存在若干IPv6环境探测工具,如iOS平台上的IPv6 ToolKit,Android平台的IPv6 Detector、IPv6 and More、IPv6Config等,但这些应用难以集成到其他应用平台上,且部分应用存在着安全性、兼容性等诸多问题。
为此,研发了一个IPv6环境探测的平台工具,如图1所示。该工具的主要功能包括:探测终端本身是否支持IPv6、探测接入网的IPv6环境、呈现当前的IPv6地址等。
所采用的关键技术具体介绍如下。
(1)探测终端本身是否支持IPv6
在iOS平台下,由于iOS平台对IPv6的支持有着明确的分界点——从iOS 4.0开始支持IPv6[8],所以可以通过读取版本号判断终端对IPv6的支持程度;在Android平台下,Linux系统中判断系统是否支持IPv6的方法为:判断/proc/net/if_inet6文件是否存在。
(2)探测接入网的IPv6环境
通过对IPv6地址特点的分析得到。
(3)呈现当前的IPv6地址
在iOS平台下,IPv6的地址是通过获取网络接口对应的套接字地址得到的[10],Android平台获取IPv6地址的方式有所不同。尽管Android系统提供了获取IPv6地址的API,但该API在4.0以下版本中返回的地址为空;通过系统命令(如“ifconfig”、“ip addr”)可以获取IPv6地址,但有些终端厂商会将此类系统命令裁剪掉。事实上,Linux系统会将IPv6地址写入/proc/net/if_inet6文件中,通过读取该文件即可获得当前的IPv6地址。
4 At Tsinghua平台的主要功能
4.1 接入网Wi-Fi认证
清华大学校园网接入认证按照流量阶梯计费,为鼓励大家向IPv6技术过渡,对用户产生的IPv6流量不计费。“Wi-Fi认证”提供了无线校园网的接入认证功能,输入一次用户名、密码之后,即可享用一键登录,连接速度快,且可稳定地维护联网状态。提供的功能包括关闭Wi-Fi校园网自动下线、带外认证其他地址以及连接管理等。清华大学校园网Wi-Fi认证界面如图2所示。
图2 Wi-Fi认证界面
4.2 教室资源推荐系统
教室资源推荐系统基于校园环境和大规模Wi-Fi网络,面向在校师生提供教室和网络资源的推荐服务。应用主要依据Wi-Fi网络所提供的用户关联信息、网络使用信息,结合Wi-Fi网络接入点(access point)的位置信息,帮助用户定位空闲资源。业务系统采用C/S架构,服务器后台采用IPv4/IPv6双栈部署。在终端支持IPv6的情况下,将优先通过IPv6网络使用系统服务。教室资源推荐系统的使用界面如图3所示。
图3 教室资源推荐系统的使用界面
图4 教学信息系统“一站访问”界面
从图3中可以看出,用户不仅可以看到各个教学区域、图书馆人数的估计值,还可以通过人数变化曲线观察各个教室的闲忙趋势。选定教室去向后,还可以通过课表查询并定位可以利用的教室,从而可以较好地解决学生用户找自习教室的问题。
4.3 教学信息系统
学校的教学信息系统经过多年的沿革与发展,形成了多套信息系统并存的现状。“一站访问”将多套信息系统整合在一起,一次登录即可访问多个信息门户。对于登录信息,用户可沿用Wi-Fi认证的信息,也可重新输入登录信息,设置之后的每次使用无需再输入用户名和密码,可以一键登录访问移动Info、信息门户、网络学堂和图书馆资源,访问界面如图4所示。
4.4 平台应用情况
校园移动应用平台At Tsinghua(http://mobileapp.tsinghua.edu.cn/)在2012年3月正式发布Android版本,同年10月推出iOS版本,截至目前的下载用户数已经过万,极大地促进了IPv6在校园用户中的应用。
5 结束语
面向IPv6设计和研发移动互联网应用已经成为相关行业发展的必然趋势。本文对当前的IPv6接入网络环境以及移动终端对IPv6的支持情况进行了分析和小结,并结合所研发的IPv6校园移动互联网应用平台(At Tsinghua),重点介绍了针对IPv6环境探测技术以及平台的主要应用,为探索将移动互联网应用与IPv6技术进行进一步有机融合提供参考借鉴。
1 Liu Y,Li H X.Mobile internet diffusion in China:an empirical study.Industrial Management&Data Systems,2010(3):309~324
2 Eric H.Comparative development of the mobile internet in China and Japan.The 9th Chinese Internet Research Conference(CIRC 2011),Washington D C,2011
3 Andersen F-U,Caviglione L.Survey of IPv6 functional interoperability for mobile internet.Proceedings of 2nd International Conference on Mobile Technology,Applications and Systems,Seattle,WA,USA,2005
4 Vaughan-Nichols S J.Mobile IPv6 and the future of wireless internet access.Computer 2003,36(2):18~20
5 Kernen A,Arkko J,Krishnan S,et al.Towards an IPv6 world in mobile networks.Ericsson Review,2011
6 Wu J,Cui Y,Li X,et al.4over6 Transit Solution Using IP Encapsulation and MP-BGP Extensions.IETF RFC5747,2010
7 Bao C,Huitema C,Bagnulo M,et al.IPv6 Addressing of IPv4/IPv6 Translators.IETF,RFC 6052,2010
8 http://en.wikipedia.org/wiki/Comparison_of_IPv6_support_in_operating_systems
9 董智明,张志荣,张长学等.智能终端主流平台——Android的IPv6分析.移动通信,2011,35(1):80~84
10 http://stackoverflow.com/questions/7072989/iphone-ipad-how-to-getmy-ip-address-programmatically