Patent Description:
In some instances, a subscriber, to a mobile network (e.g., a cellular network), may carry a user device associated with the mobile network and travel across multiple land areas in which the mobile network may or may not have coverage. In such cases where the mobile network does not have coverage, the user device may attempt to connect to another mobile network (e.g., a roaming network) after connection with the mobile network is lost or dropped. Additionally, or alternatively, the subscriber may cross a border between regions that are controlled by different governmental entities (e.g., borders between countries). In such cases, the mobile network of the subscriber in a first governmental region may not be registered with a mobile network in the second governmental region. Accordingly, the user device performs a process to connect to the local mobile network of the corresponding governmental region. Such processes (e.g., connecting to a roaming network, transferring between mobile networks of different governmental regions, and/or the like) can take extended periods of time (e.g., over <NUM> seconds, over <NUM> seconds, etc.). In many instances, the extended periods of time can be problematic when the user device is accessing information that is to be updated on the order of milliseconds for one or more applications (e.g., autonomous driving, proximity analysis of moving vehicles, streaming media, voice calls, and/or the like), resulting in loss of communication and/or data loss. Implementations described herein provide relatively ubiquitous coverage for user devices when transitioning between networks (e.g., between mobile networks, between a mobile network and a satellite network, and/or the like).

According to some implementations, a subscriber may subscribe to multiple networks that are serviced and/or regulated by different entities (e.g., different service provider entities, different governmental entities, and/or the like). As such, a user device of the subscriber may be registered with the multiple networks capable of providing a service (e.g., via hosting an application). In some implementations, the multiple networks may include a terrestrial mobile network (i.e., a land-based mobile network) and a satellite network, two or more terrestrial mobile networks, two or more terrestrial mobile networks and one or more satellite networks, and so on. According to some implementations described herein, a user device may establish a communication link with a first network and a second network to ensure ubiquitous and continuous coverage for traffic communication associated with the provided service. In such cases, the user device may monitor characteristics of the communication links and, based on the characteristics of the communication links, select one of the networks (e.g., one of a terrestrial mobile network or a satellite network) for traffic communication. Accordingly, because an alternative communication link has already been established, a transition to send communication traffic from one terrestrial mobile network to another terrestrial mobile network, or from one terrestrial mobile network to a satellite network (and vice versa) causes little to zero loss in relative communications associated with the provided service. As such, a user device may maintain coverage across multiple regions (e.g., even if outside of a coverage range of a terrestrial mobile network), preventing loss of data, communication failures, and/or failures associated with the user device.

<FIG> is a diagram of an overview of an example implementation <NUM> described herein. In <FIG>, a user device (shown as a vehicle) traverses an area of land that includes a first terrestrial mobile network (shown with solid-lined cells), a second terrestrial mobile network (shown with dashed-lined cells), and a government border. Additionally, in the example implementation <NUM> of <FIG>, a satellite of a satellite network may be used for communication with the user device. As described herein, the user device uses multiple, concurrent (or simultaneous) communication links to ensure continuous access, as the user device is mobile, to a service (e.g., autonomous driving, proximity analysis (e.g., determining distances between vehicles), data streaming, data analysis, and/or the like), which may be provided by an application hosted (e.g., within a mobile edge computing (MEC) server) by the first terrestrial mobile network, the second terrestrial mobile network, and/or the satellite network.

As shown in <FIG>, and by reference number <NUM>, the user device has established a communication link with a base station of the first terrestrial mobile network and a separate, concurrent communication link with the satellite of the satellite network. As shown, the user device has set the communication link between the user device and the base station of the first terrestrial mobile network as the primary link for the service, while the satellite link is set as a backup link for the service. As shown by reference number <NUM>, the user device is no longer within coverage of the first terrestrial mobile network, and thus switches the primary link from the communication link with the base station of the first terrestrial mobile network to the communication link with the satellite of the satellite network, thus ensuring continuous access to the service despite being outside of coverage of the first terrestrial mobile network.

As further shown in <FIG>, and by reference number <NUM>, as the user device reenters a coverage area of the first terrestrial mobile network, the user devices reestablishes a communication link with a base station of the first terrestrial mobile network and sets that communication link with the base station as the primary link for the service and the satellite as the backup link for the service. For example, the user device may have a default setting to use the first terrestrial mobile network over the satellite network as long as a strong enough connection with the first terrestrial mobile network is established.

