数据包传输控制方法、移动终端以及装置与流程

文档序号:16203583发布日期:2018-12-08 06:51阅读:311来源:国知局
数据包传输控制方法、移动终端以及装置与流程

本发明涉及无线通信技术领域,特别是涉及一种数据包传输控制方法、移动终端以及具有存储功能的装置。

背景技术

本发明的发明人在长期的研究发明过程中发现,移动终端或者叫移动通信终端是指可以在移动中使用的计算机设备,广义的讲包括手机、笔记本、平板电脑、pos机甚至包括车载电脑。但是大部分情况下是指手机或者具有多种应用功能的智能手机以及平板电脑。随着网络和技术朝着越来越宽带化的方向的发展,移动通信产业将走向真正的移动信息时代。另一方面,随着集成电路技术的飞速发展,移动终端的处理能力已经拥有了强大的处理能力,移动终端正在从简单的通话工具变为一个综合信息处理平台。这也给移动终端增加了更加宽广的发展空间。

随着物联网的发展,智能手机与包括其在内的智能设备之间可以通过建立物联网连接,实现智能手机与智能设备之间的信息交流,提供更好的交互体验。但部分系统的智能手机并不支持同时访问wifi网络与蜂窝网络,具体表现在:当蜂窝网络和wifi网络同时处于开启状态的时候,所有网络请求均会通过wifi网络访问智能设备内网,智能手机无法通过蜂窝网络访问外网;或是当wifi网络无法访问核心网络时,所有网络请求又均通过蜂窝网络访问核心网络,致使与智能手机建立wifi连接的物联网设备无法与智能手机进行信息交流等。



技术实现要素:

有鉴于此,本发明主要解决的技术问题是提供一种数据包传输控制方法、移动终端以及具有存储功能的装置,能够实现移动终端同时访问wifi网络以及蜂窝网络。

为解决上述技术问题,本发明采用的一个技术方案是:提供一种数据包传输控制方法,该方法包括:将网络数据包传输至虚拟网络设备;从虚拟网络设备中读取网络数据包;将网络数据包绑定对应的网络并进行传输。

其中,该方法应用于移动终端,将网络数据包传输至虚拟网络设备的步骤具体包括:开启wifi网络以及蜂窝网络;调用虚拟专用网络的接口激活虚拟网络设备;将移动终端请求访问核心网络或wifi网络设备的网络数据包传输至虚拟网络设备。

其中,从虚拟网络设备中读取网络数据包的步骤具体包括:从虚拟网络设备中读取并解析网络数据包;获取网络数据包的包头信息,其中,包头信息包括网络数据包所请求访问的网络地址及相应的端口号、发出网络数据包的本地端口号以及网络数据包所属网络协议。

其中,将网络数据包绑定对应的网络并进行传输的步骤具体包括:将网络数据包所请求访问的网络地址及相应的端口号与发出网络数据包的本地端口号拼接组成一索引信息;通过索引信息查找是否已建立相应的协议链路,若已建立相应的协议链路,则通过索引信息对应的协议链路传输网络数据包,若未建立相应的协议链路,则判断网络数据包的请求码是否为建立协议链路,若是则建立对应索引信息的协议链路并进行传输网络数据包,若否则建立一对应网络数据包的响应数据包,将响应数据包的请求码设为立即关闭,之后将响应数据包写入虚拟网络设备中,其中,对应索引信息的协议链路对应网络数据包所属的网络协议;在索引信息对应的协议链路中建立中转端口,之后判断网络数据包所请求访问的网络地址与移动终端所请求访问的wifi网络设备的内网地址是否相同,若是,则将中转端口绑定到wifi网络并进行传输网络数据包,若否,则将中转端口绑定到蜂窝网络并进行传输网络数据包;之后将中转端口连接到网络数据包所请求访问的网络地址及相应的端口,并且从中转端口中读取的网络数据包通过其包头信息,重新拼接成对应的响应数据包并写入虚拟网络设备中。

