一种适用于IOS VPN的网络感知及无缝切换方法技术

技术编号:19639045 阅读:30 留言:0更新日期:2018-12-01 19:13
本发明专利技术提供一种适用于IOS VPN的网络感知及无缝切换方法,方法根据网络通信接口的状态和VPN套接字的状态,实现了网络事件感知、网络状态判断和VPN套接字事件决策,保证了复杂网络环境下IOS VPN的无缝切换,保障了IOS VPN的稳定性和移动性,提升了IOS VPN的用户体验。发明专利技术适用于IOS VPN的网络感知及无缝切换方法能够实现IOS VPN的网络状态监测、网络事件判断、VPN套接字状态监测和VPN套接字事件决策,支持对工作上下文环境的网络感知,支持对安全通信隧道的无缝切换,适用于复杂网络环境下IOS VPN的安全、可靠、稳定通信。

【技术实现步骤摘要】
一种适用于IOSVPN的网络感知及无缝切换方法
本专利技术涉及网络通信领域,尤其涉及一种适用于IOSVPN的网络感知及无缝切换方法。
技术介绍
移动VPN工作的网络环境较传统VPN相比更为复杂多变,时刻面临网络中断、网络恢复、网络切换的网络事件,网络中断事件包括从Wi-Fi网络或移动蜂窝网络到无网络,网络恢复事件包括从无网络到Wi-Fi网络到蜂窝移动网络,网络切换事件包括从Wi-Fi网络到移动蜂窝网络。随机频繁网络事件容易导致网络套接字异常甚至错误,导致了移动VPN通信失效甚至移动终端通信异常。由于考虑传输效率和通信开销的缘故,大部分VPN承载于无连接的UDP协议之上,只能依赖于心跳包定时检测套接字通信状态。心跳包定时检测方法周期间隔较长,无法实时应对移动终端可能频繁发生的网络事件,因此无法实现移动VPN的无缝切换和自动恢复,导致不友好用户使用体验。针对移动VPN面临的网络事件问题,相关研究工作成果主要表现在专利技术专利和学术论文两方面。在专利技术专利方面,专利CN201510958933.6提出了一种移动终端的VPN网络自动恢复系统,在VPN客户端增加重连事件和动作模块,在VPN服务端增加重连协议以处理客户端的重连事件,未交待移动终端的网络状态和时间的检测方法。专利CN201710048163.0提出了一种移动网络环境下的VPN通信保障方法与装置,采用有限状态自动机对VPN工作和事件以及网络状态和事件建模,并根据网络事件采取相应的VPN事件以“礼貌暂停,智能恢复”VPN网络连接。在学术论文方面,《MobiVPN:AmobileVPNprovidingpersistencytoapplications》提出了一种缓存和冻结TCP技术,作者基于该方法在Android平台改进了OpenVPN,以提高VPN的移动性和稳定性。《ACommunicationSupportableGenericModelforMobileVPNonAndroidOS》提出了一种Android平台移动VPN的通信保障通用模型,通过监测系统网络事件和监测VPN工作状态实现VPN自动重连。目前,上述所有研究工作、方法与成果均在Android平台展开和验证,并未在IOS平台得以验证,主要原因有以下三点:第一,IOSVPN接口NetworkExtension(NE)相对不够成熟。NE在2014年9月IOS8.0+后才向开发者提供,且NE接口开放初期自身问题颇多,相关研究工作与开发经验非常缺乏。第二,IOS系统对后台常驻服务的限制。NE在IOS系统的工作机制是一个单独的进程,与VPN应用主进程相对独立。因此,需要实现后台常驻服务实现网络监测、VPN中断和恢复,但是IOS系统权限仅允许对音视频、位置、语音电话开启后台常驻服务。第三,IOS系统网络监测方法的缺陷。在VPN开启条件下,IOS终端实际网络状态与系统获取网络状态存在冲突,原因在于IOS平台下,开启VPN后,系统会将VPN启动和关闭事件视为一次Wi-Fi的开启和关闭。经多次测试,IOSVPN工作中发生网络事件时,系统获取网络状态权限如表1所示。表1IOS终端实际网络状态与系统获取网络状态的冲突情况表
技术实现思路
针对IOS平台VPN工作时,NE相对独立性和系统网络状态获取的不足,本专利技术提出一种适用于IOSVPN的网络感知及无缝切换方法,方法包括:套接字状态获取模块,通信接口状态获取模块,网络感知模块以及无缝切换模块;套接字状态获取模块获取创建VPN套接字状态,通信接口状态获取模块获取IOS移动终端通信接口状态;通信接口状态获取模块监测到网络通信接口网络状态改变,将识别的网络通信接口网络状态改变信息回传至网络感知模块;网络感知模块对IOS移动终端通信接口经历的网络状态改变信息进行处理;无缝切换模块根据网络感知模块对网络状态改变信息的处理以及套接字状态的输入信息,决策VPN套接字事件是关闭或重启套接字。在本专利技术中,网络感知模块对IOS移动终端通信接口经历的网络状态改变信息进行处理方法包括:判断defaultPath的status属性。若是invalid,则当前网络状态无法评估,返回NET_UNCERTAIN;若是satisfied,则当前网络可用,继续判断defaultPath的isExpensive属性来区分是蜂窝移动网或是Wi-Fi网络,如为yes是蜂窝移动网,返回NET_CELLULAR;否则是Wi-Fi网络,返回NET_WIFI;若是unsatisfied则当前网络不可用,返回NET_NONE;还有一种情况是satisfiable,当前网络状态并不可用,返回NET_UNCERTAIN。在本专利技术中,网络感知模块对IOS移动终端通信接口经历的网络状态改变信息进行处理方法包括:S1:判断defaultPath对象status属性是否为invalid,若不是,执行S2;否则,执行S5;S2:判断defaultPath对象status属性是否为satisfied,若是,执行S3;否则,执行S4;S3:判断defaultPath对象isExpensive属性是否为yes,若是,执行S6;否则,执行S7;S4:判断defaultPath对象status属性是否为unsatisfied,若不是,执行S5;否则,执行S8;S5:返回NET_UNCERTAIN;S6:返回NET_CELLULAR;S7:返回NET_WIFI;S8:返回NET_NONE。在本专利技术中,无缝切换模块根据网络感知模块对网络状态改变信息的处理以及套接字状态的输入信息,决策VPN套接字事件是关闭或重启套接字方法包括:判断udp套接字的状态,若是无效状态Invalid,等待状态Waiting,准备状态Preparing中的一种,则不处理,否则获取当前网络状态nowNetState,并判断是否是NET_UNCERTAIN,若不是则判断之前网络状态lastNetState是否是不确定的网络NET_UNCERTAIN并将nowNetState与之前网络状态lastNetState比较,判断网络状态是否发生变化;若lastNetState是不确定的网络NET_UNCERTAIN或者网络状态没有变化则更新lastNetState为当前网络状态;否则继续判断udp套接字是否是开启状态,udp套接字开启时,发生网络中断interrupt事件、网络切换swtich事件分别会触发VPN暂停pause,重启restart事件,udp套接字关闭时,发生网络恢复recover事件会触发VPN启动start事件;根据网络状态前后的变化判断出网络事件;若当前网络状态nowNetState为无网络连接NET_NONE,说明发生了网络中断interrupt事件;若当前网络状态nowNetState不为无网络连接NET_NONE,之前网络状态lastNetState不为无网络连接NET_NONE,说明发生了网络切换swtich事件;若当前网络状态nowNetState不为无网络连接NET_NONE,之前网络状态nowNetState为无网络连接NET_NONE,说明发生了网络恢复recover事件;分别调用相应函数触发VPN事件来处理。在本专利技术中,VPN启动star本文档来自技高网
...

