CN104540180B - 一种无需根权限的安卓多跳路由实现方法 - Google Patents

一种无需根权限的安卓多跳路由实现方法 Download PDF

Info

Publication number
CN104540180B
CN104540180B CN201410767892.8A CN201410767892A CN104540180B CN 104540180 B CN104540180 B CN 104540180B CN 201410767892 A CN201410767892 A CN 201410767892A CN 104540180 B CN104540180 B CN 104540180B
Authority
CN
China
Prior art keywords
android
address
routing
root authority
hop
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410767892.8A
Other languages
English (en)
Other versions
CN104540180A (zh
Inventor
于卫波
王海
董超
米志超
牛大伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Army Engineering University of PLA
Original Assignee
于卫波
王海
董超
米志超
牛大伟
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 于卫波, 王海, 董超, 米志超, 牛大伟 filed Critical 于卫波
Priority to CN201410767892.8A priority Critical patent/CN104540180B/zh
Publication of CN104540180A publication Critical patent/CN104540180A/zh
Application granted granted Critical
Publication of CN104540180B publication Critical patent/CN104540180B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing

Abstract

本发明涉及一种无线通信领域,是一种无需根权限的安卓多跳路由实现方法,用于在运行了Android 4.0以上版本,带Wi‑Fi或是蓝牙模块的多个智能终端之间实现信息多跳共享,利用了Android 4.0以上版本支持的VPN功能建立虚拟网络接口,不依赖2G/3G/4G移动基站和Wi‑Fi热点,无需root就可以在多用户之间实现多跳选路转发,扩展了无线P2P通信的应用范围。该专利的关键权利部分为通过虚拟接口将数据导入用户程序,通过对用户路由表的查找,通过socket将数据隧道发送到下一跳节点,从而实现通讯程序透明的多跳数据选路转发功能。

Description

一种无需根权限的安卓多跳路由实现方法
技术领域
本发明涉及一种基于安卓(Andriod)操作系统的无线设备多跳选路方法,适用于运行安卓4.0版本以上操作系统手机的非根权限(root)下的多跳路由表建立及数据转发方法。
背景技术
近年来,智能手机、智能平板等已经得到了广泛普及。智能终端上的主流操作系统主要有两个:Android和IOS。其中,IOS操作系统由苹果公司开发,主要用于Iphone、iPad系列设备,而Android操作系统则由Google公司开发,运行的操作系统涵盖三星及绝大部分国产手机和平板设备如华为、中兴,以及大量智能家居系统如电视等。这些手机上大多集成有Wi-Fi和蓝牙芯片组,可以实现短距离无线数据传输。其中蓝牙主要用于点对点的数据传输,例如文件共享。而wifi则基本作为接入公众网络的快速接入手段,需要基础设施即WI-FI热点的支持。但是,目前的绝大多数无线应用都要依赖基础设施,即2G/3G/4G的移动基站或者是WI-FI热点,有些移动用户相互之间的信息交互也要经过基站或者热点转发,因而在基站和热点缺乏(如偏远景区、边远地区等)以及特殊环境如海上、自然灾害时,手机的无线数据传输功能则完全不可使用。严重影响了用户体验。
随着微信等交互工具越来越普及,近年来不依赖基站或基础设施,手机之间直接进行数据交互的需求越来越多,越来越迫切。传统应用通常通过蓝牙来实现相互邻接设备间的点到点数据传输,但蓝牙通信距离仅为几米,而且人们的使用习惯更倾向于Wi-Fi,为了满足这一需求,WI-FI标准工作组在制定IEEE 802.11标准的基础上,增加了ad hoc模式和Wi-Fi Direct模式。Ad hoc模式可以支持多个Wi-Fi设备之间自组网,但是迄今为止,adhoc模式没有得到广泛响应,大部分手机的Wi-Fi芯片组不支持ad hoc模式。同时,即便是手机Wi-Fi芯片组支持ad hoc模式,从Wi-Fi的常规模式切换到ad hoc模式也需要应用具有root权限。这个权限只有少量专业级手机用户才能获得。从而导致了ad hoc模式并不实用。另一方面,Wi-Fi Direct模式近年来得到了很多手机生产厂家和操作系统的支持,Google公司在Android 4.0后支持Wi-Fi Direct模式,且从常规模式切换到Wi-Fi Direct模式不需要root权限即可实现设备间的P2P通信。
到目前为止,智能设备可以通过WIFI DIRECT或是蓝牙实现无需固定设施支持的直接数据通信,在互联网上也涌现出了基于上述技术的很多局域网通信应用。但是,这些通信应用只支持邻居间的一跳通信,支持的用户数量有限,用户间距离也必须在物理设备的通信距离内。目前支持多跳无线组网的ad hoc组网技术研究已经很深入,并有大量的专用设备在使用该技术进行多跳无线通信。该技术需要在系统路由表添加多跳转发路由,而在android系统中只有获得root权限才能够对系统路由表进行操作。
【参考文献】
[1]Crow B P,Widjaja I,Kim J G,et al.IEEE 802.11wireless local areanetworks[J].Communications Magazine,IEEE,1997,35(9):116-126.
[2]Anastasi G,Borgia E,Conti M,et al.IEEE 802.11ad hoc networks:performance measurements[C]//Distributed Computing Systems Workshops,2003.Proceedings.23rd International Conference on.IEEE,2003:758-763.
[4]Camps-Mur D,Garcia-Saavedra A,Serrano P.Device-to-devicecommunications with Wi-Fi Direct:overview and experimentation[J].WirelessCommunications,IEEE,2013,20(3).
[5]K.Doppler,M.Rinne,C.Wijting,C.Ribeiro,and K.Hugl,"Deviceto-devicecommunication as an underlay to LTE-advanced networks,"CommunicationsMagazine,IEEE,vol.47,no.12,pp.42-49,2009.
[6]VpnService-Android SDK|Android Developers.http://web.mit.edu/majapw/MacData/afs/sipb/project/android/docs/referen ce/android/net/VpnService.html.
发明内容
技术问题:本发明的目的是提供一种无需根权限的安卓多跳路由实现方法,利用Android 4.0以后版本提供的VPN功能,通过用户创建的虚拟网络接口设备,截获发往网络的数据,在该接口上完成路由表的构建和数据的转发设计,同时将希望提交给系统网络协议栈的数据插入该接口,实现无需root权限的多跳无线路由表构建及数据转发设计。该路由和转发功能对第三方设计的网络通信程序是透明的,作为底层支撑完成对多跳数据通信的支持。
技术方案:在android 4.0以上版本的操作系统中提供了对VPN技术的支持,VPN技术可以为非root权限用户提供一个可供操作的虚拟网络接口。本发明就是利用该虚拟接口完成用户路由表的构建和与系统网络协议栈的衔接功能,从而构建一个无需root权限的多跳路由框架。为所有的无线通信程序提供多跳扩展支撑。
Android VPN提供了VPNService类供用户开发应用程序使用,帮助用户创建一个虚拟网络设备接口,通过该接口用户程序可以截获发往网络的数据,并将需要提交系统网络协议栈的数据插入该接口。在该接口上构建一个用户管理的路由表,当数据需要从该接口发出时,先查询本地管理路由表,获取下一跳信息,根据下一跳信息对数据进行隧道封装,通过实际WI FI或蓝牙接口将数据发出,从而实现不需要root权限的多跳路由和数据转发工作。
本发明的一种无需根权限的安卓多跳路由实现方法为:
1)、基于Andriod4.0(安卓4.0)以上版本虚拟专用网络VPN(Virtual PrivateNetwork,以下简称VPN)的VPNService类,创建本地可访问的虚拟网络接口,从而提供非根权限下与网络协议栈的接口;
2)、构建用户路由表,表项中以其它节点的虚拟接口地址为目的地址,以实际无线网络接口地址为下一跳地址,由于路由不需要插入系统路由表,因此不需要获取root权限;
3)、将从虚拟接口捕获的网际协议(IP)分组查表,作为用户数据报协议(UDP)数据内容进行隧道封装,以路由表中的下一跳地址作为UDP的目的地址发送。
对所获取的IP分组进行以路由表下一跳地址为目的的隧道封装,隧道封装方式以传输控制协议(TCP)方式封装;
对所获取的IP分组进行以路由表下一跳地址为目的的隧道封装,隧道封装方式以原始网际协议(RAW IP)方式封装。
有益效果:利用该多跳路由实现方法,android4.0以上操作系统的智能设备可以不依赖2G/3G/4G基站,利用wifi或是蓝牙设备完成多个智能设备之间的自组织组网功能,实现相互间通信的互转功能。在邻近的手机之间共享、交互信息,使手机成为一种可以脱离基站的群组之间交流工具。本方法采用android 4.0以上版本开放给用户使用的VPN(虚拟专用网)作为技术基础,所以采用此方法的应用程序不需要root权限,只要在运行andriod4.0的手机上均可实现。通过与该多跳方法配合,可以支持目前的局域网一跳通信工具无缝的扩展到多跳通信,不需要固定基础设施的支持,为偏远、救灾、集团活动等场合的大范围智能android设备组网通信提供支撑。
附图说明
下面结合附图对本发明进一步说明。
图1a是数据发送流程,图1b是数据转发流程,图1c是数据接收流程。
图2:数据封装,
图3:路由表格式。
具体实施方式
用户路由表的表项信息是通过无线多跳路由算法得到的,具体的路由发现及选路算法不在本专利申请范围内。
程序加载后利用VPNService类,创建一个虚拟接口,并为该接口分配IP地址,该IP地址采用与本机地址相同的主机部分地址,网络地址可以选择193网段的内网地址。
多跳路由算法生成指向各个节点虚拟接口的路由表项,该表项如图3所示。表项由以下内容组成:目的(虚拟接口地址),下一跳(对端实际无线设备地址)。
本发明可以作为一个对第三方应用通信程序的支撑软件,其数据流程如图1所示。在图1中本发明内容作为选路转发程序存在。当位于系统协议栈以上的第三方应用通信程序向另一个节点的虚拟接口地址发送数据时,该数据将被系统网络协议栈交给本机虚拟接口,被选路转发程序中的虚拟接口接收程序获得,此时数据将是一个完整的IP分组,称作IP分组A,根据分组A中的目的IP地址查询用户路由表,获得下一跳IP地址D。用户路由程序将分组A作为数据内容以UDP方式发送给地址D,UDP端口可以自行约定。(数据封装过程如图2所示,采用UDP方式实现了对分组的隧道封装)。由于D是对端实际无线设备接口地址,与本机无线设备IP地址在同一个网段中,因此该分组将从本机无线设备中发出,被对端的无线接口设备(WIFI或是蓝牙设备)收到,上交给选路转发程序中的UDP接收程序,UDP接收程序收到该消息后把内容部分提取,该部分内容为应用程序发送的完整IP分组,如果该分组的目的地址为本机虚拟端口地址,则通过虚拟设备接口将该IP分组上交给系统网络协议栈,系统网络协议栈认为这是一个从网络收到的IP分组,上交给第三方应用通信程序,完成一次通信过程。如果目的地址不是本机地址则查找本机用户路由表重新选择下一跳,继续重复前面的转发过程。
实例:
第一步:一个想加入多跳网络的节点i,首先启动自己的无线设备与多跳网络中的其它设备物理可联通,并为该设备获得IP地址Ai,及掩码长度Mi(地址获取方式可以是动态获取或是静态分配,不在本专利范围内)。选路转发程序启动VPN,调用VPNservice类,创建一个虚拟接口设备Vi,获得该设备的文件描述符fdi。通过VPNService类的addAddress方法为Vi分配主机部分与Ai相同,位于另一个内网网络段的地址VAi,掩码长度为Mi。例如Ai=192.168.0.2,Mi=24,则Vi的地址可以为VAi=193.168.0.2,掩码长度为24。
第二步:选路转发程序中运行路由协议,该路由协议需要在各个节点间交互其地址VAi,Mi及VAi消息生成路由表Ti,具体路由算法不在本发明范围内;
第三步:选路转发程序从虚拟接口设备接收本节点发送往其它节点的分组。
例如:节点i发送目的地址为VAj的数据给节点j,该分组将会从虚拟接口Vi发送,该接收程序将会获得目的地址为VAj,源地址为VAi的IP分组Pi
第四步:查询Ti,找到目的地址为VAj的表项,得到其下一跳地址为Vk(下一跳转发节点为节点k)。
第五步:将收到的IP分组Pi作为UDP分组的内容部分进行封装,发往目的地址VAj,目的端口号为X;
第六步:k节点运行应用层接收程序收到UDP分组,提取其内容Pi,Pi中的目的IP地址为VAj
第七步:如果VAj与VAk相等则将Pi写入虚拟接口设备,否则重复第四到第七步。
第八步:写入fdk的数据将被用户通信程序接收,完成本次多跳通信过程。