其中,在索引信息对应的协议链路中建立中转端口的步骤之后进一步包括:将中转端口注册到状态监听类中,通过状态监听类监测中转端口处于可读状态或可写状态:当中转端口处于可写状态时,执行数据包写入中转端口动作,其中,写入中转端口的数据包以及从中转端口中读取的数据包包括网络数据包或网络数据包对应的响应数据包中的至少一种,并且待写入中转端口的数据包保存于一数据包队列中;当中转端口处于可读状态时,执行从中转端口中读取数据包动作,判断执行从中转端口中读取数据包动作是否出错,若是则拼接对应的响应数据包并将其请求码设为立即关闭,之后写入虚拟网络设备中,若否则判断从中转端口中读取的数据包是否有效,若否则拼接对应的响应数据包并将其请求码设为以握手方式关闭,之后写入虚拟网络设备中;其中,从虚拟网络设备中读取的数据包请求码若为立即关闭,则立即关闭对应的中转端口,从虚拟网络设备中读取的数据包请求码若为以握手方式关闭,则以握手方式关闭对应的中转端口。

其中,将中转端口注册到状态监听类中的步骤进一步包括:当中转端口未连接到网络数据包所请求访问的网络地址及相应的端口时,通过状态监听类监测中转端口相应的连接行为;或当数据包队列不为空时,通过状态监听类监测中转端口是否处于可写状态;或当本地端口已接收的数据字段号与可利用缓存大小之和大于应发送到本地端口数据的最大字段号时,通过状态监听类监测中转端口是否处于可读状态。

其中,从虚拟网络设备或中转端口中读取数据包或写入数据包后,激活状态监听类并且更新状态监听类对中转端口的监测行为。

其中,网络数据包所属网络协议包括有传输控制协议以及用户数据报协议,其中,传输控制协议对应传输控制协议链路,用户数据报协议对应用户数据报协议链路。

为解决上述技术问题,本发明采用的又一个技术方案是:提供一种移动终端,该移动终端能够实现上述实施例所阐述的数据包传输控制方法,该方法包括:将网络数据包传输至虚拟网络设备;从虚拟网络设备中读取网络数据包;将网络数据包绑定对应的网络并进行传输。

为解决上述技术问题,本发明采用的又一个技术方案是:提供一种具有存储功能的装置,该具有存储功能的装置存储有程序数据,该程序数据能够被执行以实现上述实施例所阐述的数据包传输控制方法,该方法包括:将网络数据包传输至虚拟网络设备;从虚拟网络设备中读取网络数据包;将网络数据包绑定对应的网络并进行传输。

本发明的有益效果是:区别于现有技术移动终端无法同时访问wifi网络以及蜂窝网络。本发明提供一种数据包传输控制方法,将移动终端请求访问网络的网络数据包传输至虚拟网络设备,从虚拟网络设备中读取移动终端请求访问网络的网络数据包,并将网络数据包绑定对应的网络进行传输,具体为将访问wifi网络的网络数据包绑定wifi网络进行传输,或将访问蜂窝网络的网络数据包绑定蜂窝网络进行传输等,从而实现移动终端同时访问wifi网络以及蜂窝网络。

附图说明

图1是本发明数据包传输控制方法一实施例的流程示意图;

图2是本发明数据包传输控制方法另一实施例的流程示意图;

图3是本发明数据包传输控制方法又一实施例的流程示意图;

图4是本发明中转端口处于可读状态时所执行动作一实施例的流程示意图;

图5是本发明移动终端一实施例的结构示意图;

图6是本发明具有存储功能的装置一实施例的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

请参阅图1,图1是本发明数据包传输控制方法一实施例的流程示意图。

s101:将网络数据包传输至虚拟网络设备;

在本实施例中,移动终端启用虚拟网络设备,将移动终端的ip地址转换为其所启用虚拟网络设备的ip地址,并且移动终端所有请求访问核心网络或wifi网络设备的网络数据包均传输至该虚拟网络设备,通过虚拟网络设备实现网络数据包访问核心网络或wifi网络设备,网络数据包所包括的发送端ip地址为该虚拟网络设备的ip地址,实现移动终端以虚拟网络设备的ip地址访问核心网络或wifi网络设备。

s102:从虚拟网络设备中读取网络数据包;

在本实施例中,移动终端启用虚拟网络设备,将其请求访问核心网络或wifi网络设备的网络数据包均传输至虚拟网络设备中。虚拟网络设备访问核心网络或wifi网络设备时,从该虚拟网络设备中读取网络数据包,并将网络数据包传输至核心网络或wifi网络设备,实现移动终端访问核心网络或wifi网络设备。

s103:将网络数据包绑定对应的网络并进行传输;