As further shown in <FIG>, and by reference number <NUM>, as the user device comes within range of a second terrestrial mobile network, which may be regulated by a separate governmental entity (as the base stations are located across the government border of the first terrestrial mobile network), the user device may establish a connection with the second terrestrial mobile network and set the communication link with the second terrestrial mobile network as the primary link and the communication link with the first terrestrial mobile network as the backup link. In some implementations, prior to setting the communication link with the second terrestrial network as the traffic link, the user device may establish the communication link with the second terrestrial mobile network as a backup link (e.g., to allow for relatively seamless transition to set the communication link with the second terrestrial mobile network as the primary link). As such, in some instances the user device may have established separate and concurrent communication links with all three of the first terrestrial mobile network, the second terrestrial mobile network, and the satellite network. According to some implementations, the user device may determine that the user device is crossing a government border (e.g., based on a location, a direction of travel, and/or the like) into a different governmental region, and thus may set the communication link for the service with the second terrestrial network as the primary link prior to crossing the government border.

As such, the user device of example implementation <NUM> may have continuous access to a service offered by the first terrestrial mobile network, the second terrestrial mobile network, and the satellite network. Accordingly, the user device may avoid loss of communication, data loss, and/or the like associated with losing access to the service. In some implementations, this may result in preventing damage to the user device (e.g., damage to a vehicle due to latent hazard communications), preventing communication failures of the user device, and/or the like. Furthermore, some implementations described herein may conserve network resources by not attempting communications with a network that is likely to fail (e.g., because a user device may be out of range of the network). Accordingly, satellite network resources, which tend to be relatively expensive, in some implementations, may only be accessed when needed by a user device in order to conserve the network resources of the satellite network.

<FIG> is a diagram of an example environment <NUM> in which systems and/or methods, described herein, may be implemented. As shown in <FIG>, environment <NUM> may include user device <NUM> and networks <NUM>-<NUM> through <NUM>-N (N ≥ <NUM>) (hereinafter referred to collectively as networks <NUM>," and individually as "network <NUM>") including corresponding gateways <NUM>-<NUM> through <NUM>-M (M ≥ <NUM>) (hereinafter referred to collectively as gateways <NUM>," and individually as "gateway <NUM>"). Devices of environment <NUM> may interconnect via wired connections, wireless connections, or a combination of wired and wireless connections.

User device <NUM> includes one or more devices capable of receiving, generating, storing, processing, and/or providing information associated with establishing communication links with multiple networks, monitoring characteristics of the communication links, and selecting one of the communication links for traffic communication based on the characteristics of the communication links. For example, user device <NUM> may include a communication and computing device, such as a mobile phone (e.g., a smart phone, a radiotelephone, etc.), a laptop computer, a tablet computer, a handheld computer, a gaming device, a wearable communication device (e.g., a smart wristwatch, a pair of smart eyeglasses, etc.), a control console of a vehicle, a navigational computer of an autonomous vehicle or semi-autonomous, or a similar type of device.

In some implementations, user device <NUM> may have or include applications associated with software defined wide area network (SD-WAN) capabilities. Accordingly, in such cases, user device <NUM> may utilize SD-WAN to ensure ubiquitous and continuous communication with a service or application of networks <NUM> (e.g., to monitor characteristics of communication links with networks <NUM>, select one or more of the networks <NUM> for traffic communication, perform an action associated with the traffic communication, and/or the like).

Network <NUM> includes one or more wired and/or wireless networks. For example, network <NUM> may include a terrestrial mobile network (e.g., a cellular network, such as a long-term evolution (LTE) network, a code division multiple access (CDMA) network, a <NUM> network, a <NUM> network, a <NUM> network, another type of next generation network, etc.), a public land mobile network (PLMN), a satellite network, a narrow band Internet of Things (Nb-IOT) network, or the like, and/or a combination of these or other types of networks. According to some implementations, each of networks <NUM> are regulated by different governmental entities (e.g., governments of separate countries that invoke various or different communication laws relative to one another) and/or operated by different service provider entities (e.g., service providers that involve different subscriptions (and associated agreements/contracts), different performance levels, different performance capabilities, different costs, and/or the like).

In some implementations, respective distances between networks <NUM> may vary. For example, a base station of one of the networks <NUM> may be within <NUM> kilometers or <NUM> kilometers , while a satellite of another one of the networks <NUM> may be <NUM> to <NUM>,<NUM> kilometers away. In such cases, the base station of one of the networks <NUM> may be closer to user device <NUM>, providing relatively low latency (and/or associated costs) but a relatively short range of coverage, while the satellite of one of the networks <NUM> may provide greater coverage (e.g., over an entire hemisphere of the earth), but increased latency (and/or associated costs).

According to some implementations, network <NUM> may include one or more access points (e.g., base stations, satellites, and/or the like) and/or one or more multi-access edge computing (MEC) servers. In such instances, the access points and/or MEC servers may be monitored and/or controlled by one or more gateways <NUM>. According to some implementations, the access points and/or MEC servers may host applications associated with providing a service to user device <NUM>. As such, user device <NUM> may have continuous access to the service via instances of the applications hosted by networks <NUM>. For example, user device <NUM> may utilize multiple radios to communicate with respective instances of applications hosted by the access points and/or MEC servers.