【技术保护点】
1.一种适用于IOS VPN的网络感知及无缝切换方法,其特征在于,方法包括:套接字状态获取模块,通信接口状态获取模块,网络感知模块以及无缝切换模块;套接字状态获取模块获取创建VPN套接字状态,通信接口状态获取模块获取IOS移动终端通信接口状态;通信接口状态获取模块监测到网络通信接口网络状态改变,将识别的网络通信接口网络状态改变信息回传至网络感知模块;网络感知模块对IOS移动终端通信接口经历的网络状态改变信息进行处理;无缝切换模块根据网络感知模块对网络状态改变信息的处理以及套接字状态的输入信息,决策VPN套接字事件是关闭或重启套接字。

【技术特征摘要】
1.一种适用于IOSVPN的网络感知及无缝切换方法,其特征在于,方法包括:套接字状态获取模块,通信接口状态获取模块,网络感知模块以及无缝切换模块;套接字状态获取模块获取创建VPN套接字状态,通信接口状态获取模块获取IOS移动终端通信接口状态;通信接口状态获取模块监测到网络通信接口网络状态改变,将识别的网络通信接口网络状态改变信息回传至网络感知模块;网络感知模块对IOS移动终端通信接口经历的网络状态改变信息进行处理;无缝切换模块根据网络感知模块对网络状态改变信息的处理以及套接字状态的输入信息,决策VPN套接字事件是关闭或重启套接字。2.根据权利要求1所述的适用于IOSVPN的网络感知及无缝切换方法,其特征在于,网络感知模块对IOS移动终端通信接口经历的网络状态改变信息进行处理方法包括:判断defaultPath的status属性;若是invalid,则说明当前网络状态无法评估,返回NET_UNCERTAIN;若是satisfied,则说明当前网络可用,继续判断defaultPath的isExpensive属性来区分是蜂窝移动网或是Wi-Fi网络,为yes说明是蜂窝移动网,返回NET_CELLULAR;否则是Wi-Fi网络,返回NET_WIFI;若是unsatisfied则说明当前网络不可用,返回NET_NONE;最后一种情况是satisfiable,说明当前网络状态并不可用,但尝试连接可能会可用,返回NET_UNCERTAIN。3.根据权利要求1或2所述的适用于IOSVPN的网络感知及无缝切换方法,其特征在于,网络感知模块对IOS移动终端通信接口经历的网络状态改变信息进行处理方法包括:S1:判断defaultPath对象status属性是否为invalid,若不是,执行S2;否则,执行S5;S2:判断defaultPath对象status属性是否为satisfied,若是,执行S3;否则,执行S4;S3:判断defaultPath对象isExpensive属性是否为yes,若是,执行S6;否则,执行S7;S4:判断defaultPath对象status属性是否为unsatisfied,若不是,执行S5;否则,执行S8;S5:返回NET_UNCERTAIN;S6:返回NET_CELLULAR;S7:返回NET_WIFI;S8:返回NET_NONE。4.根据权利要求1或2所述的适用于IOSVPN的网络感知及无缝切换方法,其特征在于,无缝切换模块根据网络感知模块对网络状态改变信息的处理以及套接字状态的输入信息,决策VPN套接字事件是关闭或重启套接字方法包括:判断udp套接字的状态,若是无效状态Invalid,等待状态Waiting,准备状态Preparing中的一种,则不处理,否则获取当前网络状态nowNetState,并判断是否是NET_UNCERTAIN,若不是则判断之前网络状态lastNetState是否是不确定的网络NET_UNCERTAIN并将nowNetState与之前网络状态lastNetState比较,判断网络状态是否发生变化;若lastNetState是不确定的网络NET_UNCERTAIN或者网络状态没有变化则更新lastNetState为当前网络状态;否则继续判...

【专利技术属性】
技术研发人员:傅春乐王佰玲辛国栋王巍刘扬孙云霄
申请(专利权)人:哈尔滨工业大学威海
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1