Claims (3)

1.一种无需根权限的安卓多跳路由实现方法,其特征在于:
1)、基于安卓4.0以上版本虚拟专用网络VPN的VPNService类,创建本地可访问的虚拟网络接口,从而提供非根权限下与网络协议栈的接口;
2)、构建用户路由表,表项中以其它节点的虚拟接口地址为目的地址,以实际无线网络接口地址为下一跳地址,由于路由不需要插入系统路由表,因此不需要获取根权限;
3)、将从虚拟接口捕获的网际协议IP分组查表,作为用户数据报协议UDP数据内容进行隧道封装,以路由表中的下一跳地址作为UDP的目的地址发送。
2.根据权利要求1所述的无需根权限的安卓多跳路由实现方法,其特征在于:对所获取的网际协议分组进行分组查表,然后以路由表下一跳地址为目的的隧道封装,隧道封装方式以传输控制协议(TCP)方式封装。
3.根据权利要求1所述的无需根权限的安卓多跳路由实现方法,其特征在于:对所获取的网际协议分组进行分组查表,然后以路由表下一跳地址为目的的隧道封装,隧道封装方式以原始网际协议(RAW IP)方式封装。
CN201410767892.8A 2014-12-12 2014-12-12 一种无需根权限的安卓多跳路由实现方法 Active CN104540180B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410767892.8A CN104540180B (zh) 2014-12-12 2014-12-12 一种无需根权限的安卓多跳路由实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410767892.8A CN104540180B (zh) 2014-12-12 2014-12-12 一种无需根权限的安卓多跳路由实现方法