在本实施例中,为实现移动终端能够同时访问wifi网络以及蜂窝网络,以实现其访问核心网络或wifi网络设备。在虚拟网络设备中对各网络数据包所属网络进行检测,将网络数据包绑定其对应的网络(即网络数据包所属的网络),以使网络数据包通过其所属的网络进行传输至核心网络或wifi网络设备,能够实现移动终端同时访问其网络数据包所属的所有网络(包括wifi网络以及蜂窝网络等),以实现移动终端同时访问核心网络以及wifi网络设备。

以上可以看出,本发明所提供的数据包传输控制方法,将移动终端请求访问核心网络的网络数据包传输至虚拟网络设备,从虚拟网络设备中读取移动终端请求访问核心网络的网络数据包,并将网络数据包绑定对应的网络进行传输,具体为将访问wifi网络的网络数据包绑定wifi网络进行传输,或将访问蜂窝网络的网络数据包绑定蜂窝网络进行传输等,从而实现移动终端同时访问wifi网络以及蜂窝网络等网络数据包所属的所有网络。

请参阅图2,图2是本发明数据包传输控制方法另一实施例的流程示意图。本实施例所阐述的数据包传输控制方法可以基于移动终端同时连接wifi网络以及蜂窝网络的状态下,并且通过wifi网络与wifi网络设备建立物联网连接。其中,ip地址是指互联网协议地址(internetprotocoladdress,又译为网际协议地址),是ipaddress的缩写。ip地址是ip协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。wifi网络设备为移动终端基于wifi网络下,在一局域网内与移动终端存在物联网连接的智能终端,以wifi网络为媒介实现其与移动终端之间的信息交流。举例而言,智能手机向智能电视共享投放电影,其中智能手机为移动终端,而智能电视即为wifi网络设备,智能手机与智能电视通过wifi网络实现在同一局域网内建立物联网连接,智能手机向智能电视共享的电影文件通过wifi网络传输至智能电视进行投屏播放等。

wifi网络是一种允许电子设备连接到一个无线局域网(wlan)的技术,通常使用2.4guh或5gshfism等射频频段。连接到无线局域网通常是有密码保护的,但也可是开放的,这样就允许任何在wlan范围内的设备可以连接上。wi-fi是一个无线网络通信技术的品牌,由wi-fi联盟所持有。目的是改善基于ieee802.11标准的无线网路产品之间的互通性。wifi网络也是一种无线联网技术,通过无线电波来连网,常见的就是一个无线路由器,那么在这个无线路由器的电波覆盖的有效范围都可以采用wi-fi连接方式进行联网,如果无线路由器连接了一条adsl线路或者别的上网线路,则又被称为热点。

蜂窝网络,又称移动网络(cellularnetwork)是一种移动通信硬件架构,把移动电话的服务区分为一个个正六边形的小子区,每个小区设一个基站,形成了形状酷似“蜂窝”的结构,因而把这种移动通信方式称为蜂窝移动通信方式。蜂窝网络又可分为模拟蜂窝网络和数字蜂窝网络,主要区别于传输信息的方式。蜂窝网络组成主要有以下三部分:移动站、基站子系统以及网络子系统。移动站就是网络终端设备,比如手机或者一些蜂窝工控设备。基站子系统包括移动基站(大铁塔)、无线收发设备、专用网络(一般是光纤)、无线的数字设备等等的。基站子系统可以看作是无线网络与有线网络之间的转换器。蜂窝网络基于以相同半径的圆形覆盖平面,当圆心处于正六边形网格的各正六边形中心,也就是当圆心处于正三角网格的格点时所用圆的数量最少的数学结论,以最少的基站覆盖最大面积,从而以最低设备构建成本实现移动通信。

需要说明的是,本实施例所阐述的移动终端可以基于android系统,用于解决基于android系统的移动终端不支持同时访问wifi网络以及蜂窝网络,以访问核心网络或wifi网络设备的技术问题;当然,基于ios系统以及windows系统等其他程序系统的移动终端,如若存在不支持同时访问wifi网络以及蜂窝网络,以访问核心网络或wifi网络设备的技术问题,同样可以使用本实施例所阐述的数据包传输控制方法,达到移动终端同时访问wifi网络以及蜂窝网络,以访问核心网络或wifi网络设备的技术效果。

本实施例所阐述的数据包传输控制方法包括但不限于以下步骤。

s201:移动终端开启wifi网络以及蜂窝网络并激活虚拟网络设备;

