Virtual Carrier Network
The virtual carrier network manager addresses the challenge of seamless mobility across multiple carrier networks by establishing tunnels between user devices and remote servers, ensuring stable and flexible connectivity and managing different data services effectively.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-12-15
- Publication Date
- 2026-03-25
AI Technical Summary
Current mobile operating systems fail to provide seamless mobility and user experience across multiple carrier networks, leading to degraded connectivity and privacy concerns when switching between cellular and Wi-Fi networks, and traditional VPNs cannot support multiple data services or user-controlled mobility.
A virtual carrier network manager establishes tunnels between a user device and remote servers on multiple wireless networks, allowing data to be routed through selected remote servers while maintaining secure and flexible connectivity, independent of the underlying physical networks.
This solution provides stable, reliable, and flexible connectivity across multiple networks, reducing data costs and privacy concerns by allowing independent management of different data services and network preferences.
Smart Images

Figure 2026053441000001_ABST
Abstract
Description
Technical Field
[0001] Technical Field The present disclosure relates to a virtual carrier network of a user device.
Background Art
[0002] Background Mobile devices (e.g., smartphones) and other user devices typically provide hosts for different wireless connection technologies (e.g., cellular, Wi-Fi, Bluetooth®). To reduce the cost of mobile data, mobile network operators (MNOs) and mobile virtual network operators (MVNOs) often mediate additional lower-cost networks (e.g., Wi-Fi networks) to offload customers' mobile data from cellular connections (e.g., 4G, 5G, etc.) to lower-cost networks when possible. Recent mobile operating systems cannot provide convenient mobility solutions and user experiences for multiple carrier networks.
Summary of the Invention
[0003] Summary One aspect of the present disclosure provides a virtual carrier network for a mobile device. The method includes the step of data processing hardware selecting one remote server from a plurality of remote servers for a mobile device running a user application, which is simultaneously connected to a first wireless network associated with an MVNO (Mobile Virtual Network Operator) and a second wireless network associated with the same MVNO. Each remote server included in the plurality of remote servers is associated with a geographical location. The method also includes the step of data processing hardware establishing a virtual network between the mobile device and the selected remote server. The virtual network includes at least one tunnel between the mobile device on the first wireless network and the selected remote server, and at least one tunnel between the mobile device on the second wireless network and the selected remote server. The method also includes the step of data processing hardware transmitting data from the user application to the selected remote server on the virtual network via one of the at least one tunnels between the mobile device on the first wireless network and the selected remote server, or via one of the at least one tunnels between the mobile device on the second wireless network and the selected remote server. Once the data is received by one of the selected remote servers, that server routes the data to the destination server.
[0004] Embodiments of this disclosure may include one or more of the following optional features. In some embodiments, at least one tunnel between a mobile device on a first wireless network and a selected remote server includes a first tunnel supporting data for a first service and a second tunnel supporting data for a second service. At least one tunnel between a mobile device on a second wireless network and a selected remote server may include a third tunnel supporting data for a first service and a fourth tunnel supporting data for a second service. In this embodiment, the step of sending data from a user application to a selected remote server on a virtual network is, based on the user application, a first tunnel between a mobile device and a selected remote server via the first wireless network. The process includes selecting a second tunnel or a third or fourth tunnel between a mobile device and a selected remote server via a second wireless network.
[0005] In some examples, the first service includes an internet service, and the second service includes a tethering service. Optionally, this method further includes a step in which, after the user application sends data to a remote server of its choice, the data processing hardware connects the mobile device to a third wireless network. The third wireless network includes a user Wi-Fi (Wireless Fidelity) network. In this example, this method also includes a step in which the data processing hardware sends data from the user application to the destination server over the third wireless network.
[0006] The step of selecting one remote server from multiple remote servers may be based on the geographical location of each remote server included in the multiple remote servers. In some embodiments, the method further includes, prior to the step of selecting one remote server from multiple remote servers, a step in which the data processing hardware selects a preferred wireless network from a first wireless network or a second wireless network based on network preferences, where the step of selecting one remote server from multiple remote servers is based on the selected preferred wireless network. In some examples, the method further includes, after the step of selecting a preferred wireless network, a step in which the data processing hardware selects a second remote server from multiple remote servers based on the geographical location of each remote server included in the multiple remote servers. The method may also include the steps of the data processing hardware establishing a second virtual network between the mobile device and the selected second remote server, and the data processing hardware transmitting data from the user application to the selected second remote server on the second virtual network. Once the data is received by the selected second remote server, the selected second remote server routes the data to the destination server.
[0007] Optionally, the user application may include a VPN (Virtual Private Network) application. The destination server may include a VPN server associated with the VPN application. In some embodiments, the method further includes the step of data processing hardware determining whether the first wireless network is associated with the same MVNO as the second wireless network. In some examples, the first wireless network includes a cellular network, and the second wireless network includes a Wi-Fi (Wireless Fidelity) network.
[0008] Another aspect of this disclosure provides a system for establishing a virtual carrier network for a mobile device. The system comprises data processing hardware for the mobile device and memory hardware that communicates with the data processing hardware. The memory hardware stores instructions, which, when executed on the data processing hardware, cause the data processing hardware to perform operations. These operations include selecting one remote server from a plurality of remote servers for a mobile device running a user application, which is simultaneously connected to a first wireless network associated with an MVNO (Mobile Virtual Network Operator) and a second wireless network associated with the same MVNO. Each remote server included in the plurality of remote servers is associated with a geographical location. The operations also include establishing a virtual network between the mobile device and the selected remote server. The virtual network includes at least one tunnel between the mobile device on the first wireless network and the selected remote server, and a second The operation includes at least one tunnel between a mobile device on a wireless network and a selected remote server. The operation further includes sending data from a user application to a selected remote server on a virtual network via one of the at least one tunnels between the mobile device on a first wireless network and the selected remote server, or via one of the at least one tunnels between the mobile device on a second wireless network and the selected remote server. Once the data is received by the selected remote server, the selected remote server is instructed to route the data to the destination server.
[0009] This embodiment may include one or more of the following optional features. In some embodiments, at least one tunnel between a mobile device on the first wireless network and a selected remote server includes a first tunnel supporting data for the first service and a second tunnel supporting data for the second service. At least one tunnel between a mobile device on the second wireless network and a selected remote server may include a third tunnel supporting data for the first service and a fourth tunnel supporting data for the second service. In this embodiment, transmitting data from a user application to a selected remote server on a virtual network includes, based on the user application, selecting either the first or second tunnel between the mobile device and the selected remote server via the first wireless network, or the third or fourth tunnel between the mobile device and the selected remote server via the second wireless network.
[0010] In some examples, the first service includes an internet service, and the second service includes a tethering service. Optionally, after sending data to a remote server selected by the user application, the operation further includes connecting the mobile device to a third wireless network. The third wireless network includes a user Wi-Fi (Wireless Fidelity) network. Also in this example, the operation includes sending data from the user application to the destination server over the third wireless network.
[0011] The selection of one remote server from multiple remote servers may be based on the geographical location of each remote server included in the multiple remote servers. In some embodiments, prior to selecting one remote server from multiple remote servers, the operation further includes selecting a preferred wireless network from a first or second wireless network based on network preferences. Here, the selection of one remote server from multiple remote servers is based on the selected preferred wireless network. In some examples, after the step of selecting a preferred wireless network, the operation further includes selecting a second remote server from multiple remote servers based on the geographical location of each remote server included in the multiple remote servers. The operation may also include establishing a second virtual network between the mobile device and the selected second remote server, and sending data from the user application to the selected second remote server on the second virtual network. Once the data is received by the selected second remote server, the selected second remote server is instructed to route the data to the destination server.
[0012] Optionally, the user application includes a VPN (Virtual Private Network) application. The destination server may include a VPN server associated with the VPN application. In some embodiments, the operation further includes determining whether the first wireless network is associated with the same MVNO as the second wireless network. In some examples, the first wireless network is a cell The first wireless network includes a Wi-Fi (Wireless Fidelity) network.
[0013] Details of one or more embodiments of this disclosure are described in the accompanying drawings and the following description. Other embodiments, features, and advantages will become apparent from this specification and the drawings, as well as from the claims. [Brief explanation of the drawing]
[0014] [Figure 1] This is a schematic diagram of an exemplary system for providing a virtual carrier network for mobile devices using two or more carrier wireless networks. [Figure 2] This is a schematic diagram of exemplary components of a virtual carrier network manager. [Figure 3] This is a schematic diagram of the virtual carrier network manager and user network manager. [Figure 4A] This is a schematic diagram of a virtual carrier network manager that switches mobility anchors. [Figure 4B] This is a schematic diagram of a virtual carrier network manager that switches mobility anchors. [Figure 5] This is an illustrative flowchart of the configuration of a method for providing a virtual carrier network for mobile devices. [Figure 6] This is a schematic diagram of an exemplary computing device that may be used to implement the systems and methods described herein. [Modes for carrying out the invention]
[0015] The same reference symbol found in various drawings represents the same element. Detailed explanation Carriers such as MNOs (Mobile Network Operators) and Mobile Virtual Network Operators (MVNOs) are increasingly offering connectivity across multiple heterogeneous network types (e.g., cellular and Wi-Fi networks). Carriers can reduce data costs by opportunistic data offloading, shifting traffic to cheaper networks (e.g., from cellular to Wi-Fi). However, traditional mobile operating systems (OS) do not abstract away the underlying networks, leading to a degraded user experience and / or reduced connectivity when mobile devices switch networks.
[0016] Current technologies to address this challenge generally involve extending a VPN (Virtual Private Network) across multiple wireless networks to a remote VPN server. While this provides network abstraction for users and mobile devices, it also has several drawbacks. For example, a VPN aggregates traffic from all networks connected to a mobile device, including user-mediated networks (such as a home Wi-Fi network). Data on user-mediated networks must now traverse the VPN service, raising privacy concerns and generally requiring at least user consent. Furthermore, VPNs cannot provide mobility for multiple profiles or different data services on a user device (e.g., tethering). In other words, all profiles and all data services typically must use the same VPN. Another example is that VPNs restrict users from using their own VPN applications. Moreover, because VPNs are often user-controlled, they can only provide a vulnerable abstraction at best.
[0017] The embodiments described herein operate on a user device and a wireless network operator (e.g., an MVNO (Mobile Virtual Network Operator)). This refers to a virtual carrier network manager for establishing a virtual network (e.g., a virtual carrier network) with multiple wireless networks associated with it. The virtual network includes a remote server selected from several remote servers, which acts as a mobility anchor. The virtual network also includes one or more tunnels between the user device and the selected remote server. Applications running on the user device send and receive data to and from the selected remote server via this one or more tunnel in the virtual network, and the remote server routes the data to the destination server.
[0018] Referring to Figure 1, in some embodiments, the exemplary wireless communication environment (e.g., system) 100 includes a mobile device 110 (also referred to herein as the “user device”) that communicates with an external network 40 simultaneously through at least two wireless networks 120, 120a-b. For example, the user device 110 may communicate with the external network 40 via a carrier cellular network 120a and a carrier Wi-Fi network 120b. These wireless networks 120 are illustrative only, and the user device 110 may communicate with the external network 40 using any number of other types of wireless networks (e.g., CBRS (Citizens Broadband Radio Service), Bluetooth, etc.). The carrier cellular network 120a may include a GPRS (General Packet Radio Service) network, a UMTS (Universal Mobile Telecommunications System) network, an HSPA (High Speed Packet Access) network, an enhanced-HSPA(H+) network, an EDGE (Enhanced Data Rates for Global System for Mobile Communications) (GSM®) network, an LTE (Long-Term Evolution) RAN (Radio Access Network) (e.g., 4G / 5G LTE), or a 5G NR (New Radio) network that supports wireless transmission of data packets 50 (hereinafter simply referred to as "data") and / or other services from an external network 40 to a user device 110 via base stations such as MeNB (macro-cell evolved Node B). The Wi-Fi network 120b may include any version of Wi-Fi (e.g., 802.11n, 802.11ac, etc.) that also supports wireless transmission of data packets 50. In some examples, the user device 110 connects to multiple wireless networks 120 of the same type simultaneously.For example, the user device 110 may include a function for simultaneously connecting to two separate carrier cellular networks 120a operated by different carriers 70, or a plurality of carrier Wi-Fi networks 120b with different access points.
[0019] The carrier cellular network 120a is associated with an MNO (Mobile Network Operator) or MNVO (Mobile Virtual Network Operator) that provides wireless communication services to the subscribed user device 110 via the carrier cellular network 120a. Also, the MNO or MVNO may be referred to as a wireless service provider, wireless carrier, mobile phone company, mobile network operator, or mobile network carrier, etc. The term "carrier" may be used herein to refer to an MNO or MVNO. The term "wireless network operator" may be used herein to refer to an entity that operates or intermediates the wireless network 120, and may include a carrier (e.g., an MNO or MVNO) that operates / intermediates the carrier intermediated wireless network 120 or a user 10 that operates / intermediates the user intermediated wireless network 120.
[0020] As used herein, the carrier intermediated wireless network 120 (this specific In this document, the term "carrier wireless network 120" may simply be used to describe any wireless network 120 managed, mediated, or controlled by a specific carrier 70 (e.g., an MNO or MVNO) from which the user device 110 subscribes to a service provided by the carrier. In other words, the user 10 does not control or manage the wireless network 120. The carrier mediated network 120 is a network for which the carrier has provided credentials, such as a SIM profile provided by the carrier or a network for which one of the applications provided by the carrier that can be authenticated by the SIM profile provided by the carrier has provided credentials. For example, a SIM profile provided on a UICC (Universal Integrated Circuit Card) allows the user device 110 to connect to and authenticate with the carrier cellular network 120a. Alternatively, a carrier application is authenticated by the OS (operating system) 111 to access the SIM profile. The carrier application may be cryptographically signed using the carrier's private key and authenticated by the application signature included in the SIM profile. The carrier application is permitted by the operating system 111 to provide credentials, for example, to access a carrier Wi-Fi access point. In some cases, the authenticated carrier application may provide a WPA password or a hotspot 2.0 certificate, or, in the case of an open network that does not require credentials to connect to an access point, the carrier may connect the user device 110 to the access point without user intervention, or offer the user to connect to the network, which the user can accept or reject. In the case of a carrier-mediated connection to an open wireless network 120, further steps are required to meet the requirements of a “captive portal” to obtain internet access, such as agreeing to terms of service or providing a passcode or other login information.In the case of carrier-mediated connection to an open network 120 with a captive portal, the carrier may accept the terms on behalf of the user or may automatically provide an email address, password, or other login information. By "automatically" it is meant providing login information via a protocol such as WISPr or by automatic submission of a web form. One user device 110 can support multiple carrier-mediated wireless networks 120 simultaneously.
[0021] The user-mediated wireless network 120 includes any wireless network 120 associated with a wireless network operator (e.g., a carrier) 70 to which the user device 110 is not explicitly subscribed, such that the user-mediated wireless network 120 is ultimately managed, mediated, or controlled by the user 10. The user-mediated network is a network to which the user provides their credentials to connect, if necessary, to an access point, e.g., a certificate installed by the user such as a WPA password or a Hotspot 2.0 certificate, or in the case of an open network that does not require credentials to connect to the access point, the user must take an affirmative action to connect to the network, such as selecting the network from a list or accepting a candidate selected by the operating system. Any selection can only occur when the device is first exposed to the network. On a user-mediated open network, additional manual steps may be required to satisfy the requirements of a "captive portal" to obtain Internet access, such as agreeing to the terms of use or providing an email address, password, or other login information.
[0022] One device, e.g., an access point, can provide access to both the user-mediated network and the carrier-mediated network. The user who owns, rents, or controls the AP allows other users to use the access point to access the Internet. This allows for access to the user-mediated network. For example, a user creates a WEP password that they provide to other users. The access point then provides access to the user-mediated network when accessed in this manner. A cable service provider or DSL service provider may operate carrier-mediated network services from the same access point. Devices with HS2.0 certificates provisioned by the carrier app will automatically connect to the same access point. No user intervention or password is required.
[0023] In an example where a user has a contract for an internet service provided by a wireless network operator 70 corresponding to an ISP (Internet Service Provider), and can select one of many different wireless-enabled user devices 110 to access the internet service at any time, the wireless network 120 (for example, a carrier Wi-Fi network 120b) that the selected user device 110 accesses to access the internet service corresponds to the user-mediated wireless network 120. Here, user 10 may control a modem that connects to the internet service, and a wireless AP (access point) (for example, a wireless router) that communicates with the modem, to provide a LAN (local area network) from which the selected user device 110 can establish a wireless connection to access the internet service. In other examples, the user-mediated wireless network 120 may simply include a Bluetooth connection (or other wireless connection) between user device 110 and another device near user device 110. On the other hand, if a specific user device 110 associated with user 10 subscribes to a wireless communication service provided by a specific carrier 70 (e.g., an MNO or MVNO), then the wireless network 120 (e.g., cellular and / or carrier Wi-Fi networks 120a, 120b) that the subscribed user device 110 accesses to receive the wireless communication service corresponds to the carrier-mediated wireless network 120. In some embodiments, a SIM (Subscriber Identification Module) installed on the user device 110 includes a profile defined by the specific carrier 70 for enabling and authenticating the user device 110 to connect to the carrier-mediated wireless network 120 associated with that specific carrier 70.However, if user 10 wants to connect other user devices 110 to these carrier-mediated wireless networks 120 associated with a specific carrier 70, each of these other user devices 110 must individually subscribe to the wireless communication services provided by that specific carrier 70. In these embodiments, user devices 110 can freely connect to user-mediated wireless networks 120 associated with one or more wireless network operators 70 other than a specific carrier 70. In the illustrated examples, user devices 110 are shown as mobile devices 110, but user devices 110 may include, but are not limited to, any device that can connect to the wireless network 120, such as a tablet, laptop, desktop, smartwatch, smart speaker, smart display, or smart home appliance.
[0024] The user device 110 includes computing resources 112 (e.g., data processing hardware) and / or storage resources 114 (e.g., memory hardware). The data processing hardware 112 runs an operating system 111 and one or more user software applications 116. Furthermore, the data processing hardware 112 runs a virtual carrier network manager 150. In some embodiments, the operating system 111 performs the functions of the virtual carrier network manager 150.
[0025] The user device 110 can utilize various different operating systems 111. In examples where user device 110 is a mobile device, user device 110 may run an operating system including, but is not limited to, Android® developed by Google, iOS® developed by Apple, or Windows Phone® developed by Microsoft. Therefore, the operating system 111 running on user device 110 may include, but is not limited to, one of Android®, iOS®, or Windows Phone®. In some examples, the user device may run an operating system including, but is not limited to, Microsoft Windows®, Apple Mac OS®, or Linux®.
[0026] The user device 110 further comprises at least one modem 165 (also referred to as a baseband or baseband processor). The modem 165 comprises one or more antennas that enable the user device to communicate wirelessly with the wireless network 120. The modem 165 may communicate with one or more radios operating simultaneously on various frequencies (e.g., 700 MHz, 900 MHz, 2.4 GHz, 5.0 GHz, etc.). The modem 165 may comprise various components that provide transmit and receive functions (e.g., a processor, memory). In some embodiments, the data processing hardware 112 includes the modem 165. That is, tasks performed by the data processing hardware 112 may, in some examples, be performed by the modem 165 instead, and tasks performed by the modem 165 may, in some examples, be performed by the data processing hardware 112 instead.
[0027] The user device 110 further comprises one or more corresponding SIMs (subscriber identification modules) 118 for identifying the user device 110 and connecting it to a specific type of carrier-mediated wireless network 120. For example, the SIM 118 may include a corresponding SIM profile with credentials to allow the user device 110 to connect to a carrier cellular network 120a and access a destination server 60 on an external network 40. Similarly, the SIM 118 may include one or more additional SIM profiles with corresponding credentials to allow the user device 110 to connect to other carrier-mediated wireless networks 120 managed by the wireless network operator 70, rather than the network operator managing the carrier cellular network 120a. In some examples, the one or more SIMs 118 include any combination of one or more eSIMs (embedded SIMs) and one or more physical SIMs.
[0028] The virtual carrier network manager 150 (also referred to herein as the "VCN manager 150") establishes virtual networks 30, 30a-b (also referred to herein as the "virtual carrier network" or "VCN") between the user device 110 and remote servers 130, 130a-b. As will be described in detail later, the VCN manager 150 selects a remote server 130 from among several remote servers 130. Each remote server 130 may be associated with a geographical location. In some examples, these geographical locations are different. For example, the first remote server 130a may be associated with a geographical location associated with a data center supporting the carrier cellular network 120a, or a geographical location near such a center. That is, data packets 50 traversing the carrier cellular network 120a are processed by one or more servers (not shown) associated with the carrier cellular network 120a. The first remote server 130a may be geographically located close to (for example, “jointly installed” or “jointly deployed”) one or more servers associated with a data center supporting a carrier cellular network 120a. Similarly, the second remote server 130b may be geographically located in or near a data center supporting a carrier Wi-Fi network 120b. In other examples, the geographical locations of multiple remote servers 130 may be the same. Yes, for example, a data center associated with a wireless network 120 includes multiple remote servers 130.
[0029] The VCN manager 150 establishes a virtual network 30 between the mobile device 110 and the selected remote server 130. For example, if the VCN manager 150 selects a first remote server 130a, the VCN manager 150 establishes a first virtual network 30, 30a between the mobile device 110 and the first remote server 130a. Alternatively, if the VCN manager 150 selects a second remote server 130b, the VCN manager 150 establishes a second virtual network 30, 30b between the mobile device 110 and the second remote server 130b. The virtual network 30 includes at least one tunnel 122, 122Aa~n between the mobile device 110 and the selected remote server 130 on a first wireless network 120 (e.g., a carrier cellular network 120a), and at least one tunnel 122, 122Ba~n between the mobile device 110 and the selected remote server 130 on a second wireless network 120b (e.g., a carrier Wi-Fi network 120b). Each tunnel 122 establishes private network communication on its respective wireless network 120 by encapsulation (e.g., by using IPSec (Internet Protocol Security)). Each tunnel 122 can independently establish secure communication between the user device 110 and the selected remote server 130. This may include performing key exchange (e.g., by IKE (Internet Key Exchange)), as well as establishing encryption and other secure communication procedures. In some embodiments, the VCN manager 150 uses an IKE library as the control plane and IPSec as the data plane, along with a configuration provided by one or more wireless network operators 70 (for example, via SIMs 118). These protocols are merely illustrative, and the VCN manager 150 may implement other protocols.
[0030] The user device 110 runs a user software application 116 that communicates with the destination server 60. For example, the user software application 116 includes an internet browser, a game application, a messaging application, an email application, and / or other applications that communicate from the user device 110 to other remote devices (e.g., the destination server 60) via the wireless network 120. In some examples, the user software application 116 includes a user VPN application, and the destination server 60 includes a VPN server associated with the VPN application. The VCN manager 150 sends a data packet 50 from the user software application 116 to a selected remote server 130 on the virtual network 30 via one of the tunnels 122 on one of the carrier wireless networks 120 connected to the user device 110. Upon receiving the data packet 50, the selected remote server 130 forwards the data packet to the destination server 60 via the external network 40. Similarly, the data packets 50 received by the remote server 130 selected from the destination server 60 (via the external network 40) are transmitted (via tunnel 122) to the user device 110 and the user software application 116, thereby establishing bidirectional communication between the user software application 16 and the destination server 60 via one or more of the wireless networks 120 and the external network 40.
[0031] The external network 40 may be independent of either the network associated with the user device 110 or the carrier 70 operating the wireless network 120. The destination server 60 is the user software application running on the user device 110. 116 could be any remote server that sends and receives data packets 50. For example, destination server 60 might be a web server that hosts web content.
[0032] A software application (i.e., a software resource) can refer to computer software that causes a computing device to perform a task. In some cases, a software application may be called an "application," "app," or "program." Examples of applications include, but are not limited to, system diagnostic applications, system administration applications, system maintenance applications, document processing applications, spreadsheet applications, messaging applications, media streaming applications, social networking applications, and game applications.
[0033] Referring to Figure 2, in some embodiments, the user device 110 runs different user software applications (i.e., service applications) 116 for different services and / or different functions. For example, the user device 110 runs a first service application 116, 116A that requires or utilizes a first service or function. The first service application 116A may include a user application such as a browser or email application that requires access to the internet. The user device 110 may also run a second service application 116, 116B that requires or utilizes a second service or function. For example, the second service application 116B may include a platform application (e.g., an OS application) such as a tethering application that tethers the user device 110 to another nearby device. The user device 110 may run any combination of classes of service applications 116 (for example, a third service application) that support or require further services or functions, such as SMS (Short Message Service), MMS (Multimedia Messaging Service), RCS (Rich Communication Service), Assisted GPS (Global Positioning System), and VoIP (Voice over Internet Protocol).
[0034] In some examples, the VCN manager 150 includes one or more service connectors 210, 210a-b, each communicating with one or more types of service applications 116. For example, a first service connector 210a receives data packets 50 from a first service application 116A, and a second service connector 210b receives data packets 50 from a second service application 116B. Each service connector 210 may establish a tunnel 122 between a user device 110 and a selected remote server 130 for each wireless network 120. In the illustrated example, the first service connector 210a establishes a first tunnel 122a between the user device 110 and the selected remote server 130 on the first wireless network 120a for the data 50 received from the first service application 116A. The second service connector 210b establishes a second tunnel 122b between the user device 110 and the selected remote server (i.e., the selected mobility anchor) 130 on the first wireless network 120a for the data 50 received from the second service application 116B. Similarly, the first service connector 210a establishes a third tunnel 122c between the user device 110 and the selected remote server 130 on the second wireless network 120b for the data 50 received from the first service application 116A, and the second service connector 210b establishes a fourth tunnel 122d between the user device 110 and the selected remote server 130 on the second wireless network 120b for the data 50 received from the second service application 116B.
[0035] Therefore, in this example, the tunnel 122 between the user device 110 on the first wireless network 120a and the selected remote server 130 includes a first tunnel 122 that supports data 50 of a first service (e.g., internet service) communicated by a first service application 116A, and a second tunnel 122b that supports data 50 of a second service (e.g., tethering service) communicated by a second service application 116B. Similarly, the tunnel 122 between the user device 110 on the second wireless network 120b and the selected remote server 130 includes a third tunnel 122c that supports data 50 of a first service communicated by a first service application 116A, and a fourth tunnel 122d that supports data 50 of a second service communicated by a second service application 116B. In some embodiments, the VCN manager 150 transmits data 50 from a service application 116 to a selected remote server 130 on the virtual network 30 by selecting a first tunnel 1222a or a second tunnel 122b between the user device 110 and the selected remote server 130 via a first wireless network 120a, or by selecting a third tunnel 122c or a fourth tunnel 122d between the user device 110 and the selected remote server 130 via a second wireless network 120b, based on each user software application 116 (for example, which user software application 116 transmits data 50).
[0036] The service connector 210 abstracts the physical wireless network 120 and decouples it from the user software application 116 while maintaining the flexibility to isolate data services (i.e., regardless of which tunnel 122 or physical wireless network 120 the service connector 210 chooses to transmit the data 50, the connection appears the same to the user software application 116). Wireless network operators 70 and / or users 10 may take advantage of the isolation of data services for several reasons, including price, priority, and subscription level. For example, an MNO or MVNO may bill or track data 50 transmitted via a tethering service separately from standard internet data 50, even if both services ultimately communicate with the same destination server 60. On the other hand, the VCN manager 150 presents the user software application 116 with a single virtualized network connection, so the network abstraction provided by the service connector 210 allows the VCN manager 150 to unilaterally select a wireless network 120 for transmitting the data 50 without affecting the user software application 116. Therefore, there is no strict correlation between the services provided by the virtual network 30 and the underlying physical wireless network 120. In other words, the VCN manager 150 can tunnel all services using a single tunnel 122, or it can divide each individual service into different independent tunnels 122. In other words, tunnels 122 can expose, remap, or hide services from the virtual endpoint. When connected to the 5G wireless network 120 and 5G slicing is enabled, the VCN manager 150 can consider each slice as an underlying service and remap the exposed services as appropriate.
[0037] In some embodiments, the VCN manager 150 provides the user 10 and / or user software application 116 with only the virtual network 30, so that the user 10 and / or user software application 116 have no visibility into or control over the physical carrier wireless network 120, and instead interact only with connections to the virtual network 30. Thus, the VCN manager 150 uses the underlying wire Regardless of the wireless network 120, the VCN manager 150 provides a stable network connection that delivers continuous and reliable connectivity to the user 10 and / or user software application 116, and the VCN manager 150 treats the physical wireless network 120 as an implementation detail and secures the data 50 transmitted over the wireless network 120.
[0038] Since each service connector 210 can establish multiple tunnels 122 supporting different functions, entities such as MVNOs can configure their networks as flexibly as possible. For example, a service connector 210 can exclusively tunnel services for MVNOs while services for MNOs can continue to operate normally.
[0039] In some embodiments, the VCN manager 150 restricts, or otherwise prevents, a particular user software application 116 from accessing a particular physical wireless network 120 or service connector 210. That is, the VCN manager 150 may impose access restrictions on some or all of the user software applications 116 running on the user device 110. For example, the VCN manager 150 may restrict a higher-level user software application 116 (e.g., an email application) from all service connectors 210 except those that support internet functionality. That is, the VCN manager 150 may restrict an email application from accessing a service connector 210 that supports tethering, for example. In yet another example, the VCN manager 150 may restrict a carrier application 160 (i.e., an application associated with a particular wireless network operator 70) from accessing wireless networks 120 of other carriers. In other words, the service connector 210 aggregates connections to the wireless network 120 operated by the same carrier 70, and may prevent the service application (i.e., the carrier application) 116 from accessing other carrier wireless networks 120 if the user device 110 is connected to wireless networks 120 of two or more wireless network operators 70. Optionally, the VCN manager 150 restricts the user software application 116's access to or visibility of location-sensitive wireless networks 120 (e.g., carrier Wi-Fi networks) unless the user software application 116 grants permission to use location information.
[0040] In some embodiments, the VCN manager 150 determines the wireless network operator 70 associated with each wireless network 120 connected to the user device 110. In some examples, the VCN manager 150 determines whether a first wireless network 120a is associated with the same network operator 70 as a second wireless network 120b. For example, the VCN manager 150 may query one or more carrier applications 116 installed on and / or running on the user device 110. Each carrier application 116 may be associated with a specific carrier / wireless network operator 70, for example, an MNO or an MVNO. The wireless network operator 70 may digitally sign the carrier application 116, and the VCN manager 150 may verify the digital signature using an encryption key stored in or associated with the SIM 118 of the user device 110.
[0041] The VCN manager 150 can classify each user software application 116 and determine access restrictions based on that classification. For example, the VCN manager 150 may classify the application 116 into platform (i.e., OS) applications, system applications, carrier applications, and user applications. They can be classified accordingly. The VCN manager 150 can control which wireless networks 120 and which service connectors 210 are made visible and / or accessible based on the classification of the user software application 116.
[0042] In some examples, the VCN manager 150 manages a virtual network 30 between multiple profiles defined by one or more SIMs 118 on a user device 110. For example, a user 10 may have both a work profile and a personal profile on the user device 110. These profiles may be subscribed to the same wireless network provider 70 or to different wireless network providers 70. The VCN manager 150 can adjust which wireless networks 120 to include in the virtual network 30, preferred wireless network, etc., based on the currently active profile(s).
[0043] Referring to Figure 3, in some embodiments, the user device 110 connects to user-mediated networks 120, 120U, such as a home Wi-Fi network. Here, the user device 110 runs a user network manager 310 in addition to the VCN manager 150. In this example, the user software application 116 (and / or user 10 and / or OS 111) can choose to communicate with the destination server 60 either through the virtual network 30 via the VCN manager 150 (i.e., one of the carrier wireless networks 120) or through the user network manager 310 via the user-mediated network 120U. That is, in some examples, the user-mediated network 120U is independent of both the VCN manager 150 and the virtual network 30. The user network manager 310 sends data packets 50 from the user device 110 to the destination server 60 via the user mediation network 120U connected to the destination server 60 (potentially traversing further external networks), bypassing the VCN manager 150, the virtual network 30, and the selected remote server 130. Therefore, the data 50 traversing the user mediation network 120U is not received by the remote server 130. This reduces privacy and consent concerns.
[0044] Referring to Figure 4A, in some embodiments, the VCN manager 150 selects a remote server 130 based on the different geographical location of each of the multiple remote servers 130. In the illustrated example, the user device 110 is located in the user 10's residence 410 and is within range of the carrier Wi-Fi network 120b. Based on the network preferences 450, the VCN manager 150 selects the carrier Wi-Fi network 120b as the preferred wireless network 120 rather than the carrier cellular network 120a. The network preferences 450 may include factors such as cost, reliability, latency, congestion, bandwidth, location, transmission type, DNS (Domain Name System) privacy, cellular RAT (Radio Access Technology), signal strength, current active link, lack of link reliability, and the movement or speed of the user device 110. For example, the carrier Wi-Fi network 120b may be preferred over the carrier cellular network 120a when available, because, when within range, the carrier Wi-Fi network 120b tends to be cheaper and more reliable than the carrier cellular network 120a. The VCN manager 150 may receive network statistics for one or more of the connected wireless networks 120 that affect the network basic settings 450. The wireless network operator 70 may define parts of the network basic settings 450 (for example, by a user software application 116 or SIM 118).
[0045] The VCN manager 150 may select a remote server 130 based on the selected preferred wireless network and / or the geographical location of the remote server 130. Figure 4A Continuing with the example, the geographical location of remote server 130b is a data center of carrier Wi-Fi network 120b or a location near it, and the geographical location of remote server 130a is a different data center of carrier cellular network 120a or a location near it. In a situation where user device 110 is primarily transmitting data 50 on carrier Wi-Fi network 120b rather than carrier cellular network 120a (for example, due to the geographical location of user device 110, preferred wireless network 120, network basic settings 450, etc.), VCN manager 150 would choose remote server 130b because it is located near a carrier Wi-Fi network data center, which can generally reduce the latency of data 50, rather than choosing remote server 130a because the distance the data 50 has to travel is shorter.
[0046] After selecting the remote server 130b, the VCN manager 150 establishes a virtual network 30 via a tunnel 122 between the user device 110 and the selected remote server 130b on both the carrier cellular network 120a and the carrier Wi-Fi network 120b. The user software application 116 sends data 50 to the selected remote server 130b via the tunnel 122, and the remote server 130b routes the data 50 to the destination server 60 through the external network 40.
[0047] Referring to Figure 4B, in this example, user 10 is traveling in vehicle 420. Here, the VCN manager 150 may select a second remote server 130 from among several remote servers 130 based on the different geographical locations of each of the multiple remote servers 130. For example, as user device 110 moves within vehicle 420, carrier Wi-Fi network 120b is no longer the viable preferred wireless network 120, and carrier cellular network 120a becomes the preferred wireless network 120. In some examples, this would lead the VCN manager 150 to select a new “mobility anchor” (i.e., remote server 130) that is better suited to the new preferred wireless network 120. Here, since remote server 130a is geographically located in or near the data center of carrier cellular network 120a, the VCN manager 150 selects remote server 130a over remote server 130b.
[0048] In some embodiments, the VCN manager 150 establishes a second virtual network 30 via a tunnel 122 between the user device 110 and a selected remote server 130a on the carrier cellular network 120a and the carrier Wi-Fi network 120b. The user software application 116 sends data 50 to the selected remote server 130a via the tunnel 122, and the selected remote server 130a routes the data 50 to the destination server 60 through the external network 40.
[0049] The VCN manager 150 may select different remote servers 130 (i.e., mobility anchors) for several other reasons. For example, if a remote server requires maintenance or has failed, the VCN manager 150 may select a different remote server 130. The VCN manager 150 may select different remote servers 130 based on bit mile, latency, and throughput challenges. The VCN manager 150 may establish a second virtual network 30 with the newly selected remote server 130 (i.e., maintain two separate virtual networks 30) in order to maintain mobility for a certain period before terminating the first virtual network 30, and then terminate the first virtual network with the previously selected remote server 130. Work 30 can be maintained. That is, mobility anchors may be deprecated for a certain period before termination. The VCN manager 150 may select remote servers 130 (i.e., mobility anchors) based on the services that remote servers 130 support. That is, not all remote servers 130 have to support all services. Some geographical locations may include multiple remote servers 130, and each remote server 130 may support different sets of services, some overlapping and some not overlapping. Therefore, the VCN manager 150 may select multiple remote servers 130 even if certain services are located in the same geographical location, or for other purposes such as load balancing or maintenance.
[0050] Therefore, the VCN Manager 150 provides a single integrated network abstraction on top of one or more physical wireless networks 120, transferring network connectivity between the user 10 and the user software application 116's physical wireless networks 120. The VCN Manager 150 virtualizes each data service (e.g., Internet, MMS, tethering, VoIP, etc.) that the user device 110 provides simultaneously and maps each service appropriately to the physical carrier wireless network 120 connected to the user device 110. This allows the VCN Manager 150 to fully emulate cellular network connectivity to both the user 10 and the user software application 116. The VCN Manager 150 can provide the MNO or MVNO with the ability to hand off between different mobility anchors (i.e., remote servers 130) to perform load balancing, maintenance, and geographic optimization. Unlike traditional virtualization layers, the VCN Manager 150 minimizes performance overhead while enabling the wireless network operator 70 to improve network reliability by switching to different mobility anchors during network or infrastructure changes. In the examples herein, it is commonly shown that the user device 110 communicates with a first wireless network 120a and a second wireless network 120b, but the user device 110 and the VCN manager 150 may connect to and manage any number of carrier wireless networks 120.
[0051] Figure 5 is a flowchart illustrating an exemplary configuration of how to establish a virtual carrier network with a mobile device 110. Method 500 includes, in operation 502, data processing hardware 112 selecting one of a plurality of remote servers 130 for a mobile device 110 running a user software application 116, which is simultaneously connected to a first wireless network 120a associated with an MVNO (Mobile Virtual Network Operator) and a second wireless network 120b associated with the same MVNO. Each of the plurality of remote servers 130 is associated with a different geographical location.
[0052] Method 500 includes, in operation 504, data processing hardware 112 establishing a virtual network 30 between the mobile device 110 and a selected remote server 130. The virtual network 30 includes at least one tunnel 122 between the mobile device 110 and the selected remote server 130 on a first wireless network 120a, and at least one tunnel 122 between the mobile device 110 and the selected remote server 130 on a second wireless network 120b.
[0053] In operation 506, method 500 is performed via one of at least one tunnel 122 between the mobile device 110 on the first wireless network 120a and the selected remote server 130, or via one of at least one tunnel 122 between the mobile device 110 on the second wireless network 120b and the selected remote server 130. The process includes the step of having data processing hardware 112 send data 50 to a remote server 13 selected by a user software application 116 on the virtual network 30 via one of the following: When the data 50 is received by the selected remote server 130, the selected remote server 130 is instructed to route the data 50 to the destination server 60.
[0054] Figure 6 is a schematic diagram of an exemplary computing device 600 that may be used to implement the systems and methods described herein. The computing device 600 is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers. The components, their connections and relationships, and their functions shown herein are illustrative and not intended to limit the embodiments of the inventions described and / or claimed herein.
[0055] The computing device 600 comprises a processor 610, memory 620, storage device 630, a high-speed interface / controller 640 connected to memory 620 and a high-speed expansion port 650, and a low-speed bus 670 and a low-speed interface / controller 660 connected to storage device 630. Each of the components 610, 620, 630, 640, 650, and 660 is connected to one another using various buses and may be implemented on a common motherboard or otherwise as appropriate. The processor 610 can process instructions for execution within the computing device 600, including instructions stored in memory 620 or on storage device 630 for displaying graphic information for a GUI (Graphical User Interface) on an external input / output device, such as a display 680 connected to the high-speed interface 640. In other embodiments, multiple processors and / or multiple buses may be used as appropriate with multiple memories and multiple types of memory. Additionally, multiple computing devices 600 may be connected, each providing some of the necessary functions (for example, as a server bank, a cluster of blade servers, or a multiprocessor system).
[0056] Memory 620 stores information non-temporarily within the computing device 600. Memory 620 may be a computer-readable medium, a volatile memory device, or a non-volatile memory device. Non-temporarily stored memory 620 may be a physical device used to temporarily or permanently store programs (e.g., a set of instructions) or data (e.g., program state information) for use by the computing device 600. Examples of non-volatile memory include, but are not limited to, flash memory and ROM (read-only memory) / PROM (programmable ROM) / EPROM (erasable programmable OM) / EEPROM (electrically erasable programmable ROM) (e.g., typically used for firmware, such as boot programs). Examples of volatile memory include, but are not limited to, RAM (random access memory), DRAM (dynamic RAM), SRAM (static RAM), PCM (phase-change memory), and disks or tapes.
[0057] The storage device 630 can provide high-capacity storage for the computing device 600. In some embodiments, the storage device 630 is a computer-readable medium. In various different embodiments, the storage device 630 may be a floppy disk drive, a hard disk drive, an optical disk drive, or a tape drive, or it may be flash memory or other similar solid memory device, or it may be an array of devices including devices included in a storage area network or other configuration. In other embodiments, the information carrier tangibly contains a computer program product. This computer program product also contains instructions, which are actual When performed, one or more methods are executed, such as those described above. The information carrier is a computer-readable or machine-readable medium, such as memory 620, storage device 630, or memory on the processor 610.
[0058] The high-speed controller 640 manages operations that require a lot of bandwidth for the computing device 600, while the low-speed controller 660 manages operations that require a lot of lower bandwidth. This allocation of roles is illustrative only. In some embodiments, the high-speed controller 640 is connected to memory 620, display 680 (for example, through a graphics processor or accelerator), and to a high-speed expansion port 650 that can accept various expansion cards (not shown). In some embodiments, the low-speed controller 660 is connected to storage device 630 and low-speed expansion port 690. The low-speed expansion port, which may include various communication ports (for example, USB, Bluetooth®, Ethernet®, Wireless Ethernet®), may be connected to one or more input / output devices such as a keyboard, pointing device, scanner, or network devices such as a switch or router, for example, through a network adapter.
[0059] The computing device 600 may be implemented in several different forms, as shown in the figure. For example, it may be implemented as a single standard server 600a, or as a group of such servers 600a, or as a laptop computer 600b, or as part of a rack server system 600c.
[0060] Various embodiments of the systems and technologies described herein can be implemented in digital electronic circuits and / or optical circuits, integrated circuits, specially designed ASICs (application-specific integrated circuits), computer hardware, firmware, software, and / or combinations thereof. These various embodiments may include implementation in one or more computer programs executable and / or interpretable on a programmable system comprising at least one programmable processor. The at least one programmable processor may be an application-specific processor or a general-purpose processor, and may be coupled to a storage system, at least one input device, and at least one output device to send and receive data and instructions.
[0061] These computer programs (also known as programs, software, software applications, or code) contain machine instructions for a programmable processor and can be implemented in high-level procedural languages and / or object-oriented programming languages, as well as in assembly language / machine language. As used herein, the terms “machine-readable medium” and “computer-readable medium” mean any computer program product, non-temporary computer-readable medium, apparatus, and / or device (e.g., magnetic disks, optical disks, memory, PLDs (programmable logic devices)) used to provide machine instructions and / or data to a programmable processor, and include machine-readable mediums that accept machine instructions as machine-readable signals. The term “machine-readable signal” means any signal used to provide machine instructions and / or data to a programmable processor.
[0062] The processes and logic flows described herein may be executed by one or more programmable processors (also referred to as data processing hardware) executing one or more computer programs that perform a function by operating on input data and generating output. Furthermore, these processes and logic flows may be performed using dedicated logic circuits. For example, this can be done by an FPGA (Field Programmable Gate Array) or an ASIC (Application-Specific Integrated Circuit). Processors suitable for executing computer programs include, as an example, both general-purpose and dedicated microprocessors, and any one or more processors in any type of digital computer. Generally, a processor receives instructions and data from ROM (Read-Only Memory) or RAM (Random Access Memory), or both. Essential components of a computer are a processor for executing instructions and one or more memory elements for storing instructions and data. Generally, a computer has one or more mass storage devices for storing data, such as magnetic disks, magneto-optical disks, or optical disks, or is operably connected to one or more such mass storage devices to receive, transmit, or both. However, a computer does not need to have such devices. Readable media suitable for storing computer program instructions and data include, as an example, semiconductor memory elements such as EPROM, EEPROM, and flash memory elements; magnetic disks such as built-in hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks, including all forms of non-volatile memory, media, and memory elements. The processor and memory can be supplemented by dedicated logic circuits or integrated into dedicated logic circuits.
[0063] To enable interaction with a user, one or more aspects of this disclosure may be implemented on a computer that includes a display device for displaying information to the user, such as a CRT (cathode ray tube), LCD (liquid crystal display) monitor, or touchscreen, and optionally a keyboard and pointing device, such as a mouse or trackball, that allows the user to input into the computer. Interaction with the user may also be done using other types of devices, for example, the feedback provided to the user may be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback, and input from the user may be accepted in any form, such as acoustic input, voice input, or tactile input. In addition, the computer may interact with the user by sending and receiving documents with the equipment used by the user, for example, by sending a web page to a web browser on the user's client device in response to a request received from a web browser.
[0064] While several embodiments have been described, it will be understood that various modifications may be made without departing from the spirit and scope of this disclosure. Accordingly, other embodiments are also included in the appended claims.
Claims
1. Method (500), For a mobile device (110) running a user application (116) that is simultaneously connected to a first wireless network (120) associated with an MVNO (Mobile Virtual Network Operator) (70) and a second wireless network (120) associated with the same MVNO (70), the data processing hardware (112) includes the step of selecting one remote server (130) from a plurality of remote servers (130), each remote server (130) included in the plurality of remote servers (130) is associated with a geographical location, and the method (500) further includes, The data processing hardware (112) includes the step of establishing a virtual network (30) between the mobile device (110) and the selected remote server (130), wherein the virtual network (30) includes at least one tunnel (122) between the mobile device (110) and the selected remote server (130) on the first wireless network (120), and at least one tunnel (122) between the mobile device (110) and the selected remote server (130) on the second wireless network (120), and the method (500) further includes, The method (500) includes the step of the data processing hardware (112) transmitting data (50) from the user application (116) to the selected remote server (130) on the virtual network (30) via one of the at least one tunnel (122) between the mobile device (110) on the first wireless network (120) and the selected remote server (130), or via one of the at least one tunnel (122) between the mobile device (110) on the second wireless network (120) and the selected remote server (130), wherein, upon receipt of the data (50) by the selected remote server (130), the selected remote server (130) routes the data (50) to a destination server (60).
2. The at least one tunnel (122) between the mobile device (110) on the first wireless network (120) and the selected remote server (130) includes a first tunnel (122) supporting data (50) for the first service and a second tunnel (122) supporting data (50) for the second service. The at least one tunnel (122) between the mobile device (110) on the second wireless network (120) and the selected remote server (130) includes a third tunnel (122) supporting the data (50) of the first service and a fourth tunnel (122) supporting the data (50) of the second service. The method according to claim 1 (500), wherein the step of transmitting data (50) from the user application (116) to the selected remote server (130) on the virtual network (30) includes the step of selecting, based on the user application (116), the first tunnel (122) or the second tunnel (122) between the mobile device (110) and the selected remote server (130) via the first wireless network (120), or the third tunnel (122) or the fourth tunnel (122) between the mobile device (110) and the selected remote server (130) via the second wireless network (120).
3. The method according to claim 2 (500), wherein the first service includes an internet service and the second service includes a tethering service.
4. After the step of sending the data (50) from the user application (116) to the selected remote server (130), The data processing hardware (112) connects the mobile device (110) to a third wireless network (120U) including a user Wi-Fi (Wireless Fidelity) network, The method (500) according to any one of claims 1 to 3, further comprising the step of the data processing hardware (112) transmitting data (50) from the user application (116) to the destination server (60) over the third wireless network (120U).
5. The step of selecting one remote server (130) from the plurality of remote servers (130) is based on the geographical location of each remote server (130) included in the plurality of remote servers (130), according to the method (500) of any one of claims 1 to 4.
6. Before the step of selecting one remote server (130) from the plurality of remote servers (130), The data processing hardware (112) further includes the step of selecting a preferred wireless network (120) from the first wireless network (120) or the second wireless network (120) based on the network basic settings (450), The method of claim 5 (500), wherein the step of selecting one remote server (130) from the plurality of remote servers (130) is based on the selected preferred wireless network (120).
7. After the step of selecting the preferred wireless network (120), The data processing hardware (112) selects a second remote server (130) from the plurality of remote servers (130) based on the geographical location of each remote server (130) included in the plurality of remote servers (130), The data processing hardware (112) establishes a second virtual network (30) between the mobile device (110) and the selected second remote server (130), The method (500) of claim 6, further comprising the step of the data processing hardware (112) transmitting data (50) from the user application (116) to the selected second remote server (130) on the second virtual network (30), wherein when the data (50) is received by the selected second remote server (130), the selected second remote server (130) routes the data (50) to the destination server (60).
8. The method according to any one of claims 1 to 7 (500), wherein the user application (116) includes a VPN (Virtual Private Network) application (116), and the destination server (60) includes a VPN server associated with the VPN application (116).
9. The method according to any one of claims 1 to 8 (500), further comprising the step of determining whether the data processing hardware (112) is associated with the same MVNO (70) as the second wireless network (120).
10. The first wireless network (120) includes a cellular network, The method according to any one of claims 1 to 9 (500), wherein the second wireless network (120) includes a Wi-Fi (Wireless Fidelity) network.
11. System (100), Mobile device (110) data processing hardware (112) and The system comprises a data processing hardware (112) and a memory hardware (114) that communicates with the data processing hardware (112), the memory hardware (114) storing instructions, and when the instructions are executed on the data processing hardware (112), they cause the data processing hardware (112) to perform an operation, and the operation is The operation includes selecting one remote server (130) from a plurality of remote servers (130) for a mobile device (110) running a user application (116) that is simultaneously connected to a first wireless network (120) associated with an MVNO (Mobile Virtual Network Operator) (70) and a second wireless network (120) associated with the same MVNO (70), wherein each remote server (130) included in the plurality of remote servers (130) is associated with a geographical location, and the operation further includes, The operation includes establishing a virtual network (30) between the mobile device (110) and the selected remote server (130), wherein the virtual network (30) includes at least one tunnel (122) between the mobile device (110) and the selected remote server (130) on the first wireless network (120), and at least one tunnel (122) between the mobile device (110) and the selected remote server (130) on the second wireless network (120), and the operation further includes, A system (100) that includes transmitting data (50) from the user application (116) to the selected remote server (130) on the virtual network (30) via one of the at least one tunnel (122) between the mobile device (110) on the first wireless network (120) and the selected remote server (130), or via one of the at least one tunnel (122) between the mobile device (110) on the second wireless network (120) and the selected remote server (130), wherein, upon receipt of the data (50) by the selected remote server (130), the selected remote server (130) routes the data (50) to a destination server (60).
12. The at least one tunnel (122) between the mobile device (110) on the first wireless network (120) and the selected remote server (130) includes a first tunnel (122) supporting data (50) for the first service and a second tunnel (122) supporting data (50) for the second service. The at least one tunnel (122) between the mobile device (110) on the second wireless network (120) and the selected remote server (130) includes a third tunnel (122) supporting the data (50) of the first service and a fourth tunnel (122) supporting the data (50) of the second service. Transmitting data (50) from the user application (116) to the selected remote server (130) on the virtual network (30) includes selecting, based on the user application (116), the first tunnel (122) or the second tunnel (122) between the mobile device (110) and the selected remote server (130) via the first wireless network (120), or the third tunnel (122) or the fourth tunnel (122) between the mobile device (110) and the selected remote server (130) via the second wireless network (120), according to claim 11 (1 00)。
13. The system (100) according to claim 12, wherein the first service includes an internet service and the second service includes a tethering service.
14. After the user application (116) transmits the data (50) to the selected remote server (130), the operation further: The mobile device (110) is connected to a third wireless network (120U) including a user Wi-Fi (Wireless Fidelity) network. The system (100) according to any one of claims 11 to 13, further comprising transmitting data (50) from the user application (116) to the destination server (60) over the third wireless network (120U).
15. The system (100) according to any one of claims 11 to 14, wherein the selection of one remote server (130) from the plurality of remote servers (130) is based on the geographical location of each remote server (130) included in the plurality of remote servers (130).
16. Before selecting one remote server (130) from the plurality of remote servers (130), the operation further: This includes selecting a preferred wireless network (120) from the first wireless network (120) or the second wireless network (120) based on the basic network settings (450), The system (100) according to claim 15, wherein selecting one remote server (130) from the plurality of remote servers (130) is based on the selected preferred wireless network (120).
17. After the step of selecting the preferred wireless network (120), the operation further: Based on the geographical location of each remote server (130) included in the plurality of remote servers (130), a second remote server (130) is selected from the plurality of remote servers (130), Establishing a second virtual network (30) between the mobile device (110) and the selected second remote server (130), The system (100) according to claim 16, further comprising sending data (50) from the user application (116) to the selected second remote server (130) on the second virtual network (30), wherein when the data (50) is received by the selected second remote server (130), the selected second remote server (130) routes the data (50) to the destination server (60).
18. The system (100) according to any one of claims 11 to 17, wherein the user application (116) includes a VPN (Virtual Private Network) application (116), and the destination server (60) includes a VPN server associated with the VPN application (116).
19. The system (100) according to any one of claims 11 to 18, further comprising determining whether the first wireless network (120) is associated with the same MVNO (70) as the second wireless network (120).
20. The system (100) according to any one of claims 11 to 19, wherein the first wireless network (120) includes a cellular network, and the second wireless network (120) includes a Wi-Fi (Wireless Fidelity) network.