Gateway <NUM> includes one or more devices capable of storing, processing, and/or routing information associated with enabling user device <NUM> to transition between networks <NUM> according to implementations described herein. In some implementations, gateway <NUM> may include a communication interface that allows gateway <NUM> to receive information from and/or transmit information to other devices in environment <NUM> (e.g., user device <NUM>, other gateways <NUM>, and/or other devices in communication with networks <NUM>). In some implementations, gateway <NUM> may control one or more instances of an application (e.g., MEC applications running on access points of networks <NUM>) that is associated with user device <NUM>. Accordingly, in some implementations, gateway <NUM> may include a MEC gateway.

<FIG> is a diagram of example components of a device <NUM>. Device <NUM> may correspond to user device <NUM> and/or gateway <NUM>. In some implementations, user device <NUM> and/or gateway <NUM> may include one or more devices <NUM> and/or one or more components of device <NUM>. As shown in <FIG>, device <NUM> may include a bus <NUM>, a processor <NUM>, a memory <NUM>, a storage component <NUM>, an input component <NUM>, an output component <NUM>, and a communication interface <NUM>.

Bus <NUM> includes a component that permits communication among the components of device <NUM>. Processor <NUM> is implemented in hardware, firmware, or a combination of hardware and software. Processor <NUM> takes the form of a central processing unit (CPU), a graphics processing unit (GPU), an accelerated processing unit (APU), a microprocessor, a microcontroller, a digital signal processor (DSP), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), or another type of processing component. In some implementations, processor <NUM> includes one or more processors capable of being programmed to perform a function. Memory <NUM> includes a random access memory (RAM), a read only memory (ROM), and/or another type of dynamic or static storage device (e.g., a flash memory, a magnetic memory, and/or an optical memory) that stores information and/or instructions for use by processor <NUM>.

Communication interface <NUM> includes a transceiver-like component (e.g., a transceiver and/or a separate receiver and transmitter) that enables device <NUM> to communicate with other devices, such as via a wired connection, a wireless connection, or a combination of wired and wireless connections. Communication interface <NUM> may permit device <NUM> to receive information from another device and/or provide information to another device. For example, communication interface <NUM> may include an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, a Wi-Fi interface, a cellular network interface, or the like.

Device <NUM> may perform one or more processes described herein. Device <NUM> may perform these processes based on processor <NUM> executing software instructions stored by a non-transitory computer-readable medium, such as memory <NUM> and/or storage component <NUM> and/or received via a transient medium such as a carrier wave or signal. A computer-readable medium is used herein may therefore include both non-transitory memory devices and transient transmission means. A memory device may include memory space within a single physical storage device or memory space spread across multiple physical storage devices.

<FIG> is a flow chart of an example process <NUM> for establishing communication with multiple networks to enable continuous communication coverage across the multiple networks. In some implementations, one or more process blocks of <FIG> may be performed by user device <NUM>. In some implementations, one or more process blocks of <FIG> may be performed by another device or a group of devices separate from or including user device <NUM>, such as gateway <NUM>.

Although the following description refers to an example implementation involving user device <NUM> communicating (e.g., via established communication links) with a terrestrial mobile network and a satellite mobile network, in some implementations, user device <NUM> may communicate via two terrestrial mobile networks operated by different service providers or two terrestrial mobile networks regulated by different governmental entities. Furthermore, in some implementations, user device <NUM> may communicate via more than two networks <NUM> (e.g., two or more terrestrial mobile networks and/or one or more satellite mobile networks). As described in the following descriptions, a terrestrial mobile network and/or a satellite network are considered to be one of networks <NUM> of <FIG>.

As shown in <FIG>, process <NUM> includes establishing a first communication link with a first network (block <NUM>). User device <NUM> establishes a communication link with a terrestrial mobile network. In some implementations, user device <NUM> may establish the communication link based on being powered on, based on entering a coverage area of the terrestrial mobile network, based on receiving a beacon from the terrestrial mobile network, and/or the like.

According to some implementations, a communication link may include any communication session between user device <NUM> and network <NUM> that is used for access to a service or application offered or hosted by network <NUM>. As used herein, traffic communication may include transmissions and/or receipt of traffic, such as packet data (e.g., message data, application data, streaming data, and/or the like), that is associated with the service or application offered by network <NUM>. In some implementations, establishing a communication link may involve network <NUM> establishing an instance of an application on a device (e.g., access point) of network <NUM>.