在本实施例中,移动终端开启wifi网络以及蜂窝网络,并且通过wifi网络与wifi网络设备建立物联网连接。移动终端调用其内置的虚拟专用网络的接口激活虚拟网络设备,以虚拟网络设备为媒介实现移动终端请求访问核心网络或wifi网络设备的网络数据包的转发,实现移动终端在wifi网络以及蜂窝网络开启状态下,同时通过访问wifi网络以及蜂窝网络以同时访问核心网络以及wifi网络设备。

s202:将网络数据包传输至虚拟网络设备;

在本实施例中,移动终端启用虚拟网络设备,将移动终端的ip地址转换为其所启用虚拟网络设备的ip地址,并且移动终端所有请求访问核心网络或wifi网络设备的网络数据包均传输至该虚拟网络设备,通过虚拟网络设备实现网络数据包访问核心网络或wifi网络设备,网络数据包所包括的发送端ip地址为该虚拟网络设备的ip地址,实现移动终端以虚拟网络设备的ip地址访问核心网络或wifi网络设备。

s203:从虚拟网络设备中读取网络数据包;

在本实施例中,移动终端启用虚拟网络设备,将其请求访问核心网络或wifi网络设备的网络数据包均传输至虚拟网络设备中。虚拟网络设备访问核心网络或wifi网络设备时,从该虚拟网络设备中读取网络数据包,并将网络数据包传输至核心网络或wifi网络设备,实现移动终端访问核心网络或wifi网络设备。

s204:判断所读取网络数据包请求访问的网络是否为wifi网络;

在本实施例中,若所读取网络数据包请求访问的网络为wifi网络,则执行步骤s205;若所读取网络数据包请求访问的网络非为wifi网络,则执行步骤s206。

s205:将网络数据包绑定wifi网络并进行传输;

在本实施例中,当所读取的网络数据包请求访问的网络为wifi网络时,则将网络数据包绑定wifi网络并实现转发。网络数据包可以是向核心网络传输,实现移动终端通过wifi网络访问核心网络;当然,移动终端中访问wifi网络设备的网络数据包,同样为请求访问wifi网络,通过wifi网络向wifi网络设备传输,进而实现移动终端通过wifi网络访问wifi网络设备。之后结束流程。

s206:将网络数据包绑定蜂窝网络并进行传输;

在本实施例中,当所读取的网络数据包请求访问的网络为蜂窝网络时,则将网络数据包绑定蜂窝网络并实现转发。网络数据包为向核心网络传输,实现移动终端通过蜂窝网络访问核心网络。

通过上述方式,实现移动终端通过wifi网络访问核心网络的同时,在移动终端在wifi网络无法访问核心网络而切换到蜂窝网络访问核心网络的情况下,移动终端仍然能够通过wifi网络访问wifi网络设备;或是在移动终端同时开启wifi网络以及蜂窝网络,网络数据包按照默认路径通过wifi网络访问wifi网络设备,导致无法访问核心网络的情况下,移动终端将需要访问核心网络的网络数据包通过蜂窝网络实现网络数据包的转发,从而实现移动终端能够同时访问核心网络以及wifi网络设备。

请参阅图3,图3是本发明数据包传输控制方法又一实施例的流程示意图。本实施例所阐述的数据包传输控制方法可以基于移动终端同时连接wifi网络以及蜂窝网络的状态下,并且通过wifi网络与wifi网络设备建立物联网连接。移动终端实时监听其所处网络状态,包括有移动终端所连接wifi网络设备的ip地址、wifi网络的网络id以及蜂窝网络的网络id等。

此处引入部分本实施例所涉及名词的定义。channel为java语言(java为一种计算机编程语言,为本领域技术人员所公知,在此就不再赘述)中的一个接口函数,用于本实施例数据包传输控制方法的实现,其主要包括socketchannel以及datagramchannel;其中,socketchannel用于tcp协议的网络通信,datagramchannel用于udp协议的网络通信。selector为java语言中对socketchannel以及datagramchannel进行可读/可写状态监听的一个类函数。

在本实施例中,网络数据包所属的网络协议至少包括有传输控制协议(tcp)以及用户数据报协议(udp),传输控制协议对应传输控制协议链路(下文简称tcp协议链路),用户数据报协议对应用户数据报协议链路(下文简称udp协议链路)。

tcp(transmissioncontrolprotocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由ietf的rfc793定义。在简化的计算机网络osi模型中,其完成第四层传输层所指定的功能。应用层向tcp层发送用于网间传输的,用8位字节表示的数据流,然后tcp把数据流分区成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传输单元(mtu)的限制)。之后tcp把结果包传给ip层,由它来通过网络将包传送给接收端实体的tcp层。tcp为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的包发回一个相应的确认(ack);如果发送端实体在合理的往返时延(rtt)内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。tcp用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验。

