实现多网络共存并同时被访问的系统及方法与流程

文档序号:11731991阅读:201来源:国知局
实现多网络共存并同时被访问的系统及方法与流程

本发明涉及网络通信技术领域,尤其涉及多网络通信智能管理技术领域,具体是指一种实现多网络共存并同时被访问的系统及方法。



背景技术:

目前移动设备中,同时只能使用一种网络。例如在移动网络和无线网络都可用的情况下,移动网络会被关闭,此时只能用无线网络。请参阅图1所示,现有的多网络访问在一种网络运作时启动其他网络,会将之前的网络关闭,不能实现多网络同时访问。

因此,现有技术的多网络智能管理系统具有以下缺点:

1、某些网络中的特定服务不能被访问,例如造成只在移动网络中有的服务不能被访问到(例如有些特殊的移动网络运营商的只在移动网络才能访问到的服务器)。

2、如果要访问特定网络,就要先关闭另已经打开的网络,步骤繁琐。例如移动网络就要关掉无线网络,这就给使用者造成一定的麻烦。



技术实现要素:

本发明的目的是克服了上述现有技术的缺点,提供了一种能够实现多网络共存并同时被访问的系统及方法。

为了实现上述目的,本发明具有如下构成:

该实现多网络共存并同时被访问的系统,包括:

网络连接管理服务模块,用于通过网络设置模块对多个网络进行初始化操作,并设置多网络访问策略;

应用层模块,用于根据所述的多网络访问策略访问不同类型的网络;

网络设置模块,用于设置路由规则和类。

较佳地,所述的通过网络设置模块对多个网络进行初始化操作,具体为:

(1-1)用户通过所述的网络连接管理服务模块设置并获取不指定网络类型时所使用的默认网络;

(1-2)所述的网络连接管理服务模块打开所有可用的网络连接并获取ip地址;

(1-3)所述的网络连接管理服务模块通过所述的网络设置模块为所有可用的网络连接生成一一对应的标签和路由表;

(1-4)所述的网络连接管理服务模块通过所述的网络设置模块为所有可用的网络连接设置网络规则。

更佳地,所述的为所有可用的网络连接生成唯一的标签和路由表,具体为:

(1-3-1)为某一可用的网络连接生成一一对应的标签,并将标签值返回至网络连接管理服务模块;

(1-3-2)为该网络连接创建一一对应的路由表,并添加默认路由和子网路由;

(1-3-3)继续步骤(1-3-1),直至所有可用的网络连接都具备一一对应的标签和路由表。

更佳地,所述的为所有可用的网络类型设置网络规则,具体为:

(1-4-1)将带有标签的数据包的规则设置为:根据数据包的标签选择对应的路由表;

(1-4-2)将不带标签的数据包的规则设置为:选择默认网络对应的路由表。

较佳地,所述的根据所述的多网络访问策略访问不同类型的网络,具体为:

(2-1)应用层模块在需要访问某种类型的网络时,通过网络连接管理服务模块动态生成与该网络类型对应的类;

(2-2)所述的应用层模块通过所述的网络连接管理服务模块根据所述的类创建网络插口或http连接;

(2-3)所述的类通过调用所述的网络设置模块将设置该网络插口的标签;

(2-4)根据数据包的标签选择匹配的网络规则;

(2-5)根据网络规则选择对应的路由表;

(2-6)根据路由表选择对应网卡,并通过该网卡收发数据。

较佳地,所述的类包括:

networkid,用于唯一标识一种网络;

creatsocket,用于创建基于插口的网络连接;

httprequest,用于创建http连接;

httpsrequest,用于创建https连接;

getaddressbyname,用于解析dns。

还包括一种基于上述系统实现多网络共存并同时被访问的方法,所述的方法包括以下步骤:

(1)用户通过网络连接管理服务模块多个网络进行初始化操作;

(2)应用层模块根据所述的多网络访问策略访问不同类型的网络。