In some implementations, the first communication link may be established using a suitable communication protocol corresponding to the first network <NUM>. For example, for a terrestrial mobile network, user device <NUM>, using a terrestrial mobile network radio, may exchange a series of beacons and/or messages with a base station of the terrestrial mobile network to establish the first communication link. In such instances, once the first communication link is established with the terrestrial mobile network, user device <NUM> and/or the terrestrial mobile network may maintain the established first communication link via a series of hand-offs between base stations, of the terrestrial mobile network, that are in range of a terrestrial mobile network radio of user device <NUM>.

According to some implementations, a terrestrial mobile network may be operated by a particular service provider entity. For example, the service provider entity may manage communication links of the terrestrial mobile network, maintain operations of base stations and other equipment of the terrestrial mobile network, and/or be associated (e.g., contractually) with a subscriber of user device <NUM> that is registered to the terrestrial mobile network. As such, different networks <NUM> may be operated by different service provider entities.

In some implementations, a terrestrial mobile network may be regulated by a particular governmental entity (e.g., a government of a sovereign nation). For example, the governmental entity may institute and/or enforce communication laws regarding use and communications between user device <NUM> and the terrestrial mobile network. As such, different networks <NUM> may be regulated by different governmental entities.

In this way, user device <NUM> may establish a communication link with a first network, such as a terrestrial mobile network.

As further shown in <FIG>, process <NUM> includes establishing a second communication link with a second network (block <NUM>). User device <NUM> establishes a second communication link with a satellite network. In some implementations, user device <NUM> may establish the second communication link based on entering a coverage area of the satellite network (or having a clear path to a satellite of the satellite network), based on receiving a beacon from the satellite network, and/or the like.

The second communication link may be established using a suitable communication protocol corresponding to the second network <NUM>. For example, for a satellite network, user device <NUM>, using a satellite network radio, may exchange a series of beacons and/or messages with a satellite of the satellite network to establish the second communication link. In such instances, once the second communication link is established with the satellite network, user device <NUM> and/or the satellite network may maintain the established second communication link via a series of hand-offs between satellites of the satellite network that are in range of the satellite radio of user device <NUM>.

Accordingly, user device <NUM> utilizes two or more radios (e.g., one or more terrestrial mobile network radios and one or more satellite network radios) to establish the first communication link and the second communication link. Establishing the second communication link involves the second network establishing a second instance of the application that was established in the first network. Accordingly, user device <NUM> may simultaneously have access to the application via multiple communication links. Therefore, the second communication link may be maintained simultaneously with the first communication link.

According to some implementations, the second communication link may be established with another terrestrial mobile network. For example, the other terrestrial mobile network may be operated by a different service provider entity or regulated by a different governmental entity than the terrestrial mobile network of the first communication link. In such cases where user device <NUM> establishes a first communication link and a second communication link with terrestrial mobile networks operated by different service provider entities, user device <NUM> may be registered with both service provider entities (e.g., include separate subscriber identity module (SIM) cards to communicate via the two terrestrial mobile networks) and within coverage areas of both terrestrial mobile networks. Accordingly, user device <NUM> may be capable of exchanging traffic communications via one or both of the terrestrial mobile networks that are operated by different service provider entities. In such cases where user device <NUM> establishes a first communication link and a second communication link with terrestrial mobile networks regulated by separate governmental entities, user device <NUM> may be along a border between countries and in a coverage area of a terrestrial mobile network of a first country and a terrestrial mobile network of a second country. Accordingly, user device <NUM> may be capable of exchanging traffic communications via one or both of the terrestrial mobile networks that are operated by different governmental entities.

In this way, user device <NUM> may establish a communication link with a second network, such as a satellite network.

As further shown in <FIG>, process <NUM> may include monitoring a characteristic of the first communication link and a characteristic of the second communication link (block <NUM>). For example, user device <NUM> may monitor the respective characteristic of the communication links. For example, user device <NUM> may monitor a characteristic of the first communication link between user device <NUM> and the terrestrial mobile network and a characteristic of the second communication link between user device <NUM> and the satellite network. In some implementations, user device <NUM> may monitor the characteristic of the first communication link and characteristic of the second communication link based on user device <NUM> establishing the first communication link and the second communication link.

In some implementations, user device <NUM> simultaneously monitors the respective characteristic of the first communication link and the characteristics of the second communication link. Additionally, or alternatively, the characteristic of the first communication link may correspond to the characteristic of the second communication link (e.g., the characteristic of the first communication link and the characteristic of the second communication link are the same type of characteristic).

According to some implementations, the characteristic of the first communication link and/or the characteristic of the second communication link monitored by user device <NUM> may include a latency of the first communication link and the second communication link, a throughput (e.g., available bandwidth) of the first communication link and the second communication link, an error rate of the first communication link and the second communication link, a cost (e.g., a monetary cost) associated with communicating via the first communication link and communicating via the second communication link, a strength of signal on the first communication link and the second communication link, a quality of service associated with communicating via the first communication link and communicating via the second communication link, and/or the like.