rst为tcp协议的数据包头部信息,其表征需要立即关闭连接,fin为tcp协议的数据包头部信息,其表征需要通过握手的方式关闭连接。

udp是userdatagramprotocol的简称,中文名是用户数据报协议,是osi(opensysteminterconnection,开放式系统互联)参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,ietfrfc768是udp的正式规范。在网络中与tcp协议一样用于处理数据包,是一种无连接的协议。在osi模型中,在第四层—传输层,处于ip协议的上一层。udp不提供数据包分组、组装和不能对数据包进行排序。udp用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用udp协议。

本实施例所阐述的数据包传输控制方法包括但不限于以下步骤。

s301:移动终端开启wifi网络以及蜂窝网络并激活虚拟网络设备;

在本实施例中,移动终端开启wifi网络以及蜂窝网络,并且通过wifi网络与wifi网络设备建立物联网连接。移动终端调用其内置的虚拟专用网络的接口激活虚拟网络设备,以虚拟网络设备为媒介实现移动终端请求访问核心网络或wifi网络设备的网络数据包的转发,实现移动终端在wifi网络以及蜂窝网络开启状态下,同时通过访问wifi网络以及蜂窝网络以同时访问核心网络以及wifi网络设备。其中,wifi网络与蜂窝网络二者中任意一方未处于开启状态,则移动终端不开启或关闭虚拟网络设备。

虚拟专用网络(vpn,virtualprivatenetwork)是在公用网络上建立专用网络,进行加密通讯。在企业网络中有广泛应用。vpn网关通过对数据包的加密和数据包目标地址的转换实现远程访问。vpn有多种分类方式,主要是按协议进行分类。vpn可通过服务器、硬件、软件等多种方式实现。在vpn技术中还包括有虚拟网络设备,虚拟网络设备为架设于公用网络上的虚拟网络服务器,用于vpn所建立专用网络的功能实现。本实施例所阐述的移动终端调用android系统内置的vpn接口激活虚拟网络设备。

s302:将网络数据包传输至虚拟网络设备;

在本实施例中,移动终端启用虚拟网络设备,将移动终端的ip地址转换为其所启用虚拟网络设备的ip地址,并且移动终端所有请求访问核心网络或wifi网络设备的网络数据包均传输至该虚拟网络设备,并在移动终端启用虚拟网络设备后创建selector,通过虚拟网络设备实现网络数据包访问核心网络或wifi网络设备,网络数据包所包括的发送端ip地址为该虚拟网络设备的ip地址,实现移动终端以虚拟网络设备的ip地址访问核心网络或wifi网络设备。

s303:从虚拟网络设备中读取并解析网络数据包;

在本实施例中,移动终端启用虚拟网络设备,将其请求访问核心网络或wifi网络设备的网络数据包均传输至虚拟网络设备中。虚拟网络设备访问核心网络或wifi网络设备时,从该虚拟网络设备中读取网络数据包,并对所读取的网络数据包进行解析,获取并保存网络数据包的包头信息。其中,网络数据包的包头信息包括网络数据包所请求访问的网络地址以及相应的端口号(即网络数据包的目标访问位置)、发出网络数据包的本地端口号以及网络数据包所属的网络协议等。

需要说明的是,通过获取网络数据包的包头信息,可以获取到该网络数据包所属的网络协议,以建立相对应的协议链路的方式进行网络数据包的传输访问。其中,若网络数据包属于tcp协议,则通过相应的tcp链路传输该网络数据包;若网络数据包属于udp协议,则通过相应的udp链路传输该网络数据包。当然,网络数据包所属的网络协议包括但不限于上文所述,在此不做限定。

s304:查找是否已建立相应的协议链路;

在本实施例中,将网络数据包所请求访问的网络地址及相应的端口号与发出网络数据包的本地端口号拼接成一索引信息,通过该索引信息查找是否已建立相应的协议链路(即对应该索引信息的协议链路)。并且若网络数据包的网络协议为tcp协议,则查找是否已建立对应该索引信息的tcp协议链路,若网络数据包的网络协议为udp协议,则查找是否已建立对应该索引信息的udp协议链路。若已建立相应的协议链路,则执行步骤s312,通过该索引信息对应的协议链路传输网络数据包;若未建立相应的协议链路,则执行步骤s305。

