本申请涉及通信技术,特别涉及一种在多操作系统终端上建立数据连接的方法。
背景技术:
移动终端与网络建立数据连接的流程大体包括:终端的操作系统通过无线接口层(radiointerfacelayer,ril)向终端的基带设备(例如modem等)发出数据连接建立请求,基带设备建立终端与网络之间的数据连接。其中,ril作为适应各种基带设备的适配层,使操作系统的数据能够利用各种基带设备建立的数据连接进行传输。
目前的多操作系统终端在建立数据连接时,仅支持同时使用一条数据连接用于上网,无法同时建立并使用多条数据连接,具体建立数据连接的形式基本可分为以下三类:
1.多个操作系统共用一条数据连接;
2.多个操作系统可使用各自不同apn建立不同的数据连接,但同一时刻只能有一个操作系统处于运行状态,只有该操作系统建立的数据连接可以传输数据;
3.多个系统可使用各自不同的apn建立不同的数据连接,且多个系统可同时运行,但同一时刻只有一条数据连接可以传输数据。
如上所述,现有的多操作系统终端不能同时建立多条数据连接用于上网,对于有较高安全需求的用户无法满足业务需求,例如某些使用场景终端需要接入专网,但同时又希望不影响用户使用公网。
技术实现要素:
本申请提供一种多操作系统的移动终端建立数据连接的方法,能够使不同操作系统同时使用各自的数据连接进行数据传输。
为实现上述目的,本申请采用如下技术方案:
一种在多操作系统终端上建立数据连接的方法,包括:
所述终端上的任一操作系统利用该系统的接入点名称apn向无线接口层ril发起底层数据连接建立请求,并在所述数据连接建立请求中携带相应操作系统的标识;
所述ril通知所述终端的基带设备针对所述任一操作系统建立底层数据连接,并为所述任一操作系统配置转发到相应底层数据连接的路由信息;所述路由信息用于将来自所述任一操作系统的数据路由到针对该操作系统建立的底层数据连接上,还用于将来自任一底层数据连接的数据路由到与该底层数据连接相应的操作系统上;
其中,所述终端允许同时运行两个以上操作系统。
较佳地,在所述任一操作系统中建立一个虚拟网卡,该虚拟网卡和所述底层数据连接对应的网卡均与host容器中的网桥相连;
所述ril配置所述路由信息时,将来自不同操作系统的虚拟网卡的数据路由到相应操作系统对应的底层数据连接上,将来自底层数据连接的数据路由到该底层数据连接对应操作系统的虚拟网卡上;其中,所述host容器为运行ril的容器。
较佳地,该方法进一步包括:所述ril用于管理各操作系统对应的底层数据连接。
由上述技术方案可见,本申请中,多操作系统终端上的任一操作系统a利用该系统的apn向ril发起底层数据连接建立请求,并在数据连接建立请求中携带相应操作系统的标识;ril通知modem针对操作系统a建立底层数据连接,并为操作系统a配置转发到相应底层数据连接的路由信息;该路由信息用于将来自操作系统a的数据路由到针对该操作系统建立的底层数据连接上,还用于将来自任一底层数据连接的数据路由到与该底层数据连接相应的操作系统上;其中,终端允许同时运行两个以上操作系统。通过上述方式,利用ril将不同操作系统的数据利用该系统对应的底层数据连接进行传输,从而能够使不同操作系统同时使用各自的数据连接进行数据传输。
附图说明
图1为本申请中数据连接建立方法的基本流程示意图;
图2为本申请中操作系统内虚拟网卡和底层数据网卡的连接关系示意图。
具体实施方式
为了使本申请的目的、技术手段和优点更加清楚明白,以下结合附图对本申请做进一步详细说明。
图1为本申请中数据连接建立方法的基本流程示意图。如图1所示,该方法包括:
步骤101,终端中的各操作系统利用该系统的apn向ril发起底层数据连接建立请求。
终端中的各个操作系统拥有各自的apn,这些不同操作系统的apn可以相同,也可以不同。终端中的各个操作系统相互独立进行处理,以下以一个操作系统a的处理为例进行说明,并且本申请中的终端支持同时允许多个操作系统。
终端中的操作系统a利用该系统的apn向ril发起底层数据连接建立请求,在ril中需要区分建立数据连接的请求是由哪个操作系统发起的,本申请中通过在请求中添加标识的方式来解决。也就是说,在操作系统a利用该系统的apn向ril发起底层数据连接建立请求时,携带该操作系统a的标识。
步骤102,ril通知终端的基带设备针对操作系统a建立底层数据连接,并为操作系统a配置转发到相应底层数据连接的路由信息。
通过步骤101,ril确定发起数据连接建立请求的是哪个操作系统,例如是操作系统a,接下来在本步骤,ril通知终端的基带设备(例如modem)针对发起请求的操作系统,建立与其对应的底层数据连接。其中,底层数据连接的建立方式可以采用现有方式,这里就不再赘述。
由于终端支持多个操作系统同时运行,且相互独立,因此,多个操作系统可以使用各自的apn向ril发起建立数据连接的请求而不相互影响,基带设备支持建立多条数据连接,会针对每个操作系统建立一个数据连接,这样底层就建立了多条数据连接。为保证不同系统的网络数据使用底层不同的数据连接进行传输,本申请中通过在ril中进行路由配置来实现。
具体地,对于多系统终端的每一个操作系统,在操作系统内部仅有一条数据连接。以操作系统a为例,ril根据步骤101接收的数据连接建立请求中的标识,以及基带设备建立相应底层数据连接后反馈的信息,为操作系统a建立路由信息,以将操作系统a内数据连接上的数据路由到该操作系统a对应的底层数据连接上。
更详细地,每个操作系统内部的一条数据连接可以对应一个虚拟网卡,该虚拟网卡是和hostcontainer中的网桥相连,多系统终端的底层数据连接对应的网卡也是与该网桥相连。如图2所示。
其中,hostcontainer(后文简称host)是一个容器,里面运行着一个精简版的操作系统,ril就是运行在host中的这个操作系统的,本申请中多系统终端在底层建立的数据连接就是host中的。多操作系统中的每一个系统也都是运行在各自的容器中的(一个容器中运行一个系统),一般情况下,如果某个模块(例如ril)在每个系统中都运行会导致一些问题或无法满足某些需求的话,就会考虑将其移动到host中运行,并同时服务于各个系统,本申请中的ril就是这样处理的。如前所述,操作系统内部数据连接所对应的虚拟网卡和底层数据连接都连接到网桥上,基于此,ril通过路由信息的配置将该虚拟网卡的数据路由到该虚拟网卡所在操作系统对应的底层数据连接上。这样,在后续进行数据转发时,ril可以将来自操作系统a的虚拟网卡的数据,根据配置的路由信息转发到操作系统a对应的底层数据连接上,还可以将来自某底层数据连接的数据,根据配置的路由信息转发到该数据连接对应的操作系统的虚拟网卡上,以传输给相应操作系统的上层应用。
另外,进一步地,为保证数据传输的正常进行,优选地,ril还可以管理和维护各个操作系统对应的底层数据连接,例如,当需要反馈数据连接状态等信息时,将数据连接状态准确反馈到对应的操作系统中。
至此,本申请中的数据连接建立方法流程结束。
由上述本申请的具体实现可见,本申请中,可以在终端不同的操作系统中分别配置各自的apn;各操作系统分别向ril发起建立数据连接的请求,并在请求中添加标识,以区分其来自哪个操作系统;ril向基带设备请求建立数据连接,并配置路由;不同操作系统使用数据连接上网,之前配置的路由会根据数据来源将网络数据转发到对应的底层数据连接从而发送出去。
通过上述本申请的处理,终端搭载的多个操作系统可同时使用不同的网络传输数据,能够满足用户需要同时使用不同网络的需求,例如同时使用公网传输普通数据以及使用专网传输私密数据,从使用上给用户提供了方便,同时也能保障专网数据的安全性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。