较佳地,所述的步骤(1)包括以下步骤:

(1-1)用户通过所述的网络连接管理服务模块设置并获取不指定网络类型时所使用的默认网络;

(1-2)所述的网络连接管理服务模块打开所有可用的网络连接并获取ip地址;

(1-3)所述的网络连接管理服务模块通过网络设置模块为所有可用的网络连接生成一一对应的标签和路由表;

(1-4)所述的网络连接管理服务模块通过所述的网络设置模块为所有可用的网络连接设置网络规则。

更佳地,所述的为所有可用的网络连接生成唯一的标签和路由表,具体包括以下步骤:

(1-3-1)为某一可用的网络连接生成一一对应的标签,并将标签值返回至网络连接管理服务模块;

(1-3-2)为该网络连接创建一一对应的路由表,并添加默认路由和子网路由;

(1-3-3)继续步骤(1-3-1),直至所有可用的网络连接都具备一一对应的标签和路由表。

更佳地,所述的为所有可用的网络类型设置网络规则,具体包括以下步骤:

(1-4-1)将带有标签的数据包的规则设置为:根据数据包的标签选择对应的路由表;

(1-4-2)将不带标签的数据包的规则设置为:选择默认网络对应的路由表。

较佳地,所述的步骤(2)还包括以下步骤:

(2-1)应用层模块在需要访问某种类型的网络时,通过系统调用与该网络类型对应的类;

(2-2)所述的应用层模块通过所述的网络连接管理服务模块根据所述的类创建网络插口或http连接;

(2-3)所述的类通过调用所述的网络设置模块将设置该网络插口的标签;

(2-4)根据数据包的标签选择匹配的网络规则;

(2-5)根据网络规则选择对应的路由表;

(2-6)根据路由表选择对应网卡,并通过该网卡收发数据。

较佳地,所述的类包括:

networkid,用于唯一标识一种网络;

creatsocket,用于创建基于插口的网络连接;

httprequest,用于创建http连接;

httpsrequest,用于创建https连接;

getaddressbyname,用于解析dns。

采用了该发明中的实现多网络共存并同时被访问的系统及方法,应用可以随意使用某个类型的网络,只需要获取到指定网络类型的实例,调用实例的方法,就可以直接使用这个网络;在网络通信过程中,不需要关闭其他任何网络,支持多个网络的并发访问,并且没有时间限制。

附图说明

图1为现有技术的多网络访问方法的流程示意图。

图2为本发明的实现多网络共存并同时被访问的方法的原理示意图。

图3为本发明的实现多网络共存并同时被访问的方法的类的结构示意图。

图4为本发明的实现多网络共存并同时被访问的方法的多网络访问的示意图。

图5为本发明的实现多网络共存并同时被访问的方法的流程示意图。

具体实施方式

为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。

为实现多网络共存并同时被访问,首先需要利用路由表和规则,路由表:传统的路由表只有一张路由表,只有一条默认路由,而高级策略路由子系统主要用来为每个网卡都生成一张路由表,这样每张路由表都是独立的,每张路由表都有一条默认路由,且各个网卡之间相互不影响;规则,可以控制路由表优先级,并且可以过滤数据包,在本发明中主要用来过滤打标签的数据包,使打标签的数据包和没有打标签的数据包查找不同的路由表,路由表和规则在本技术方案中的关系请参阅图2所示。

实现多网络共存并同时被访问的基本原理为:

1、系统启动后,根据用户设置的策略(用户允许打开哪些网络类型),网络连接管理服务使能所有允许打开的网络连接;

2、应用层需要使用某种网络时,通过系统调用获取到一个类,请参阅图3所示,类的内容包括:

a)唯一标示一个网络类型的网络id;

b)用于创建网络通信连接的函数;

c)用于http请求的函数;

d)用于https请求的函数;

e)用于dns解析的函数。