s305:判断网络数据包的请求码是否为建立协议链路;

在本实施例中,若未建立网络数据包的索引信息对应的协议链路,则需要建立相应的协议链路。需要判断网络数据包的请求码是否为建立协议链路,若网络数据包的请求码为建立协议链路,则执行步骤s306;若网络数据包的请求码不是建立协议链路,则执行步骤s307。其中,网络数据包的请求码为代表该网络数据包请求执行动作的指令,不同的请求码代表网络数据包请求执行不同动作,例如请求码为rst时,代表网络数据包请求立即关闭连接等。

s306:建立索引信息对应的协议链路,并在协议链路中建立中转端口;

在本实施例中,当未建立索引信息对应的协议链路,并且网络数据包的请求码为建立协议链路时,建立该索引信息对应的协议链路,并在该协议链路中建立中转端口,用以实现网络数据包的中转传输。需要说明的是,对应索引信息的协议链路即为对应网络数据包所属的网络协议的协议链路(例如网络数据包的网络协议为tcp协议,则对应索引信息的协议链路即为tcp协议链路等)。之后执行步骤s308。

需要说明的是,tcp协议链路对应的中转端口为socketchannel,udp协议链路对应的中转端口为datagramchannel。对应网络数据包所属的网络协议,在网络数据包的索引信息对应的协议链路中建立对应的中转端口,例如网络数据包的索引信息对应的协议链路为tcp协议链路,则所建立的中转端口为socketchannel,网络数据包的索引信息对应的协议链路为udp协议链路,则所建立的中转端口为datagramchannel。

s307:建立对应网络数据包的响应数据包,并写入虚拟网络设备中;

在本实施例中,当未建立索引信息对应的协议链路,并且网络数据包的请求码不是建立协议链路时,为避免影响网络数据包传输流过程的兼容性,需要建立对应网络数据包的响应数据包,并且将响应数据包的请求码设为立即关闭,并在虚拟网络设备可写时写入虚拟网络设备中。如此,当读取到该响应数据包时,则会关闭对应的协议链路。之后结束流程。

举例而言,建立对应网络数据包的响应数据包,当网络数据包的网络协议为tcp协议时,可将rst码拼接入该响应数据包的包头信息中,当读取到包含有rst码的响应数据包时,则会立即关闭对应的协议链路;或是将fin码拼接入该响应数据包的包头信息中,当读取到包含有fin码的响应数据包时,则会通过握手的方式关闭对应的协议链路。其中,以握手的方式关闭协议链路(或是中转端口socketchannel)为本领域技术人员的惯用手段,在此就不再赘述。

s308:判断网络数据包所请求访问的网络地址与移动终端所请求访问的wifi网络设备的内网地址是否相同;

在本实施例中,建立索引信息对应的协议链路,并在协议链路中建立中转端口后,需要将中转端口(包括tcp协议链路的socketchannel以及udp协议链路的datagramchannel)绑定到网络数据包所要访问的网络,以进行网络数据包的中转传输。具体为:判断网络数据包所请求访问的网络地址与移动终端所请求访问的wifi网络设备的内网地址是否相同,若网络数据包所请求访问的网络地址与移动终端所请求访问的wifi网络设备的内网地址相同,则执行步骤s309,若网络数据包所请求访问的网络地址与移动终端所请求访问的wifi网络设备的内网地址不相同,则执行步骤s310。

s309:将中转端口绑定到wifi网络并进行传输网络数据包;

在本实施例中,若网络数据包所请求访问的网络地址与移动终端所请求访问的wifi网络设备的内网地址相同,则通过反射的方式调用移动终端系统的私有方法将中转端口绑定到wifi网络的网络id,实现中转端口在对应网络数据包的协议链路中中转传输网络数据包的作用。之后执行步骤s311。

s310:将中转端口绑定到蜂窝网络并进行传输网络数据包;

在本实施例中,若网络数据包所请求访问的网络地址与移动终端所请求访问的蜂窝网络设备的内网地址相同,则通过反射的方式调用移动终端系统的私有方法将中转端口绑定到蜂窝网络的网络id,实现中转端口在对应网络数据包的协议链路中中转传输网络数据包的作用。

s311:将中转端口连接到网络数据包所请求访问的网络地址及相应的端口;