Publications (2)

Publication Number Publication Date
CN104540180A CN104540180A (zh) 2015-04-22
CN104540180B true CN104540180B (zh) 2017-10-24

Family

ID=52855612

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410767892.8A Active CN104540180B (zh) 2014-12-12 2014-12-12 一种无需根权限的安卓多跳路由实现方法

Country Status (1)

Country Link
CN (1) CN104540180B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106470137A (zh) * 2015-08-21 2017-03-01 腾讯科技(深圳)有限公司 一种数据处理方法及终端
CN105808425A (zh) * 2016-02-24 2016-07-27 北京奇虎科技有限公司 一种实现移动端应用测试的方法、装置和系统
KR101802967B1 (ko) * 2016-08-08 2017-12-28 서울대학교산학협력단 멀티 홉 네트워크 구성 방법 및 장치
CN106961357B (zh) * 2017-04-28 2021-01-12 西安海润通信技术有限公司 一种基于非root安卓终端的互联网业务抓包与故障定位方法
CN112087819B (zh) * 2020-09-10 2022-05-10 上海连尚网络科技有限公司 一种信息请求方法、设备和计算机可读介质
CN114867077B (zh) * 2022-04-12 2023-11-07 中国电信股份有限公司 多跳路由实现方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102195871A (zh) * 2011-01-07 2011-09-21 华为数字技术有限公司 一种mpls vpn网络中控制业务流量转发路径的方法
CN102790963A (zh) * 2012-07-20 2012-11-21 南京大学镇江高新技术研究院 基于Android手机的移动自组网系统及其构建方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104104570B (zh) * 2013-04-07 2018-09-04 新华三技术有限公司 Irf系统中的聚合处理方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102195871A (zh) * 2011-01-07 2011-09-21 华为数字技术有限公司 一种mpls vpn网络中控制业务流量转发路径的方法
CN102790963A (zh) * 2012-07-20 2012-11-21 南京大学镇江高新技术研究院 基于Android手机的移动自组网系统及其构建方法