In some implementations, latency of a communication link with one of networks <NUM> may be affected by a distance between user device <NUM> and an access point (e.g., a base station, a satellite, and/or the like) of the one of networks <NUM>. According to some implementations, throughput of a communication link may be affected by a service level agreement, communication capabilities of a radio of the user device <NUM> used for the communication link, communication capabilities of an access point of one of networks <NUM> used for the communication link, and/or the like. In some implementations, an error rate of a communication link may be affected by a distance between user device <NUM> and an access point of one of networks <NUM>, multipath, signal power, and/or the like. In some implementations, cost may be affected by an agreed upon value for communication (e.g., traffic communication) between the user device <NUM> and one of networks <NUM>. For example, the cost may include a subscription fee and/or a usage fee (corresponding to an amount of traffic data communicated via one of the networks <NUM>). In some implementations, a strength of signal on the first communication link and the second communication link may be affected by interfering structures and/or a distance between user device <NUM> and an access point of one of the networks. In some implementations, a quality of service associated with communicating via the first communication link and communicating via the second communication link may be affected by interfering signals between user device <NUM> and an access point of networks <NUM>.

According to some implementations, user device <NUM> may monitor the characteristics of the first communication link and characteristics of the second communication link by measuring latency, throughput, error rate, signal power, signal strength, and/or the like at a radio used for the communication link. User device <NUM> may use any suitable techniques to measure the latency, throughput, error rate, signal power, signal strength, and/or the like. For example, user device <NUM> may utilize communication link performance using SD-WAN. In some implementations, user device <NUM> may access cost information indicating a cost of traffic communications via the communication link. For example, the cost information may indicate how much a subscriber may need to pay to send or receive traffic over the communication link (e.g., based on a particular data usage rate, based on whether the subscriber has reached an allocated usage, and/or the like).

In some implementations, user device <NUM> may monitor a plurality of characteristics of the first communication link and/or a plurality of characteristics of the second communication link. In this case, user device <NUM> may combine values associated with the plurality of characteristics to generate a score for the first communication link or the second communication link. In some implementations, user device <NUM> may use a weighted combination of the values to generate the score. The score may represent a measure of quality of the first communication link or the second communication link and may be used to select one of the first communication link or the second communication link.

In this way, user device <NUM> may monitor one or more characteristics of the first communication link and one or more characteristics of the second communication link to enable user device <NUM> to select a network for traffic communication.

As further shown in <FIG>, process <NUM> may include selecting the first network or the second network for traffic communication based on the characteristic of the first communication link and the characteristic of the second communication link (block <NUM>). For example, user device <NUM> may select a terrestrial mobile network or a satellite network based on a characteristic of a communication link with the terrestrial mobile network and a characteristic of a communication link with the satellite network. In some implementations, user device <NUM> may select the terrestrial mobile network or the satellite network for traffic communication based on a change in one of the characteristics of the first communication link or the second communication link.

As described above, traffic communication may involve communication associated with applications, for providing a service, that may be running on user device <NUM> and/or instances of applications controlled by gateways <NUM> that are running on devices of networks <NUM>. As such, a terrestrial mobile network and/or a satellite network may be used to exchange traffic communications corresponding to the applications. Accordingly, user device <NUM> may select which of the terrestrial mobile network or the satellite network is best for traffic communication based on the characteristic of the communication link with the terrestrial mobile network and the characteristic of the communication link with the satellite network. In other words, if one of the terrestrial mobile network or satellite network has a characteristic indicating a poor connection (e.g., a connection that may affect traffic communication), then user device <NUM> may select the other network. Accordingly, in some implementations, ubiquitous communication with an application for a service, such as autonomous driving control, may be critical to ensure safety (e.g., that a vehicle remains on a road, avoids obstacles, follows a particular route, and/or the like).

In some implementations, user device <NUM> may utilize default settings to select one of the networks <NUM> for traffic communication to access a service or application. For example, if a characteristic of a communication link with a terrestrial mobile network and a characteristic of a communication link with a satellite network both indicate a strong connection between the terrestrial mobile network and the satellite network, user device <NUM> may default to using the terrestrial mobile network (e.g., which may offer lower latency, be more cost effective, and/or the like). In some implementations, user device <NUM> may use communication link performance monitoring and/or failover capabilities of SD-WAN to select one of the networks <NUM> for traffic communication to access the service or application. For example, when user device <NUM>, via SD-WAN monitoring of one of the radios of user device <NUM> in communication with one of the networks <NUM>, determines an error rate, packet loss rate, and/or other similar characteristic that indicates a loss in performance and/or a need for a failover, user device <NUM> may select another one of the networks <NUM> for the communication.