在本实施例中,将中转端口绑定到对应的网络id之后,为实现网络数据包向目标位置(包括网络地址以及端口号)传输,同时需要将中转端口连接到网络数据包所请求访问的网络地址及相应的端口,中转端口才可执行向该目标位置传输网络数据包的动作,完成网络数据包的索引信息对应协议链路的创建操作。需要说明的是,从中转端口中读取到的网络数据包,通过网络数据包对应的协议链路中保存的该网络数据包的包头信息,重新拼接成对应的响应数据包并写入虚拟网络设备中,以指示该响应数据包之后所需进行的传输流程(即向核心网络或wifi网络设备传输,或是向移动终端传输等)。

s312:通过中转端口传输网络数据包;

在本实施例中,网络数据包的索引信息对应的协议链路的建立,意味着协议链路以及其中的中转端口建立与连接等动作均已执行完毕。在通过索引信息查找是否已建立相应的协议链路过程中,若网络数据包的索引信息对应的协议链路已建立,则说明该协议链路中的中转端口已经完成创建操作,则可直接将网络数据包绑定对应的协议链路进行传输。若网络数据包的索引信息对应的协议链路未建立,并且网络数据包的请求码为建立协议链路,则对应完成协议链路的创建操作,通过中转端口中转传输网络数据包。由于本实施例所阐述的数据包传输控制方法将网络数据包绑定其对应的网络进行传输,只需移动终端同时开启wifi网络以及蜂窝网络即可实现移动终端同时通过wifi网络以及蜂窝网络访问核心网络或wifi网络设备。

请参阅图4,图4是本发明中转端口处于可读状态时所执行动作一实施例的流程示意图。在上述实施例所阐述的数据包传输控制方法中,在索引信息对应的协议链路中建立中转端口的步骤之后进一步包括本实施例所阐述的内容,以下进行详细阐述。

状态监听类(selector)为java语言中实现对socketchannel以及datagramchannel所处状态进行监听的一个类,包括监听socketchannel以及datagramchannel是否处于可读状态或是可写状态。selector在移动终端激活虚拟网络设备后建立,若虚拟网络设备关闭,则selector也对应关闭。

在本实施例中,建立中转端口之后,将中转端口注册到状态监听类中,通过状态监听类监测中转端口处于可读状态还是可写状态:当中转端口处于可写状态时,执行数据包写入中转端口动作,其中,写入中转端口的数据包以及从中转端口中读取的数据包包括网络数据包或网络数据包对应的响应数据包中的至少一种,并且待写入中转端口的数据包保存于一数据包队列中,当中转端口处于可写状态时才将该数据包队列中的数据包写入中转端口。

并且关于中转端口处于可读状态时所执行的动作流程包括但不限于以下步骤。

s401:判断中转端口是否处于可读状态;

在本实施例中,通过状态监听类(selector)对中转端口所处的状态进行监听,判断中转端口是否处于可读状态。若中转端口处于可读状态,则执行步骤s402,若中转端口未处于可读状态,则继续执行步骤s401。状态监听类对中转端口的监听行为是多次重复执行,计算负担较大的行为,为减轻程序计算负担,采用周期性地对中转端口执行监听其所处状态,其周期间隔可以根据用户的需求以及移动终端的计算能力决定。

s402:执行从中转端口中读取数据包动作;

在本实施例中,当状态监听类监测到中转端口处于可读状态时,执行从中转端口中读取数据包动作,以进行数据包的传输作业。

s403:判断执行从中转端口中读取数据包动作是否出错;

在本实施例中,在执行从中转端口中读取数据包动作时,需要对其读取操作过程进行监测,判断其过程是否出错,以避免由于读取操作存在错误,致使所读取的数据包存在问题无法用于后续传输流程。其包括:若执行从中转端口中读取数据包动作出错,则执行步骤s404,若执行从中转端口中读取数据包动作未出错,则执行步骤s405。需要说明的是,此处为判断读取数据包的操作过程是否出错,并非对数据包的内容的判断。

s404:拼接对应的响应数据包并将其请求码设为立即关闭,之后写入虚拟网络设备中;

在本实施例中,若执行从中转端口中读取数据包动作出错,则说明该数据包无法继续用于后续传输流程,该数据包及其对应的协议链路需要关闭。因此对应该数据包,拼接对应的响应数据包并将其请求码设为立即关闭(即将rst码拼接入响应数据包的包头信息中),之后写入虚拟网络设备中。在读取到该响应数据包时,则会立即关闭对应的中转端口。之后结束流程。