Also Published As

Publication number Publication date
CN104540180A (zh) 2015-04-22

Similar Documents

Publication Publication Date Title
Triantafyllou et al. Network protocols, schemes, and mechanisms for internet of things (iot): Features, open challenges, and trends
CN104540180B (zh) 一种无需根权限的安卓多跳路由实现方法
EP3228123B1 (en) Efficient hybrid resource and schedule management in time slotted channel hopping networks
CN109478179A (zh) IoT设备连接、发现和联网
CN111865802B (zh) 一种通信方法及装置
CN106165351A (zh) 使用tdls的多信道链路聚集
Casetti et al. Data connectivity and smart group formation in Wi-Fi direct multi-group networks
CN102158812B (zh) AC-AP架构无线Mesh网组播通信方法
CN102868586B (zh) 一种建立隧道转发表项的方法、中心节点和分支节点
CN105981417A (zh) 用于便于6lowpan数据访问的基于微微-rru的网络实现
CN106063366A (zh) 用于便于6lowpan数据访问的有源天线元件(aae)实现
Almeida et al. Proposal of a hybrid LoRa Mesh/LoRaWAN network
CN202285423U (zh) 智能机顶盒
CN102970710A (zh) 一种数据传输方法及基站
CN105993159B (zh) 用于便于6lowpan数据访问的基带单元(bbu)实现
Kaplan et al. WASP: a software-defined communication layer for hybrid wireless networks
CN106455086A (zh) 一种进行数据传输的方法和设备
CN106793178A (zh) 一种Android区域便携移动自组网的软硬件系统构建方法
CN105103574A (zh) 通信系统、中继装置以及通信方法
Rahman et al. A device-to-device service sharing middleware for heterogeneous wireless networks
KR100824050B1 (ko) 이종의 네트워크를 연동하는 게이트웨이 장치, 그 방법 및기록 매체
CN106851859A (zh) 一种基于无线自组网的跨网数据通信方法
CN102035730A (zh) 支持wlan跨越manet通信的融合网络体系架构及按需路由方法
KR102145009B1 (ko) 멀티홉 프로토콜을 지원하는 LoRaWAN 통신 네트워크 시스템 및 이의 통신 제어 방법
CN107689986A (zh) 无线自组织网络中通信设备的数据通信方法、通信设备以及存储装置

Legal Events

Date Code Title Description
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210205

Address after: 210 007 No. 88 Houbaoying Road, Qinhuai District, Nanjing City, Jiangsu Province

Patentee after: ARMY ENGINEERING UNIVERSITY OF CHINA PLA

Address before: No.2 biaoying, Qinhuai District, Nanjing City, Jiangsu Province, 210007

Patentee before: Yu Weibo

Patentee before: Wang Hai

Patentee before: Dong Chao

Patentee before: Mi Zhichao

Patentee before: Niu Dawei