In some implementations, user device <NUM> can utilize a scoring system to select a terrestrial mobile network or a satellite network based on the characteristic of the first communication link and/or the characteristic of the second communication link. For example, user device <NUM> can apply scores and/or weights (w) to parameters corresponding to characteristics of the communication links (e.g., latency, throughput, error rate, cost, and/or the like). As such, user device <NUM> may calculate scores (si) for networks <NUM> i that are communicatively linked (e.g., via established communication links) with user device <NUM>. For example, user device <NUM> can calculate the following score (si) for a network <NUM> i: <MAT> where wai, wbi, wci can correspond to weights corresponding to characteristics ai, bi, ci. Accordingly, in some implementations, the weights wai, wbi, wci may vary for different networks <NUM>. For example, a first weight for a first characteristic of a first network may be different than a second weight for the first characteristic of a second network. In some implementations, the weights wai, wbi, wci may be determined or adjusted based on a setting of the user device <NUM>, preferences of a subscriber (e.g., which may be received via user input from a user interface of user device <NUM>), and/or the like. In some implementations, user device <NUM> may use machine learning to select an appropriate network <NUM> for traffic communication. For example, the machine learning may involve monitoring successful and/or unsuccessful transitions between networks <NUM> when characteristics of the communication links had certain parameters and/or when user device <NUM> was at a particular location or traveling in a particular direction.