s405:判断从中转端口中读取的数据包是否有效;

在本实施例中,若执行从中转端口中读取数据包动作未出错,则需判断从中转端口中读取的数据包是否有效,即判断该数据包的内容是否有误。若从中转端口中读取的数据包有效,则说明该数据包的内容无误,执行步骤s407,若从中转端口中读取的数据包无效,则说明该数据包的内容有误,执行步骤s406。

s406:拼接对应的响应数据包并将其请求码设为以握手方式关闭,之后写入所述虚拟网络设备中;

在本实施例中,若从中转端口中读取的数据包无效,则说明该数据包的内容有误,同样地该数据包无法用于后续传输流程,该数据包及其对应的协议链路需要关闭。因此对应该数据包,拼接对应的响应数据包并将其请求码设为以握手方式关闭(即将fin码拼接入响应数据包的包头信息中),之后写入虚拟网络设备中。在读取到该响应数据包时,则会以握手方式关闭对应的中转端口。之后结束流程。

s407:拼接对应的响应数据包并写入虚拟网络设备中;

在本实施例中,若从中转端口中读取的数据包有效,则说明该数据包的内容无误。对应该数据包,拼接对应的响应数据包,以指示该响应数据包下一步所需执行的动作,并将其写入虚拟网络设备中,当读取到该响应数据包时,即可执行该响应数据包下一步所需执行的动作。

需要说明的是,状态监听类对中转端口的监测行为包括但不限于上文所述。进一步地包括以下:当中转端口未连接到网络数据包所请求访问的网络地址及相应的端口时,通过状态监听类监测中转端口相应的连接行为;或当数据包队列不为空时,通过状态监听类监测中转端口是否处于可写状态;或当本地端口已接收的数据字段号与可利用缓存大小之和大于应发送到本地端口数据的最大字段号时,通过状态监听类监测中转端口是否处于可读状态,当中转端口处于可读状态时,可从中转端口中读取数据并向本地端口传输。通过上文所述有选择性的更新状态监听类的监测行为,至少不满足以上情况时,状态监听类不执行监测中转端口行为的状态,以进一步减轻状态监听类的计算负载。

进一步地,从虚拟网络设备或中转端口中读取数据包或写入数据包后,需激活状态监听类并且更新状态监听类对中转端口的监测行为,在状态监听类处于周期性执行监测行为的前提下,最大限度地实时获取中转端口所处的不同状态。并且各中转端口(即java语言中的各channel)均需占用移动终端一定的缓存空间,当缓存空间大小不足以维持正常移动终端访问核心网络或wifi网络设备的需求时,强制关闭闲置时长最长的channel。同时当协议链路闲置一定时长时,也可通过清除该协议链路并关闭相应的中转端口,以释放移动终端的缓存空间。为进一步提高移动终端使用其虚拟专用网络(vpn)的兼容性,移动终端在其前后台切换时取消之前移动终端对其所处网络状态的监听,重新创建新的监听行为。

综上所述,本发明所提供的数据包传输控制方法,将移动终端请求访问网络的网络数据包传输至虚拟网络设备,从虚拟网络设备中读取移动终端请求访问网络的网络数据包,并将网络数据包绑定对应的网络进行传输,具体为将访问wifi网络的网络数据包绑定wifi网络进行传输,或将访问蜂窝网络的网络数据包绑定蜂窝网络进行传输等,从而实现移动终端同时通过访问wifi网络以及蜂窝网络,以访问核心网络或wifi网络设备。

请参阅图5,图5是本发明移动终端一实施例的结构示意图。

在本实施例中,移动终端100能够实现上述实施例所阐述的数据包传输控制方法,在此就不再赘述。本实施例所阐述的移动终端100可以是智能手机、平板电脑、笔记本电脑以及个人数字助理等智能终端设备,在此不做限定。

请参阅图6,图6是本发明具有存储功能的装置一实施例的结构示意图。

在本实施例中,具有存储功能的装置200存储有程序数据201,程序数据201能够被执行以实现上述实施例所阐述的数据包传输控制方法,在此就不再赘述。

在本发明所提供的几个实施方式中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式为示意性的,例如,所述模块或单元的划分,为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式的目的。

另外,在本发明各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个具有存储功能的装置中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的具有存储功能的装置包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存储器(ram,randomaccessmemory)、磁碟或者光盘、服务器等各种可以存储程序代码的介质。

以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1