类又被称为对象network或数据结构,是指在应用层(app层)对所有网络的抽象,内容包括网络的功能和属性,例如,wifi网络会对应一个数据结构,用于创建wifi网络类型的通信插口、创建wifi网络的http连接、创建wifi网络的https连接以及通过wifi网络解析dns,在为app动态生成数据结构对象的时候,网络连接管理服务把数据结构对象和路由规则通过唯一的网络类型的id绑定在一起。

3、使用步骤2获取到的类,用于发送和接收所支持的各种网络请求及回复。

因此,系统中必须有一个默认网络,即不指定网络类型时所使用的网络,并涉及到三个模块:

a)网络连接管理服务managerservice,用于管理网络优先级,网络状态;

b)应用层软件app,网络模块额使用者;

c)网络设置模块networksetting,网络连接管理服务通过networksetting模块设置路由和dns以及规则。

在一种具体的实施方式中,该基于上述系统实现多网络共存并同时被访问的方法,包括以下步骤:

(1)用户通过网络连接管理服务模块多个网络进行初始化操作;

(2)应用层模块根据所述的多网络访问策略访问不同类型的网络。

其中,步骤1多网络共存初始化步骤:

1、系统启动后网络连接管理服务manager启动,并获取到默认网络类型网络a,然后查找已经被允许使用的网络类型,如果允许打开,则打开这个网络;

2、被允许打开的网络打开后,并正确获取到ip地址;

3、网络连接管理服务收到网络被正常打开的消息之后,调用网络设置模块为这个网络类型设置路由、dns以及路由规则;

4、不同的网络类型重复2~4步骤,这样,每个网络类型都有一条默认路由,每个网络类型都有一个独立的路由表,数据包通过匹配添加的规则选择合适路由表发送出去,并且各个网络之间互不影响。

在一种较佳的实施方式中,所述的步骤(1)包括以下步骤:

(1-1)用户通过所述的网络连接管理服务模块设置并获取不指定网络类型时所使用的默认网络;

(1-2)所述的网络连接管理服务模块打开所有可用的网络连接并获取ip地址;

(1-3)所述的网络连接管理服务模块通过网络设置模块为所有可用的网络连接生成一一对应的标签和路由表;

(1-4)所述的网络连接管理服务模块通过所述的网络设置模块为所有可用的网络连接设置网络规则。

在一种更佳的实施方式中,所述的为所有可用的网络连接生成唯一的标签和路由表,具体包括以下步骤:

(1-3-1)为某一可用的网络连接生成一一对应的标签,并将标签值返回至网络连接管理服务模块;

(1-3-2)为该网络连接创建一一对应的路由表,并添加默认路由和子网路由;

(1-3-3)继续步骤(1-3-1),直至所有可用的网络连接都具备一一对应的标签和路由表。

在一种更佳的实施方式中,所述的为所有可用的网络类型设置网络规则,具体包括以下步骤:

(1-4-1)将带有标签的数据包的规则设置为:根据数据包的标签选择对应的路由表;

(1-4-2)将不带标签的数据包的规则设置为:选择默认网络对应的路由表。

本技术方案的步骤2,即其他软件(app)使用指定的网络类型的步骤,请参阅图4所示,图4中标示1描述了一个应用使用网络b(非默认网络)的过程,标示2描述了一个应用使用默认网络a的过程:

1、app通过网络连接管理服务manager获取到网络类型b的数据结构network。

2、通过1获取到的数据结构创建的网络插口或者http连接。

3、创建网络插口的时候,network数据结构通过调用网络设置模块networksetting设置创建的网络插口的标签为这个网络类型的网络id(即mark2)

4、由于2所创建的连接的数据都是打了这顶网络类型b的标签的,所以使用2创建的连接的数据都是在网络b上传输的。设置标签的过程请参考“为网络类型b设置标签步骤”。

在一种较佳的实施方式中,所述的步骤(2)还包括以下步骤:

(2-1)应用层模块在需要访问某种类型的网络时,通过系统调用与该网络类型对应的类;

(2-2)所述的应用层模块通过所述的网络连接管理服务模块根据所述的类创建网络插口或http连接;

(2-3)所述的类通过调用所述的网络设置模块将设置该网络插口的标签;

(2-4)根据数据包的标签选择匹配的网络规则;

(2-5)根据网络规则选择对应的路由表;

(2-6)根据路由表选择对应网卡,并通过该网卡收发数据。

其中,“所述的类通过调用所述的网络设置模块将设置该网络插口的标签”是值app的调用sdk接口,这个接口返回值是一个network对象(也就是类)。

在一种较佳的实施方式中,所述的类包括:

networkid,用于唯一标识一种网络;

creatsocket,用于创建基于插口的网络连接;

httprequest,用于创建http连接;

httpsrequest,用于创建https连接;

getaddressbyname,用于解析dns。

在一种具体的实施方式中,本发明还包括实现多网络共存并同时被访问的系统,所述的系统包括:

网络连接管理服务模块,用于通过网络设置模块对多个网络进行初始化操作,并设置多网络访问策略;

应用层模块,用于根据所述的多网络访问策略访问不同类型的网络;

网络设置模块,用于设置路由规则和类。

在一种较佳的实施方式中,所述的通过网络设置模块对多个网络进行初始化操作,具体为:

(1-1)用户通过所述的网络连接管理服务模块设置并获取不指定网络类型时所使用的默认网络;

(1-2)所述的网络连接管理服务模块打开所有可用的网络连接并获取ip地址;

(1-3)所述的网络连接管理服务模块通过所述的网络设置模块为所有可用的网络连接生成一一对应的标签和路由表;

(1-4)所述的网络连接管理服务模块通过所述的网络设置模块为所有可用的网络连接设置网络规则。

在一种更佳的实施方式中,所述的为所有可用的网络连接生成唯一的标签和路由表,具体为:

(1-3-1)为某一可用的网络连接生成一一对应的标签,并将标签值返回至网络连接管理服务模块;

(1-3-2)为该网络连接创建一一对应的路由表,并添加默认路由和子网路由;

(1-3-3)继续步骤(1-3-1),直至所有可用的网络连接都具备一一对应的标签和路由表。

在一种更佳的实施方式中,所述的为所有可用的网络类型设置网络规则,具体为:

(1-4-1)将带有标签的数据包的规则设置为:根据数据包的标签选择对应的路由表;

(1-4-2)将不带标签的数据包的规则设置为:选择默认网络对应的路由表。

在一种较佳的实施方式中,所述的根据所述的多网络访问策略访问不同类型的网络,具体为:

(2-1)应用层模块在需要访问某种类型的网络时,通过网络连接管理服务模块动态生成与该网络类型对应的类;

(2-2)所述的应用层模块通过所述的网络连接管理服务模块根据所述的类创建网络插口或http连接;

(2-3)所述的类通过调用所述的网络设置模块将设置该网络插口的标签;

(2-4)根据数据包的标签选择匹配的网络规则;

(2-5)根据网络规则选择对应的路由表;

(2-6)根据路由表选择对应网卡,并通过该网卡收发数据。

在一种较佳的实施方式中,所述的类包括:

networkid,用于唯一标识一种网络;

creatsocket,用于创建基于插口的网络连接;

httprequest,用于创建http连接;

httpsrequest,用于创建https连接;

getaddressbyname,用于解析dns。

采用了该发明中的实现多网络共存并同时被访问的系统及方法,应用可以随意使用某个类型的网络,只需要获取到指定网络类型的实例,调用实例的方法,就可以直接使用这个网络;请参阅图5所示,与图2相比较能够发现,本发明在网络通信过程中,不需要关闭其他任何网络,支持多个网络的并发访问,并且没有时间限制。

在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。

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