User device <NUM> selects the terrestrial mobile network or the satellite mobile network for traffic communication in order to ensure the ability to continuously communicate traffic. For example, user device <NUM> may be running an application that is to maintain a minimal latency in communication between user device <NUM> and gateways <NUM> running on the terrestrial mobile network and the satellite network. As a more specific example, the application may correspond to autonomous control of a vehicle, proximity analysis of a vehicle, and/or the like. In such instances, gateway <NUM>, controls an instance of the application, running on the corresponding network <NUM>, that is used or accessed by user device <NUM>, to enable user device <NUM> to transition to another network <NUM> selected by user device <NUM> without interrupting operation of the application by allowing user device <NUM> to utilize another instance of the application running on the other network <NUM>. Avoiding such interruptions may be critical to avoiding serious failures that may result in physical harm to property and/or individuals (e.g., as a result of an autonomous vehicle collision.

According to some implementations, user device <NUM> may select a terrestrial mobile network and/or a satellite network based on a determined location of user device <NUM>. For example, user device <NUM> may determine (e.g., via a global positioning system (GPS), a triangulation calculation, and/or the like) that user device <NUM> is approaching a particular area where a terrestrial mobile network has little to zero coverage. Accordingly, in such a case (e.g., additionally, or alternatively, to using characteristics of the communication links), user device <NUM> may select a satellite network for traffic communication to ensure continuous traffic communication. In some instances, user device <NUM> may determine that user device <NUM> has entered into a region associated with a different terrestrial mobile network (e.g., a terrestrial mobile network that is regulated by a different governmental entity). In such cases, user device <NUM> may select the local terrestrial mobile network for traffic communication (e.g., assuming that the user device <NUM> is to remain in the new region for an extended period of time (e.g., more than <NUM> minutes) based on direction of travel, navigation information associated with user device <NUM>, a calendar event location associated with user device <NUM>, and/or the like).

In this way, user device <NUM> may select one of networks <NUM> for traffic communication based on a characteristic of the one of the networks <NUM> to enable user device <NUM> to maintain continuous traffic communication.

As further shown in <FIG>, process <NUM> may include performing an action associated with the traffic communication (block <NUM>). For example, user device <NUM> may perform the action associated with exchanging the traffic communication via a terrestrial mobile network or a satellite network. In some implementation, user device <NUM> performs the action based on selecting the first network (e.g., the terrestrial mobile network) or the second network (e.g., the satellite network).

According to some implementations, performing the action may include transmitting traffic via a radio of user device <NUM> associated with selected network <NUM>. For example, if user device <NUM> selects a terrestrial mobile network for traffic communication, user device <NUM> may use a terrestrial mobile network radio to communicate traffic. In such cases where user device <NUM> selects a satellite network, user device <NUM> may communicate traffic via a satellite network radio. In some implementations, when user device <NUM> begins sending traffic via a radio corresponding to one of the networks <NUM>, corresponding gateways <NUM> (e.g., a gateway <NUM> previously used for traffic communication and a gateway <NUM> currently used for traffic communication) may coordinate with one another to ensure continuous traffic communication with user device <NUM>. For example, gateways <NUM> may ensure that instances of an application respectively run on the different networks <NUM> are synchronized. In some implementations, as further described below, gateways <NUM> may communicate with one another when it is determined that user device <NUM> is to switch between networks <NUM>. Additionally, or alternatively, user device <NUM> may communicate with gateways <NUM> (e.g., by serving as a relay) to indicate which network has been selected for traffic communication.

In some implementations, user device <NUM> may send a notification to gateway <NUM> of selected network <NUM> to indicate that traffic communication is to be exchanged through selected network <NUM>. Additionally, or alternatively, user device <NUM> may send a notification to a gateway <NUM> of a network <NUM> previously used for traffic communication to indicate that traffic communication is to be exchanged through the selected network <NUM> (not the network <NUM> previously used for traffic communication).

In this way, user device <NUM> may perform an action associated with the traffic communication to ensure that continuous traffic communication is maintained.

<FIG> is a flow chart of an example process <NUM> associated with establishing communication with multiple networks to enable continuous communication coverage across the multiple networks. In some implementations, one or more process blocks of <FIG> may be performed by gateway <NUM>. In some implementations, one or more process blocks of <FIG> may be performed by another device or a group of devices separate from or including gateway <NUM>, such as user device <NUM>.

As shown in <FIG>, process <NUM> may include establishing a communication link for traffic communication between a user device and a first network (block <NUM>). For example, gateway <NUM> may facilitate establishing the communication link with user device <NUM> via corresponding network <NUM>. In some implementations, gateway <NUM> may establish the communication link for traffic communication based on user device <NUM> entering a coverage area of a corresponding network <NUM> of gateway <NUM>, based on instructions from another gateway <NUM>, based on a request from user device <NUM>, and/or the like.

Gateway <NUM> may establish the communication link for traffic communication using any suitable technique (e.g., in a similar manner as described above with respect to process blocks <NUM> and <NUM> to establish a communication link). In some implementations, gateway <NUM> may control instances of an application, running on a corresponding network <NUM>, associated with the traffic communication with user device <NUM>. In such instances, gateway <NUM> may exchange traffic communication with user device <NUM> that is associated with the application.

In this way, gateway <NUM> may establish a communication link with user device <NUM> to enable gateway <NUM> to exchange communication traffic and/or monitor a characteristic of the communication link.

As further shown in <FIG>, process <NUM> may include monitoring a characteristic of the communication link (block <NUM>). For example, gateway <NUM> may monitor the characteristic (e.g., by measuring signal or data characteristics associated with the communication traffic) of the communication link with user device <NUM>. In some implementations, gateway <NUM> may monitor the characteristic of the communication link based on the communication link being established for traffic communication with user device <NUM>.

According to some implementations, gateway <NUM> may monitor and/or measure signal or data characteristics associated with the communication link and/or traffic communication being exchanged between gateway <NUM> and user device <NUM>. For example, gateway <NUM> may monitor and/or measure a latency, a throughput, an error rate, a cost, and/or the like associated with the traffic communication. Accordingly, gateway <NUM> may determine when the communication is a strong communication link for traffic communication (e.g., the communication link is able to meet characteristic requirements for traffic communication) or relatively weak communication link for traffic communication (e.g., the communication link cannot meet characteristic requirements for traffic communication).

In this way, gateway <NUM> may monitor a characteristic of the communication link used for traffic communication to enable the gateway <NUM> to determine whether user device <NUM> is to send the traffic communication through a second gateway.

As further shown in <FIG>, process <NUM> may include determining that the user device is to send traffic communication through a second network based on the characteristic of the communication link (block <NUM>). For example, if gateway <NUM> is associated with a terrestrial mobile network, gateway <NUM> may determine that user device <NUM> is to send traffic communication through a satellite network. In some implementations, gateway <NUM> of network <NUM> may determine that the user device is to send the traffic communication through another network <NUM> based on a change in the monitored characteristic of the communication link.

According to some implementations, gateway <NUM> may determine that user device <NUM> is to send the traffic communication through another network based on the characteristic indicating that the communication link cannot handle the traffic communication. For example, the characteristic may indicate relatively high latency for the traffic communication, relatively low throughput for the traffic communication, relatively high error rate for the traffic communication, and/or the like. In some implementations, gateway <NUM> may determine that gateway <NUM> is not associated with a default network (e.g., a terrestrial mobile network) of user device <NUM>. Accordingly, based on characteristics of the communication link and/or user device <NUM> (e.g., location), gateway <NUM> may determine that user device <NUM> is to send traffic through the default network (rather than the network of the gateway <NUM>).

According to some implementations, gateways <NUM> may implement a mapping process to map subscriptions of user device <NUM> to one another. For example, user device <NUM> may be registered to a first network and a second network via first and second subscriptions. Such subscriptions may be tracked and monitored through an application layer of the networks <NUM>, enabling gateways <NUM> to map the subscriptions to a same user device <NUM>. As such, using the mapping information, gateways <NUM> may determine which networks <NUM> (and/or corresponding gateways <NUM>) are to be used for traffic communication by the user device <NUM>.

In this way, gateway <NUM> may determine that user device <NUM> is to send traffic communication through another network <NUM> other than network <NUM> that corresponds to gateway <NUM>, to enable gateway <NUM> to send a notification to a second gateway <NUM> of the other network <NUM>.

As further shown in <FIG>, process <NUM> may include sending a notification to a gateway of the second network to indicate that the second network is to handle traffic communication of the user device (block <NUM>). For example, gateway <NUM>, which may be associated with a terrestrial mobile network, may send the notification to another gateway <NUM> that is associated with a satellite network, to indicate that the satellite network is to handle the traffic communication of user device <NUM>. In some implementations, gateway <NUM> sends the notification to the other gateway based on determining that the user device <NUM> is to send the traffic communication through another network <NUM> based on the characteristic of the communication link.

According to some implementations, gateway <NUM>, which may be associated with a terrestrial mobile network, may identify another gateway <NUM>, which may be associated with a satellite network that is to handle the traffic communication based on mapping information of subscriptions of user device <NUM>. For example, user device <NUM> may be assigned a subscription identifier (e.g., at an application layer) associated with the terrestrial mobile network and a subscription identifier associated with the satellite network. In such cases, gateways <NUM> may access the subscription identifiers through mapping information received from user device <NUM> (e.g., when establishing links between user device <NUM> and the terrestrial mobile network and satellite network). Accordingly, gateway <NUM> may identify which gateway <NUM> of which network <NUM> is to be prepared to handle traffic communication with user device <NUM>. In some implementations, user device <NUM> may relay information between gateways <NUM>. For example, if one of the gateways <NUM> does not have access to an identity of another gateway <NUM>, user device <NUM> may provide identification information about the corresponding gateways <NUM> to facilitate communication between the gateways <NUM>.

In this way, gateway <NUM> may send a notification to another gateway of a network that is to handle traffic communication with user device <NUM> to enable continuous traffic communication between user device <NUM> and instances of an application associated with the traffic communication.

Accordingly, some implementations described herein enable a user device to continuously access and/or interface with an instance of an application or system associated with the user device. According to some implementations described herein, a user device may establish communication links with multiple networks (e.g., one or more terrestrial networks and/or one or more satellite networks) to ensure that user device has full coverage and an ability to send and/or receive information when the user device may traverse between coverage areas, geographical locations, and/or borders of governmental entities. Accordingly, some implementations described herein prevent packet loss and/or inoperability of features of a user device by enabling relatively ubiquitous coverage for the user device. As such, communication resources, networking resources, and/or the like which may be associated with packet loss, can be preserved.

Therefore, from one perspective, there has been described that a user device may include a terrestrial mobile network radio; a satellite network radio; and one or more processors to establish, via the terrestrial mobile network radio, a first communication link with a terrestrial mobile network, establish, via the satellite network radio, a second communication link with a satellite network, monitor a characteristic of the first communication link and a characteristic of the second communication link, select the terrestrial mobile network or the satellite network for traffic communication based on the characteristic of the first communication link and the characteristic of the second communication link, and/or perform an action associated with the traffic communication based on selecting the terrestrial mobile network or the satellite network for traffic communication.

As used herein, the term component is intended to be broadly construed as hardware, firmware, and/or a combination of hardware and software.

Thus, the operation and behavior of the systems and/or methods were described herein without reference to specific software code-it being understood that software and hardware can be designed to implement the systems and/or methods based on the description herein.

Even though particular combinations of features are recited in the claims and/or disclosed in the specification, these combinations are not intended to limit the disclosure of possible implementations. Although each dependent claim listed below may directly depend on only one claim, the disclosure of possible implementations includes each dependent claim in combination with every other claim in the claim set.

Claim 1:
A method comprising:
causing (<NUM>), by a device (<NUM>), a first communication link with a terrestrial mobile network (<NUM>-<NUM>) to be established;
causing (<NUM>), by the device, a second communication link with a satellite network (<NUM>-<NUM>) to be established;
transmitting, by the device, a traffic communication through the first communication link while maintaining the second communication link,
wherein a first instance of an application that is running on one of the terrestrial mobile network or the satellite network is selected for the first communication link; and
switching, by the device, from transmitting the traffic communication through the first communication link to transmitting the traffic communication through the second communication link without interrupting operation of the application,
wherein a second instance of the application that is running on the other one of the terrestrial mobile network or the satellite network is selected for the second communication link.